No Description

WorkOrderController.cs 1.3MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802
  1. using CallCenter.Utility;
  2. using CallCenterApi.Common;
  3. using CallCenterApi.DB;
  4. using CallCenterApi.Interface.Controllers.Base;
  5. using CallCenterApi.Interface.Controllers.Sms;
  6. using CallCenterApi.Interface.Models.Common;
  7. using CallCenterApi.Model;
  8. using Newtonsoft.Json;
  9. using Newtonsoft.Json.Linq;
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.IO;
  14. using System.Linq;
  15. using System.Net;
  16. using System.Security.Cryptography;
  17. using System.Text;
  18. using System.Threading.Tasks;
  19. using System.Transactions;
  20. using System.Web;
  21. using System.Web.Mvc;
  22. namespace CallCenterApi.Interface.Controllers.workorder
  23. {
  24. [Authority]
  25. public class WorkOrderController : BaseController
  26. {
  27. // GET: WorkOrder
  28. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  29. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  30. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  31. private information.InternalMessagesController msg = new information.InternalMessagesController();
  32. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  33. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  34. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  35. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  36. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  37. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  38. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  39. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  40. private BLL.T_Sys_Department departmentBLL = new BLL.T_Sys_Department();
  41. private BLL.T_Sys_WorkOFFDays dayBLL = new BLL.T_Sys_WorkOFFDays();
  42. private readonly static object _MyLock = new object();
  43. #region 获取工单
  44. /// <summary>
  45. /// 获取工单列表
  46. /// </summary>
  47. /// <returns></returns>
  48. public ActionResult GetList(int isdc = 0)
  49. {
  50. DataTable dt = new DataTable();
  51. string sql = " and F_IsDelete=0 ";
  52. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  53. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  54. int islike = RequestString.GetInt("islike", 1);
  55. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  56. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  57. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  58. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  59. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  60. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  61. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  62. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  63. string ddstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstarttime"));
  64. string ddstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstrendtime"));
  65. string supervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("supervisor"));//督办人员
  66. int isproresult = RequestString.GetInt("isproresult", 0);
  67. int source = RequestString.GetInt("source", 0);
  68. int keyid = RequestString.GetInt("keyid", 0);
  69. int type = RequestString.GetInt("type", 0);
  70. int bigtype = RequestString.GetInt("bigtype", 0);
  71. int smalltype = RequestString.GetInt("smalltype", 0);
  72. int sourcearea = RequestString.GetInt("sourcearea", 0);
  73. int deptid = RequestString.GetInt("deptid", 0);
  74. string myd = HttpUtility.UrlDecode(RequestString.GetQueryString("myd"));
  75. int zdpy = RequestString.GetInt("zdpy", 0);
  76. int smpy = RequestString.GetInt("smpy", 0);
  77. int dealtype = RequestString.GetInt("dealtype", -1);
  78. int issend = RequestString.GetInt("issend", -1);
  79. int deptlevel = RequestString.GetInt("deptlevel", 0);
  80. int dbgd = RequestString.GetInt("dbgd", 0);
  81. int dbdata = RequestString.GetInt("dbdata", 0);
  82. int workordertype = RequestString.GetInt("workordertype", -1);
  83. int IsRelease = RequestString.GetInt("IsRelease", 0);
  84. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  85. int issatisfie = RequestString.GetInt("issatisfie", -1);
  86. string assignUser = HttpUtility.UrlDecode(RequestString.GetQueryString("assignUser"));
  87. string strpageindex = RequestString.GetQueryString("page");
  88. int pageindex = 1;
  89. string strpagesize = RequestString.GetQueryString("pagesize");
  90. int pagesize = 10;
  91. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  92. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  93. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  94. int isopen = RequestString.GetInt("isopen", -1);//是否公开
  95. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  96. int orderSign = RequestString.GetInt("orderSign ", -1);
  97. if (jianhang==4)
  98. {
  99. sql += " and F_InfoSource = '2580'";
  100. }
  101. if (isopen > -1)
  102. sql += " and isnull(F_IsOpen,0) =" + isopen;
  103. if (orderSign > -1)
  104. sql += " and F_OrderSign =" + orderSign;
  105. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("strworkorderid"));
  106. if (strworkorderid.Trim() != "" && strworkorderid != "undefined")
  107. {
  108. sql += " and F_WorkOrderId in( select F_WorkOrderId from T_Sys_Affairs where CASE_SERIAL like'%" + strworkorderid + "%') ";
  109. }
  110. if (IsRelease > 0)
  111. {
  112. if (IsRelease == 1)
  113. sql += " and F_IsRelease = '2'";
  114. else
  115. sql += " and F_IsRelease = '3'";
  116. }
  117. if (assignUser.Trim() != "" && assignUser != "undefined")
  118. {
  119. sql += "and F_AssignUser='" + assignUser.Trim() + "'";
  120. }
  121. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  122. if (assuser.Trim() != "" && assuser != "undefined")
  123. {
  124. sql += " and F_AssignUser = '" + assuser + "' ";
  125. }
  126. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  127. {
  128. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  129. {
  130. sql += " and F_DealTime between '" + dealstarttime +
  131. "' AND '" + dealstrendtime + "'";
  132. }
  133. else
  134. {
  135. sql += " and F_DealTime>='" + dealstarttime + "' ";
  136. }
  137. }
  138. else
  139. {
  140. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  141. {
  142. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  143. }
  144. }
  145. if (issatisfie != -1)
  146. {
  147. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_IsDelete = 0 and F_IsSatisfie = " + issatisfie + " and F_Id in (select MAX(F_Id) from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) )";
  148. }
  149. if (workordertype > -1)
  150. {
  151. if (workordertype == 0)
  152. {
  153. sql += " and F_CallRecordId is not null ";
  154. }
  155. else
  156. {
  157. sql += " and F_CallRecordId is null ";
  158. }
  159. }
  160. int isbusiness = RequestString.GetInt("isbusiness", -1);
  161. #region sql 语句相关处理
  162. if (strstate.Trim() != "" && strstate != "undefined")
  163. {
  164. if (isproresult > 0)
  165. {
  166. sql += " and F_WorkState in(6,7) ";
  167. }
  168. else
  169. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  170. }
  171. if (strworkid.Trim() != "" && strworkid != "undefined")
  172. {
  173. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  174. }
  175. if (strname.Trim() != "" && strname != "undefined")
  176. {
  177. sql += " and F_CusName = '" + strname + "' ";
  178. }
  179. if (splituser.Trim() != "" && splituser != "undefined")
  180. {
  181. sql += " and F_SplitUser = '" + splituser + "' ";
  182. }
  183. if (ddstarttime.Trim() != "" && ddstarttime != "undefined")
  184. {
  185. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  186. {
  187. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  188. "F_CreateTime between '" + ddstarttime +
  189. "' AND '" + ddstrendtime + "')";
  190. }
  191. else
  192. {
  193. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  194. "F_CreateTime >='" + ddstarttime + "')";
  195. }
  196. }
  197. else
  198. {
  199. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  200. {
  201. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  202. "F_CreateTime <='" + ddstrendtime + "')";
  203. }
  204. }
  205. if (islike > 0)
  206. {
  207. if (strtel.Trim() != "" && strtel != "undefined")
  208. {
  209. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  210. }
  211. }
  212. else
  213. {
  214. if (strtel.Trim() != "" && strtel != "undefined")
  215. {
  216. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  217. }
  218. }
  219. int dbtype = RequestString.GetInt("dbtype", 0);
  220. string value1 = "";
  221. if (dbdata > 0)
  222. {
  223. if (deptid == 0)
  224. {
  225. return Error("请选择部门");
  226. }
  227. string sdate = ""; string etime = "";
  228. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  229. {
  230. sdate = DateTime.Now.AddMonths(-1).
  231. ToString("yyyy-MM") + "-21 00:00:01";
  232. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  233. }
  234. else
  235. {
  236. sdate = strstarttime;
  237. if (strendtime.Trim() == "" || strendtime == "undefined")
  238. {
  239. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  240. }
  241. else
  242. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  243. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  244. }
  245. if (dbtype != 6)
  246. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  247. else
  248. sql += "and F_WorkState not in (0, 1, 11)";
  249. if (dbtype == 1)
  250. {
  251. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  252. }
  253. else if (dbtype == 2)
  254. {
  255. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  256. }
  257. else if (dbtype == 3)
  258. {
  259. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  260. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  261. }
  262. else if (dbtype == 6)
  263. {
  264. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid + "') group by F_WorkOrderId having COUNT(1) = 1 )";
  265. }
  266. }
  267. else if (dbdata2 > 0)
  268. {
  269. if (deptid == 0)
  270. {
  271. return Error("请选择部门");
  272. }
  273. int deptid2 = 0;
  274. if (User.F_RoleCode == "WLDW")
  275. deptid2 = User.F_DeptId;
  276. string sdate = ""; string etime = "";
  277. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  278. {
  279. sdate = DateTime.Now.AddMonths(-1).
  280. ToString("yyyy-MM") + "-21 00:00:01";
  281. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  282. }
  283. else
  284. {
  285. sdate = strstarttime;
  286. if (strendtime.Trim() == "" || strendtime == "undefined")
  287. {
  288. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  289. }
  290. else
  291. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  292. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  293. }
  294. if (dbtype != 6)
  295. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  296. "and F_MainDeptID3 like'%" + deptid + "%'";
  297. else
  298. sql += "and F_WorkState not in (0, 1, 11)";
  299. if (dbtype == 1)
  300. {
  301. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  302. }
  303. else if (dbtype == 2)
  304. {
  305. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  306. }
  307. else if (dbtype == 3)
  308. {
  309. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  310. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  311. }
  312. else if (dbtype == 6)
  313. {
  314. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  315. "and F_MainDeptID3 like'%" + deptid + "%'";
  316. }
  317. }
  318. if (dbgd > 0)
  319. {
  320. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  321. }
  322. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  323. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  324. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  325. {
  326. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  327. }
  328. if (Result.Trim() != "" && Result != "undefined")
  329. {
  330. sql += " and F_Result like '%" + Result + "%' ";
  331. }
  332. if (ComContent.Trim() != "" && ComContent != "undefined")
  333. {
  334. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  335. "or F_Content like '%" + ComContent + "%' )";
  336. }
  337. if (strkey.Trim() != "" && strkey != "undefined")
  338. {
  339. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  340. " or F_Result like '%" + strkey + "%' ) ";
  341. }
  342. if (strusercode.Trim() != "" && strusercode != "undefined")
  343. {//坐席
  344. var usercode = strusercode.Trim().Split(',');
  345. var newusercode = "";
  346. foreach (var item in usercode)
  347. {
  348. if (!string.IsNullOrWhiteSpace(item.Trim()))
  349. newusercode += "'" + item + "',";
  350. }
  351. newusercode = newusercode.Trim(',');
  352. if (usercode.Length > 1)
  353. {
  354. if (newusercode.Trim() != "" && newusercode != "undefined")
  355. {
  356. sql += " and F_CreateUser in (" + newusercode + ") ";
  357. }
  358. }
  359. else
  360. {
  361. if (newusercode.Trim() != "" && newusercode != "undefined")
  362. {
  363. sql += " and F_CreateUser = " + newusercode + " ";
  364. }
  365. }
  366. }
  367. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  368. {//调度员
  369. var ddusercode = strddusercode.Trim().Split(',');
  370. var newusercode = "";
  371. foreach (var item in ddusercode)
  372. {
  373. if (!string.IsNullOrWhiteSpace(item.Trim()))
  374. newusercode += "'" + item + "',";
  375. }
  376. newusercode = newusercode.Trim(',');
  377. if (ddusercode.Length > 1)
  378. {
  379. if (newusercode.Trim() != "" && newusercode != "undefined")
  380. {
  381. sql += " and F_AssignUser in (" + newusercode + ") ";
  382. }
  383. }
  384. else
  385. {
  386. if (newusercode.Trim() != "" && newusercode != "undefined")
  387. {
  388. sql += " and F_AssignUser = " + newusercode + " ";
  389. }
  390. }
  391. }
  392. if (supervisor.Trim() != "" && supervisor != "undefined")
  393. {//督办人员
  394. var supervisorusercode = supervisor.Trim().Split(',');
  395. var newusercode = "";
  396. foreach (var item in supervisorusercode)
  397. {
  398. if (!string.IsNullOrWhiteSpace(item.Trim()))
  399. newusercode += "'" + item + "',";
  400. }
  401. newusercode = newusercode.Trim(',');
  402. if (supervisorusercode.Length > 1)
  403. {
  404. if (newusercode.Trim() != "" && newusercode != "undefined")
  405. {
  406. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  407. "where F_IsDelete = 0 and F_Type = 1 and Supervisor in (" + newusercode + ")) ";
  408. }
  409. }
  410. else
  411. {
  412. if (newusercode.Trim() != "" && newusercode != "undefined")
  413. {
  414. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  415. "where F_IsDelete = 0 and F_Type = 1 and Supervisor = " + newusercode + ") ";
  416. }
  417. }
  418. }
  419. if (source != 0)
  420. {
  421. sql += " and F_InfoSource = '" + source + "' ";
  422. }
  423. string sqlwhere = ""; string value = "";
  424. if (keyid != 0)
  425. {
  426. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  427. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  428. }
  429. else if (User.F_RoleCode == "DFZF")
  430. {
  431. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  432. }
  433. if (type != 0)
  434. {
  435. sql += " and F_InfoType = '" + type + "' ";
  436. }
  437. if (bigtype != 0)
  438. {
  439. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  440. }
  441. if (smalltype != 0)
  442. {
  443. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  444. }
  445. if (isproresult != 0)
  446. {
  447. sql += "and (a.F_IsSms =0 or a.F_IsSms is null )";
  448. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  449. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  450. {
  451. if (isproresult == 2)
  452. {
  453. isproresult = 3;
  454. sql += " and F_IsProResult = '" + 3 + "' ";
  455. }
  456. else
  457. {
  458. isproresult = 2;
  459. sql += " and F_IsProResult = '" + 2 + "' ";
  460. }
  461. }
  462. else
  463. sql += " and F_IsProResult = '" + 2 + "' ";
  464. }
  465. if (sourcearea != 0)
  466. {
  467. sql += " and F_SourceArea = '" + sourcearea + "' ";
  468. }
  469. if (deptid != 0)
  470. {
  471. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  472. }
  473. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  474. {
  475. if (strendtime.Trim() != "" && strendtime != "undefined")
  476. {
  477. sql += " and F_CreateTime between '" + strstarttime +
  478. "' AND '" + strendtime + "'";
  479. }
  480. else
  481. {
  482. sql += " and F_CreateTime>='" + strstarttime + "' ";
  483. }
  484. }
  485. else
  486. {
  487. if (strendtime.Trim() != "" && strendtime != "undefined")
  488. {
  489. sql += " and F_CreateTime<='" + strendtime + "' ";
  490. }
  491. }
  492. if (dealtype != -1)
  493. {
  494. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  495. }
  496. if (issend != -1)
  497. {
  498. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  499. }
  500. #endregion
  501. if (strpageindex.Trim() != "")
  502. {
  503. pageindex = Convert.ToInt32(strpageindex);
  504. }
  505. if (strpagesize.Trim() != "")
  506. {
  507. pagesize = Convert.ToInt32(strpagesize);
  508. }
  509. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  510. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  511. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  512. #region 导出
  513. if (isdc > 0)
  514. {
  515. var dic = new BLL.T_Sys_DictionaryValue().GetModelList("F_State=0 and F_PrentId=4589");
  516. if (dic.Where(x => x.F_Value == User.F_RoleCode).Count() > 0)
  517. {
  518. var top = " "; var orderby = " order by F_CreateTime";
  519. //20190715调整导出字段 zhengbingbing
  520. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  521. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  522. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  523. " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  524. " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  525. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  526. " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  527. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  528. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  529. if (msg == "")
  530. {
  531. return Success("导出成功");
  532. }
  533. else
  534. {
  535. return Error("导出失败");
  536. }
  537. }
  538. else
  539. {
  540. return Error("暂无导出权限");
  541. }
  542. }
  543. string cols = "";
  544. cols = "F_Result,F_CusName,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime," +
  545. "F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName," +
  546. "dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as" +
  547. " DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,(SELECT TOP 1 F_IsNext FROM T_Bus_AssignedInfo" +
  548. " WITH(NOLOCK) WHERE F_WorkOrderId=a .F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure != 3 ORDER BY F_Id DESC) " +
  549. "as PDState,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification,F_IsRelease,F_AssignUser";
  550. #endregion
  551. int recordCount = 0;
  552. dt = BLL.PagerBLL.GetListPager(
  553. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere + value1,
  554. "F_Id",
  555. cols,
  556. sql,
  557. "ORDER BY F_CreateTime DESC",
  558. pagesize,
  559. pageindex,
  560. true,
  561. out recordCount);
  562. #region 声音文件和交办超时
  563. dt.Columns.Add("OverState", typeof(string));//超时状态
  564. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  565. dt.Columns.Add("GapTime", typeof(string));//时间差
  566. // dt.Columns.Add("PDState", typeof(string));//派单状态
  567. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  568. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  569. dt.Columns.Add("Dissatisfied", typeof(object));//不满意
  570. dt.Columns.Add("Supervise", typeof(object));
  571. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  572. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  573. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  574. foreach (DataRow dr in dt.Rows)
  575. {
  576. string iszbdw = "0";
  577. string ispd = "";
  578. int state = Int32.Parse(dr["F_WorkState"].ToString());
  579. if (state > 1)
  580. {
  581. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  582. var lt = dr["LimitTime"].ToString();//限制时间
  583. #region 超时时限
  584. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  585. {
  586. if (!string.IsNullOrWhiteSpace(lt))
  587. {
  588. var ltime = DateTime.Parse(lt);
  589. if (ltime > DateTime.Now)
  590. {
  591. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  592. //var SYSJ = DbHelperSQL.GetSingle(SY);
  593. //if (SYSJ != null && SYSJ.ToString() != "")
  594. //{
  595. //try
  596. //{
  597. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  598. //}
  599. //catch
  600. //{
  601. //}
  602. //}
  603. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  604. //ltime = ltime.AddDays(-days);
  605. }
  606. else
  607. {
  608. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  609. //var SYSJ = DbHelperSQL.GetSingle(SY);
  610. //if (SYSJ != null && SYSJ.ToString() != "")
  611. //{
  612. // try
  613. // {
  614. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  615. // }
  616. // catch
  617. // {
  618. // }
  619. //}
  620. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  621. ltime = ltime.AddDays(days);
  622. }
  623. TimeSpan ts = ltime.Subtract(DateTime.Now);
  624. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  625. if (tss < 0) { tss = -tss; }
  626. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  627. if (ltime > DateTime.Now)
  628. {
  629. if (configcs != null)
  630. {
  631. int cs = Int32.Parse(configcs.F_ParamValue);
  632. if (ts.TotalHours > cs)
  633. {
  634. dr["OverState"] = 1;
  635. }
  636. else
  637. {
  638. dr["OverState"] = 2;
  639. }
  640. }
  641. dr["GapTime"] = "剩余" + gshsj;
  642. }
  643. else
  644. {
  645. dr["OverState"] = 3;
  646. dr["GapTime"] = "超时" + gshsj;
  647. }
  648. }
  649. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  650. }
  651. if (state == (int)EnumWorkState.finish &&
  652. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  653. {
  654. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  655. var dttime = DateTime.Now;
  656. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  657. else
  658. {
  659. var DealTime = dr["F_CloseTime"].ToString();
  660. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  661. }
  662. if (!string.IsNullOrWhiteSpace(lt))
  663. {
  664. var ltime = DateTime.Parse(lt);
  665. if (ltime < dttime)
  666. {
  667. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  668. ltime = ltime.AddDays(days);
  669. TimeSpan ts = dttime.Subtract(ltime);
  670. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  671. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  672. dr["OverState"] = 3;
  673. dr["GapTime"] = "超时" + gshsj;
  674. }
  675. }
  676. }
  677. #endregion
  678. // }
  679. }
  680. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  681. {
  682. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  683. }
  684. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  685. {
  686. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  687. }
  688. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  689. if (dbdata > 0 && dbtype == 5)
  690. {
  691. string dbsql = " select top 1 strSsf_Cst_Ass_CntDsc,* from PublicComment WITH(NOLOCK) where WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' order by CreateTime desc";
  692. var db = DbHelperSQL.Query(dbsql).Tables[0];
  693. if (db.Rows.Count > 0)
  694. {
  695. dr["Dissatisfied"] = db.Rows[0]["strSsf_Cst_Ass_CntDsc"].ToString();
  696. }
  697. }
  698. #region 判断是否存在待督办
  699. var reminds = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(dr["F_WorkOrderId"].ToString());
  700. if (reminds != null)
  701. {
  702. dr["Supervise"] = 1;
  703. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  704. if (reminds.F_State == 0 && butt != null)
  705. buttons.Remove(butt);
  706. }
  707. else
  708. {
  709. dr["Supervise"] = 0;
  710. }
  711. #endregion
  712. //if (state == 9)
  713. //{
  714. // if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "ZXHWY" || User.F_RoleCode.ToUpper() == "MTDD")
  715. // {
  716. // if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  717. // {
  718. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  719. // TimeSpan ts = DateTime.Now - closedttime;
  720. // if (ts.TotalDays < 20)
  721. // {
  722. // buttons.Add(ButtonGroup.subreload());
  723. // }
  724. // }
  725. // }
  726. //}
  727. // else
  728. if (strstate == "6")
  729. {
  730. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  731. {
  732. if (isproresult == 2 || isproresult == 3)
  733. buttons.Add(ButtonGroup.forceend());
  734. }
  735. }
  736. else if (state == 0 && dr["F_IsReturn"].ToString() == "1")
  737. {
  738. if (User.F_RoleCode.ToUpper() == "SPZ" || User.F_RoleCode == "SPZJZ")
  739. {
  740. buttons.Add(ButtonGroup.submit());
  741. var butt = buttons.Find(c => c.key == ButtonGroup.delete().key);
  742. if (butt == null)
  743. {
  744. buttons.Add(ButtonGroup.delete());
  745. }
  746. }
  747. }
  748. else
  749. {
  750. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  751. {
  752. buttons.Clear();
  753. // buttons.Add(ButtonGroup.submit());
  754. buttons.Add(ButtonGroup.query());
  755. }
  756. }
  757. if (jianhang == 4)
  758. {
  759. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY"
  760. || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY"
  761. || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZJZ"
  762. || User.F_RoleCode == "SPZ")
  763. {
  764. buttons.Add(ButtonGroup.ejdelay());
  765. }
  766. }
  767. if (isproresult == 3 && dr["F_IsProResult"].ToString() == "3" && strstate == "6")
  768. {
  769. buttons.Add(ButtonGroup.PassResult());
  770. buttons.Add(ButtonGroup.FailResult());
  771. var butt1 = buttons.Find(c => c.key == ButtonGroup.visits().key);
  772. if (butt1 != null)
  773. buttons.Remove(butt1);
  774. var butt2 = buttons.Find(c => c.key == ButtonGroup.visit().key);
  775. if (butt2 != null)
  776. buttons.Remove(butt2);
  777. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  778. if (butt == null)
  779. buttons.Add(ButtonGroup.turnsee());
  780. }
  781. dr["Buttons"] = buttons;
  782. }
  783. #endregion
  784. var obj = new
  785. {
  786. state = "success",
  787. message = "成功",
  788. rows = dt,
  789. total = recordCount
  790. };
  791. return Content(obj.ToJson());
  792. }
  793. /// <summary>
  794. /// 部门综合查询
  795. /// </summary>
  796. /// <param name="isdc"></param>
  797. /// <returns></returns>
  798. public ActionResult GetcComprehensiveList(int isdc = 0)
  799. {
  800. DataTable dt = new DataTable();
  801. string sql = " and F_IsDelete=0 ";
  802. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  803. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  804. int islike = RequestString.GetInt("islike", 1);
  805. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  806. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  807. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  808. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  809. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  810. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  811. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  812. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  813. string ddstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstarttime"));
  814. string ddstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstrendtime"));
  815. string supervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("supervisor"));//督办人员
  816. int isproresult = RequestString.GetInt("isproresult", 0);
  817. int source = RequestString.GetInt("source", 0);
  818. int keyid = RequestString.GetInt("keyid", 0);
  819. int type = RequestString.GetInt("type", 0);
  820. int bigtype = RequestString.GetInt("bigtype", 0);
  821. int smalltype = RequestString.GetInt("smalltype", 0);
  822. int sourcearea = RequestString.GetInt("sourcearea", 0);
  823. int deptid = RequestString.GetInt("deptid", 0);
  824. string myd = HttpUtility.UrlDecode(RequestString.GetQueryString("myd"));
  825. int zdpy = RequestString.GetInt("zdpy", 0);
  826. int smpy = RequestString.GetInt("smpy", 0);
  827. int dealtype = RequestString.GetInt("dealtype", -1);
  828. int issend = RequestString.GetInt("issend", -1);
  829. int deptlevel = RequestString.GetInt("deptlevel", 0);
  830. int dbgd = RequestString.GetInt("dbgd", 0);
  831. int dbdata = RequestString.GetInt("dbdata", 0);
  832. int workordertype = RequestString.GetInt("workordertype", -1);
  833. int IsRelease = RequestString.GetInt("IsRelease", 0);
  834. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  835. int issatisfie = RequestString.GetInt("issatisfie", -1);
  836. string assignUser = HttpUtility.UrlDecode(RequestString.GetQueryString("assignUser"));
  837. string strpageindex = RequestString.GetQueryString("page");
  838. int pageindex = 1;
  839. string strpagesize = RequestString.GetQueryString("pagesize");
  840. int pagesize = 10;
  841. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  842. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  843. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  844. int isopen = RequestString.GetInt("isopen", -1);//是否公开
  845. if (isopen > -1)
  846. sql += " and isnull(F_IsOpen,0) =" + isopen;
  847. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("strworkorderid"));
  848. if (strworkorderid.Trim() != "" && strworkorderid != "undefined")
  849. {
  850. sql += " and F_WorkOrderId in( select F_WorkOrderId from T_Sys_Affairs where CASE_SERIAL like'%" + strworkorderid + "%') ";
  851. }
  852. if (IsRelease > 0)
  853. {
  854. if (IsRelease == 1)
  855. sql += " and F_IsRelease = '2'";
  856. else
  857. sql += " and F_IsRelease = '3'";
  858. }
  859. if (assignUser.Trim() != "" && assignUser != "undefined")
  860. {
  861. sql += "and F_AssignUser='" + assignUser.Trim() + "'";
  862. }
  863. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  864. if (assuser.Trim() != "" && assuser != "undefined")
  865. {
  866. sql += " and F_AssignUser = '" + assuser + "' ";
  867. }
  868. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  869. {
  870. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  871. {
  872. sql += " and F_DealTime between '" + dealstarttime +
  873. "' AND '" + dealstrendtime + "'";
  874. }
  875. else
  876. {
  877. sql += " and F_DealTime>='" + dealstarttime + "' ";
  878. }
  879. }
  880. else
  881. {
  882. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  883. {
  884. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  885. }
  886. }
  887. if (issatisfie != -1)
  888. {
  889. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_IsDelete = 0 and F_IsSatisfie = " + issatisfie + " and F_Id in (select MAX(F_Id) from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) )";
  890. }
  891. if (workordertype > -1)
  892. {
  893. if (workordertype == 0)
  894. {
  895. sql += " and F_CallRecordId is not null ";
  896. }
  897. else
  898. {
  899. sql += " and F_CallRecordId is null ";
  900. }
  901. }
  902. int isbusiness = RequestString.GetInt("isbusiness", -1);
  903. #region sql 语句相关处理
  904. if (strstate.Trim() != "" && strstate != "undefined")
  905. {
  906. if (isproresult > 0)
  907. {
  908. sql += " and F_WorkState in(6,7) ";
  909. }
  910. else
  911. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  912. }
  913. if (strworkid.Trim() != "" && strworkid != "undefined")
  914. {
  915. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  916. }
  917. if (strname.Trim() != "" && strname != "undefined")
  918. {
  919. sql += " and F_CusName = '" + strname + "' ";
  920. }
  921. if (splituser.Trim() != "" && splituser != "undefined")
  922. {
  923. sql += " and F_SplitUser = '" + splituser + "' ";
  924. }
  925. if (ddstarttime.Trim() != "" && ddstarttime != "undefined")
  926. {
  927. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  928. {
  929. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  930. "F_CreateTime between '" + ddstarttime +
  931. "' AND '" + ddstrendtime + "')";
  932. }
  933. else
  934. {
  935. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  936. "F_CreateTime >='" + ddstarttime + "')";
  937. }
  938. }
  939. else
  940. {
  941. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  942. {
  943. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  944. "F_CreateTime <='" + ddstrendtime + "')";
  945. }
  946. }
  947. if (islike > 0)
  948. {
  949. if (strtel.Trim() != "" && strtel != "undefined")
  950. {
  951. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  952. }
  953. }
  954. else
  955. {
  956. if (strtel.Trim() != "" && strtel != "undefined")
  957. {
  958. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  959. }
  960. }
  961. string value1 = "";
  962. if (dbgd > 0)
  963. {
  964. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  965. }
  966. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  967. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  968. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  969. {
  970. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  971. }
  972. if (Result.Trim() != "" && Result != "undefined")
  973. {
  974. sql += " and F_Result like '%" + Result + "%' ";
  975. }
  976. if (ComContent.Trim() != "" && ComContent != "undefined")
  977. {
  978. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  979. "or F_Content like '%" + ComContent + "%' )";
  980. }
  981. if (strkey.Trim() != "" && strkey != "undefined")
  982. {
  983. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  984. " or F_Result like '%" + strkey + "%' ) ";
  985. }
  986. if (strusercode.Trim() != "" && strusercode != "undefined")
  987. {//坐席
  988. var usercode = strusercode.Trim().Split(',');
  989. var newusercode = "";
  990. foreach (var item in usercode)
  991. {
  992. if (!string.IsNullOrWhiteSpace(item.Trim()))
  993. newusercode += "'" + item + "',";
  994. }
  995. newusercode = newusercode.Trim(',');
  996. if (usercode.Length > 1)
  997. {
  998. if (newusercode.Trim() != "" && newusercode != "undefined")
  999. {
  1000. sql += " and F_CreateUser in (" + newusercode + ") ";
  1001. }
  1002. }
  1003. else
  1004. {
  1005. if (newusercode.Trim() != "" && newusercode != "undefined")
  1006. {
  1007. sql += " and F_CreateUser = " + newusercode + " ";
  1008. }
  1009. }
  1010. }
  1011. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1012. {//调度员
  1013. var ddusercode = strddusercode.Trim().Split(',');
  1014. var newusercode = "";
  1015. foreach (var item in ddusercode)
  1016. {
  1017. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1018. newusercode += "'" + item + "',";
  1019. }
  1020. newusercode = newusercode.Trim(',');
  1021. if (ddusercode.Length > 1)
  1022. {
  1023. if (newusercode.Trim() != "" && newusercode != "undefined")
  1024. {
  1025. sql += " and F_AssignUser in (" + newusercode + ") ";
  1026. }
  1027. }
  1028. else
  1029. {
  1030. if (newusercode.Trim() != "" && newusercode != "undefined")
  1031. {
  1032. sql += " and F_AssignUser = " + newusercode + " ";
  1033. }
  1034. }
  1035. }
  1036. if (supervisor.Trim() != "" && supervisor != "undefined")
  1037. {//督办人员
  1038. var supervisorusercode = supervisor.Trim().Split(',');
  1039. var newusercode = "";
  1040. foreach (var item in supervisorusercode)
  1041. {
  1042. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1043. newusercode += "'" + item + "',";
  1044. }
  1045. newusercode = newusercode.Trim(',');
  1046. if (supervisorusercode.Length > 1)
  1047. {
  1048. if (newusercode.Trim() != "" && newusercode != "undefined")
  1049. {
  1050. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  1051. "where F_IsDelete = 0 and F_Type = 1 and Supervisor in (" + newusercode + ")) ";
  1052. }
  1053. }
  1054. else
  1055. {
  1056. if (newusercode.Trim() != "" && newusercode != "undefined")
  1057. {
  1058. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  1059. "where F_IsDelete = 0 and F_Type = 1 and Supervisor = " + newusercode + ") ";
  1060. }
  1061. }
  1062. }
  1063. if (source != 0)
  1064. {
  1065. sql += " and F_InfoSource = '" + source + "' ";
  1066. }
  1067. string sqlwhere = ""; string value = "";
  1068. if (keyid != 0)
  1069. {
  1070. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1071. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1072. }
  1073. else if (User.F_RoleCode == "DFZF")
  1074. {
  1075. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  1076. }
  1077. if (type != 0)
  1078. {
  1079. sql += " and F_InfoType = '" + type + "' ";
  1080. }
  1081. if (bigtype != 0)
  1082. {
  1083. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1084. }
  1085. if (smalltype != 0)
  1086. {
  1087. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1088. }
  1089. if (isproresult != 0)
  1090. {
  1091. sql += "and (F_IsSms =0 or F_IsSms is null )";
  1092. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  1093. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  1094. {
  1095. if (isproresult == 2)
  1096. {
  1097. isproresult = 3;
  1098. sql += " and F_IsProResult = '" + 3 + "' ";
  1099. }
  1100. else
  1101. {
  1102. isproresult = 2;
  1103. sql += " and F_IsProResult = '" + 2 + "' ";
  1104. }
  1105. }
  1106. else
  1107. sql += " and F_IsProResult = '" + 2 + "' ";
  1108. }
  1109. if (sourcearea != 0)
  1110. {
  1111. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1112. }
  1113. if (deptid != 0)
  1114. {
  1115. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  1116. }
  1117. if (User.F_RoleCode == "WLDW")
  1118. {
  1119. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as a " +
  1120. "WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " " +
  1121. "and F_IsSure in (0,1,2))";
  1122. }
  1123. else if (User.F_RoleCode == "EJWLDW")
  1124. {
  1125. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  1126. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1,2))";
  1127. }
  1128. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1129. {
  1130. if (strendtime.Trim() != "" && strendtime != "undefined")
  1131. {
  1132. sql += " and F_CreateTime between '" + strstarttime +
  1133. "' AND '" + strendtime + "'";
  1134. }
  1135. else
  1136. {
  1137. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1138. }
  1139. }
  1140. else
  1141. {
  1142. if (strendtime.Trim() != "" && strendtime != "undefined")
  1143. {
  1144. sql += " and F_CreateTime<='" + strendtime + "' ";
  1145. }
  1146. }
  1147. if (dealtype != -1)
  1148. {
  1149. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1150. }
  1151. if (issend != -1)
  1152. {
  1153. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  1154. }
  1155. #endregion
  1156. if (strpageindex.Trim() != "")
  1157. {
  1158. pageindex = Convert.ToInt32(strpageindex);
  1159. }
  1160. if (strpagesize.Trim() != "")
  1161. {
  1162. pagesize = Convert.ToInt32(strpagesize);
  1163. }
  1164. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1165. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1166. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1167. #region 导出
  1168. if (isdc > 0)
  1169. {
  1170. var top = " "; var orderby = " order by F_CreateTime";
  1171. //20190715调整导出字段 zhengbingbing
  1172. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1173. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  1174. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  1175. " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  1176. " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  1177. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  1178. " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  1179. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  1180. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1181. if (msg == "")
  1182. {
  1183. return Success("导出成功");
  1184. }
  1185. else
  1186. {
  1187. return Error("导出失败");
  1188. }
  1189. }
  1190. string cols = "";
  1191. cols = "F_Result,F_CusName,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_MainDeptId3,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,(SELECT TOP 1 F_IsNext FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId=a .F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure != 3 ORDER BY F_Id DESC) as PDState,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification,F_IsRelease,F_AssignUser";
  1192. #endregion
  1193. int recordCount = 0;
  1194. dt = BLL.PagerBLL.GetListPager(
  1195. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere + value1,
  1196. "F_Id",
  1197. cols,
  1198. sql,
  1199. "ORDER BY F_CreateTime DESC",
  1200. pagesize,
  1201. pageindex,
  1202. true,
  1203. out recordCount);
  1204. #region 声音文件和交办超时
  1205. dt.Columns.Add("OverState", typeof(string));//超时状态
  1206. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1207. dt.Columns.Add("GapTime", typeof(string));//时间差
  1208. // dt.Columns.Add("PDState", typeof(string));//派单状态
  1209. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1210. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1211. dt.Columns.Add("Supervise", typeof(object));
  1212. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1213. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1214. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1215. foreach (DataRow dr in dt.Rows)
  1216. {
  1217. string iszbdw = "0";
  1218. string ispd = "";
  1219. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1220. if (state > 1)
  1221. {
  1222. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  1223. var lt = dr["LimitTime"].ToString();//限制时间
  1224. #region 超时时限
  1225. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1226. {
  1227. if (!string.IsNullOrWhiteSpace(lt))
  1228. {
  1229. var ltime = DateTime.Parse(lt);
  1230. if (ltime > DateTime.Now)
  1231. {
  1232. }
  1233. else
  1234. {
  1235. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  1236. ltime = ltime.AddDays(days);
  1237. }
  1238. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1239. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1240. if (tss < 0) { tss = -tss; }
  1241. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1242. if (ltime > DateTime.Now)
  1243. {
  1244. if (configcs != null)
  1245. {
  1246. int cs = Int32.Parse(configcs.F_ParamValue);
  1247. if (ts.TotalHours > cs)
  1248. {
  1249. dr["OverState"] = 1;
  1250. }
  1251. else
  1252. {
  1253. dr["OverState"] = 2;
  1254. }
  1255. }
  1256. dr["GapTime"] = "剩余" + gshsj;
  1257. }
  1258. else
  1259. {
  1260. dr["OverState"] = 3;
  1261. dr["GapTime"] = "超时" + gshsj;
  1262. }
  1263. }
  1264. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  1265. }
  1266. if (state == (int)EnumWorkState.finish &&
  1267. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  1268. {
  1269. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1270. var dttime = DateTime.Now;
  1271. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1272. else
  1273. {
  1274. var DealTime = dr["F_CloseTime"].ToString();
  1275. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  1276. }
  1277. if (!string.IsNullOrWhiteSpace(lt))
  1278. {
  1279. var ltime = DateTime.Parse(lt);
  1280. if (ltime < dttime)
  1281. {
  1282. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  1283. ltime = ltime.AddDays(days);
  1284. TimeSpan ts = dttime.Subtract(ltime);
  1285. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1286. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1287. dr["OverState"] = 3;
  1288. dr["GapTime"] = "超时" + gshsj;
  1289. }
  1290. }
  1291. }
  1292. #endregion
  1293. // }
  1294. }
  1295. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1296. {
  1297. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  1298. }
  1299. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1300. {
  1301. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1302. }
  1303. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  1304. if (User.F_RoleCode == "WLDW" && dr["F_MainDeptId"].ToString() != User.F_DeptId.ToString())
  1305. {
  1306. buttons.Clear();
  1307. }
  1308. else if (User.F_RoleCode == "EJWLDW" && !dr["F_MainDeptId3"].ToString().Contains(User.F_DeptId.ToString()))
  1309. {
  1310. buttons.Clear();
  1311. }
  1312. #region 判断是否存在待督办
  1313. //var reminds = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(dr["F_WorkOrderId"].ToString());
  1314. //if (reminds != null)
  1315. //{
  1316. // dr["Supervise"] = 1;
  1317. // var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  1318. // if (reminds.F_State == 0 && butt != null)
  1319. // buttons.Remove(butt);
  1320. //}
  1321. //else
  1322. //{
  1323. // dr["Supervise"] = 0;
  1324. //}
  1325. #endregion
  1326. //if (strstate == "6")
  1327. //{
  1328. // if (User.F_RoleCode.ToUpper() == "ZXHWY")
  1329. // {
  1330. // if (isproresult == 2 || isproresult == 3)
  1331. // buttons.Add(ButtonGroup.forceend());
  1332. // }
  1333. //}
  1334. //else if (state == 0 && dr["F_IsReturn"].ToString() == "1")
  1335. //{
  1336. // if (User.F_RoleCode.ToUpper() == "SPZ" || User.F_RoleCode == "SPZJZ")
  1337. // {
  1338. // buttons.Add(ButtonGroup.submit());
  1339. // var butt = buttons.Find(c => c.key == ButtonGroup.delete().key);
  1340. // if (butt == null)
  1341. // {
  1342. // buttons.Add(ButtonGroup.delete());
  1343. // }
  1344. // }
  1345. //}
  1346. //else
  1347. //{
  1348. // if (User.F_RoleCode.ToUpper() == "ZXHWY")
  1349. // {
  1350. // buttons.Clear();
  1351. // // buttons.Add(ButtonGroup.submit());
  1352. // buttons.Add(ButtonGroup.query());
  1353. // }
  1354. //}
  1355. dr["Buttons"] = buttons;
  1356. }
  1357. #endregion
  1358. var obj = new
  1359. {
  1360. state = "success",
  1361. message = "成功",
  1362. rows = dt,
  1363. total = recordCount
  1364. };
  1365. return Content(obj.ToJson());
  1366. }
  1367. /// <summary>
  1368. /// 获取工单列表
  1369. /// </summary>
  1370. /// <returns></returns>
  1371. public ActionResult GetModelList(int isdc = 0)
  1372. {
  1373. DataTable dt = new DataTable();
  1374. string sql = " and F_IsDelete=0 ";
  1375. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1376. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1377. int source = RequestString.GetInt("source", 0);
  1378. int deptid = RequestString.GetInt("deptid", 0);
  1379. int dbdata = RequestString.GetInt("dbdata", 0);
  1380. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  1381. string strpageindex = RequestString.GetQueryString("page");
  1382. int pageindex = 1;
  1383. string strpagesize = RequestString.GetQueryString("pagesize");
  1384. int pagesize = 10;
  1385. #region sql 语句相关处理
  1386. int dbtype = RequestString.GetInt("dbtype", 0);
  1387. if (dbdata > 0)
  1388. {
  1389. if (deptid == 0)
  1390. {
  1391. return Error("请选择部门");
  1392. }
  1393. string sdate = ""; string etime = "";
  1394. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1395. {
  1396. sdate = DateTime.Now.AddMonths(-1).
  1397. ToString("yyyy-MM") + "-21 00:00:01";
  1398. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1399. }
  1400. else
  1401. {
  1402. sdate = strstarttime;
  1403. if (strendtime.Trim() == "" || strendtime == "undefined")
  1404. {
  1405. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1406. }
  1407. else
  1408. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1409. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1410. }
  1411. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  1412. if (dbtype == 1)
  1413. {
  1414. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  1415. }
  1416. else if (dbtype == 2)
  1417. {
  1418. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1419. }
  1420. else if (dbtype == 3)
  1421. {
  1422. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback WITH(NOLOCK) where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1423. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1424. }
  1425. }
  1426. else if (dbdata2 > 0)
  1427. {
  1428. if (deptid == 0)
  1429. {
  1430. return Error("请选择部门");
  1431. }
  1432. int deptid2 = 0;
  1433. if (User.F_RoleCode == "WLDW")
  1434. deptid2 = User.F_DeptId;
  1435. string sdate = ""; string etime = "";
  1436. if (string.IsNullOrEmpty(strstarttime))
  1437. {
  1438. sdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-21 00:00:00";
  1439. }
  1440. else
  1441. {
  1442. sdate = DateTime.Parse(strstarttime).ToString("yyyy-MM-dd") + " 00:00:00";
  1443. }
  1444. if (string.IsNullOrEmpty(strendtime))
  1445. {
  1446. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1447. }
  1448. else
  1449. {
  1450. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1451. }
  1452. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1453. if (dbtype != 6)
  1454. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  1455. "and F_MainDeptID3 like'%" + deptid + "%'";
  1456. else
  1457. sql += "and F_WorkState not in (0, 1, 11)";
  1458. if (dbtype == 1)
  1459. {
  1460. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  1461. }
  1462. else if (dbtype == 2)
  1463. {
  1464. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1465. }
  1466. else if (dbtype == 3)
  1467. {
  1468. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1469. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1470. }
  1471. else if (dbtype == 6)
  1472. {
  1473. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  1474. "and F_MainDeptID3 like'%" + deptid + "%'";
  1475. }
  1476. }
  1477. if (source != 0)
  1478. {
  1479. sql += " and F_InfoSource = '" + source + "' ";
  1480. }
  1481. #endregion
  1482. if (strpageindex.Trim() != "")
  1483. {
  1484. pageindex = Convert.ToInt32(strpageindex);
  1485. }
  1486. if (strpagesize.Trim() != "")
  1487. {
  1488. pagesize = Convert.ToInt32(strpagesize);
  1489. }
  1490. string cols = "";
  1491. cols = "F_DealTime,F_CusName,F_CloseTime,F_Result,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification," +
  1492. "(select top 1 strSsf_Cst_Ass_CntDsc from PublicComment where WorkOrderId =a.F_WorkOrderId order by CreateTime desc) as Oncedissatisfied,F_IsRelease";
  1493. #region 导出
  1494. if (isdc > 0)
  1495. {
  1496. var top = " "; var orderby = " order by F_CreateTime";
  1497. if (sql == " and F_IsDelete=0 ")
  1498. {
  1499. top = " top 1000 "; orderby += " desc ";
  1500. }
  1501. //20190715调整导出字段 zhengbingbing
  1502. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1503. var dtdc = DbHelperSQL.Query(" select ROW_NUMBER() OVER(ORDER BY F_CreateTime desc) 序号,F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 反映类别, "
  1504. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1505. + " F_Result 办理结果, "
  1506. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  1507. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  1508. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1509. if (msg == "")
  1510. {
  1511. return Success("导出成功");
  1512. }
  1513. else
  1514. {
  1515. return Error("导出失败");
  1516. }
  1517. }
  1518. #endregion
  1519. int recordCount = 0;
  1520. dt = BLL.PagerBLL.GetListPager(
  1521. "T_Bus_WorkOrder a WITH(NOLOCK)",
  1522. "F_Id",
  1523. cols,
  1524. sql,
  1525. "ORDER BY F_CreateTime DESC",
  1526. pagesize,
  1527. pageindex,
  1528. true,
  1529. out recordCount);
  1530. #region 声音文件和交办超时
  1531. #endregion
  1532. dt.Columns.Add("GapTime", typeof(object));//
  1533. foreach (DataRow dr in dt.Rows)
  1534. {
  1535. if (dbtype == 1)
  1536. {
  1537. var lt = dr["LimitTime"].ToString();//限制时间
  1538. int state = Int32.Parse(dr["F_WorkState"].ToString()); //
  1539. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1540. {
  1541. if (!string.IsNullOrWhiteSpace(lt))
  1542. {
  1543. var ltime = DateTime.Parse(lt);
  1544. if (ltime > DateTime.Now)
  1545. {
  1546. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  1547. //var SYSJ = DbHelperSQL.GetSingle(SY);
  1548. //if (SYSJ != null && SYSJ.ToString() != "")
  1549. //{
  1550. // try
  1551. // {
  1552. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1553. // }
  1554. // catch
  1555. // {
  1556. // }
  1557. //}
  1558. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  1559. //ltime = ltime.AddDays(-days);
  1560. }
  1561. else
  1562. {
  1563. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  1564. //var SYSJ = DbHelperSQL.GetSingle(SY);
  1565. //if (SYSJ != null && SYSJ.ToString() != "")
  1566. //{
  1567. // try
  1568. // {
  1569. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  1570. // }
  1571. // catch
  1572. // {
  1573. // }
  1574. //}
  1575. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  1576. ltime = ltime.AddDays(days);
  1577. }
  1578. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1579. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1580. if (tss < 0) { tss = -tss; }
  1581. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1582. if (ltime > DateTime.Now)
  1583. {
  1584. dr["GapTime"] = "剩余" + gshsj;
  1585. }
  1586. else
  1587. {
  1588. dr["GapTime"] = "超时" + gshsj;
  1589. }
  1590. }
  1591. }
  1592. else
  1593. {
  1594. if (!string.IsNullOrWhiteSpace(lt))
  1595. {
  1596. var det = dr["F_DealTime"].ToString();
  1597. var ct = dr["F_CloseTime"].ToString();
  1598. var dttime = DateTime.Now;
  1599. if (!string.IsNullOrWhiteSpace(det)) { dttime = DateTime.Parse(det); }
  1600. else if (!string.IsNullOrWhiteSpace(ct)) { dttime = DateTime.Parse(ct); }
  1601. var ltime = DateTime.Parse(lt);
  1602. if (ltime < dttime)
  1603. {
  1604. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  1605. ltime = ltime.AddDays(days);
  1606. TimeSpan ts = dttime.Subtract(ltime);
  1607. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1608. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1609. dr["OverState"] = 3;
  1610. dr["GapTime"] = "超时" + gshsj;
  1611. }
  1612. }
  1613. }
  1614. }
  1615. }
  1616. var obj = new
  1617. {
  1618. state = "success",
  1619. message = "成功",
  1620. rows = dt,
  1621. total = recordCount
  1622. };
  1623. return Content(obj.ToJson());
  1624. }
  1625. /// <summary>
  1626. /// 获取回收站工单列表
  1627. /// </summary>
  1628. /// <returns></returns>
  1629. public ActionResult GetDeleteList(int isdc = 0)
  1630. {
  1631. DataTable dt = new DataTable();
  1632. string sql = " and F_IsDelete=1 ";
  1633. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1634. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1635. int islike = RequestString.GetInt("islike", 1);
  1636. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1637. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1638. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  1639. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1640. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1641. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1642. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1643. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1644. int isproresult = RequestString.GetInt("isproresult", 0);
  1645. int source = RequestString.GetInt("source", 0);
  1646. int keyid = RequestString.GetInt("keyid", 0);
  1647. int type = RequestString.GetInt("type", 0);
  1648. int bigtype = RequestString.GetInt("bigtype", 0);
  1649. int smalltype = RequestString.GetInt("smalltype", 0);
  1650. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1651. int deptid = RequestString.GetInt("deptid", 0);
  1652. int dealtype = RequestString.GetInt("dealtype", -1);
  1653. int issend = RequestString.GetInt("issend", -1);
  1654. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1655. int dbdata = RequestString.GetInt("dbdata", 0);
  1656. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  1657. string strpageindex = RequestString.GetQueryString("page");
  1658. int pageindex = 1;
  1659. string strpagesize = RequestString.GetQueryString("pagesize");
  1660. int pagesize = 10;
  1661. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1662. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1663. int isopen = RequestString.GetInt("isopen", -1);
  1664. if (isopen > -1)
  1665. sql += " and isnull(F_IsOpen,0) =" + isopen;
  1666. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1667. {
  1668. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1669. {
  1670. sql += " and F_DealTime between '" + dealstarttime +
  1671. "' AND '" + dealstrendtime + "'";
  1672. }
  1673. else
  1674. {
  1675. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1676. }
  1677. }
  1678. else
  1679. {
  1680. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1681. {
  1682. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  1683. }
  1684. }
  1685. #region sql 语句相关处理
  1686. if (strstate.Trim() != "" && strstate != "undefined")
  1687. {
  1688. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1689. }
  1690. if (strworkid.Trim() != "" && strworkid != "undefined")
  1691. {
  1692. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1693. }
  1694. if (strname.Trim() != "" && strname != "undefined")
  1695. {
  1696. sql += " and F_CusName = '" + strname + "' ";
  1697. }
  1698. if (splituser.Trim() != "" && splituser != "undefined")
  1699. {
  1700. sql += " and F_SplitUser = '" + splituser + "' ";
  1701. }
  1702. if (islike > 0)
  1703. {
  1704. if (strtel.Trim() != "" && strtel != "undefined")
  1705. {
  1706. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1707. }
  1708. }
  1709. else
  1710. {
  1711. if (strtel.Trim() != "" && strtel != "undefined")
  1712. {
  1713. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1714. }
  1715. }
  1716. int dbtype = RequestString.GetInt("dbtype", 0);
  1717. if (dbdata > 0)
  1718. {
  1719. if (deptid == 0)
  1720. {
  1721. return Error("请选择部门");
  1722. }
  1723. string sdate = ""; string etime = "";
  1724. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1725. {
  1726. sdate = DateTime.Now.AddMonths(-1).
  1727. ToString("yyyy-MM") + "-21 00:00:01";
  1728. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1729. }
  1730. else
  1731. {
  1732. sdate = strstarttime;
  1733. if (strendtime.Trim() == "" || strendtime == "undefined")
  1734. {
  1735. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1736. }
  1737. else
  1738. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1739. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1740. }
  1741. if (dbtype != 6)
  1742. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  1743. else
  1744. sql += "and F_WorkState not in (0, 1, 11)";
  1745. if (dbtype == 1)
  1746. {
  1747. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  1748. }
  1749. else if (dbtype == 2)
  1750. {
  1751. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1752. }
  1753. else if (dbtype == 3)
  1754. {
  1755. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1756. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1757. }
  1758. else if (dbtype == 6)
  1759. {
  1760. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid + "') group by F_WorkOrderId having COUNT(1) = 1 )";
  1761. }
  1762. }
  1763. else if (dbdata2 > 0)
  1764. {
  1765. if (deptid == 0)
  1766. {
  1767. return Error("请选择部门");
  1768. }
  1769. int deptid2 = 0;
  1770. if (User.F_RoleCode == "WLDW")
  1771. deptid2 = User.F_DeptId;
  1772. string sdate = ""; string etime = "";
  1773. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1774. {
  1775. sdate = DateTime.Now.AddMonths(-1).
  1776. ToString("yyyy-MM") + "-21 00:00:01";
  1777. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1778. }
  1779. else
  1780. {
  1781. sdate = strstarttime;
  1782. if (strendtime.Trim() == "" || strendtime == "undefined")
  1783. {
  1784. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1785. }
  1786. else
  1787. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1788. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1789. }
  1790. if (dbtype != 6)
  1791. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  1792. "and F_MainDeptID3 like'%" + deptid + "%'";
  1793. else
  1794. sql += "and F_WorkState not in (0, 1, 11)";
  1795. if (dbtype == 1)
  1796. {
  1797. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6,7, 8) ) ) ";
  1798. }
  1799. else if (dbtype == 2)
  1800. {
  1801. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1802. }
  1803. else if (dbtype == 3)
  1804. {
  1805. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1806. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1807. }
  1808. else if (dbtype == 6)
  1809. {
  1810. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  1811. "and F_MainDeptID3 like'%" + deptid + "%'";
  1812. }
  1813. }
  1814. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1815. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1816. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1817. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1818. {
  1819. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1820. }
  1821. if (Result.Trim() != "" && Result != "undefined")
  1822. {
  1823. sql += " and F_Result like '%" + Result + "%' ";
  1824. }
  1825. if (ComContent.Trim() != "" && ComContent != "undefined")
  1826. {
  1827. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  1828. "or F_Content like '%" + ComContent + "%' )";
  1829. }
  1830. if (strkey.Trim() != "" && strkey != "undefined")
  1831. {
  1832. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1833. " or F_Result like '%" + strkey + "%' ) ";
  1834. }
  1835. if (strusercode.Trim() != "" && strusercode != "undefined")
  1836. {//坐席
  1837. var usercode = strusercode.Trim().Split(',');
  1838. var newusercode = "";
  1839. foreach (var item in usercode)
  1840. {
  1841. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1842. newusercode += "'" + item + "',";
  1843. }
  1844. newusercode = newusercode.Trim(',');
  1845. if (usercode.Length > 1)
  1846. {
  1847. if (newusercode.Trim() != "" && newusercode != "undefined")
  1848. {
  1849. sql += " and F_CreateUser in (" + newusercode + ") ";
  1850. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1851. }
  1852. }
  1853. else
  1854. {
  1855. if (newusercode.Trim() != "" && newusercode != "undefined")
  1856. {
  1857. sql += " and F_CreateUser = " + newusercode + " ";
  1858. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1859. }
  1860. }
  1861. }
  1862. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1863. {//调度员
  1864. var ddusercode = strddusercode.Trim().Split(',');
  1865. var newusercode = "";
  1866. foreach (var item in ddusercode)
  1867. {
  1868. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1869. newusercode += "'" + item + "',";
  1870. }
  1871. newusercode = newusercode.Trim(',');
  1872. if (ddusercode.Length > 1)
  1873. {
  1874. if (newusercode.Trim() != "" && newusercode != "undefined")
  1875. {
  1876. sql += " and F_AssignUser in (" + newusercode + ") ";
  1877. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1878. }
  1879. }
  1880. else
  1881. {
  1882. if (newusercode.Trim() != "" && newusercode != "undefined")
  1883. {
  1884. sql += " and F_AssignUser = " + newusercode + " ";
  1885. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1886. }
  1887. }
  1888. }
  1889. if (source != 0)
  1890. {
  1891. sql += " and F_InfoSource = '" + source + "' ";
  1892. }
  1893. string sqlwhere = ""; string value = "";
  1894. if (keyid != 0)
  1895. {
  1896. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1897. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1898. }
  1899. else if (User.F_RoleCode == "DFZF")
  1900. {
  1901. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  1902. }
  1903. if (type != 0)
  1904. {
  1905. sql += " and F_InfoType = '" + type + "' ";
  1906. }
  1907. if (bigtype != 0)
  1908. {
  1909. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1910. }
  1911. if (smalltype != 0)
  1912. {
  1913. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1914. }
  1915. if (isproresult != 0)
  1916. {
  1917. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  1918. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  1919. {
  1920. if (isproresult == 2)
  1921. {
  1922. isproresult = 3;
  1923. sql += " and F_IsProResult = '" + 3 + "' ";
  1924. }
  1925. else
  1926. {
  1927. isproresult = 2;
  1928. sql += " and F_IsProResult = '" + 2 + "' ";
  1929. }
  1930. }
  1931. else
  1932. sql += " and F_IsProResult = '" + 2 + "' ";
  1933. }
  1934. if (sourcearea != 0)
  1935. {
  1936. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1937. }
  1938. if (deptid != 0)
  1939. {
  1940. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  1941. }
  1942. else
  1943. {
  1944. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  1945. {
  1946. deptid = User.F_DeptId;
  1947. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3 like'%" + deptid + "%')";
  1948. }
  1949. }
  1950. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1951. {
  1952. if (strendtime.Trim() != "" && strendtime != "undefined")
  1953. {
  1954. sql += " and F_CreateTime between '" + strstarttime +
  1955. "' AND '" + strendtime + "'";
  1956. }
  1957. else
  1958. {
  1959. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1960. }
  1961. }
  1962. else
  1963. {
  1964. if (strendtime.Trim() != "" && strendtime != "undefined")
  1965. {
  1966. sql += " and F_CreateTime<='" + strendtime + "' ";
  1967. }
  1968. }
  1969. if (dealtype != -1)
  1970. {
  1971. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1972. }
  1973. if (issend != -1)
  1974. {
  1975. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  1976. }
  1977. #endregion
  1978. if (strpageindex.Trim() != "")
  1979. {
  1980. pageindex = Convert.ToInt32(strpageindex);
  1981. }
  1982. if (strpagesize.Trim() != "")
  1983. {
  1984. pagesize = Convert.ToInt32(strpagesize);
  1985. }
  1986. string cols = " a.F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_IsResult,a.F_CreateTime,dbo.GetUserName(a.F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) KeyName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_LimitTime as LimitTime,F_ComContent,F_CusPhone,F_AssignTime";
  1987. #region 导出
  1988. if (isdc > 0)
  1989. {
  1990. var top = " "; var orderby = " order by F_CreateTime";
  1991. if (sql == " and F_IsDelete=0 ")
  1992. {
  1993. top = " top 1000 "; orderby += " desc ";
  1994. }
  1995. //20190715调整导出字段 zhengbingbing
  1996. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1997. var dtdc = DbHelperSQL.Query(" select ROW_NUMBER() OVER(ORDER BY F_CreateTime desc) 序号,F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 反映类别, "
  1998. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1999. + " F_Result 办理结果, "
  2000. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  2001. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  2002. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2003. if (msg == "")
  2004. {
  2005. return Success("导出成功");
  2006. }
  2007. else
  2008. {
  2009. return Error("导出失败");
  2010. }
  2011. }
  2012. #endregion
  2013. int recordCount = 0;
  2014. dt = BLL.PagerBLL.GetListPager(
  2015. "T_Bus_WorkOrder a WITH(NOLOCK)",
  2016. "F_Id",
  2017. cols,
  2018. sql,
  2019. "ORDER BY F_CreateTime DESC",
  2020. pagesize,
  2021. pageindex,
  2022. true,
  2023. out recordCount);
  2024. #region 声音文件和交办超时
  2025. #endregion
  2026. var obj = new
  2027. {
  2028. state = "success",
  2029. message = "成功",
  2030. rows = dt,
  2031. total = recordCount
  2032. };
  2033. return Content(obj.ToJson());
  2034. }
  2035. /// <summary>
  2036. /// 获取坐席处理列表
  2037. /// </summary>
  2038. /// <returns></returns>
  2039. //[Authority]
  2040. public ActionResult GetZXDealList(int isdc = 0)
  2041. {
  2042. DataTable dt = new DataTable();
  2043. string sql = " and F_IsDelete=0";
  2044. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2045. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2046. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2047. int islike = RequestString.GetInt("islike", 1);
  2048. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2049. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2050. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2051. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2052. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2053. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2054. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2055. string visituser = HttpUtility.UrlDecode(RequestString.GetQueryString("visituser"));//回访人
  2056. string order = "ORDER BY F_CreateTime DESC";
  2057. int source = RequestString.GetInt("source", 0);
  2058. int keyid = RequestString.GetInt("keyid", 0);
  2059. int type = RequestString.GetInt("type", 0);
  2060. int bigtype = RequestString.GetInt("bigtype", 0);
  2061. int smalltype = RequestString.GetInt("smalltype", 0);
  2062. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2063. int tobereply = RequestString.GetInt("tobereply", 0);
  2064. int deptid = RequestString.GetInt("deptid", 0);
  2065. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2066. int issms = RequestString.GetInt("issms", -1);
  2067. int smspy = RequestString.GetInt("smspy", -1);//0未发送短信1
  2068. int db = RequestString.GetInt("db", 0);
  2069. int visit = RequestString.GetInt("visit", -1);//0满意1一评不满意2二评不满意
  2070. string strpageindex = RequestString.GetQueryString("page");
  2071. int pageindex = 1;
  2072. string strpagesize = RequestString.GetQueryString("pagesize");
  2073. int pagesize = 10;
  2074. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  2075. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  2076. string visitstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstarttime"));//回访开始时间
  2077. string visitstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstrendtime"));//回访结束时间
  2078. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  2079. {
  2080. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2081. {
  2082. sql += " and F_DealTime between '" + dealstarttime +
  2083. "' AND '" + dealstrendtime + "'";
  2084. }
  2085. else
  2086. {
  2087. sql += " and F_DealTime>='" + dealstarttime + "' ";
  2088. }
  2089. }
  2090. else
  2091. {
  2092. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2093. {
  2094. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  2095. }
  2096. }
  2097. if (strtab!="2")
  2098. {
  2099. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  2100. if (jianhang == 4)
  2101. {
  2102. sql += " and F_InfoSource = '2580'";
  2103. }
  2104. else
  2105. {
  2106. if (strtab != "5")
  2107. sql += " and F_InfoSource != '2580'";
  2108. }
  2109. }
  2110. switch (strtab)
  2111. {
  2112. case "-1"://待处理工单(其他来源)
  2113. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  2114. break;
  2115. case "0"://待处理工单
  2116. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2117. {
  2118. //话务员,已办待回访菜单中可以看到所有工单并能操作
  2119. if (User.F_RoleCode != "ZJZY" && User.F_RoleCode != "ZXHWY")
  2120. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2121. //话务员,已办待回访菜单中可以看到所有工单并能操作
  2122. }
  2123. if (strstate.Trim() != "" && strstate != "undefined")
  2124. {
  2125. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2126. {
  2127. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2128. sql += "and F_ToBereply=" + tobereply;
  2129. }
  2130. else if (strstate.Trim() == ((int)EnumWorkState.audit).ToString())
  2131. {
  2132. sql += " and F_WorkState in (" + (int)EnumWorkState.audit + "," + (int)EnumWorkState.auditreback + ") ";
  2133. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2134. }
  2135. else if (strstate.Trim() == "6")
  2136. {
  2137. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2138. }
  2139. else
  2140. {
  2141. if (smspy == -1)
  2142. sql += "and F_ToBereply=" + tobereply;
  2143. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2144. }
  2145. if (strstate.Trim() == "6" || strstate.Trim() == "7")
  2146. {
  2147. // order = "order by F_DealTime desc";
  2148. if (db > -1)
  2149. {
  2150. if (db == 0)
  2151. {
  2152. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  2153. }
  2154. else
  2155. {
  2156. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State not in (0,2) )";
  2157. }
  2158. }
  2159. else
  2160. {
  2161. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2162. }
  2163. }
  2164. }
  2165. else
  2166. {
  2167. sql += "and F_ToBereply=" + tobereply;
  2168. sql += " and F_WorkState in (0) ";
  2169. if (User.F_RoleCode == "ZXHWY")
  2170. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2171. }
  2172. order = "order by F_Id desc";
  2173. break;
  2174. case "1"://已提交的工单
  2175. sql += " and F_WorkState >0 ";
  2176. if (strstate.Trim() != "" && strstate != "undefined")
  2177. {
  2178. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2179. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2180. else
  2181. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2182. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2183. }
  2184. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" || User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2185. {
  2186. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2187. }
  2188. break;
  2189. case "2"://已回访的工单
  2190. if (strstate.Trim() != "" && strstate != "undefined")
  2191. {
  2192. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2193. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2194. else
  2195. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2196. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2197. }
  2198. sql += "and F_SpotCheck=1";
  2199. if (visit > -1)
  2200. {
  2201. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_Id in (select max(F_Id) " +
  2202. "from T_Bus_VisitResult WITH(NOLOCK) group by F_WorkOrderId ) and F_IsSatisfie = '" + visit + "' ";
  2203. }
  2204. else
  2205. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 ";
  2206. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  2207. {
  2208. sql += " and F_CreateTime>='" + visitstarttime + "' ";
  2209. }
  2210. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  2211. {
  2212. sql += " and F_CreateTime<='" + visitstrendtime + "' ";
  2213. }
  2214. if (visituser.Trim() != "" && visituser != "undefined")
  2215. {
  2216. sql += " and F_CreateUser='" + visituser + "'";
  2217. }
  2218. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2219. {
  2220. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2221. }
  2222. else
  2223. {
  2224. sql += ")";
  2225. }
  2226. break;
  2227. case "3"://已回退的工单
  2228. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  2229. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  2230. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "GNZY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2231. {
  2232. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2233. }
  2234. break;
  2235. case "4":
  2236. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3)";
  2237. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2238. {
  2239. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2240. }
  2241. break;
  2242. case "5":
  2243. sql += " and F_WorkState =0 ";
  2244. sql += " and F_InfoSource = '2580'";
  2245. break;
  2246. }
  2247. if (issms > -1)
  2248. {
  2249. if (issms == 1)
  2250. sql += " and F_IsSms = '" + issms + "'";
  2251. else
  2252. sql += " and (F_IsSms = '0' or F_IsSms is null )";
  2253. }
  2254. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  2255. if (splituser.Trim() != "" && splituser != "undefined")
  2256. {
  2257. sql += " and F_SplitUser = '" + splituser + "' ";
  2258. }
  2259. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  2260. if (assuser.Trim() != "" && assuser != "undefined")
  2261. {
  2262. sql += " and F_AssignUser = '" + assuser + "' ";
  2263. }
  2264. if (User.F_RoleCode == "WLDW")
  2265. {
  2266. if (strtab != "5")
  2267. {
  2268. sql += " and F_InfoSource in (1,3,6) ";
  2269. }
  2270. }
  2271. if (strworkid.Trim() != "" && strworkid != "undefined")
  2272. {
  2273. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2274. }
  2275. if (strname.Trim() != "" && strname != "undefined")
  2276. {
  2277. sql += " and F_CusName like '%" + strname + "%' ";
  2278. }
  2279. if (islike > 0)
  2280. {
  2281. if (strtel.Trim() != "" && strtel != "undefined")
  2282. {
  2283. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2284. }
  2285. }
  2286. else
  2287. {
  2288. if (strtel.Trim() != "" && strtel != "undefined")
  2289. {
  2290. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  2291. }
  2292. }
  2293. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2294. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2295. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2296. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2297. {
  2298. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2299. }
  2300. if (Result.Trim() != "" && Result != "undefined")
  2301. {
  2302. sql += " and F_Result like '%" + Result + "%' ";
  2303. }
  2304. if (ComContent.Trim() != "" && ComContent != "undefined")
  2305. {
  2306. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2307. }
  2308. if (strkey.Trim() != "" && strkey != "undefined")
  2309. {
  2310. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2311. " or F_Result like '%" + strkey + "%' ) ";
  2312. }
  2313. #region 坐席&调度员
  2314. if (strusercode.Trim() != "" && strusercode != "undefined")
  2315. {//坐席
  2316. var usercode = strusercode.Trim().Split(',');
  2317. var newusercode = "";
  2318. foreach (var item in usercode)
  2319. {
  2320. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2321. newusercode += "'" + item + "',";
  2322. }
  2323. newusercode = newusercode.Trim(',');
  2324. if (newusercode.Trim() != "" && newusercode != "undefined")
  2325. {
  2326. sql += " and F_CreateUser in (" + newusercode + ") ";
  2327. }
  2328. }
  2329. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2330. {//调度员
  2331. var ddusercode = strddusercode.Trim().Split(',');
  2332. var newusercode = "";
  2333. foreach (var item in ddusercode)
  2334. {
  2335. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2336. newusercode += "'" + item + "',";
  2337. }
  2338. newusercode = newusercode.Trim(',');
  2339. if (newusercode.Trim() != "" && newusercode != "undefined")
  2340. {
  2341. sql += " and F_AssignUser in(" + newusercode + ") ";
  2342. }
  2343. }
  2344. #endregion
  2345. if (source != 0)
  2346. {
  2347. sql += " and F_InfoSource = '" + source + "' ";
  2348. }
  2349. string sqlwhere = ""; string value = "";
  2350. if (keyid != 0)
  2351. {
  2352. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2353. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2354. // " or F_Key='" + keyid + "' )";
  2355. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  2356. }
  2357. if (type != 0)
  2358. {
  2359. sql += " and F_InfoType = '" + type + "' ";
  2360. }
  2361. if (bigtype != 0)
  2362. {
  2363. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2364. }
  2365. if (smalltype != 0)
  2366. {
  2367. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2368. }
  2369. if (sourcearea != 0)
  2370. {
  2371. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2372. }
  2373. if (deptid != 0)
  2374. {
  2375. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  2376. }
  2377. else
  2378. {
  2379. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  2380. {
  2381. deptid = User.F_DeptId;
  2382. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3 like'%" + deptid + "%')";
  2383. }
  2384. }
  2385. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2386. {
  2387. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2388. }
  2389. if (strendtime.Trim() != "" && strendtime != "undefined")
  2390. {
  2391. sql += " and F_CreateTime<='" + strendtime + "' ";
  2392. }
  2393. if (strpageindex.Trim() != "")
  2394. {
  2395. pageindex = Convert.ToInt32(strpageindex);
  2396. }
  2397. if (strpagesize.Trim() != "")
  2398. {
  2399. pagesize = Convert.ToInt32(strpagesize);
  2400. }
  2401. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2402. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2403. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2404. string cols = "";
  2405. if (strtab == "5")
  2406. {
  2407. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification,(select TSIGNTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId ) as TSIGNTIME_BF,(select TBACKTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId ) as TBACKTIME_BF,(select SEND_CONTENT from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId ) as SEND_CONTENT,F_IsRelease";
  2408. }
  2409. else
  2410. {
  2411. cols = "F_WorkOrderId,F_InfoSource,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,(select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  2412. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime,F_Identification,F_IsRelease,F_InfoSource,F_Note" +
  2413. ",(case when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See)= 0 then 0 when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See) IS NULL then 0 else 1 end) as See";
  2414. }
  2415. if (smspy > -1)
  2416. {
  2417. order = " order by F_Id desc";
  2418. }
  2419. if (isdc > 0)
  2420. {
  2421. var top = " "; var orderby = " order by F_CreateTime";
  2422. //20190715调整导出字段 zhengbingbing
  2423. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2424. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  2425. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  2426. " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  2427. " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  2428. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  2429. " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  2430. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + " where 1=1 " + sql + orderby).Tables[0];
  2431. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2432. if (msg == "")
  2433. {
  2434. return Success("导出成功");
  2435. }
  2436. else
  2437. {
  2438. return Error("导出失败");
  2439. }
  2440. }
  2441. int recordCount = 0;
  2442. dt = BLL.PagerBLL.GetListPager(
  2443. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  2444. "F_Id",
  2445. cols,
  2446. sql,
  2447. order,
  2448. pagesize,
  2449. pageindex,
  2450. true,
  2451. out recordCount);
  2452. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2453. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2454. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2455. dt.Columns.Add("OverState", typeof(string));//超时状态
  2456. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2457. dt.Columns.Add("GapTime", typeof(string));//时间差
  2458. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2459. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2460. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2461. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2462. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2463. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2464. foreach (DataRow dr in dt.Rows)
  2465. {
  2466. //获取最新交办信息
  2467. string iszbdw = "0";
  2468. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2469. if (state > 1)
  2470. {
  2471. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  2472. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2473. if (dtjb.Rows.Count > 0)
  2474. {
  2475. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  2476. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2477. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2478. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2479. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  2480. {
  2481. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2482. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  2483. }
  2484. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2485. #region
  2486. #endregion
  2487. #region
  2488. //if (state < 6 || state == 8)
  2489. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2490. {
  2491. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2492. dr["LimitTime"] = lt;
  2493. if (!string.IsNullOrWhiteSpace(lt))
  2494. {
  2495. var ltime = DateTime.Parse(lt);
  2496. if (ltime > DateTime.Now)
  2497. {
  2498. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  2499. //var SYSJ = DbHelperSQL.GetSingle(SY);
  2500. //if (SYSJ != null && SYSJ.ToString() != "")
  2501. //{
  2502. // try
  2503. // {
  2504. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2505. // }
  2506. // catch
  2507. // {
  2508. // }
  2509. //}
  2510. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  2511. //ltime = ltime.AddDays(-days);
  2512. }
  2513. else
  2514. {
  2515. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  2516. //var SYSJ = DbHelperSQL.GetSingle(SY);
  2517. //if (SYSJ != null && SYSJ.ToString() != "")
  2518. //{
  2519. // try
  2520. // {
  2521. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  2522. // }
  2523. // catch
  2524. // {
  2525. // }
  2526. //}
  2527. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  2528. ltime = ltime.AddDays(days);
  2529. }
  2530. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2531. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2532. if (tss < 0) { tss = -tss; }
  2533. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2534. if (ltime > DateTime.Now)
  2535. {
  2536. if (configcs != null)
  2537. {
  2538. int cs = Int32.Parse(configcs.F_ParamValue);
  2539. if (ts.TotalHours > cs)
  2540. {
  2541. dr["OverState"] = 1;
  2542. }
  2543. else
  2544. {
  2545. dr["OverState"] = 2;
  2546. }
  2547. }
  2548. dr["GapTime"] = "剩余" + gshsj;
  2549. }
  2550. else
  2551. {
  2552. dr["OverState"] = 3;
  2553. dr["GapTime"] = "超时" + gshsj;
  2554. }
  2555. }
  2556. }
  2557. if (state == (int)EnumWorkState.finish)
  2558. {
  2559. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2560. var dttime = DateTime.Now;
  2561. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2562. else
  2563. {
  2564. var DealTime = dr["F_CloseTime"].ToString();
  2565. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  2566. }
  2567. //else
  2568. //{
  2569. // var DealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  2570. // if (!string.IsNullOrWhiteSpace(DealTime))
  2571. // dttime = DateTime.Parse(DealTime);
  2572. //}
  2573. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2574. dr["LimitTime"] = lt;
  2575. if (!string.IsNullOrWhiteSpace(lt))
  2576. {
  2577. var ltime = DateTime.Parse(lt);
  2578. if (ltime < dttime)
  2579. {
  2580. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  2581. ltime = ltime.AddDays(days);
  2582. TimeSpan ts = dttime.Subtract(ltime);
  2583. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2584. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2585. dr["OverState"] = 3;
  2586. dr["GapTime"] = "超时" + gshsj;
  2587. }
  2588. }
  2589. }
  2590. #endregion
  2591. }
  2592. else
  2593. {
  2594. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2595. string mid = dr["F_MainDeptId"].ToString();
  2596. if (!string.IsNullOrEmpty(mid))
  2597. {
  2598. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  2599. }
  2600. }
  2601. }
  2602. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2603. {
  2604. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  2605. }
  2606. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2607. {
  2608. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2609. }
  2610. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2611. if (Int32.Parse(strtab) == 0 || Int32.Parse(strtab) == 3)
  2612. {
  2613. btns.Clear();
  2614. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString()
  2615. );
  2616. //if (dr["F_InfoSource"].ToString()=="2580"&& dr["F_WorkState"].ToString()=="7")
  2617. //{
  2618. // if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "GNZY" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "YSZY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "MTDD"|| User.F_RoleCode.ToUpper() == "ZXHWY")
  2619. // {
  2620. // var butts = btns.Find(c => c.key == ButtonGroup.visit().key);
  2621. // if (butts != null)
  2622. // {
  2623. // btns.Remove(butts);
  2624. // btns.Add(ButtonGroup.visits());
  2625. // }
  2626. // }
  2627. //}
  2628. #region 判断是否存在待督办
  2629. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2630. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2631. if (recount > 0 && butt != null)
  2632. btns.Remove(butt);
  2633. if (Int32.Parse(strtab) == 0 && state == 7)
  2634. {
  2635. // if (User.F_RoleCode.ToUpper() != "ZXHWY")
  2636. btns.Add(ButtonGroup.turnsee());
  2637. }
  2638. if (Int32.Parse(strtab) == 0 && state == 3)
  2639. {
  2640. if (butt != null)
  2641. btns.Remove(butt);
  2642. }
  2643. if (Int32.Parse(strtab) == 0 && state == 6)
  2644. {
  2645. btns.Add(ButtonGroup.modify());
  2646. }
  2647. #endregion
  2648. }
  2649. else if (Int32.Parse(strtab) == 5)
  2650. {
  2651. btns.Clear();
  2652. btns.Add(ButtonGroup.query());
  2653. btns.Add(ButtonGroup.Signfor());
  2654. btns.Add(ButtonGroup.Sendback());
  2655. btns.Add(ButtonGroup.delayback());
  2656. }
  2657. else if (Int32.Parse(strtab) == -1)
  2658. {
  2659. btns.Clear();
  2660. btns.Add(ButtonGroup.query());
  2661. btns.Add(ButtonGroup.edit());
  2662. }
  2663. else if (Int32.Parse(strtab) == 2)
  2664. {
  2665. btns.Add(ButtonGroup.SpotCheck());
  2666. }
  2667. else
  2668. {
  2669. btns.Clear();
  2670. btns.Add(ButtonGroup.query());
  2671. }
  2672. dr["Buttons"] = btns;
  2673. }
  2674. var obj = new
  2675. {
  2676. state = "success",
  2677. message = "成功",
  2678. rows = dt,
  2679. total = recordCount
  2680. };
  2681. return Content(obj.ToJson());
  2682. }
  2683. /// <summary>
  2684. /// 获取领导处理列表
  2685. /// </summary>发
  2686. /// <returns></returns>
  2687. //[Authority]
  2688. public ActionResult GetLDDealList(int isdc = 0)
  2689. {
  2690. DataTable dt = new DataTable();
  2691. string sql = " and F_IsDelete=0";
  2692. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2693. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2694. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2695. int islike = RequestString.GetInt("islike", 1);
  2696. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2697. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2698. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2699. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2700. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2701. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2702. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2703. int source = RequestString.GetInt("source", 0);
  2704. int keyid = RequestString.GetInt("keyid", 0);
  2705. int type = RequestString.GetInt("type", 0);
  2706. int bigtype = RequestString.GetInt("bigtype", 0);
  2707. int smalltype = RequestString.GetInt("smalltype", 0);
  2708. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2709. int deptid = RequestString.GetInt("deptid", 0);
  2710. int isdb = RequestString.GetInt("isdb", -1);
  2711. int issh = RequestString.GetInt("issh", -1);
  2712. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2713. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  2714. int dealtype = RequestString.GetInt("dealtype", -1);//1当即办理,0转办办理,2按时办结,3超期办结
  2715. string order = "ORDER BY F_CreateTime DESC";
  2716. string strpageindex = RequestString.GetQueryString("page");
  2717. int pageindex = 1;
  2718. string strpagesize = RequestString.GetQueryString("pagesize");
  2719. int pagesize = 10;
  2720. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  2721. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  2722. int db = RequestString.GetInt("db", 0);
  2723. int isopen = RequestString.GetInt("isopen", -1);
  2724. int identification = RequestString.GetInt("identification", -1);
  2725. if (identification > -1)
  2726. {
  2727. sql += "and F_Identification='" + identification + "'";
  2728. }
  2729. int cshf = RequestString.GetInt("cshf", -1);
  2730. if (cshf > -1)
  2731. {
  2732. if (cshf == 0)
  2733. sql += "and F_DealTime >F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  2734. else
  2735. sql += "and F_DealTime <F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  2736. }
  2737. if (isopen > -1)
  2738. sql += " and isnull(F_IsOpen,0) =" + isopen;
  2739. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  2740. if (splituser.Trim() != "" && splituser != "undefined")
  2741. {
  2742. sql += " and F_SplitUser = '" + splituser + "' ";
  2743. }
  2744. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  2745. if (jianhang == 4)
  2746. {
  2747. sql += " and F_InfoSource = '2580'";
  2748. }
  2749. else
  2750. {
  2751. if (strtab !="12")
  2752. sql += " and F_InfoSource != '2580'";
  2753. }
  2754. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  2755. if (assuser.Trim() != "" && assuser != "undefined")
  2756. {
  2757. sql += " and F_AssignUser = '" + assuser + "' ";
  2758. }
  2759. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  2760. {
  2761. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2762. {
  2763. sql += " and F_DealTime between '" + dealstarttime +
  2764. "' AND '" + dealstrendtime + "'";
  2765. }
  2766. else
  2767. {
  2768. sql += " and F_DealTime>='" + dealstarttime + "' ";
  2769. }
  2770. }
  2771. else
  2772. {
  2773. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2774. {
  2775. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  2776. }
  2777. }
  2778. if (isdb > -1)
  2779. {
  2780. if (isdb == 0)
  2781. {
  2782. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2783. }
  2784. else
  2785. {
  2786. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2787. }
  2788. }
  2789. switch (strtab)
  2790. {
  2791. case "0"://待处理工单
  2792. order = "order by a.F_Level desc, a.F_CreateTime desc";
  2793. sql += " and (F_IsRelease !='" + 3 + "' or " +
  2794. "F_IsRelease is null) ";
  2795. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2796. if (strstate.Trim() != "" && strstate != "undefined")
  2797. {
  2798. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2799. {
  2800. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.resubmit + ") ";
  2801. }
  2802. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  2803. {
  2804. if (User.F_RoleCode == "ZXHWY")
  2805. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2806. else
  2807. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  2808. }
  2809. else
  2810. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2811. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2812. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  2813. {
  2814. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2815. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  2816. && User.F_RoleCode != "ZXLD " && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ"
  2817. )
  2818. {
  2819. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2820. }
  2821. else
  2822. {
  2823. sql += ")";
  2824. }
  2825. }
  2826. else
  2827. {
  2828. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2829. {
  2830. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  2831. + "and F_CreateUser = '" + User.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  2832. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  2833. sql += " and F_WorkState != '9' ";
  2834. }
  2835. if (User.F_RoleCode == "ZXHWY")
  2836. {
  2837. sql += " and F_CreateUser='" + User.F_UserCode + "' ";
  2838. }
  2839. }
  2840. }
  2841. else
  2842. {
  2843. int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.resubmit };
  2844. sql += "and F_WorkState in(1,11) ";
  2845. }
  2846. break;
  2847. case "1"://已交办的工单
  2848. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  2849. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  2850. if (strstate.Trim() != "" && strstate != "undefined")
  2851. {
  2852. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2853. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2854. else
  2855. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2856. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2857. }
  2858. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 )";
  2859. sql += " and F_WorkState in (2,3,4,5,8)";
  2860. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  2861. {
  2862. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  2863. }
  2864. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  2865. {
  2866. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  2867. }
  2868. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  2869. && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2870. {
  2871. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2872. }
  2873. break;
  2874. case "2"://已审核退回的工单
  2875. if (strstate.Trim() != "" && strstate != "undefined")
  2876. {
  2877. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2878. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2879. else
  2880. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2881. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2882. }
  2883. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  2884. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2885. {
  2886. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  2887. }
  2888. else
  2889. {
  2890. sql += ")";
  2891. }
  2892. break;
  2893. case "3"://已审核延时的工单
  2894. if (strstate.Trim() != "" && strstate != "undefined")
  2895. {
  2896. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2897. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2898. else
  2899. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2900. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2901. }
  2902. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit>0 ";
  2903. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2904. {
  2905. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  2906. }
  2907. else
  2908. {
  2909. sql += ")";
  2910. }
  2911. break;
  2912. case "4"://已重办的工单
  2913. if (strstate.Trim() != "" && strstate != "undefined")
  2914. {
  2915. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2916. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2917. else
  2918. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2919. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2920. }
  2921. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsReload>0 ";
  2922. sql += ")";
  2923. break;
  2924. case "5"://已结案的工单
  2925. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  2926. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  2927. if (issatisfie != -1)
  2928. {
  2929. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_IsDelete = 0 and F_IsSatisfie = " + issatisfie + " and F_Id in (select MAX(F_Id) from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) )";
  2930. }
  2931. if (dealtype > -1)
  2932. {
  2933. if (dealtype == 2)
  2934. {//按时
  2935. sql += " and F_IsResult=0 and isnull(F_DealTime,'')<>'' and F_LimitTime>=F_DealTime ";
  2936. }
  2937. else if (dealtype == 3)
  2938. {//超期
  2939. sql += " and isnull(F_DealTime,'')<>'' and F_LimitTime<F_DealTime ";
  2940. }
  2941. else
  2942. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  2943. }
  2944. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  2945. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "GNZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2946. {
  2947. sql += " and F_CloseUser='" + User.F_UserCode + "'";
  2948. }
  2949. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  2950. {
  2951. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  2952. }
  2953. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  2954. {
  2955. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  2956. }
  2957. break;
  2958. case "6"://已督办的工单
  2959. if (strstate.Trim() != "" && strstate != "undefined")
  2960. {
  2961. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2962. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2963. else
  2964. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2965. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2966. }
  2967. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  2968. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2969. {
  2970. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2971. }
  2972. else
  2973. {
  2974. sql += ")";
  2975. }
  2976. break;
  2977. case "7"://已监察的工单
  2978. if (strstate.Trim() != "" && strstate != "undefined")
  2979. {
  2980. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2981. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2982. else
  2983. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2984. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2985. }
  2986. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2987. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2988. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2989. {
  2990. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2991. }
  2992. else
  2993. {
  2994. sql += ")";
  2995. }
  2996. break;
  2997. case "8"://待督办列表
  2998. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  2999. if (strstate.Trim() != "" && strstate != "undefined")
  3000. {
  3001. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3002. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3003. else
  3004. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3005. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3006. }
  3007. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=0 and F_IsDelete=0 and F_Type =1 ";
  3008. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DDZG")
  3009. {
  3010. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3011. }
  3012. else
  3013. {
  3014. sql += ")";
  3015. }
  3016. break;
  3017. case "9"://重办驳回列表
  3018. sql += " and F_WorkState=" + (int)EnumWorkState.rejload;
  3019. sql += " and F_WorkOrderID in (select F_WorkOrderId from T_Bus_Operation WITH(NOLOCK) where F_Id in (select max(F_Id) from T_Bus_Operation WITH(NOLOCK) where F_State = " + (int)EnumWorkState.resubmit + " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_Operation WITH(NOLOCK) where F_State=" + (int)EnumWorkState.rejload + ") group by F_WorkOrderId)";
  3020. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3021. {
  3022. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3023. }
  3024. sql += ")";
  3025. break;
  3026. case "10"://
  3027. sql += " and (F_IsRelease !='" + 3 + "' or " +
  3028. "F_IsRelease is null) ";
  3029. sql += " and F_WorkState in(1,11)";
  3030. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  3031. // sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback b WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_Type = 3 and F_IsAudit = 1 ) ";
  3032. // sql += "and F_WorkOrderID in( select b.F_WorkOrderID from T_Bus_Feedback b WITH(NOLOCK) inner join T_Bus_Feedback a on a.F_Id = b.F_Id and a .F_Id = (select max(t1.F_Id) from T_Bus_Feedback t1 where t1.F_WorkOrderId = b.F_WorkOrderId) where b.F_State = 1 and b.F_IsDelete = 0 and b.F_Type = 3 and b.F_IsAudit = 1 ) ";
  3033. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLD")
  3034. {
  3035. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3036. }
  3037. break;
  3038. case "11"://
  3039. sql += " and F_WorkState =14";
  3040. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  3041. {
  3042. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3043. }
  3044. if (db > -1)
  3045. {
  3046. if (db == 0)
  3047. {
  3048. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  3049. }
  3050. else
  3051. {
  3052. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State not in (0,2) )";
  3053. }
  3054. }
  3055. break;
  3056. case "12"://省平台待审转办
  3057. order = "order by a.F_Level desc, a.F_CreateTime desc";
  3058. sql += " and (F_IsRelease !='" + 3 + "' or " +
  3059. "F_IsRelease is null) ";
  3060. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord " +
  3061. "where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  3062. sql += "and F_WorkState in(1,11) ";
  3063. sql += " and F_InfoSource = '2580'";
  3064. break;
  3065. }
  3066. if (strworkid.Trim() != "" && strworkid != "undefined")
  3067. {
  3068. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3069. }
  3070. if (strname.Trim() != "" && strname != "undefined")
  3071. {
  3072. sql += " and F_CusName like '%" + strname + "%' ";
  3073. }
  3074. if (islike > 0)
  3075. {
  3076. if (strtel.Trim() != "" && strtel != "undefined")
  3077. {
  3078. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3079. }
  3080. }
  3081. else
  3082. {
  3083. if (strtel.Trim() != "" && strtel != "undefined")
  3084. {
  3085. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3086. }
  3087. }
  3088. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3089. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3090. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3091. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3092. {
  3093. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3094. }
  3095. if (Result.Trim() != "" && Result != "undefined")
  3096. {
  3097. sql += " and F_Result like '%" + Result + "%' ";
  3098. }
  3099. if (ComContent.Trim() != "" && ComContent != "undefined")
  3100. {
  3101. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3102. }
  3103. if (strkey.Trim() != "" && strkey != "undefined")
  3104. {
  3105. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3106. " or F_Result like '%" + strkey + "%' ) ";
  3107. }
  3108. #region 坐席&调度员
  3109. if (strusercode.Trim() != "" && strusercode != "undefined")
  3110. {//坐席
  3111. var usercode = strusercode.Trim().Split(',');
  3112. var newusercode = "";
  3113. foreach (var item in usercode)
  3114. {
  3115. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3116. newusercode += "'" + item + "',";
  3117. }
  3118. newusercode = newusercode.Trim(',');
  3119. if (newusercode.Trim() != "" && newusercode != "undefined")
  3120. {
  3121. sql += " and F_CreateUser in (" + newusercode + ") ";
  3122. }
  3123. }
  3124. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3125. {//调度员
  3126. var ddusercode = strddusercode.Trim().Split(',');
  3127. var newusercode = "";
  3128. foreach (var item in ddusercode)
  3129. {
  3130. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3131. newusercode += "'" + item + "',";
  3132. }
  3133. newusercode = newusercode.Trim(',');
  3134. if (newusercode.Trim() != "" && newusercode != "undefined")
  3135. {
  3136. sql += " and F_AssignUser in(" + newusercode + ") ";
  3137. }
  3138. }
  3139. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3140. //{
  3141. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3142. //}
  3143. #endregion
  3144. if (source != 0)
  3145. {
  3146. sql += " and F_InfoSource = '" + source + "' ";
  3147. }
  3148. string sqlwheres = ""; string value = "";
  3149. if (keyid != 0)
  3150. {
  3151. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3152. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3153. // " or F_Key='" + keyid + "' )";
  3154. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  3155. }
  3156. if (type != 0)
  3157. {
  3158. sql += " and F_InfoType = '" + type + "' ";
  3159. }
  3160. if (bigtype != 0)
  3161. {
  3162. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3163. }
  3164. if (smalltype != 0)
  3165. {
  3166. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3167. }
  3168. if (sourcearea != 0)
  3169. {
  3170. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3171. }
  3172. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3173. {
  3174. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3175. }
  3176. if (strendtime.Trim() != "" && strendtime != "undefined")
  3177. {
  3178. sql += " and F_CreateTime<='" + strendtime + "' ";
  3179. }
  3180. //if (deptid != 0 && strtab != "1")
  3181. //{
  3182. // if (deptlevel == 0)
  3183. // {
  3184. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  3185. // //string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  3186. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3187. // }
  3188. // else
  3189. // {
  3190. // //string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  3191. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where" +
  3192. // " F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  3193. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3194. // }
  3195. //}
  3196. if (deptid != 0)
  3197. {
  3198. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  3199. }
  3200. else
  3201. {
  3202. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  3203. {
  3204. deptid = User.F_DeptId;
  3205. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  3206. }
  3207. }
  3208. if (strpageindex.Trim() != "")
  3209. {
  3210. pageindex = Convert.ToInt32(strpageindex);
  3211. }
  3212. if (strpagesize.Trim() != "")
  3213. {
  3214. pagesize = Convert.ToInt32(strpagesize);
  3215. }
  3216. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3217. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3218. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3219. string cols = "";
  3220. if (strtab == "10")
  3221. {
  3222. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification,F_IsRelease,F_InfoSource";
  3223. }
  3224. else if (strtab == "12")
  3225. {
  3226. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDeptNames(F_MainDeptId)as DeptNames,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification,(select top 1 TFDBACKTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId order by CreateTime desc ) as TFDBACKTIME_BF,(select top 1 SEND_CONTENT from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId order by CreateTime desc ) as SEND_CONTENT,F_IsRelease,F_Administrative,F_InfoSource";
  3227. }
  3228. else
  3229. {
  3230. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDeptNames(F_MainDeptId)as DeptNames,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification,F_IsRelease,F_InfoSource" +
  3231. ",(case when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See)= 0 then 0 when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See) IS NULL then 0 else 1 end) as See";
  3232. }
  3233. if (isdc > 0)
  3234. {
  3235. var top = " "; var orderby = " order by F_CreateTime";
  3236. //20190715调整导出字段 zhengbingbing
  3237. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  3238. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  3239. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  3240. " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  3241. " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  3242. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  3243. " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  3244. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + " where 1=1 " + sql + orderby).Tables[0];
  3245. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3246. if (msg == "")
  3247. {
  3248. return Success("导出成功");
  3249. }
  3250. else
  3251. {
  3252. return Error("导出失败");
  3253. }
  3254. }
  3255. int recordCount = 0;
  3256. dt = BLL.PagerBLL.GetListPager(
  3257. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  3258. "F_Id",
  3259. cols,
  3260. sql,
  3261. order,
  3262. pagesize,
  3263. pageindex,
  3264. true,
  3265. out recordCount);
  3266. #region 声音文件
  3267. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3268. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3269. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3270. dt.Columns.Add("OverState", typeof(string));//超时状态
  3271. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3272. dt.Columns.Add("GapTime", typeof(string));//时间差
  3273. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3274. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3275. if (strtab == "10")
  3276. {
  3277. dt.Columns.Add("DeptNames", typeof(string));//退回部门
  3278. dt.Columns.Add("Backreason", typeof(object));//退回原因
  3279. }
  3280. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3281. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3282. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3283. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3284. foreach (DataRow dr in dt.Rows)
  3285. {
  3286. //获取最新交办信息
  3287. string iszbdw = "0";
  3288. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3289. if (state > 1 && state != 11)
  3290. {
  3291. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  3292. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3293. if (dtjb.Rows.Count > 0)
  3294. {
  3295. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3296. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3297. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3298. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3299. {
  3300. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3301. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  3302. }
  3303. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3304. #region
  3305. #endregion
  3306. #region
  3307. //if (state < 6 || state == 8)
  3308. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3309. {
  3310. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3311. dr["LimitTime"] = lt;
  3312. if (!string.IsNullOrWhiteSpace(lt))
  3313. {
  3314. var ltime = DateTime.Parse(lt);
  3315. if (ltime > DateTime.Now)
  3316. {
  3317. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  3318. //var SYSJ = DbHelperSQL.GetSingle(SY);
  3319. //if (SYSJ != null && SYSJ.ToString() != "")
  3320. //{
  3321. // try
  3322. // {
  3323. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3324. // }
  3325. // catch
  3326. // {
  3327. // }
  3328. //}
  3329. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  3330. //ltime = ltime.AddDays(-days);
  3331. }
  3332. else
  3333. {
  3334. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  3335. //var SYSJ = DbHelperSQL.GetSingle(SY);
  3336. //if (SYSJ != null && SYSJ.ToString() != "")
  3337. //{
  3338. // try
  3339. // {
  3340. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  3341. // }
  3342. // catch
  3343. // {
  3344. // }
  3345. //}
  3346. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  3347. ltime = ltime.AddDays(days);
  3348. }
  3349. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3350. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3351. if (tss < 0) { tss = -tss; }
  3352. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3353. if (ltime > DateTime.Now)
  3354. {
  3355. if (configcs != null)
  3356. {
  3357. int cs = Int32.Parse(configcs.F_ParamValue);
  3358. if (ts.TotalHours > cs)
  3359. {
  3360. dr["OverState"] = 1;
  3361. }
  3362. else
  3363. {
  3364. dr["OverState"] = 2;
  3365. }
  3366. }
  3367. dr["GapTime"] = "剩余" + gshsj;
  3368. }
  3369. else
  3370. {
  3371. dr["OverState"] = 3;
  3372. dr["GapTime"] = "超时" + gshsj;
  3373. }
  3374. }
  3375. }
  3376. if (state == (int)EnumWorkState.finish)
  3377. {
  3378. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3379. var dttime = DateTime.Now;
  3380. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3381. else
  3382. {
  3383. var dealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  3384. if (!string.IsNullOrWhiteSpace(dealTime)) { dttime = DateTime.Parse(dealTime); }
  3385. }
  3386. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3387. dr["LimitTime"] = lt;
  3388. if (!string.IsNullOrWhiteSpace(lt))
  3389. {
  3390. var ltime = DateTime.Parse(lt);
  3391. if (ltime < dttime)
  3392. {
  3393. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  3394. ltime = ltime.AddDays(days);
  3395. TimeSpan ts = dttime.Subtract(ltime);
  3396. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3397. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3398. dr["OverState"] = 3;
  3399. dr["GapTime"] = "超时" + gshsj;
  3400. }
  3401. }
  3402. }
  3403. #endregion
  3404. }
  3405. else
  3406. {
  3407. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3408. string mid = dr["F_MainDeptId"].ToString();
  3409. if (!string.IsNullOrEmpty(mid))
  3410. {
  3411. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  3412. }
  3413. }
  3414. }
  3415. if (strtab == "10")
  3416. {
  3417. string strtu = " select top 1 dbo.GetDeptNames(F_CreateDeptId) as DeptNames ,F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type = 3 and F_IsAudit = 1 and F_WorkOrderId = '" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  3418. var tu = DbHelperSQL.Query(strtu).Tables[0];
  3419. if (tu.Rows.Count > 0)
  3420. {
  3421. dr["DeptNames"] = tu.Rows[0]["DeptNames"].ToString();
  3422. dr["Backreason"] = tu.Rows[0]["F_Result"].ToString();
  3423. }
  3424. }
  3425. else
  3426. {
  3427. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3428. {
  3429. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  3430. }
  3431. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3432. {
  3433. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3434. }
  3435. }
  3436. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3437. if (Int32.Parse(strtab) <= 1 || Int32.Parse(strtab) == 12 || Int32.Parse(strtab) == 11 || Int32.Parse(strtab) == 10 || Int32.Parse(strtab) == 9)
  3438. {
  3439. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString(), issh);
  3440. #region 判断是否存在待督办
  3441. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3442. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3443. if (recount > 0 && butt != null)
  3444. btns.Remove(butt);
  3445. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "DDZG")
  3446. {
  3447. if (Int32.Parse(strtab) != 11 && Int32.Parse(strtab) != 9)
  3448. btns.Add(ButtonGroup.turnsee());
  3449. }
  3450. if (strtab == "0" && issh == 2)
  3451. {
  3452. dr["DeptName"] = DbHelperSQL.GetSingle(" select [dbo].[GetDeptNames]( (select top 1 F_MainDeptId from T_Bus_ToExamine where F_WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' and F_IsDelete = 0 and F_MainDeptId is not null and F_State = 0 and F_IsDelete = 0 and F_AssignedId = 0and F_MainDeptId != '' order by F_ID desc))");
  3453. }
  3454. #endregion
  3455. }
  3456. else
  3457. {
  3458. btns.Clear();
  3459. if (Int32.Parse(strtab) == 8)
  3460. btns = ButtonGroup.GetButtons("12", User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  3461. else
  3462. btns.Add(ButtonGroup.query());
  3463. if (Int32.Parse(strtab) != 4)
  3464. {
  3465. if (state == 9)
  3466. {
  3467. if (User.F_RoleCode.ToUpper() == "GNZY")
  3468. {
  3469. btns.Add(ButtonGroup.modify());
  3470. }
  3471. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "ZXHWY")
  3472. {
  3473. //if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  3474. //{
  3475. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  3476. // TimeSpan ts = DateTime.Now - closedttime;
  3477. // if (ts.TotalDays < 20)
  3478. // {
  3479. // btns.Add(ButtonGroup.subreload());
  3480. // }
  3481. //}
  3482. //btns.Add(ButtonGroup.Unsuccessful ());
  3483. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  3484. btns.Add(ButtonGroup.modify());
  3485. }
  3486. }
  3487. }
  3488. }
  3489. dr["Buttons"] = btns;
  3490. }
  3491. #endregion
  3492. var obj = new
  3493. {
  3494. state = "success",
  3495. message = "成功",
  3496. rows = dt,
  3497. total = recordCount
  3498. };
  3499. return Content(obj.ToJson());
  3500. }
  3501. /// <summary>
  3502. /// 获取单位处理列表
  3503. /// </summary>
  3504. /// <returns></returns>
  3505. //[Authority]
  3506. public ActionResult GetDWDealList(int isdc = 0)
  3507. {
  3508. DataTable dt = new DataTable();
  3509. string sql = " and F_IsDelete=0";
  3510. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3511. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3512. int islike = RequestString.GetInt("islike", 1);
  3513. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3514. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3515. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3516. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3517. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3518. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3519. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3520. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3521. int source = RequestString.GetInt("source", 0);
  3522. int keyid = RequestString.GetInt("keyid", 0);
  3523. int type = RequestString.GetInt("type", 0);
  3524. int bigtype = RequestString.GetInt("bigtype", 0);
  3525. int smalltype = RequestString.GetInt("smalltype", 0);
  3526. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3527. int deptid = RequestString.GetInt("deptid", 0);
  3528. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  3529. int deptlevel = RequestString.GetInt("deptlevel", 0);
  3530. int distribute = RequestString.GetInt("distribute", -1);//0未派单1已派单
  3531. int blstate = RequestString.GetInt("blstate", 0);//办理状态0办理中1已办理
  3532. int isreply = RequestString.GetInt("isreply", 0);//办理状态0办理中1已办理
  3533. int noresult = RequestString.GetInt("noresult", 0);//0未指派1已指派
  3534. int isys = RequestString.GetInt("isys", -1);
  3535. string strpageindex = RequestString.GetQueryString("page");
  3536. int pageindex = 1;
  3537. string strpagesize = RequestString.GetQueryString("pagesize");
  3538. int pagesize = 10;
  3539. string order = "ORDER BY a.F_LimitTime";
  3540. #region 模块
  3541. switch (strtab)
  3542. {
  3543. case "0"://待处理工单
  3544. order = "order by F_Level desc, F_CreateTime desc ";
  3545. int isyq = RequestString.GetInt("isyq", -1);
  3546. if (strstate.Trim() != "" && strstate != "undefined")
  3547. {
  3548. if (strstate == "4")
  3549. {
  3550. sql += " and (F_WorkState =4 or (F_Identification=0 and F_WorkState=8 ) )";
  3551. }
  3552. else
  3553. {
  3554. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3555. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3556. else
  3557. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3558. }
  3559. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3560. }
  3561. else
  3562. {
  3563. if (distribute != 0)
  3564. {
  3565. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  3566. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3567. }
  3568. }
  3569. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  3570. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  3571. {
  3572. if (distribute > -1)
  3573. {
  3574. if (distribute == 0)
  3575. {
  3576. //提交重办也包含在待办列表
  3577. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and (F_IsNext =" + distribute + " or F_IsNext='' )and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )and (F_WorkState in (2,4) or (F_WorkState=8 and F_Identification=0)) ";
  3578. if (isys > -1)
  3579. {
  3580. if (isys == 0)
  3581. {
  3582. sql += "and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  3583. }
  3584. else if (isys == 1)
  3585. {
  3586. sql += "and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  3587. }
  3588. }
  3589. }
  3590. else
  3591. {
  3592. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext != '0' and F_IsNext !='' and F_IsNext <3 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3593. }
  3594. }
  3595. else
  3596. {
  3597. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3598. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)";
  3599. }
  3600. if (isyq != -1)
  3601. {
  3602. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3603. }
  3604. else
  3605. {
  3606. sql += ")";
  3607. }
  3608. }
  3609. break;
  3610. case "1"://已查收的工单
  3611. if (strstate.Trim() != "" && strstate != "undefined")
  3612. {
  3613. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3614. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3615. else
  3616. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3617. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3618. }
  3619. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure=1 ";
  3620. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3621. {
  3622. sql += " and F_SureUser='" + User.F_UserCode + "')";
  3623. }
  3624. else
  3625. {
  3626. sql += ")";
  3627. }
  3628. break;
  3629. case "2"://已申请退回的工单
  3630. if (strstate.Trim() != "" && strstate != "undefined")
  3631. {
  3632. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3633. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3634. else
  3635. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3636. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3637. }
  3638. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type = 3 ";
  3639. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  3640. {
  3641. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3642. }
  3643. else
  3644. {
  3645. sql += ")";
  3646. }
  3647. break;
  3648. case "3"://已申请延时的工单
  3649. if (strstate.Trim() != "" && strstate != "undefined")
  3650. {
  3651. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3652. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3653. else
  3654. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3655. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3656. }
  3657. else
  3658. {
  3659. if (blstate == 0)
  3660. {
  3661. sql += " and F_WorkState in (1,2,3,4,5,8,10,11,13) ";
  3662. }
  3663. else
  3664. {
  3665. sql += " and F_WorkState in (6,7,9) ";
  3666. }
  3667. }
  3668. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 ";
  3669. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  3670. {
  3671. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3672. }
  3673. else
  3674. {
  3675. sql += ")";
  3676. }
  3677. break;
  3678. case "4"://已办理的工单
  3679. if (strstate.Trim() != "" && strstate != "undefined")
  3680. {
  3681. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3682. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3683. else
  3684. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3685. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3686. }
  3687. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) and F_WorkState !='8' ";
  3688. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3689. {
  3690. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3691. }
  3692. else
  3693. {
  3694. sql += ")";
  3695. }
  3696. break;
  3697. case "5"://被督办的工单
  3698. if (strstate.Trim() != "" && strstate != "undefined")
  3699. {
  3700. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3701. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3702. else
  3703. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3704. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3705. }
  3706. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  3707. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3708. {
  3709. sql += " and F_DeptId='" + User.F_DeptId + "')";
  3710. }
  3711. else
  3712. {
  3713. sql += ")";
  3714. }
  3715. break;
  3716. case "6"://被监察的工单
  3717. if (strstate.Trim() != "" && strstate != "undefined")
  3718. {
  3719. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3720. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3721. else
  3722. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3723. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3724. }
  3725. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  3726. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  3727. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3728. {
  3729. sql += " and F_DeptId='" + User.F_DeptId + "')";
  3730. }
  3731. else
  3732. {
  3733. sql += ")";
  3734. }
  3735. break;
  3736. case "7"://延时审核中的工单
  3737. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  3738. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXLD")
  3739. {
  3740. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  3741. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3742. }
  3743. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsAudit=0)";
  3744. break;
  3745. case "8"://退回审核中的工单
  3746. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  3747. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure=2 and isnull(F_FeedbackTime,'')=''";
  3748. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3749. {
  3750. sql += " and F_SureUser='" + User.F_UserCode + "')";
  3751. }
  3752. else
  3753. {
  3754. sql += ")";
  3755. }
  3756. break;
  3757. case "9"://需履职界定表
  3758. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  3759. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  3760. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 and F_IsSatisfie=0 and F_AssignedId in(select F_ID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  3761. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3762. {
  3763. sql += " and F_MainDeptId='" + User.F_DeptId + "' ";
  3764. }
  3765. sql += "))";
  3766. break;
  3767. case "10"://履职界定待审核表
  3768. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit=0 )";
  3769. break;
  3770. case "11"://履职界定已审核表
  3771. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 )";
  3772. break;
  3773. case "12"://退回重办(去掉提交重办)
  3774. sql += " and F_WorkState = '" + (int)EnumWorkState.reload + "' and (F_Identification=1 or F_Identification=2)";
  3775. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3776. //{
  3777. // sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3778. // + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))";
  3779. //}
  3780. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  3781. // sql += "and (F_Identification!=0 or F_Identification is null) ";
  3782. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3783. {
  3784. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3785. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)" +
  3786. "and ISNULL(F_FeedbackTime, '')='' and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) and F_MainDeptId = " + User.F_DeptId;
  3787. }
  3788. break;
  3789. case "13"://下级单位退回
  3790. // int[] st = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  3791. sql += " and F_WorkState in (2,4,8)";
  3792. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3793. {
  3794. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext =4 and F_MainDeptId in (" + User.F_DeptId + ") and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  3795. }
  3796. break;
  3797. case "14"://正在办理
  3798. sql += " and F_WorkState in (2,4,8)";
  3799. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3800. {
  3801. string where = "and F_IsNext<3";
  3802. if (isreply > 0)
  3803. {
  3804. where = "and F_IsNext=3";
  3805. }
  3806. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 " +
  3807. "and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext != '0' and F_IsNext !='' " +
  3808. "and F_MainDeptId =" + User.F_DeptId + where + " and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  3809. }
  3810. break;
  3811. case "15"://已办理提交
  3812. sql += " and F_WorkState in (4,8)";
  3813. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3814. {
  3815. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext = 3 " +
  3816. "and F_MainDeptId =" + User.F_DeptId + " " +
  3817. "and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) " +
  3818. ") ";
  3819. }
  3820. else
  3821. {
  3822. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext = 3 " +
  3823. "and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3824. }
  3825. break;
  3826. case "16"://退回被拒绝
  3827. sql += " and F_WorkState in (4,8)";
  3828. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3829. {
  3830. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsNext =0 and F_IsSure =4 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3831. }
  3832. break;
  3833. case "17"://延时被拒绝
  3834. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  3835. {
  3836. sql += " and F_WorkState in (4,8)";
  3837. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure =5 and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) )";
  3838. }
  3839. else
  3840. {
  3841. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_IsSure =5 and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) )";
  3842. }
  3843. break;
  3844. case "18"://已办理未果
  3845. sql += " and F_WorkState in(6,7,9)";
  3846. sql += " and F_IsProResult = '2' ";
  3847. if (noresult == 0)
  3848. sql += " and (F_NoResult is null or F_NoResult ='') ";
  3849. else
  3850. sql += " and F_NoResult is not null and F_NoResult !='' ";
  3851. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  3852. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3853. {
  3854. sql += " and F_MainDeptId='" + User.F_DeptId + "')";
  3855. }
  3856. else
  3857. {
  3858. sql += ")";
  3859. }
  3860. break;
  3861. }
  3862. #endregion
  3863. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  3864. if (splituser.Trim() != "" && splituser != "undefined")
  3865. {
  3866. sql += " and F_SplitUser = '" + splituser + "' ";
  3867. }
  3868. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  3869. if (assuser.Trim() != "" && assuser != "undefined")
  3870. {
  3871. sql += " and F_AssignUser = '" + assuser + "' ";
  3872. }
  3873. #region 条件
  3874. if (strworkid.Trim() != "" && strworkid != "undefined")
  3875. {
  3876. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3877. }
  3878. if (strname.Trim() != "" && strname != "undefined")
  3879. {
  3880. sql += " and F_CusName like '%" + strname + "%' ";
  3881. }
  3882. if (islike > 0)
  3883. {
  3884. if (strtel.Trim() != "" && strtel != "undefined")
  3885. {
  3886. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3887. }
  3888. }
  3889. else
  3890. {
  3891. if (strtel.Trim() != "" && strtel != "undefined")
  3892. {
  3893. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3894. }
  3895. }
  3896. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3897. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3898. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3899. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3900. {
  3901. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3902. }
  3903. if (Result.Trim() != "" && Result != "undefined")
  3904. {
  3905. sql += " and F_Result like '%" + Result + "%' ";
  3906. }
  3907. if (ComContent.Trim() != "" && ComContent != "undefined")
  3908. {
  3909. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3910. }
  3911. if (strkey.Trim() != "" && strkey != "undefined")
  3912. {
  3913. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3914. " or F_Result like '%" + strkey + "%' ) ";
  3915. }
  3916. #region 坐席&调度员
  3917. if (strusercode.Trim() != "" && strusercode != "undefined")
  3918. {//坐席
  3919. var usercode = strusercode.Trim().Split(',');
  3920. var newusercode = "";
  3921. foreach (var item in usercode)
  3922. {
  3923. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3924. newusercode += "'" + item + "',";
  3925. }
  3926. newusercode = newusercode.Trim(',');
  3927. if (newusercode.Trim() != "" && newusercode != "undefined")
  3928. {
  3929. sql += " and F_CreateUser in (" + newusercode + ") ";
  3930. }
  3931. }
  3932. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3933. {//调度员
  3934. var ddusercode = strddusercode.Trim().Split(',');
  3935. var newusercode = "";
  3936. foreach (var item in ddusercode)
  3937. {
  3938. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3939. newusercode += "'" + item + "',";
  3940. }
  3941. newusercode = newusercode.Trim(',');
  3942. if (newusercode.Trim() != "" && newusercode != "undefined")
  3943. {
  3944. sql += " and F_AssignUser in(" + newusercode + ") ";
  3945. }
  3946. }
  3947. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3948. //{
  3949. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3950. //}
  3951. #endregion
  3952. if (source != 0)
  3953. {
  3954. sql += " and F_InfoSource = '" + source + "' ";
  3955. }
  3956. string sqlwhere = ""; string value = "";
  3957. if (keyid != 0)
  3958. {
  3959. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3960. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3961. // " or F_Key='" + keyid + "' )";
  3962. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  3963. }
  3964. if (type != 0)
  3965. {
  3966. sql += " and F_InfoType = '" + type + "' ";
  3967. }
  3968. if (bigtype != 0)
  3969. {
  3970. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3971. }
  3972. if (smalltype != 0)
  3973. {
  3974. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3975. }
  3976. if (sourcearea != 0)
  3977. {
  3978. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3979. }
  3980. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3981. {
  3982. if (strendtime.Trim() != "" && strendtime != "undefined")
  3983. {
  3984. sql += " and F_CreateTime between '" + strstarttime + "' and '" + strendtime + "'";
  3985. }
  3986. else
  3987. {
  3988. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3989. }
  3990. }
  3991. if (deptid != 0)
  3992. {
  3993. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  3994. }
  3995. if (ejdeptid > 0)
  3996. {
  3997. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  3998. }
  3999. if (strpageindex.Trim() != "")
  4000. {
  4001. pageindex = Convert.ToInt32(strpageindex);
  4002. }
  4003. if (strpagesize.Trim() != "")
  4004. {
  4005. pagesize = Convert.ToInt32(strpagesize);
  4006. }
  4007. #endregion
  4008. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4009. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4010. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4011. string cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptID3) AS EJDeptName,F_CloseTime,F_IsRelease,F_Identification,F_IsRelease,F_InfoSource " +
  4012. " ,(case when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See)= 0 then 0 when PATINDEX('%''" + User.F_DeptId + "''%',a.F_See) IS NULL then 0 else 1 end) as See,F_UnsuccessfulTime";
  4013. if (isdc > 0)
  4014. {
  4015. var top = " "; var orderby = " order by F_CreateTime";
  4016. if (sql == " and F_IsDelete=0 ")
  4017. {
  4018. top = " top 1000 "; orderby += " desc ";
  4019. }
  4020. //20190715调整导出字段 zhengbingbing
  4021. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4022. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4023. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4024. + " F_Result 办理结果 "
  4025. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  4026. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4027. if (msg == "")
  4028. {
  4029. return Success("导出成功");
  4030. }
  4031. else
  4032. {
  4033. return Error("导出失败");
  4034. }
  4035. }
  4036. int recordCount = 0;
  4037. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  4038. dt = BLL.PagerBLL.GetListPager(
  4039. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4040. "F_Id",
  4041. cols,
  4042. sql,
  4043. order,
  4044. pagesize,
  4045. pageindex,
  4046. true,
  4047. out recordCount);
  4048. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  4049. #region 声音文件
  4050. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4051. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4052. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4053. dt.Columns.Add("OverState", typeof(string));//超时状态
  4054. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4055. dt.Columns.Add("GapTime", typeof(string));//时间差
  4056. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4057. dt.Columns.Add("PDState", typeof(string));//派单状态
  4058. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4059. dt.Columns.Add("UnsuccessfulTime", typeof(object));//
  4060. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4061. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4062. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4063. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4064. foreach (DataRow dr in dt.Rows)
  4065. {
  4066. //获取最新交办信息
  4067. string iszbdw = "0";
  4068. string ispd = "";
  4069. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4070. if (state > 1)
  4071. {
  4072. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  4073. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4074. if (dtjb.Rows.Count > 0)
  4075. {
  4076. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4077. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4078. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4079. {
  4080. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4081. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  4082. }
  4083. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4084. #region
  4085. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4086. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  4087. //if (deptinfo != null)
  4088. //{
  4089. // if (did == User.F_DeptId) { iszbdw = "1"; }
  4090. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  4091. //}
  4092. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4093. //{
  4094. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  4095. // string dns = string.Empty;
  4096. // foreach (string strid in strids)
  4097. // {
  4098. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  4099. // if (dinfo != null)
  4100. // {
  4101. // if (string.IsNullOrEmpty(dns))
  4102. // {
  4103. // dns = dinfo.F_DeptName;//交办单位
  4104. // }
  4105. // else
  4106. // {
  4107. // dns += "," + dinfo.F_DeptName;//交办单位
  4108. // }
  4109. // }
  4110. // }
  4111. // dr["OtherDeptName"] = dns;
  4112. //}
  4113. #endregion
  4114. #region
  4115. //if (state < 6 || state == 8)
  4116. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4117. {
  4118. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4119. dr["LimitTime"] = lt;
  4120. if (!string.IsNullOrWhiteSpace(lt))
  4121. {
  4122. var ltime = DateTime.Parse(lt);
  4123. if (ltime > DateTime.Now)
  4124. {
  4125. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  4126. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4127. //if (SYSJ != null && SYSJ.ToString() != "")
  4128. //{
  4129. // try
  4130. // {
  4131. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4132. // }
  4133. // catch
  4134. // {
  4135. // }
  4136. //}
  4137. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  4138. //ltime = ltime.AddDays(-days);
  4139. }
  4140. else
  4141. {
  4142. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  4143. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4144. //if (SYSJ != null && SYSJ.ToString() != "")
  4145. //{
  4146. // try
  4147. // {
  4148. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  4149. // }
  4150. // catch
  4151. // {
  4152. // }
  4153. //}
  4154. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  4155. ltime = ltime.AddDays(days);
  4156. }
  4157. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4158. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4159. if (tss < 0) { tss = -tss; }
  4160. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4161. if (ltime > DateTime.Now)
  4162. {
  4163. if (configcs != null)
  4164. {
  4165. int cs = Int32.Parse(configcs.F_ParamValue);
  4166. if (ts.TotalHours > cs)
  4167. {
  4168. dr["OverState"] = 1;
  4169. }
  4170. else
  4171. {
  4172. dr["OverState"] = 2;
  4173. }
  4174. }
  4175. dr["GapTime"] = "剩余" + gshsj;
  4176. }
  4177. else
  4178. {
  4179. dr["OverState"] = 3;
  4180. dr["GapTime"] = "超时" + gshsj;
  4181. }
  4182. }
  4183. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4184. dr["PDState"] = ispd;
  4185. }
  4186. if (state == (int)EnumWorkState.finish)
  4187. {
  4188. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4189. var dttime = DateTime.Now;
  4190. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4191. else
  4192. {
  4193. var DealTime = dr["F_CloseTime"].ToString();
  4194. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4195. }
  4196. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4197. dr["LimitTime"] = lt;
  4198. if (!string.IsNullOrWhiteSpace(lt))
  4199. {
  4200. var ltime = DateTime.Parse(lt);
  4201. if (ltime < dttime)
  4202. {
  4203. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  4204. ltime = ltime.AddDays(days);
  4205. TimeSpan ts = dttime.Subtract(ltime);
  4206. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4207. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4208. dr["OverState"] = 3;
  4209. dr["GapTime"] = "超时" + gshsj;
  4210. }
  4211. }
  4212. }
  4213. #endregion
  4214. }
  4215. else
  4216. {
  4217. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4218. string mid = dr["F_MainDeptId"].ToString();
  4219. if (!string.IsNullOrEmpty(mid))
  4220. {
  4221. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  4222. }
  4223. }
  4224. }
  4225. if (User.F_RoleCode.ToUpper() == "WLDW" || User.F_RoleCode.ToUpper() == "EJWLDW")
  4226. {
  4227. if (dr["EJDeptName"] != null && dr["EJDeptName"].ToString() != "")
  4228. dr["DeptName"] = dr["EJDeptName"].ToString();
  4229. }
  4230. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4231. {
  4232. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  4233. }
  4234. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4235. {
  4236. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4237. }
  4238. if (dr["F_UnsuccessfulTime"] != null && dr["F_UnsuccessfulTime"].ToString() != "")
  4239. {
  4240. var lt = dr["F_UnsuccessfulTime"].ToString();//
  4241. if (!string.IsNullOrWhiteSpace(lt))
  4242. {
  4243. var ltime = DateTime.Parse(lt);
  4244. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4245. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4246. if (tss < 0) { tss = -tss; }
  4247. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4248. if (ltime > DateTime.Now)
  4249. {
  4250. dr["UnsuccessfulTime"] = "剩余" + gshsj;
  4251. }
  4252. else
  4253. {
  4254. dr["UnsuccessfulTime"] = "超时" + gshsj;
  4255. }
  4256. }
  4257. }
  4258. //string sqlpd = "SELECT TOP 1 * FROM T_Bus_AssignedInfo_Next WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  4259. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  4260. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4261. if (Int32.Parse(strtab) < 1 || Int32.Parse(strtab) == 16 || Int32.Parse(strtab) == 17)
  4262. {
  4263. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, -1, dr["F_InfoSource"].ToString());
  4264. #region 判断是否存在待督办
  4265. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4266. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4267. if (recount > 0 && butt != null)
  4268. btns.Remove(butt);
  4269. #endregion
  4270. }
  4271. else
  4272. {
  4273. if (Int32.Parse(strtab) == 9)
  4274. {//需履职界定
  4275. btns.Add(ButtonGroup.query());
  4276. btns.Add(ButtonGroup.perform());
  4277. }
  4278. else if (Int32.Parse(strtab) == 10)
  4279. {//履职界定待审核
  4280. btns.Add(ButtonGroup.query());
  4281. btns.Add(ButtonGroup.performaudit());
  4282. }
  4283. else if (Int32.Parse(strtab) == 7)
  4284. {//履职界定待审核
  4285. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4286. }
  4287. else if (Int32.Parse(strtab) == 12)
  4288. {//退回重办
  4289. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), "", "", 0, dr["F_InfoSource"].ToString());
  4290. var reback = btns.Find(c => c.key == ButtonGroup.reback().key);
  4291. if (reback != null)
  4292. btns.Remove(reback);
  4293. }
  4294. else if (Int32.Parse(strtab) == 14)
  4295. {//正在办理
  4296. btns.Add(ButtonGroup.query());
  4297. btns.Add(ButtonGroup.withdraw());
  4298. }
  4299. else if (Int32.Parse(strtab) == 13)
  4300. {//下级单位退回
  4301. btns.Add(ButtonGroup.query());
  4302. btns.Add(ButtonGroup.split());//转派
  4303. // btns.Add(ButtonGroup.reback());//
  4304. btns.Add(ButtonGroup.turndown());
  4305. }
  4306. else if (Int32.Parse(strtab) == 15)
  4307. {//已办理提交
  4308. if (ispd == "3")
  4309. {
  4310. btns.Add(ButtonGroup.auditdeal());
  4311. btns.Add(ButtonGroup.split());
  4312. }
  4313. btns.Add(ButtonGroup.feedback());//
  4314. // btns.Add(ButtonGroup.redo());//
  4315. btns.Add(ButtonGroup.query());
  4316. }
  4317. else if (Int32.Parse(strtab) == 18 && User.F_RoleCode == "WLDW")
  4318. {
  4319. btns.Add(ButtonGroup.Append());//
  4320. btns.Add(ButtonGroup.AssignUnsuccessful());//
  4321. btns.Add(ButtonGroup.query());
  4322. }
  4323. else
  4324. btns.Add(ButtonGroup.query());
  4325. }
  4326. dr["Buttons"] = btns;
  4327. }
  4328. #endregion
  4329. var obj = new
  4330. {
  4331. state = "success",
  4332. message = "成功",
  4333. rows = dt,
  4334. total = recordCount
  4335. };
  4336. return Content(obj.ToJson());
  4337. }
  4338. /// <summary>
  4339. /// 添加工单信息
  4340. /// </summary>
  4341. /// <returns></returns>
  4342. //[Authority]
  4343. public ActionResult AddWorkOrderOper()
  4344. {
  4345. string workorderid = RequestString.GetFormString("workorderid");
  4346. string remarks = RequestString.GetFormString("remarks");
  4347. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  4348. if (modelT_Bus_WorkOrder != null)
  4349. {
  4350. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4351. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4352. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4353. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4354. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4355. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  4356. oper.F_Message = userinfo + " 办理了工单:" + remarks;
  4357. oper.F_CreateUser = User.F_UserCode;
  4358. oper.F_CreateTime = DateTime.Now;
  4359. oper.F_IsDelete = 0;
  4360. if (operBLL.Add(oper) > 0)
  4361. return Success("操作成功");
  4362. else
  4363. return Error("操作失败");
  4364. }
  4365. else
  4366. {
  4367. return Error("工单不存在");
  4368. }
  4369. }
  4370. /// <summary>
  4371. /// 获取单位处理列表
  4372. /// </summary>
  4373. /// <returns></returns>
  4374. //[Authority]
  4375. public ActionResult GetXBDWDealList(int isdc = 0)
  4376. {
  4377. DataTable dt = new DataTable();
  4378. string sql = " and F_IsDelete=0";
  4379. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4380. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4381. int islike = RequestString.GetInt("islike", 1);
  4382. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4383. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4384. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4385. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4386. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4387. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4388. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4389. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4390. int source = RequestString.GetInt("source", 0);
  4391. int keyid = RequestString.GetInt("keyid", 0);
  4392. int type = RequestString.GetInt("type", 0);
  4393. int bigtype = RequestString.GetInt("bigtype", 0);
  4394. int smalltype = RequestString.GetInt("smalltype", 0);
  4395. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4396. int deptid = RequestString.GetInt("deptid", 0);
  4397. string strpageindex = RequestString.GetQueryString("page");
  4398. int pageindex = 1;
  4399. string strpagesize = RequestString.GetQueryString("pagesize");
  4400. int pagesize = 10;
  4401. switch (strtab)
  4402. {
  4403. case "0"://待处理工单
  4404. int isyq = RequestString.GetInt("isyq", -1);
  4405. if (strstate.Trim() != "" && strstate != "undefined")
  4406. {
  4407. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4408. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4409. else
  4410. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4411. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4412. }
  4413. else
  4414. {
  4415. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4416. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4417. //sql += " and F_WorkState in (2,4,8)";
  4418. }
  4419. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4420. + " ISNULL(F_FeedbackTime, '')='' ";
  4421. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4422. {
  4423. sql += " and F_DeptId =" + User.F_DeptId;
  4424. }
  4425. if (isyq != -1)
  4426. {
  4427. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  4428. }
  4429. else
  4430. {
  4431. sql += ")";
  4432. }
  4433. break;
  4434. case "1"://已办理的工单
  4435. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  4436. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4437. {
  4438. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4439. }
  4440. else
  4441. {
  4442. sql += ")";
  4443. }
  4444. break;
  4445. }
  4446. if (deptid != 0)
  4447. {
  4448. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  4449. }
  4450. if (strworkid.Trim() != "" && strworkid != "undefined")
  4451. {
  4452. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4453. }
  4454. if (strname.Trim() != "" && strname != "undefined")
  4455. {
  4456. sql += " and F_CusName like '%" + strname + "%' ";
  4457. }
  4458. if (islike > 0)
  4459. {
  4460. if (strtel.Trim() != "" && strtel != "undefined")
  4461. {
  4462. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4463. }
  4464. }
  4465. else
  4466. {
  4467. if (strtel.Trim() != "" && strtel != "undefined")
  4468. {
  4469. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4470. }
  4471. }
  4472. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4473. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4474. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4475. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4476. {
  4477. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4478. }
  4479. if (Result.Trim() != "" && Result != "undefined")
  4480. {
  4481. sql += " and F_Result like '%" + Result + "%' ";
  4482. }
  4483. if (ComContent.Trim() != "" && ComContent != "undefined")
  4484. {
  4485. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4486. }
  4487. if (strkey.Trim() != "" && strkey != "undefined")
  4488. {
  4489. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4490. " or F_Result like '%" + strkey + "%' ) ";
  4491. }
  4492. #region 坐席&调度员
  4493. if (strusercode.Trim() != "" && strusercode != "undefined")
  4494. {//坐席
  4495. var usercode = strusercode.Trim().Split(',');
  4496. var newusercode = "";
  4497. foreach (var item in usercode)
  4498. {
  4499. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4500. newusercode += "'" + item + "',";
  4501. }
  4502. newusercode = newusercode.Trim(',');
  4503. if (newusercode.Trim() != "" && newusercode != "undefined")
  4504. {
  4505. sql += " and F_CreateUser in (" + newusercode + ") ";
  4506. }
  4507. }
  4508. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4509. {//调度员
  4510. var ddusercode = strddusercode.Trim().Split(',');
  4511. var newusercode = "";
  4512. foreach (var item in ddusercode)
  4513. {
  4514. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4515. newusercode += "'" + item + "',";
  4516. }
  4517. newusercode = newusercode.Trim(',');
  4518. if (newusercode.Trim() != "" && newusercode != "undefined")
  4519. {
  4520. sql += " and F_AssignUser in(" + newusercode + ") ";
  4521. }
  4522. }
  4523. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4524. //{
  4525. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4526. //}
  4527. #endregion
  4528. if (source != 0)
  4529. {
  4530. sql += " and F_InfoSource = '" + source + "' ";
  4531. }
  4532. string sqlwhere = "";
  4533. if (keyid != 0)
  4534. {
  4535. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4536. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4537. // " or F_Key='" + keyid + "' )";
  4538. }
  4539. if (type != 0)
  4540. {
  4541. sql += " and F_InfoType = '" + type + "' ";
  4542. }
  4543. if (bigtype != 0)
  4544. {
  4545. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4546. }
  4547. if (smalltype != 0)
  4548. {
  4549. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4550. }
  4551. if (sourcearea != 0)
  4552. {
  4553. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4554. }
  4555. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4556. {
  4557. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4558. }
  4559. if (strendtime.Trim() != "" && strendtime != "undefined")
  4560. {
  4561. sql += " and F_CreateTime<='" + strendtime + "' ";
  4562. }
  4563. if (strpageindex.Trim() != "")
  4564. {
  4565. pageindex = Convert.ToInt32(strpageindex);
  4566. }
  4567. if (strpagesize.Trim() != "")
  4568. {
  4569. pagesize = Convert.ToInt32(strpagesize);
  4570. }
  4571. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4572. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4573. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4574. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  4575. if (isdc > 0)
  4576. {
  4577. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4578. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4579. if (msg == "")
  4580. {
  4581. return Success("导出成功");
  4582. }
  4583. else
  4584. {
  4585. return Error("导出失败");
  4586. }
  4587. }
  4588. int recordCount = 0;
  4589. dt = BLL.PagerBLL.GetListPager(
  4590. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4591. "F_Id",
  4592. cols,
  4593. sql,
  4594. "ORDER BY F_CreateTime DESC",
  4595. pagesize,
  4596. pageindex,
  4597. true,
  4598. out recordCount);
  4599. #region 声音文件
  4600. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4601. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4602. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4603. dt.Columns.Add("OverState", typeof(string));//超时状态
  4604. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4605. dt.Columns.Add("GapTime", typeof(string));//时间差
  4606. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4607. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4608. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4609. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4610. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4611. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4612. foreach (DataRow dr in dt.Rows)
  4613. {
  4614. //获取最新交办信息
  4615. string iszbdw = "0";
  4616. string ispd = "";
  4617. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4618. if (state > 1)
  4619. {
  4620. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  4621. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4622. if (dtjb.Rows.Count > 0)
  4623. {
  4624. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4625. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4626. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4627. {
  4628. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4629. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  4630. }
  4631. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4632. #region
  4633. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4634. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  4635. //if (deptinfo != null)
  4636. //{
  4637. // if (did == User.F_DeptId) { iszbdw = "1"; }
  4638. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  4639. //}
  4640. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4641. //{
  4642. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  4643. // string dns = string.Empty;
  4644. // foreach (string strid in strids)
  4645. // {
  4646. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  4647. // if (dinfo != null)
  4648. // {
  4649. // if (string.IsNullOrEmpty(dns))
  4650. // {
  4651. // dns = dinfo.F_DeptName;//交办单位
  4652. // }
  4653. // else
  4654. // {
  4655. // dns += "," + dinfo.F_DeptName;//交办单位
  4656. // }
  4657. // }
  4658. // }
  4659. // dr["OtherDeptName"] = dns;
  4660. //}
  4661. #endregion
  4662. #region
  4663. //if (state < 6 || state == 8)
  4664. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4665. {
  4666. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4667. dr["LimitTime"] = lt;
  4668. if (!string.IsNullOrWhiteSpace(lt))
  4669. {
  4670. var ltime = DateTime.Parse(lt);
  4671. if (ltime > DateTime.Now)
  4672. {
  4673. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  4674. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4675. //if (SYSJ != null && SYSJ.ToString() != "")
  4676. //{
  4677. // try
  4678. // {
  4679. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4680. // }
  4681. // catch
  4682. // {
  4683. // }
  4684. //}
  4685. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  4686. //ltime = ltime.AddDays(days);
  4687. }
  4688. else
  4689. {
  4690. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  4691. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4692. //if (SYSJ != null && SYSJ.ToString() != "")
  4693. //{
  4694. // try
  4695. // {
  4696. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  4697. // }
  4698. // catch
  4699. // {
  4700. // }
  4701. //}
  4702. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  4703. ltime = ltime.AddDays(days);
  4704. }
  4705. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4706. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4707. if (tss < 0) { tss = -tss; }
  4708. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4709. if (ltime > DateTime.Now)
  4710. {
  4711. if (configcs != null)
  4712. {
  4713. int cs = Int32.Parse(configcs.F_ParamValue);
  4714. if (ts.TotalHours > cs)
  4715. {
  4716. dr["OverState"] = 1;
  4717. }
  4718. else
  4719. {
  4720. dr["OverState"] = 2;
  4721. }
  4722. }
  4723. dr["GapTime"] = "剩余" + gshsj;
  4724. }
  4725. else
  4726. {
  4727. dr["OverState"] = 3;
  4728. dr["GapTime"] = "超时" + gshsj;
  4729. }
  4730. }
  4731. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4732. }
  4733. if (state == (int)EnumWorkState.finish)
  4734. {
  4735. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4736. var dttime = DateTime.Now;
  4737. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4738. else
  4739. {
  4740. var DealTime = dr["F_CloseTime"].ToString();
  4741. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4742. }
  4743. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4744. dr["LimitTime"] = lt;
  4745. if (!string.IsNullOrWhiteSpace(lt))
  4746. {
  4747. var ltime = DateTime.Parse(lt);
  4748. if (ltime < dttime)
  4749. {
  4750. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  4751. ltime = ltime.AddDays(days);
  4752. TimeSpan ts = dttime.Subtract(ltime);
  4753. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4754. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4755. dr["OverState"] = 3;
  4756. dr["GapTime"] = "超时" + gshsj;
  4757. }
  4758. }
  4759. }
  4760. #endregion
  4761. }
  4762. else
  4763. {
  4764. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4765. string mid = dr["F_MainDeptId"].ToString();
  4766. if (!string.IsNullOrEmpty(mid))
  4767. {
  4768. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  4769. }
  4770. }
  4771. }
  4772. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4773. {
  4774. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  4775. }
  4776. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4777. {
  4778. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4779. }
  4780. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4781. if (Int32.Parse(strtab) < 1)
  4782. {
  4783. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4784. #region 判断是否存在待督办
  4785. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4786. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4787. if (recount > 0 && butt != null)
  4788. btns.Remove(butt);
  4789. #endregion
  4790. }
  4791. else
  4792. {
  4793. btns.Add(ButtonGroup.query());
  4794. }
  4795. dr["Buttons"] = btns;
  4796. }
  4797. #endregion
  4798. var obj = new
  4799. {
  4800. state = "success",
  4801. message = "成功",
  4802. rows = dt,
  4803. total = recordCount
  4804. };
  4805. return Content(obj.ToJson());
  4806. }
  4807. /// <summary>
  4808. /// 获取单位主办协办未处理工单列表
  4809. /// </summary>
  4810. /// <returns></returns>
  4811. //[Authority]
  4812. public ActionResult GetDWNoDealList(int isdc = 0)
  4813. {
  4814. DataTable dt = new DataTable();
  4815. string sql = " and F_IsDelete=0";
  4816. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4817. int islike = RequestString.GetInt("islike", 1);
  4818. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4819. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4820. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4821. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4822. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4823. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4824. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4825. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4826. int source = RequestString.GetInt("source", 0);
  4827. int keyid = RequestString.GetInt("keyid", 0);
  4828. int type = RequestString.GetInt("type", 0);
  4829. int bigtype = RequestString.GetInt("bigtype", 0);
  4830. int smalltype = RequestString.GetInt("smalltype", 0);
  4831. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4832. int deptid = RequestString.GetInt("deptid", 0);
  4833. string strpageindex = RequestString.GetQueryString("page");
  4834. int pageindex = 1;
  4835. string strpagesize = RequestString.GetQueryString("pagesize");
  4836. int pagesize = 10;
  4837. if (User.F_RoleCode == "ZXHWY")
  4838. {
  4839. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  4840. }
  4841. #region 坐席&调度员
  4842. if (strusercode.Trim() != "" && strusercode != "undefined")
  4843. {//坐席
  4844. var usercode = strusercode.Trim().Split(',');
  4845. var newusercode = "";
  4846. foreach (var item in usercode)
  4847. {
  4848. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4849. newusercode += "'" + item + "',";
  4850. }
  4851. newusercode = newusercode.Trim(',');
  4852. if (newusercode.Trim() != "" && newusercode != "undefined")
  4853. {
  4854. sql += " and F_CreateUser in (" + newusercode + ") ";
  4855. }
  4856. }
  4857. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4858. {//调度员
  4859. var ddusercode = strddusercode.Trim().Split(',');
  4860. var newusercode = "";
  4861. foreach (var item in ddusercode)
  4862. {
  4863. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4864. newusercode += "'" + item + "',";
  4865. }
  4866. newusercode = newusercode.Trim(',');
  4867. if (newusercode.Trim() != "" && newusercode != "undefined")
  4868. {
  4869. sql += " and F_AssignUser in(" + newusercode + ") ";
  4870. }
  4871. }
  4872. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4873. //{
  4874. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4875. //}
  4876. #endregion
  4877. sql += " and ( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  4878. if (User.F_RoleCode == "WLDW")
  4879. {
  4880. sql += " and (F_MainDeptId = '" + User.F_DeptId + "' or F_MainDeptID3 like '%" + User.F_DeptId + "%')";
  4881. }
  4882. else if (deptid != 0)
  4883. {
  4884. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  4885. }
  4886. sql += ") or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' ";
  4887. if (User.F_RoleCode == "WLDW")
  4888. {
  4889. sql += " and (F_DeptId = '" + User.F_DeptId + "' or F_MainDeptID3 like '%" + User.F_DeptId + "%')";
  4890. }
  4891. else if (deptid != 0)
  4892. {
  4893. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3 like'%" + deptid + "%')";
  4894. }
  4895. sql += "))";
  4896. if (strstate.Trim() != "" && strstate != "undefined")
  4897. {
  4898. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4899. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4900. else
  4901. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4902. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4903. }
  4904. else
  4905. {
  4906. sql += " and F_WorkState in (2,4,8)";
  4907. }
  4908. if (strworkid.Trim() != "" && strworkid != "undefined")
  4909. {
  4910. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4911. }
  4912. if (strname.Trim() != "" && strname != "undefined")
  4913. {
  4914. sql += " and F_CusName like '%" + strname + "%' ";
  4915. }
  4916. if (islike > 0)
  4917. {
  4918. if (strtel.Trim() != "" && strtel != "undefined")
  4919. {
  4920. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4921. }
  4922. }
  4923. else
  4924. {
  4925. if (strtel.Trim() != "" && strtel != "undefined")
  4926. {
  4927. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4928. }
  4929. }
  4930. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4931. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4932. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4933. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4934. {
  4935. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4936. }
  4937. if (Result.Trim() != "" && Result != "undefined")
  4938. {
  4939. sql += " and F_Result like '%" + Result + "%' ";
  4940. }
  4941. if (ComContent.Trim() != "" && ComContent != "undefined")
  4942. {
  4943. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4944. }
  4945. if (strkey.Trim() != "" && strkey != "undefined")
  4946. {
  4947. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4948. " or F_Result like '%" + strkey + "%' ) ";
  4949. }
  4950. if (source != 0)
  4951. {
  4952. sql += " and F_InfoSource = '" + source + "' ";
  4953. }
  4954. string sqlwhere = "";
  4955. if (keyid != 0)
  4956. {
  4957. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4958. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4959. // " or F_Key='" + keyid + "' )";
  4960. }
  4961. if (type != 0)
  4962. {
  4963. sql += " and F_InfoType = '" + type + "' ";
  4964. }
  4965. if (bigtype != 0)
  4966. {
  4967. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4968. }
  4969. if (smalltype != 0)
  4970. {
  4971. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4972. }
  4973. if (sourcearea != 0)
  4974. {
  4975. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4976. }
  4977. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4978. {
  4979. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4980. }
  4981. if (strendtime.Trim() != "" && strendtime != "undefined")
  4982. {
  4983. sql += " and F_CreateTime<='" + strendtime + "' ";
  4984. }
  4985. if (strpageindex.Trim() != "")
  4986. {
  4987. pageindex = Convert.ToInt32(strpageindex);
  4988. }
  4989. if (strpagesize.Trim() != "")
  4990. {
  4991. pagesize = Convert.ToInt32(strpagesize);
  4992. }
  4993. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  4994. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  4995. if (isdc > 0)
  4996. {
  4997. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4998. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4999. if (msg == "")
  5000. {
  5001. return Success("导出成功");
  5002. }
  5003. else
  5004. {
  5005. return Error("导出失败");
  5006. }
  5007. }
  5008. int recordCount = 0;
  5009. dt = BLL.PagerBLL.GetListPager(
  5010. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5011. "F_Id",
  5012. cols,
  5013. sql,
  5014. "ORDER BY F_CreateTime DESC",
  5015. pagesize,
  5016. pageindex,
  5017. true,
  5018. out recordCount);
  5019. #region 声音文件
  5020. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5021. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5022. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5023. dt.Columns.Add("OverState", typeof(string));//超时状态
  5024. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5025. dt.Columns.Add("GapTime", typeof(string));//时间差
  5026. dt.Columns.Add("FilePath", typeof(string));
  5027. dt.Columns.Add("Buttons", typeof(object));
  5028. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5029. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5030. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5031. foreach (DataRow dr in dt.Rows)
  5032. {
  5033. //获取最新交办信息
  5034. string iszbdw = "0";
  5035. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5036. if (state > 1)
  5037. {
  5038. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  5039. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5040. if (dtjb.Rows.Count > 0)
  5041. {
  5042. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5043. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5044. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5045. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5046. {
  5047. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5048. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  5049. }
  5050. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5051. #region
  5052. //if (state < 6 || state == 8)
  5053. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5054. {
  5055. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5056. dr["LimitTime"] = lt;
  5057. if (!string.IsNullOrWhiteSpace(lt))
  5058. {
  5059. var ltime = DateTime.Parse(lt);
  5060. if (ltime > DateTime.Now)
  5061. {
  5062. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  5063. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5064. //if (SYSJ != null && SYSJ.ToString() != "")
  5065. //{
  5066. // try
  5067. // {
  5068. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5069. // }
  5070. // catch
  5071. // {
  5072. // }
  5073. //}
  5074. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5075. //ltime = ltime.AddDays(-days);
  5076. }
  5077. else
  5078. {
  5079. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  5080. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5081. //if (SYSJ != null && SYSJ.ToString() != "")
  5082. //{
  5083. // try
  5084. // {
  5085. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5086. // }
  5087. // catch
  5088. // {
  5089. // }
  5090. //}
  5091. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5092. ltime = ltime.AddDays(days);
  5093. }
  5094. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5095. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5096. if (tss < 0) { tss = -tss; }
  5097. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5098. if (ltime > DateTime.Now)
  5099. {
  5100. if (configcs != null)
  5101. {
  5102. int cs = Int32.Parse(configcs.F_ParamValue);
  5103. if (ts.TotalHours > cs)
  5104. {
  5105. dr["OverState"] = 1;
  5106. }
  5107. else
  5108. {
  5109. dr["OverState"] = 2;
  5110. }
  5111. }
  5112. dr["GapTime"] = "剩余" + gshsj;
  5113. }
  5114. else
  5115. {
  5116. dr["OverState"] = 3;
  5117. dr["GapTime"] = "超时" + gshsj;
  5118. }
  5119. }
  5120. }
  5121. if (state == (int)EnumWorkState.finish)
  5122. {
  5123. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5124. var dttime = DateTime.Now;
  5125. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5126. else
  5127. {
  5128. var DealTime = dr["F_CloseTime"].ToString();
  5129. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5130. }
  5131. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5132. dr["LimitTime"] = lt;
  5133. if (!string.IsNullOrWhiteSpace(lt))
  5134. {
  5135. var ltime = DateTime.Parse(lt);
  5136. if (ltime < dttime)
  5137. {
  5138. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  5139. ltime = ltime.AddDays(days);
  5140. TimeSpan ts = dttime.Subtract(ltime);
  5141. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5142. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5143. dr["OverState"] = 3;
  5144. dr["GapTime"] = "超时" + gshsj;
  5145. }
  5146. }
  5147. }
  5148. #endregion
  5149. }
  5150. else
  5151. {
  5152. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5153. string mid = dr["F_MainDeptId"].ToString();
  5154. if (!string.IsNullOrEmpty(mid))
  5155. {
  5156. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  5157. }
  5158. }
  5159. }
  5160. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5161. {
  5162. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5163. }
  5164. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5165. {
  5166. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5167. }
  5168. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5169. btns.Add(ButtonGroup.query());
  5170. dr["Buttons"] = btns;
  5171. }
  5172. #endregion
  5173. var obj = new
  5174. {
  5175. state = "success",
  5176. message = "成功",
  5177. rows = dt,
  5178. total = recordCount
  5179. };
  5180. return Content(obj.ToJson());
  5181. }
  5182. /// <summary>
  5183. /// 获取二级单位处理列表
  5184. /// </summary>
  5185. /// <returns></returns>
  5186. //[Authority]
  5187. public ActionResult GetEJDWDealList(int isdc = 0)
  5188. {
  5189. DataTable dt = new DataTable();
  5190. string sql = " and F_IsDelete=0";
  5191. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  5192. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5193. int islike = RequestString.GetInt("islike", 1);
  5194. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5195. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5196. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5197. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5198. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5199. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5200. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5201. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5202. int source = RequestString.GetInt("source", 0);
  5203. int keyid = RequestString.GetInt("keyid", 0);
  5204. int type = RequestString.GetInt("type", 0);
  5205. int bigtype = RequestString.GetInt("bigtype", 0);
  5206. int smalltype = RequestString.GetInt("smalltype", 0);
  5207. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5208. int deptid = RequestString.GetInt("deptid", 0);
  5209. int isys = RequestString.GetInt("isys", -1);
  5210. string strpageindex = RequestString.GetQueryString("page");
  5211. int pageindex = 1;
  5212. string strpagesize = RequestString.GetQueryString("pagesize");
  5213. int pagesize = 10;
  5214. #region 模块
  5215. switch (strtab)
  5216. {
  5217. case "0"://待处理工单
  5218. if (strstate.Trim() != "" && strstate != "undefined")
  5219. {
  5220. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5221. }
  5222. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay
  5223. , (int)EnumWorkState.reload};
  5224. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  5225. //sql += " and F_WorkState in (4,5) ";
  5226. if (isys > -1)
  5227. {
  5228. if (isys == 0) //未延时
  5229. {
  5230. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5231. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit=1) ) " +
  5232. "and F_MainDeptID3 like'%" + User.F_DeptId + "%'";
  5233. }
  5234. else
  5235. {
  5236. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5237. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit=1))"
  5238. + "and F_MainDeptID3 like'%" + User.F_DeptId + "%'";
  5239. }
  5240. }
  5241. else
  5242. {
  5243. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5244. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))"
  5245. + "and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5246. }
  5247. break;
  5248. case "1"://已办理的工单
  5249. if (strstate.Trim() != "" && strstate != "undefined")
  5250. {
  5251. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5252. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5253. else
  5254. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5255. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5256. }
  5257. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next c WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  5258. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5259. {
  5260. sql += " and F_CreateUser='" + User.F_UserCode + "') and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5261. }
  5262. else
  5263. {
  5264. sql += ")";
  5265. }
  5266. break;
  5267. case "3"://已办未果
  5268. sql += " and F_WorkState in(6,7) ";
  5269. sql += " and F_IsProResult = '" + 2 + "' ";
  5270. sql += " and F_NoResult like'%" + User.F_DeptId + "%' ";
  5271. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5272. //{
  5273. // sql += " and F_CreateUser='" + User.F_UserCode + "')";
  5274. //}
  5275. //else
  5276. //{
  5277. // sql += ")";
  5278. //}
  5279. break;
  5280. //三级单位给已签收工单增加一个菜单
  5281. case "4"://已签收
  5282. // sql += " and F_WorkState in (4,5,8)";
  5283. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (1))";
  5284. break;
  5285. case "5"://
  5286. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)" +
  5287. "and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5288. break;
  5289. case "6"://已完结
  5290. sql += " and F_WorkState = '9' ";
  5291. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  5292. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5293. {
  5294. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  5295. }
  5296. else
  5297. {
  5298. sql += ")";
  5299. }
  5300. break;
  5301. case "7"://二级待审回复
  5302. sql += " and F_WorkOrderID in( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_IsDelete = 0 and F_CreateTime = a.F_AssignTime and F_IsNext = 3 ) and F_MainDeptID3 like '%" + User.F_DeptId + "%' and F_WorkState in(4, 8)) ";
  5303. break;
  5304. //
  5305. }
  5306. #endregion
  5307. #region 条件
  5308. if (strworkid.Trim() != "" && strworkid != "undefined")
  5309. {
  5310. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5311. }
  5312. if (strname.Trim() != "" && strname != "undefined")
  5313. {
  5314. sql += " and F_CusName like '%" + strname + "%' ";
  5315. }
  5316. if (islike > 0)
  5317. {
  5318. if (strtel.Trim() != "" && strtel != "undefined")
  5319. {
  5320. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5321. }
  5322. }
  5323. else
  5324. {
  5325. if (strtel.Trim() != "" && strtel != "undefined")
  5326. {
  5327. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5328. }
  5329. }
  5330. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5331. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5332. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5333. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5334. {
  5335. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5336. }
  5337. if (Result.Trim() != "" && Result != "undefined")
  5338. {
  5339. sql += " and F_Result like '%" + Result + "%' ";
  5340. }
  5341. if (ComContent.Trim() != "" && ComContent != "undefined")
  5342. {
  5343. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5344. }
  5345. if (strkey.Trim() != "" && strkey != "undefined")
  5346. {
  5347. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5348. " or F_Result like '%" + strkey + "%' ) ";
  5349. }
  5350. #region 坐席&调度员
  5351. if (strusercode.Trim() != "" && strusercode != "undefined")
  5352. {//坐席
  5353. var usercode = strusercode.Trim().Split(',');
  5354. var newusercode = "";
  5355. foreach (var item in usercode)
  5356. {
  5357. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5358. newusercode += "'" + item + "',";
  5359. }
  5360. newusercode = newusercode.Trim(',');
  5361. if (newusercode.Trim() != "" && newusercode != "undefined")
  5362. {
  5363. sql += " and F_CreateUser in (" + newusercode + ") ";
  5364. }
  5365. }
  5366. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5367. {//调度员
  5368. var ddusercode = strddusercode.Trim().Split(',');
  5369. var newusercode = "";
  5370. foreach (var item in ddusercode)
  5371. {
  5372. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5373. newusercode += "'" + item + "',";
  5374. }
  5375. newusercode = newusercode.Trim(',');
  5376. if (newusercode.Trim() != "" && newusercode != "undefined")
  5377. {
  5378. sql += " and F_AssignUser in(" + newusercode + ") ";
  5379. }
  5380. }
  5381. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5382. //{
  5383. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5384. //}
  5385. #endregion
  5386. if (source != 0)
  5387. {
  5388. sql += " and F_InfoSource = '" + source + "' ";
  5389. }
  5390. string sqlwhere = "";
  5391. if (keyid != 0)
  5392. {
  5393. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5394. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5395. // " or F_Key='" + keyid + "' )";
  5396. }
  5397. if (type != 0)
  5398. {
  5399. sql += " and F_InfoType = '" + type + "' ";
  5400. }
  5401. if (bigtype != 0)
  5402. {
  5403. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5404. }
  5405. if (smalltype != 0)
  5406. {
  5407. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5408. }
  5409. if (sourcearea != 0)
  5410. {
  5411. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5412. }
  5413. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5414. {
  5415. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5416. }
  5417. if (strendtime.Trim() != "" && strendtime != "undefined")
  5418. {
  5419. sql += " and F_CreateTime<='" + strendtime + "' ";
  5420. }
  5421. if (deptid != 0)
  5422. {
  5423. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  5424. }
  5425. if (strpageindex.Trim() != "")
  5426. {
  5427. pageindex = Convert.ToInt32(strpageindex);
  5428. }
  5429. if (strpagesize.Trim() != "")
  5430. {
  5431. pagesize = Convert.ToInt32(strpagesize);
  5432. }
  5433. #endregion
  5434. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  5435. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  5436. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5437. //,(case when F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit=1) then '1'else '0' end) IsYS
  5438. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,(select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc) as F_LimitTime,F_IsRelease,F_Identification,dbo.GetDeptNames(F_MainDeptId)"
  5439. ;
  5440. //(select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId=a.F_WorkOrderId) as
  5441. if (isdc > 0)
  5442. {
  5443. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  5444. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  5445. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =a.F_WorkOrderId order by F_Id desc) 办理结果, "
  5446. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 ,"
  5447. + "(case when F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit=1) then '1'else '0' end) 延时状态"
  5448. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5449. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5450. if (msg == "")
  5451. {
  5452. return Success("导出成功");
  5453. }
  5454. else
  5455. {
  5456. return Error("导出失败");
  5457. }
  5458. }
  5459. int recordCount = 0;
  5460. dt = BLL.PagerBLL.GetListPager(
  5461. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5462. "F_Id",
  5463. cols,
  5464. sql,
  5465. "ORDER BY F_CreateTime DESC",
  5466. pagesize,
  5467. pageindex,
  5468. true,
  5469. out recordCount);
  5470. #region 声音文件
  5471. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5472. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5473. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5474. dt.Columns.Add("OverState", typeof(string));//超时状态
  5475. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5476. dt.Columns.Add("GapTime", typeof(string));//时间差
  5477. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  5478. dt.Columns.Add("PDState", typeof(string));//派单状态
  5479. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  5480. dt.Columns.Add("IsYS", typeof(string));//是否延时
  5481. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5482. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5483. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5484. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  5485. foreach (DataRow dr in dt.Rows)
  5486. {
  5487. string yssql = "select * from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete = 0 and F_IsAudit = 1 and F_WorkOrderID='" + dr["F_WorkOrderId"].ToString() + "'";
  5488. var dtys = DbHelperSQL.Query(yssql).Tables[0];
  5489. if (dtys.Rows.Count > 0)
  5490. {
  5491. dr["IsYS"] = 1;
  5492. }
  5493. else
  5494. {
  5495. dr["IsYS"] = 0;//未延时
  5496. }
  5497. //获取最新交办信息
  5498. string iszbdw = "0";
  5499. int ispd = 1;
  5500. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5501. if (state > 1)
  5502. {
  5503. if (User.F_RoleCode == "EJWLDW")
  5504. {
  5505. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo_Next WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc";
  5506. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5507. if (dtjb.Rows.Count > 0)
  5508. {
  5509. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5510. var lt = dr["F_LimitTime"].ToString();//限制时间
  5511. dr["LimitTime"] = lt;
  5512. #region
  5513. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5514. {
  5515. if (!string.IsNullOrWhiteSpace(lt))
  5516. {
  5517. var ltime = DateTime.Parse(lt);
  5518. if (ltime > DateTime.Now)
  5519. {
  5520. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  5521. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5522. //if (SYSJ != null && SYSJ.ToString() != "")
  5523. //{
  5524. // try
  5525. // {
  5526. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5527. // }
  5528. // catch
  5529. // {
  5530. // }
  5531. //}
  5532. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5533. //ltime = ltime.AddDays(-days);
  5534. }
  5535. else
  5536. {
  5537. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  5538. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5539. //if (SYSJ != null && SYSJ.ToString() != "")
  5540. //{
  5541. // try
  5542. // {
  5543. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5544. // }
  5545. // catch
  5546. // {
  5547. // }
  5548. //}
  5549. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5550. ltime = ltime.AddDays(days);
  5551. }
  5552. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5553. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5554. if (tss < 0) { tss = -tss; }
  5555. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5556. if (ltime > DateTime.Now)
  5557. {
  5558. if (configcs != null)
  5559. {
  5560. int cs = Int32.Parse(configcs.F_ParamValue);
  5561. if (ts.TotalHours > cs)
  5562. {
  5563. dr["OverState"] = 1;
  5564. }
  5565. else
  5566. {
  5567. dr["OverState"] = 2;
  5568. }
  5569. }
  5570. dr["GapTime"] = "剩余" + gshsj;
  5571. }
  5572. else
  5573. {
  5574. dr["OverState"] = 3;
  5575. dr["GapTime"] = "超时" + gshsj;
  5576. }
  5577. }
  5578. }
  5579. if (state == (int)EnumWorkState.finish)
  5580. {
  5581. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5582. var dttime = DateTime.Now;
  5583. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5584. else
  5585. {
  5586. var DealTime = dr["F_CloseTime"].ToString();
  5587. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5588. }
  5589. if (!string.IsNullOrWhiteSpace(lt))
  5590. {
  5591. var ltime = DateTime.Parse(lt);
  5592. if (ltime < dttime)
  5593. {
  5594. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  5595. ltime = ltime.AddDays(days);
  5596. TimeSpan ts = dttime.Subtract(ltime);
  5597. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5598. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5599. dr["OverState"] = 3;
  5600. dr["GapTime"] = "超时" + gshsj;
  5601. }
  5602. }
  5603. }
  5604. #endregion
  5605. ispd = int.Parse(dtjb.Rows[0]["F_IsSure"].ToString()) + 1;
  5606. dr["PDState"] = ispd;
  5607. }
  5608. }
  5609. else
  5610. {
  5611. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  5612. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5613. if (dtjb.Rows.Count > 0)
  5614. {
  5615. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5616. var lt = dr["F_LimitTime"].ToString();//限制时间
  5617. dr["LimitTime"] = lt;
  5618. #region
  5619. //if (state < 6 || state == 8)
  5620. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5621. {
  5622. if (!string.IsNullOrWhiteSpace(lt))
  5623. {
  5624. var ltime = DateTime.Parse(lt);
  5625. if (ltime > DateTime.Now)
  5626. {
  5627. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  5628. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5629. //if (SYSJ != null && SYSJ.ToString() != "")
  5630. //{
  5631. // try
  5632. // {
  5633. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5634. // }
  5635. // catch
  5636. // {
  5637. // }
  5638. //}
  5639. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5640. //ltime = ltime.AddDays(-days);
  5641. }
  5642. else
  5643. {
  5644. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  5645. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5646. //if (SYSJ != null && SYSJ.ToString() != "")
  5647. //{
  5648. // try
  5649. // {
  5650. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5651. // }
  5652. // catch
  5653. // {
  5654. // }
  5655. //}
  5656. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5657. ltime = ltime.AddDays(days);
  5658. }
  5659. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5660. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5661. if (tss < 0) { tss = -tss; }
  5662. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5663. if (ltime > DateTime.Now)
  5664. {
  5665. if (configcs != null)
  5666. {
  5667. int cs = Int32.Parse(configcs.F_ParamValue);
  5668. if (ts.TotalHours > cs)
  5669. {
  5670. dr["OverState"] = 1;
  5671. }
  5672. else
  5673. {
  5674. dr["OverState"] = 2;
  5675. }
  5676. }
  5677. dr["GapTime"] = "剩余" + gshsj;
  5678. }
  5679. else
  5680. {
  5681. dr["OverState"] = 3;
  5682. dr["GapTime"] = "超时" + gshsj;
  5683. }
  5684. }
  5685. }
  5686. if (state == (int)EnumWorkState.finish)
  5687. {
  5688. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5689. var dttime = DateTime.Now;
  5690. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5691. else
  5692. {
  5693. var DealTime = dr["F_CloseTime"].ToString();
  5694. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5695. }
  5696. if (!string.IsNullOrWhiteSpace(lt))
  5697. {
  5698. var ltime = DateTime.Parse(lt);
  5699. if (ltime < dttime)
  5700. {
  5701. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  5702. ltime = ltime.AddDays(days);
  5703. TimeSpan ts = dttime.Subtract(ltime);
  5704. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5705. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5706. dr["OverState"] = 3;
  5707. dr["GapTime"] = "超时" + gshsj;
  5708. }
  5709. }
  5710. }
  5711. #endregion
  5712. ispd = int.Parse(dtjb.Rows[0]["F_IsNext"].ToString());
  5713. dr["PDState"] = ispd;
  5714. }
  5715. }
  5716. }
  5717. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5718. {
  5719. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5720. }
  5721. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5722. {
  5723. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5724. }
  5725. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5726. if (Int32.Parse(strtab) < 1)
  5727. {
  5728. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd.ToString());
  5729. #region 判断是否存在待督办
  5730. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  5731. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  5732. if (recount > 0 && butt != null)
  5733. btns.Remove(butt);
  5734. #endregion
  5735. }
  5736. else
  5737. {
  5738. btns.Add(ButtonGroup.query());
  5739. }
  5740. dr["Buttons"] = btns;
  5741. }
  5742. #endregion
  5743. var obj = new
  5744. {
  5745. state = "success",
  5746. message = "成功",
  5747. rows = dt,
  5748. total = recordCount
  5749. };
  5750. return Content(obj.ToJson());
  5751. }
  5752. /// <summary>
  5753. /// 获取三级单位处理列表
  5754. /// </summary>
  5755. /// <returns></returns>
  5756. //[Authority]
  5757. public ActionResult GetSJDWDealList(int isdc = 0)
  5758. {
  5759. DataTable dt = new DataTable();
  5760. string sql = " and F_IsDelete=0";
  5761. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  5762. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5763. int islike = RequestString.GetInt("islike", 1);
  5764. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5765. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5766. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5767. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5768. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5769. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5770. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5771. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5772. int source = RequestString.GetInt("source", 0);
  5773. int keyid = RequestString.GetInt("keyid", 0);
  5774. int type = RequestString.GetInt("type", 0);
  5775. int bigtype = RequestString.GetInt("bigtype", 0);
  5776. int smalltype = RequestString.GetInt("smalltype", 0);
  5777. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5778. int deptid = RequestString.GetInt("deptid", 0);
  5779. string strpageindex = RequestString.GetQueryString("page");
  5780. int pageindex = 1;
  5781. string strpagesize = RequestString.GetQueryString("pagesize");
  5782. int pagesize = 10;
  5783. #region 模块
  5784. switch (strtab)
  5785. {
  5786. case "0"://待处理工单
  5787. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  5788. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  5789. //if (User.F_RoleCode == "EJWLDW")
  5790. // {
  5791. // sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  5792. // }
  5793. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5794. {
  5795. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5796. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='" + User.F_DeptId + "' and F_IsSure in (0,1)))";
  5797. if (User.F_RoleCode == "WLDW")
  5798. {
  5799. sql += " or (F_MainDeptID3 like'%" + User.F_DeptId + "%')"
  5800. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + "))";
  5801. }
  5802. sql += ")";
  5803. }
  5804. else
  5805. {
  5806. sql += " and F_MainDeptID3 like '%" + User.F_DeptId + "%' ";
  5807. }
  5808. break;
  5809. case "1"://已办理的工单
  5810. if (strstate.Trim() != "" && strstate != "undefined")
  5811. {
  5812. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5813. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5814. else
  5815. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5816. }
  5817. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  5818. if (User.F_RoleCode == "EJWLDW")
  5819. {
  5820. sql += " and F_MainDeptID3 like '%" + User.F_DeptId + "%' ";
  5821. }
  5822. else if (User.F_RoleCode == "WLDW")
  5823. {
  5824. sql += " and( (F_MainDeptID3 like '%" + User.F_DeptId + "%')"
  5825. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + ")) )";
  5826. }
  5827. else if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5828. {
  5829. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  5830. }
  5831. else
  5832. {
  5833. sql += ")";
  5834. }
  5835. break;
  5836. }
  5837. #endregion
  5838. #region 条件
  5839. if (strworkid.Trim() != "" && strworkid != "undefined")
  5840. {
  5841. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5842. }
  5843. if (strname.Trim() != "" && strname != "undefined")
  5844. {
  5845. sql += " and F_CusName like '%" + strname + "%' ";
  5846. }
  5847. if (islike > 0)
  5848. {
  5849. if (strtel.Trim() != "" && strtel != "undefined")
  5850. {
  5851. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5852. }
  5853. }
  5854. else
  5855. {
  5856. if (strtel.Trim() != "" && strtel != "undefined")
  5857. {
  5858. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5859. }
  5860. }
  5861. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5862. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5863. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5864. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5865. {
  5866. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5867. }
  5868. if (Result.Trim() != "" && Result != "undefined")
  5869. {
  5870. sql += " and F_Result like '%" + Result + "%' ";
  5871. }
  5872. if (ComContent.Trim() != "" && ComContent != "undefined")
  5873. {
  5874. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5875. }
  5876. if (strkey.Trim() != "" && strkey != "undefined")
  5877. {
  5878. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5879. " or F_Result like '%" + strkey + "%' ) ";
  5880. }
  5881. #region 坐席&调度员
  5882. if (strusercode.Trim() != "" && strusercode != "undefined")
  5883. {//坐席
  5884. var usercode = strusercode.Trim().Split(',');
  5885. var newusercode = "";
  5886. foreach (var item in usercode)
  5887. {
  5888. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5889. newusercode += "'" + item + "',";
  5890. }
  5891. newusercode = newusercode.Trim(',');
  5892. if (newusercode.Trim() != "" && newusercode != "undefined")
  5893. {
  5894. sql += " and F_CreateUser in (" + newusercode + ") ";
  5895. }
  5896. }
  5897. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5898. {//调度员
  5899. var ddusercode = strddusercode.Trim().Split(',');
  5900. var newusercode = "";
  5901. foreach (var item in ddusercode)
  5902. {
  5903. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5904. newusercode += "'" + item + "',";
  5905. }
  5906. newusercode = newusercode.Trim(',');
  5907. if (newusercode.Trim() != "" && newusercode != "undefined")
  5908. {
  5909. sql += " and F_AssignUser in(" + newusercode + ") ";
  5910. }
  5911. }
  5912. #endregion
  5913. if (source != 0)
  5914. {
  5915. sql += " and F_InfoSource = '" + source + "' ";
  5916. }
  5917. string sqlwhere = "";
  5918. if (keyid != 0)
  5919. {
  5920. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5921. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5922. // " or F_Key='" + keyid + "' )";
  5923. }
  5924. if (type != 0)
  5925. {
  5926. sql += " and F_InfoType = '" + type + "' ";
  5927. }
  5928. if (bigtype != 0)
  5929. {
  5930. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5931. }
  5932. if (smalltype != 0)
  5933. {
  5934. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5935. }
  5936. if (sourcearea != 0)
  5937. {
  5938. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5939. }
  5940. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5941. {
  5942. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5943. }
  5944. if (strendtime.Trim() != "" && strendtime != "undefined")
  5945. {
  5946. sql += " and F_CreateTime<='" + strendtime + "' ";
  5947. }
  5948. if (deptid != 0)
  5949. {
  5950. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  5951. }
  5952. if (strpageindex.Trim() != "")
  5953. {
  5954. pageindex = Convert.ToInt32(strpageindex);
  5955. }
  5956. if (strpagesize.Trim() != "")
  5957. {
  5958. pagesize = Convert.ToInt32(strpagesize);
  5959. }
  5960. #endregion
  5961. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5962. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  5963. if (isdc > 0)
  5964. {
  5965. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5966. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5967. if (msg == "")
  5968. {
  5969. return Success("导出成功");
  5970. }
  5971. else
  5972. {
  5973. return Error("导出失败");
  5974. }
  5975. }
  5976. int recordCount = 0;
  5977. dt = BLL.PagerBLL.GetListPager(
  5978. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5979. "F_Id",
  5980. cols,
  5981. sql,
  5982. "ORDER BY F_CreateTime DESC",
  5983. pagesize,
  5984. pageindex,
  5985. true,
  5986. out recordCount);
  5987. #region 声音文件
  5988. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5989. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5990. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5991. dt.Columns.Add("OverState", typeof(string));//超时状态
  5992. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5993. dt.Columns.Add("GapTime", typeof(string));//时间差
  5994. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  5995. dt.Columns.Add("PDState", typeof(string));//派单状态
  5996. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  5997. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5998. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5999. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6000. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  6001. foreach (DataRow dr in dt.Rows)
  6002. {
  6003. //获取最新交办信息
  6004. string iszbdw = "0";
  6005. string ispd = "";
  6006. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6007. if (state > 1)
  6008. {
  6009. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  6010. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6011. if (dtjb.Rows.Count > 0)
  6012. {
  6013. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6014. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6015. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  6016. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6017. {
  6018. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6019. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  6020. }
  6021. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6022. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6023. dr["LimitTime"] = lt;
  6024. #region
  6025. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6026. {
  6027. if (!string.IsNullOrWhiteSpace(lt))
  6028. {
  6029. var ltime = DateTime.Parse(lt);
  6030. if (ltime > DateTime.Now)
  6031. {
  6032. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  6033. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6034. //if (SYSJ != null && SYSJ.ToString() != "")
  6035. //{
  6036. // try
  6037. // {
  6038. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6039. // }
  6040. // catch
  6041. // {
  6042. // }
  6043. //}
  6044. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6045. //ltime = ltime.AddDays(-days);
  6046. }
  6047. else
  6048. {
  6049. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  6050. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6051. //if (SYSJ != null && SYSJ.ToString() != "")
  6052. //{
  6053. // try
  6054. // {
  6055. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  6056. // }
  6057. // catch
  6058. // {
  6059. // }
  6060. //}
  6061. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6062. ltime = ltime.AddDays(days);
  6063. }
  6064. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6065. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6066. if (tss < 0) { tss = -tss; }
  6067. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6068. if (ltime > DateTime.Now)
  6069. {
  6070. if (configcs != null)
  6071. {
  6072. int cs = Int32.Parse(configcs.F_ParamValue);
  6073. if (ts.TotalHours > cs)
  6074. {
  6075. dr["OverState"] = 1;
  6076. }
  6077. else
  6078. {
  6079. dr["OverState"] = 2;
  6080. }
  6081. }
  6082. dr["GapTime"] = "剩余" + gshsj;
  6083. }
  6084. else
  6085. {
  6086. dr["OverState"] = 3;
  6087. dr["GapTime"] = "超时" + gshsj;
  6088. }
  6089. }
  6090. }
  6091. if (state == (int)EnumWorkState.finish)
  6092. {
  6093. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6094. var dttime = DateTime.Now;
  6095. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6096. else
  6097. {
  6098. var DealTime = dr["F_CloseTime"].ToString();
  6099. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6100. }
  6101. if (!string.IsNullOrWhiteSpace(lt))
  6102. {
  6103. var ltime = DateTime.Parse(lt);
  6104. if (ltime < dttime)
  6105. {
  6106. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6107. ltime = ltime.AddDays(days);
  6108. TimeSpan ts = dttime.Subtract(ltime);
  6109. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6110. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6111. dr["OverState"] = 3;
  6112. dr["GapTime"] = "超时" + gshsj;
  6113. }
  6114. }
  6115. }
  6116. #endregion
  6117. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  6118. dr["PDState"] = ispd;
  6119. }
  6120. else
  6121. {
  6122. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6123. string mid = dr["F_MainDeptId"].ToString();
  6124. if (!string.IsNullOrEmpty(mid))
  6125. {
  6126. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  6127. }
  6128. }
  6129. }
  6130. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6131. {
  6132. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6133. }
  6134. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6135. {
  6136. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6137. }
  6138. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6139. if (Int32.Parse(strtab) < 1)
  6140. {
  6141. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6142. #region 判断是否存在待督办
  6143. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  6144. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6145. if (recount > 0 && butt != null)
  6146. btns.Remove(butt);
  6147. #endregion
  6148. }
  6149. else
  6150. {
  6151. btns.Add(ButtonGroup.query());
  6152. }
  6153. dr["Buttons"] = btns;
  6154. }
  6155. #endregion
  6156. var obj = new
  6157. {
  6158. state = "success",
  6159. message = "成功",
  6160. rows = dt,
  6161. total = recordCount
  6162. };
  6163. return Content(obj.ToJson());
  6164. }
  6165. /// <summary>
  6166. /// 获取自己提交工单
  6167. /// </summary>
  6168. /// <param name="isdc"></param>
  6169. /// <returns></returns>
  6170. //[Authority]
  6171. public ActionResult GetSelfList(int isdc = 0)
  6172. {
  6173. DataTable dt = new DataTable();
  6174. string sql = " and F_IsDelete=0 ";
  6175. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6176. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6177. int islike = RequestString.GetInt("islike", 1);
  6178. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6179. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6180. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6181. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6182. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6183. int source = RequestString.GetInt("source", 0);
  6184. int keyid = RequestString.GetInt("keyid", 0);
  6185. int type = RequestString.GetInt("type", 0);
  6186. int bigtype = RequestString.GetInt("bigtype", 0);
  6187. int smalltype = RequestString.GetInt("smalltype", 0);
  6188. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6189. int deptid = RequestString.GetInt("deptid", 0);
  6190. int dealtype = RequestString.GetInt("dealtype", -1);
  6191. int issend = RequestString.GetInt("issend", -1);
  6192. int deptlevel = RequestString.GetInt("deptlevel", 0);
  6193. string strpageindex = RequestString.GetQueryString("page");
  6194. int pageindex = 1;
  6195. string strpagesize = RequestString.GetQueryString("pagesize");
  6196. int pagesize = 10;
  6197. #region sql 语句相关处理
  6198. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  6199. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  6200. if (strstate.Trim() != "" && strstate != "undefined")
  6201. {
  6202. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6203. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6204. else
  6205. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6206. }
  6207. if (strworkid.Trim() != "" && strworkid != "undefined")
  6208. {
  6209. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6210. }
  6211. if (strname.Trim() != "" && strname != "undefined")
  6212. {
  6213. sql += " and F_CusName like '%" + strname + "%' ";
  6214. }
  6215. if (islike > 0)
  6216. {
  6217. if (strtel.Trim() != "" && strtel != "undefined")
  6218. {
  6219. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6220. }
  6221. }
  6222. else
  6223. {
  6224. if (strtel.Trim() != "" && strtel != "undefined")
  6225. {
  6226. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6227. }
  6228. }
  6229. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6230. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6231. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6232. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6233. {
  6234. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6235. }
  6236. if (Result.Trim() != "" && Result != "undefined")
  6237. {
  6238. sql += " and F_Result like '%" + Result + "%' ";
  6239. }
  6240. if (ComContent.Trim() != "" && ComContent != "undefined")
  6241. {
  6242. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6243. }
  6244. if (strkey.Trim() != "" && strkey != "undefined")
  6245. {
  6246. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6247. " or F_Result like '%" + strkey + "%' ) ";
  6248. }
  6249. if (source != 0)
  6250. {
  6251. sql += " and F_InfoSource = '" + source + "' ";
  6252. }
  6253. string sqlwhere = "";
  6254. if (keyid != 0)
  6255. {
  6256. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6257. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6258. // " or F_Key='" + keyid + "' )";
  6259. }
  6260. if (type != 0)
  6261. {
  6262. sql += " and F_InfoType = '" + type + "' ";
  6263. }
  6264. if (bigtype != 0)
  6265. {
  6266. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6267. }
  6268. if (smalltype != 0)
  6269. {
  6270. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6271. }
  6272. if (sourcearea != 0)
  6273. {
  6274. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6275. }
  6276. if (deptid != 0)
  6277. {
  6278. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  6279. }
  6280. if (dealtype != -1)
  6281. {
  6282. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  6283. }
  6284. if (issend != -1)
  6285. {
  6286. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  6287. }
  6288. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6289. {
  6290. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6291. }
  6292. if (strendtime.Trim() != "" && strendtime != "undefined")
  6293. {
  6294. sql += " and F_CreateTime<='" + strendtime + "' ";
  6295. }
  6296. #endregion
  6297. if (strpageindex.Trim() != "")
  6298. {
  6299. pageindex = Convert.ToInt32(strpageindex);
  6300. }
  6301. if (strpagesize.Trim() != "")
  6302. {
  6303. pagesize = Convert.ToInt32(strpagesize);
  6304. }
  6305. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  6306. #region 导出
  6307. if (isdc > 0)
  6308. {
  6309. var top = " "; var orderby = " order by F_CreateTime";
  6310. if (sql == " and F_IsDelete=0 ")
  6311. {
  6312. top = " top 1000 "; orderby += " desc ";
  6313. }
  6314. //20190715调整导出字段 zhengbingbing
  6315. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  6316. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  6317. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  6318. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  6319. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  6320. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  6321. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6322. if (msg == "")
  6323. {
  6324. return Success("导出成功");
  6325. }
  6326. else
  6327. {
  6328. return Error("导出失败");
  6329. }
  6330. }
  6331. #endregion
  6332. int recordCount = 0;
  6333. dt = BLL.PagerBLL.GetListPager(
  6334. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  6335. "F_Id",
  6336. cols,
  6337. sql,
  6338. "ORDER BY F_CreateTime DESC",
  6339. pagesize,
  6340. pageindex,
  6341. true,
  6342. out recordCount);
  6343. #region 声音文件和交办超时
  6344. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6345. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6346. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6347. dt.Columns.Add("OverState", typeof(string));//超时状态
  6348. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6349. dt.Columns.Add("GapTime", typeof(string));//时间差
  6350. dt.Columns.Add("PDState", typeof(string));//派单状态
  6351. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  6352. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  6353. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6354. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6355. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6356. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  6357. foreach (DataRow dr in dt.Rows)
  6358. {
  6359. string iszbdw = "0";
  6360. string ispd = "";
  6361. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6362. if (state > 1)
  6363. {
  6364. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6365. string mid = dr["F_MainDeptId"].ToString();
  6366. if (!string.IsNullOrEmpty(mid))
  6367. {
  6368. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  6369. }
  6370. //获取最新交办信息
  6371. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  6372. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6373. if (dtjb.Rows.Count > 0)
  6374. {
  6375. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6376. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  6377. {
  6378. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  6379. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dr["F_OtherDeptIds"].ToString());
  6380. }
  6381. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6382. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6383. dr["LimitTime"] = lt;
  6384. #region 超时时限
  6385. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6386. {
  6387. if (!string.IsNullOrWhiteSpace(lt))
  6388. {
  6389. var ltime = DateTime.Parse(lt);
  6390. if (ltime > DateTime.Now)
  6391. {
  6392. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  6393. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6394. //if (SYSJ != null && SYSJ.ToString() != "")
  6395. //{
  6396. // try
  6397. // {
  6398. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6399. // }
  6400. // catch
  6401. // {
  6402. // }
  6403. //}
  6404. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6405. //ltime = ltime.AddDays(-days);
  6406. }
  6407. else
  6408. {
  6409. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  6410. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6411. //if (SYSJ != null && SYSJ.ToString() != "")
  6412. //{
  6413. // try
  6414. // {
  6415. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  6416. // }
  6417. // catch
  6418. // {
  6419. // }
  6420. //}
  6421. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6422. ltime = ltime.AddDays(days);
  6423. }
  6424. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6425. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6426. if (tss < 0) { tss = -tss; }
  6427. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6428. if (ltime > DateTime.Now)
  6429. {
  6430. if (configcs != null)
  6431. {
  6432. int cs = Int32.Parse(configcs.F_ParamValue);
  6433. if (ts.TotalHours > cs)
  6434. {
  6435. dr["OverState"] = 1;
  6436. }
  6437. else
  6438. {
  6439. dr["OverState"] = 2;
  6440. }
  6441. }
  6442. dr["GapTime"] = "剩余" + gshsj;
  6443. }
  6444. else
  6445. {
  6446. dr["OverState"] = 3;
  6447. dr["GapTime"] = "超时" + gshsj;
  6448. }
  6449. }
  6450. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  6451. dr["PDState"] = ispd;
  6452. }
  6453. if (state == (int)EnumWorkState.finish)
  6454. {
  6455. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6456. var dttime = DateTime.Now;
  6457. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6458. else
  6459. {
  6460. var DealTime = dr["F_CloseTime"].ToString();
  6461. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6462. }
  6463. if (!string.IsNullOrWhiteSpace(lt))
  6464. {
  6465. var ltime = DateTime.Parse(lt);
  6466. if (ltime < dttime)
  6467. {
  6468. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6469. ltime = ltime.AddDays(days);
  6470. TimeSpan ts = dttime.Subtract(ltime);
  6471. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6472. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6473. dr["OverState"] = 3;
  6474. dr["GapTime"] = "超时" + gshsj;
  6475. }
  6476. }
  6477. }
  6478. #endregion
  6479. }
  6480. }
  6481. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6482. {
  6483. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6484. }
  6485. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6486. {
  6487. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6488. }
  6489. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6490. #region 判断是否存在待督办
  6491. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  6492. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  6493. if (recount > 0 && butt != null)
  6494. buttons.Remove(butt);
  6495. #endregion
  6496. dr["Buttons"] = buttons;
  6497. }
  6498. #endregion
  6499. var obj = new
  6500. {
  6501. state = "success",
  6502. message = "成功",
  6503. rows = dt,
  6504. total = recordCount
  6505. };
  6506. return Content(obj.ToJson());
  6507. }
  6508. /// <summary>
  6509. /// 获取逾期未回复工单列表
  6510. /// </summary>
  6511. /// <returns></returns>
  6512. //[Authority]
  6513. public ActionResult GetTimeOutList(int isdc = 0)
  6514. {
  6515. DataTable dt = new DataTable();
  6516. string sql = " and F_IsDelete=0";
  6517. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6518. int islike = RequestString.GetInt("islike", 1);
  6519. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6520. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6521. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6522. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6523. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6524. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6525. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6526. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6527. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  6528. int source = RequestString.GetInt("source", 0);
  6529. int keyid = RequestString.GetInt("keyid", 0);
  6530. int type = RequestString.GetInt("type", 0);
  6531. int bigtype = RequestString.GetInt("bigtype", 0);
  6532. int smalltype = RequestString.GetInt("smalltype", 0);
  6533. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6534. int deptid = RequestString.GetInt("deptid", 0);
  6535. int soon = RequestString.GetInt("soon", 0);
  6536. string strpageindex = RequestString.GetQueryString("page");
  6537. int pageindex = 1;
  6538. string strpagesize = RequestString.GetQueryString("pagesize");
  6539. int pagesize = 10;
  6540. #region 坐席&调度员
  6541. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  6542. if (splituser.Trim() != "" && splituser != "undefined")
  6543. {
  6544. sql += " and F_SplitUser = '" + splituser + "' ";
  6545. }
  6546. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  6547. if (assuser.Trim() != "" && assuser != "undefined")
  6548. {
  6549. sql += " and F_AssignUser = '" + assuser + "' ";
  6550. }
  6551. if (strusercode.Trim() != "" && strusercode != "undefined")
  6552. {//坐席
  6553. var usercode = strusercode.Trim().Split(',');
  6554. var newusercode = "";
  6555. foreach (var item in usercode)
  6556. {
  6557. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6558. newusercode += "'" + item + "',";
  6559. }
  6560. newusercode = newusercode.Trim(',');
  6561. if (newusercode.Trim() != "" && newusercode != "undefined")
  6562. {
  6563. sql += " and F_CreateUser in (" + newusercode + ") ";
  6564. }
  6565. }
  6566. if (ejdeptid > 0)
  6567. {
  6568. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  6569. }
  6570. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6571. {//调度员
  6572. var ddusercode = strddusercode.Trim().Split(',');
  6573. var newusercode = "";
  6574. foreach (var item in ddusercode)
  6575. {
  6576. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6577. newusercode += "'" + item + "',";
  6578. }
  6579. newusercode = newusercode.Trim(',');
  6580. if (newusercode.Trim() != "" && newusercode != "undefined")
  6581. {
  6582. sql += " and F_AssignUser in(" + newusercode + ") ";
  6583. }
  6584. }
  6585. //if (strusercode.Trim() != "" && strusercode != "undefined")
  6586. //{
  6587. // sql += " and F_CreateUser = '" + strusercode + "' ";
  6588. //}
  6589. #endregion
  6590. string sqlwhere = ""; string sqlwhere1 = "";
  6591. if (User.F_RoleCode == "WLDW")
  6592. {
  6593. if (soon == 1)
  6594. {
  6595. sqlwhere += " and (F_LimitTime<getdate() or " +
  6596. " F_LimitTime<(dateadd(dd,-1,GETDATE()))) ";
  6597. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  6598. //+ " where F_State=1 and F_IsDelete=0 and and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  6599. }
  6600. else
  6601. {
  6602. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  6603. //+ " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  6604. sqlwhere += " and F_LimitTime<getdate() ";
  6605. }
  6606. //sqlwhere1 += " and F_MainDeptId = '" + User.F_DeptId + "'";
  6607. sql += " and F_MainDeptId = '" + User.F_DeptId + "' " +
  6608. "and F_WorkState NOT IN (6,7,9)";
  6609. // sqlwhere += "))";
  6610. }
  6611. else if (User.F_RoleCode == "EJWLDW")
  6612. {
  6613. sqlwhere += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  6614. sqlwhere += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and isnull(F_FeedbackTime,'')='' and F_IsDelete=0 and "
  6615. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)))";
  6616. }
  6617. else if (deptid != 0)
  6618. {
  6619. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN(6,7,9)";
  6620. sqlwhere += " and F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "'))";
  6621. sqlwhere1 += " and F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "'))";
  6622. }
  6623. else
  6624. {
  6625. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN (6,7,9) ";
  6626. }
  6627. sql += "and F_MainDeptId is not null and F_MainDeptId !='' ";
  6628. //if (User.F_RoleCode == "ZXLD")
  6629. //{
  6630. // sqlwhere += " and F_CreateUser = '" + User.F_UserCode + "' ";
  6631. // sqlwhere1 += " and F_CreateUser = '" + User.F_UserCode + "'";
  6632. //}
  6633. if (strstate.Trim() != "" && strstate != "undefined")
  6634. {
  6635. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6636. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6637. else
  6638. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6639. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  6640. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  6641. else
  6642. sql += sqlwhere;
  6643. }
  6644. else
  6645. {
  6646. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  6647. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  6648. sql += sqlwhere;
  6649. //sql += " and F_WorkState in (2,4,8)";
  6650. }
  6651. if (strworkid.Trim() != "" && strworkid != "undefined")
  6652. {
  6653. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6654. }
  6655. if (strname.Trim() != "" && strname != "undefined")
  6656. {
  6657. sql += " and F_CusName like '%" + strname + "%' ";
  6658. }
  6659. if (islike > 0)
  6660. {
  6661. if (strtel.Trim() != "" && strtel != "undefined")
  6662. {
  6663. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6664. }
  6665. }
  6666. else
  6667. {
  6668. if (strtel.Trim() != "" && strtel != "undefined")
  6669. {
  6670. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6671. }
  6672. }
  6673. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6674. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6675. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6676. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6677. {
  6678. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6679. }
  6680. if (Result.Trim() != "" && Result != "undefined")
  6681. {
  6682. sql += " and F_Result like '%" + Result + "%' ";
  6683. }
  6684. if (ComContent.Trim() != "" && ComContent != "undefined")
  6685. {
  6686. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6687. }
  6688. if (strkey.Trim() != "" && strkey != "undefined")
  6689. {
  6690. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6691. " or F_Result like '%" + strkey + "%' ) ";
  6692. }
  6693. if (source != 0)
  6694. {
  6695. sql += " and F_InfoSource = '" + source + "' ";
  6696. }
  6697. string sqlwheres = ""; string value = "";
  6698. if (keyid != 0)
  6699. {
  6700. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6701. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6702. // " or F_Key='" + keyid + "' )";
  6703. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  6704. }
  6705. if (type != 0)
  6706. {
  6707. sql += " and F_InfoType = '" + type + "' ";
  6708. }
  6709. if (bigtype != 0)
  6710. {
  6711. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6712. }
  6713. if (smalltype != 0)
  6714. {
  6715. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6716. }
  6717. if (sourcearea != 0)
  6718. {
  6719. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6720. }
  6721. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6722. {
  6723. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6724. }
  6725. if (strendtime.Trim() != "" && strendtime != "undefined")
  6726. {
  6727. sql += " and F_CreateTime<='" + strendtime + "' ";
  6728. }
  6729. if (strpageindex.Trim() != "")
  6730. {
  6731. pageindex = Convert.ToInt32(strpageindex);
  6732. }
  6733. if (strpagesize.Trim() != "")
  6734. {
  6735. pagesize = Convert.ToInt32(strpagesize);
  6736. }
  6737. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  6738. string cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  6739. if (isdc > 0)
  6740. {
  6741. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6742. var top = " "; var orderby = " order by F_CreateTime";
  6743. if (sql == " and F_IsDelete=0 ")
  6744. {
  6745. top = " top 1000 "; orderby += " desc ";
  6746. }
  6747. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  6748. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  6749. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  6750. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  6751. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  6752. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6753. if (msg == "")
  6754. {
  6755. return Success("导出成功");
  6756. }
  6757. else
  6758. {
  6759. return Error("导出失败");
  6760. }
  6761. }
  6762. int recordCount = 0;
  6763. dt = BLL.PagerBLL.GetListPager(
  6764. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6765. "F_Id",
  6766. cols,
  6767. sql,
  6768. "ORDER BY F_CreateTime DESC",
  6769. pagesize,
  6770. pageindex,
  6771. true,
  6772. out recordCount);
  6773. #region 声音文件
  6774. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6775. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6776. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6777. dt.Columns.Add("OverState", typeof(string));//超时状态
  6778. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6779. dt.Columns.Add("GapTime", typeof(string));//时间差
  6780. dt.Columns.Add("FilePath", typeof(string));
  6781. dt.Columns.Add("Buttons", typeof(object));
  6782. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6783. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6784. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6785. foreach (DataRow dr in dt.Rows)
  6786. {
  6787. //获取最新交办信息
  6788. string iszbdw = "0";
  6789. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6790. string ispd = "";
  6791. if (state > 1)
  6792. {
  6793. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  6794. string sqlej = "";
  6795. if (User.F_RoleCode == "EJWLDW")
  6796. {
  6797. sqlej = " select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  6798. }
  6799. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6800. if (dtjb.Rows.Count > 0)
  6801. {
  6802. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6803. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6804. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  6805. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6806. {
  6807. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6808. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  6809. }
  6810. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6811. #region 时限
  6812. //if (state < 6 || state == 8)
  6813. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6814. {
  6815. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6816. if (User.F_RoleCode == "EJWLDW")
  6817. {
  6818. sqlej = " select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  6819. var dtej = DbHelperSQL.Query(sqljb).Tables[0];
  6820. lt = dtej.Rows[0]["F_LimitTime"].ToString();
  6821. }
  6822. dr["LimitTime"] = lt;
  6823. if (!string.IsNullOrWhiteSpace(lt))
  6824. {
  6825. var ltime = DateTime.Parse(lt);
  6826. if (ltime > DateTime.Now)
  6827. {
  6828. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  6829. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6830. //if (SYSJ != null && SYSJ.ToString() != "")
  6831. //{
  6832. // try
  6833. // {
  6834. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6835. // }
  6836. // catch
  6837. // {
  6838. // }
  6839. //}
  6840. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6841. //ltime = ltime.AddDays(-days);
  6842. }
  6843. else
  6844. {
  6845. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  6846. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6847. //if (SYSJ != null && SYSJ.ToString() != "")
  6848. //{
  6849. // try
  6850. // {
  6851. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  6852. // }
  6853. // catch
  6854. // {
  6855. // }
  6856. //}
  6857. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6858. ltime = ltime.AddDays(days);
  6859. }
  6860. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6861. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6862. if (tss < 0) { tss = -tss; }
  6863. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6864. if (ltime > DateTime.Now)
  6865. {
  6866. if (configcs != null)
  6867. {
  6868. int cs = Int32.Parse(configcs.F_ParamValue);
  6869. if (ts.TotalHours > cs)
  6870. {
  6871. dr["OverState"] = 1;
  6872. }
  6873. else
  6874. {
  6875. dr["OverState"] = 2;
  6876. }
  6877. }
  6878. dr["GapTime"] = "剩余" + gshsj;
  6879. }
  6880. else
  6881. {
  6882. dr["OverState"] = 3;
  6883. dr["GapTime"] = "超时" + gshsj;
  6884. }
  6885. }
  6886. }
  6887. if (state == (int)EnumWorkState.finish)
  6888. {
  6889. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6890. var dttime = DateTime.Now;
  6891. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6892. else
  6893. {
  6894. var DealTime = dr["F_CloseTime"].ToString();
  6895. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6896. }
  6897. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6898. dr["LimitTime"] = lt;
  6899. if (!string.IsNullOrWhiteSpace(lt))
  6900. {
  6901. var ltime = DateTime.Parse(lt);
  6902. if (ltime < dttime)
  6903. {
  6904. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6905. ltime = ltime.AddDays(days);
  6906. TimeSpan ts = dttime.Subtract(ltime);
  6907. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6908. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6909. dr["OverState"] = 3;
  6910. dr["GapTime"] = "超时" + gshsj;
  6911. }
  6912. }
  6913. }
  6914. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  6915. #endregion
  6916. }
  6917. }
  6918. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6919. {
  6920. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6921. }
  6922. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6923. {
  6924. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6925. }
  6926. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6927. if (User.F_RoleCode == "EJWLDW")
  6928. {
  6929. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6930. }
  6931. if (User.F_RoleCode == "WLDW")
  6932. {
  6933. if (ispd == "0" || ispd == "")
  6934. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6935. }
  6936. else
  6937. {
  6938. btns.Add(ButtonGroup.query());
  6939. }
  6940. dr["Buttons"] = btns;
  6941. }
  6942. #endregion
  6943. var obj = new
  6944. {
  6945. state = "success",
  6946. message = "成功",
  6947. rows = dt,
  6948. total = recordCount
  6949. };
  6950. return Content(obj.ToJson());
  6951. }
  6952. /// <summary>
  6953. /// 获取公开工单列表
  6954. /// </summary>
  6955. /// <returns></returns>
  6956. //[Authority]
  6957. public ActionResult GetMediaList(int isdc = 0)
  6958. {
  6959. DataTable dt = new DataTable();
  6960. string sql = " and F_IsDelete=0";
  6961. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6962. int islike = RequestString.GetInt("islike", 1);
  6963. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6964. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6965. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6966. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6967. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6968. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6969. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6970. int source = RequestString.GetInt("source", 0);
  6971. int keyid = RequestString.GetInt("keyid", 0);
  6972. int type = RequestString.GetInt("type", 0);
  6973. int bigtype = RequestString.GetInt("bigtype", 0);
  6974. int smalltype = RequestString.GetInt("smalltype", 0);
  6975. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6976. int deptid = RequestString.GetInt("deptid", 0);
  6977. string strpageindex = RequestString.GetQueryString("page");
  6978. int pageindex = 1;
  6979. string strpagesize = RequestString.GetQueryString("pagesize");
  6980. int pagesize = 10;
  6981. sql += " and isnull(F_IsOpen,0) =1 ";
  6982. if (strworkid.Trim() != "" && strworkid != "undefined")
  6983. {
  6984. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6985. }
  6986. if (strname.Trim() != "" && strname != "undefined")
  6987. {
  6988. sql += " and F_CusName like '%" + strname + "%' ";
  6989. }
  6990. if (islike > 0)
  6991. {
  6992. if (strtel.Trim() != "" && strtel != "undefined")
  6993. {
  6994. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6995. }
  6996. }
  6997. else
  6998. {
  6999. if (strtel.Trim() != "" && strtel != "undefined")
  7000. {
  7001. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7002. }
  7003. }
  7004. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7005. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7006. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7007. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7008. {
  7009. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7010. }
  7011. if (Result.Trim() != "" && Result != "undefined")
  7012. {
  7013. sql += " and F_Result like '%" + Result + "%' ";
  7014. }
  7015. if (ComContent.Trim() != "" && ComContent != "undefined")
  7016. {
  7017. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7018. }
  7019. if (strkey.Trim() != "" && strkey != "undefined")
  7020. {
  7021. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7022. " or F_Result like '%" + strkey + "%' ) ";
  7023. }
  7024. #region 坐席&调度员
  7025. if (strusercode.Trim() != "" && strusercode != "undefined")
  7026. {//坐席
  7027. var usercode = strusercode.Trim().Split(',');
  7028. var newusercode = "";
  7029. foreach (var item in usercode)
  7030. {
  7031. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7032. newusercode += "'" + item + "',";
  7033. }
  7034. newusercode = newusercode.Trim(',');
  7035. if (newusercode.Trim() != "" && newusercode != "undefined")
  7036. {
  7037. sql += " and F_CreateUser in (" + newusercode + ") ";
  7038. }
  7039. }
  7040. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7041. {//调度员
  7042. var ddusercode = strddusercode.Trim().Split(',');
  7043. var newusercode = "";
  7044. foreach (var item in ddusercode)
  7045. {
  7046. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7047. newusercode += "'" + item + "',";
  7048. }
  7049. newusercode = newusercode.Trim(',');
  7050. if (newusercode.Trim() != "" && newusercode != "undefined")
  7051. {
  7052. sql += " and F_AssignUser in(" + newusercode + ") ";
  7053. }
  7054. }
  7055. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7056. //{
  7057. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7058. //}
  7059. #endregion
  7060. if (source != 0)
  7061. {
  7062. sql += " and F_InfoSource = '" + source + "' ";
  7063. }
  7064. string sqlwheres = "";
  7065. if (keyid != 0)
  7066. {
  7067. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7068. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7069. // " or F_Key='" + keyid + "' )";
  7070. }
  7071. if (type != 0)
  7072. {
  7073. sql += " and F_InfoType = '" + type + "' ";
  7074. }
  7075. if (bigtype != 0)
  7076. {
  7077. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7078. }
  7079. if (smalltype != 0)
  7080. {
  7081. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7082. }
  7083. if (sourcearea != 0)
  7084. {
  7085. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7086. }
  7087. if (deptid != 0)
  7088. {
  7089. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  7090. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7091. }
  7092. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7093. {
  7094. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7095. }
  7096. if (strendtime.Trim() != "" && strendtime != "undefined")
  7097. {
  7098. sql += " and F_CreateTime<='" + strendtime + "' ";
  7099. }
  7100. if (strpageindex.Trim() != "")
  7101. {
  7102. pageindex = Convert.ToInt32(strpageindex);
  7103. }
  7104. if (strpagesize.Trim() != "")
  7105. {
  7106. pagesize = Convert.ToInt32(strpagesize);
  7107. }
  7108. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  7109. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  7110. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  7111. if (isdc > 0)
  7112. {
  7113. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7114. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7115. if (msg == "")
  7116. {
  7117. return Success("导出成功");
  7118. }
  7119. else
  7120. {
  7121. return Error("导出失败");
  7122. }
  7123. }
  7124. int recordCount = 0;
  7125. dt = BLL.PagerBLL.GetListPager(
  7126. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7127. "F_Id",
  7128. cols,
  7129. sql,
  7130. "ORDER BY F_CreateTime DESC",
  7131. pagesize,
  7132. pageindex,
  7133. true,
  7134. out recordCount);
  7135. #region 声音文件
  7136. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7137. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7138. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7139. dt.Columns.Add("IsReturnMedia", typeof(string));
  7140. dt.Columns.Add("Buttons", typeof(object));
  7141. int IsReturnMedia = 0;
  7142. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  7143. {
  7144. IsReturnMedia = 1;
  7145. }
  7146. foreach (DataRow dr in dt.Rows)
  7147. {
  7148. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7149. if (state > 1)
  7150. {
  7151. //获取最新交办信息
  7152. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  7153. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7154. if (dtjb.Rows.Count > 0)
  7155. {
  7156. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7157. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7158. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7159. {
  7160. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7161. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7162. }
  7163. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7164. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7165. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  7166. //if (deptinfo != null)
  7167. //{
  7168. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  7169. //}
  7170. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7171. //{
  7172. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  7173. // string dns = string.Empty;
  7174. // foreach (string strid in strids)
  7175. // {
  7176. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  7177. // if (dinfo != null)
  7178. // {
  7179. // if (string.IsNullOrEmpty(dns))
  7180. // {
  7181. // dns = dinfo.F_DeptName;//交办单位
  7182. // }
  7183. // else
  7184. // {
  7185. // dns += "," + dinfo.F_DeptName;//交办单位
  7186. // }
  7187. // }
  7188. // }
  7189. // dr["OtherDeptName"] = dns;
  7190. //}
  7191. }
  7192. }
  7193. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7194. btns.Add(ButtonGroup.query());
  7195. dr["Buttons"] = btns;
  7196. dr["IsReturnMedia"] = IsReturnMedia;
  7197. }
  7198. #endregion
  7199. var obj = new
  7200. {
  7201. state = "success",
  7202. message = "成功",
  7203. rows = dt,
  7204. total = recordCount
  7205. };
  7206. return Content(obj.ToJson());
  7207. }
  7208. /// <summary>
  7209. /// 获取媒体工单列表
  7210. /// </summary>
  7211. /// <returns></returns>
  7212. //[Authority]
  7213. public ActionResult GetMassList(int isdc = 0)
  7214. {
  7215. DataTable dt = new DataTable();
  7216. string sql = " and F_IsDelete=0";
  7217. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7218. int islike = RequestString.GetInt("islike", 1);
  7219. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7220. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7221. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7222. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7223. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7224. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7225. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7226. int source = RequestString.GetInt("source", 0);
  7227. int keyid = RequestString.GetInt("keyid", 0);
  7228. int type = RequestString.GetInt("type", 0);
  7229. int bigtype = RequestString.GetInt("bigtype", 0);
  7230. int smalltype = RequestString.GetInt("smalltype", 0);
  7231. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7232. int deptid = RequestString.GetInt("deptid", 0);
  7233. string strpageindex = RequestString.GetQueryString("page");
  7234. int pageindex = 1;
  7235. string strpagesize = RequestString.GetQueryString("pagesize");
  7236. int pagesize = 10;
  7237. sql += " and isnull(F_IsMedia,0) =1 ";
  7238. if (strworkid.Trim() != "" && strworkid != "undefined")
  7239. {
  7240. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7241. }
  7242. if (strname.Trim() != "" && strname != "undefined")
  7243. {
  7244. sql += " and F_CusName like '%" + strname + "%' ";
  7245. }
  7246. if (islike > 0)
  7247. {
  7248. if (strtel.Trim() != "" && strtel != "undefined")
  7249. {
  7250. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7251. }
  7252. }
  7253. else
  7254. {
  7255. if (strtel.Trim() != "" && strtel != "undefined")
  7256. {
  7257. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7258. }
  7259. }
  7260. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7261. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7262. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7263. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7264. {
  7265. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7266. }
  7267. if (Result.Trim() != "" && Result != "undefined")
  7268. {
  7269. sql += " and F_Result like '%" + Result + "%' ";
  7270. }
  7271. if (ComContent.Trim() != "" && ComContent != "undefined")
  7272. {
  7273. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7274. }
  7275. if (strkey.Trim() != "" && strkey != "undefined")
  7276. {
  7277. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7278. " or F_Result like '%" + strkey + "%' ) ";
  7279. }
  7280. #region 坐席&调度员
  7281. if (strusercode.Trim() != "" && strusercode != "undefined")
  7282. {//坐席
  7283. var usercode = strusercode.Trim().Split(',');
  7284. var newusercode = "";
  7285. foreach (var item in usercode)
  7286. {
  7287. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7288. newusercode += "'" + item + "',";
  7289. }
  7290. newusercode = newusercode.Trim(',');
  7291. if (newusercode.Trim() != "" && newusercode != "undefined")
  7292. {
  7293. sql += " and F_CreateUser in (" + newusercode + ") ";
  7294. }
  7295. }
  7296. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7297. {//调度员
  7298. var ddusercode = strddusercode.Trim().Split(',');
  7299. var newusercode = "";
  7300. foreach (var item in ddusercode)
  7301. {
  7302. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7303. newusercode += "'" + item + "',";
  7304. }
  7305. newusercode = newusercode.Trim(',');
  7306. if (newusercode.Trim() != "" && newusercode != "undefined")
  7307. {
  7308. sql += " and F_AssignUser in(" + newusercode + ") ";
  7309. }
  7310. }
  7311. #endregion
  7312. if (source != 0)
  7313. {
  7314. sql += " and F_InfoSource = '" + source + "' ";
  7315. }
  7316. string sqlwheres = "";
  7317. if (keyid != 0)
  7318. {
  7319. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7320. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7321. // " or F_Key='" + keyid + "' )";
  7322. }
  7323. if (type != 0)
  7324. {
  7325. sql += " and F_InfoType = '" + type + "' ";
  7326. }
  7327. if (bigtype != 0)
  7328. {
  7329. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7330. }
  7331. if (smalltype != 0)
  7332. {
  7333. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7334. }
  7335. if (sourcearea != 0)
  7336. {
  7337. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7338. }
  7339. if (deptid != 0)
  7340. {
  7341. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  7342. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7343. }
  7344. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7345. {
  7346. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7347. }
  7348. if (strendtime.Trim() != "" && strendtime != "undefined")
  7349. {
  7350. sql += " and F_CreateTime<='" + strendtime + "' ";
  7351. }
  7352. if (strpageindex.Trim() != "")
  7353. {
  7354. pageindex = Convert.ToInt32(strpageindex);
  7355. }
  7356. if (strpagesize.Trim() != "")
  7357. {
  7358. pagesize = Convert.ToInt32(strpagesize);
  7359. }
  7360. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  7361. if (isdc > 0)
  7362. {
  7363. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7364. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7365. if (msg == "")
  7366. {
  7367. return Success("导出成功");
  7368. }
  7369. else
  7370. {
  7371. return Error("导出失败");
  7372. }
  7373. }
  7374. int recordCount = 0;
  7375. dt = BLL.PagerBLL.GetListPager(
  7376. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7377. "F_Id",
  7378. cols,
  7379. sql,
  7380. "ORDER BY F_CreateTime DESC",
  7381. pagesize,
  7382. pageindex,
  7383. true,
  7384. out recordCount);
  7385. #region 声音文件
  7386. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7387. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7388. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7389. dt.Columns.Add("IsReturnMedia", typeof(string));
  7390. dt.Columns.Add("Buttons", typeof(object));
  7391. int IsReturnMedia = 0;
  7392. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  7393. {
  7394. IsReturnMedia = 1;
  7395. }
  7396. foreach (DataRow dr in dt.Rows)
  7397. {
  7398. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7399. if (state > 1)
  7400. {
  7401. //获取最新交办信息
  7402. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  7403. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7404. if (dtjb.Rows.Count > 0)
  7405. {
  7406. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7407. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7408. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7409. {
  7410. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7411. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7412. }
  7413. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7414. }
  7415. }
  7416. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7417. btns.Add(ButtonGroup.query());
  7418. dr["Buttons"] = btns;
  7419. dr["IsReturnMedia"] = IsReturnMedia;
  7420. }
  7421. #endregion
  7422. var obj = new
  7423. {
  7424. state = "success",
  7425. message = "成功",
  7426. rows = dt,
  7427. total = recordCount
  7428. };
  7429. return Content(obj.ToJson());
  7430. }
  7431. /// <summary>
  7432. /// 获取通报工单列表
  7433. /// </summary>
  7434. /// <returns></returns>
  7435. //[Authority]
  7436. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  7437. {
  7438. DataTable dt = new DataTable();
  7439. //int userId = 8000;
  7440. string sql = " and F_IsDelete=0 ";
  7441. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7442. int islike = RequestString.GetInt("islike", 1);
  7443. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7444. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7445. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7446. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7447. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7448. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7449. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7450. int source = RequestString.GetInt("source", 0);
  7451. int keyid = RequestString.GetInt("keyid", 0);
  7452. int type = RequestString.GetInt("type", 0);
  7453. int bigtype = RequestString.GetInt("bigtype", 0);
  7454. int smalltype = RequestString.GetInt("smalltype", 0);
  7455. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7456. int deptid = RequestString.GetInt("deptid", 0);
  7457. string strpageindex = RequestString.GetQueryString("page");
  7458. int pageindex = 1;
  7459. string strpagesize = RequestString.GetQueryString("pagesize");
  7460. int pagesize = 10;
  7461. if (strworkid.Trim() != "" && strworkid != "undefined")
  7462. {
  7463. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7464. }
  7465. if (strname.Trim() != "" && strname != "undefined")
  7466. {
  7467. sql += " and F_CusName like '%" + strname + "%' ";
  7468. }
  7469. if (islike > 0)
  7470. {
  7471. if (strtel.Trim() != "" && strtel != "undefined")
  7472. {
  7473. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7474. }
  7475. }
  7476. else
  7477. {
  7478. if (strtel.Trim() != "" && strtel != "undefined")
  7479. {
  7480. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7481. }
  7482. }
  7483. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7484. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7485. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7486. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7487. {
  7488. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7489. }
  7490. if (Result.Trim() != "" && Result != "undefined")
  7491. {
  7492. sql += " and F_Result like '%" + Result + "%' ";
  7493. }
  7494. if (ComContent.Trim() != "" && ComContent != "undefined")
  7495. {
  7496. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7497. }
  7498. if (strkey.Trim() != "" && strkey != "undefined")
  7499. {
  7500. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7501. " or F_Result like '%" + strkey + "%' ) ";
  7502. }
  7503. #region 坐席&调度员
  7504. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  7505. {//坐席
  7506. var usercode = strusercode.Trim().Split(',');
  7507. var newusercode = "";
  7508. foreach (var item in usercode)
  7509. {
  7510. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7511. newusercode += "'" + item + "',";
  7512. }
  7513. newusercode = newusercode.Trim(',');
  7514. if (newusercode.Trim() != "" && newusercode != "undefined")
  7515. {
  7516. sql += " and F_CreateUser in (" + newusercode + ") ";
  7517. }
  7518. }*/
  7519. #region
  7520. if (usercode != null && usercode.Length > 0)
  7521. {
  7522. var newusercode = "";
  7523. //string codes = "";
  7524. for (int i = 0; i < usercode.Length; i++)
  7525. {
  7526. if (usercode[i] != "")
  7527. {
  7528. newusercode += "'" + usercode[i] + "',";
  7529. }
  7530. }
  7531. newusercode = newusercode.Trim(',');
  7532. if (newusercode.Trim() != "" && newusercode != "undefined")
  7533. {
  7534. sql += " and F_CreateUser in (" + newusercode + ") ";
  7535. }
  7536. }
  7537. if (ddusercode != null && ddusercode.Length > 0)
  7538. {
  7539. var newusercode = "";
  7540. //string codes = "";
  7541. for (int i = 0; i < ddusercode.Length; i++)
  7542. {
  7543. if (ddusercode[i] != "")
  7544. {
  7545. newusercode += "'" + ddusercode[i] + "',";
  7546. }
  7547. }
  7548. newusercode = newusercode.Trim(',');
  7549. if (newusercode.Trim() != "" && newusercode != "undefined")
  7550. {
  7551. sql += " and F_AssignUser in (" + newusercode + ") ";
  7552. }
  7553. }
  7554. #endregion
  7555. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7556. {//调度员
  7557. var ddusercode = strddusercode.Trim().Split(',');
  7558. var newusercode = "";
  7559. foreach (var item in ddusercode)
  7560. {
  7561. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7562. newusercode += "'" + item + "',";
  7563. }
  7564. newusercode = newusercode.Trim(',');
  7565. if (newusercode.Trim() != "" && newusercode != "undefined")
  7566. {
  7567. sql += " and F_AssignUser in(" + newusercode + ") ";
  7568. }
  7569. }*/
  7570. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7571. //{
  7572. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7573. //}
  7574. #endregion
  7575. if (source != 0)
  7576. {
  7577. sql += " and F_InfoSource = '" + source + "' ";
  7578. }
  7579. string sqlwheres = "";
  7580. if (keyid != 0)
  7581. {
  7582. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7583. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7584. // " or F_Key='" + keyid + "' )";
  7585. }
  7586. if (type != 0)
  7587. {
  7588. sql += " and F_InfoType = '" + type + "' ";
  7589. }
  7590. if (bigtype != 0)
  7591. {
  7592. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7593. }
  7594. if (smalltype != 0)
  7595. {
  7596. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7597. }
  7598. if (sourcearea != 0)
  7599. {
  7600. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7601. }
  7602. if (deptid != 0)
  7603. {
  7604. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  7605. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7606. }
  7607. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7608. {
  7609. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7610. }
  7611. if (strendtime.Trim() != "" && strendtime != "undefined")
  7612. {
  7613. sql += " and F_CreateTime<='" + strendtime + "' ";
  7614. }
  7615. if (User.F_RoleCode == "WLDW")
  7616. {
  7617. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + User.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  7618. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7619. }
  7620. else
  7621. {
  7622. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  7623. }
  7624. if (strpageindex.Trim() != "")
  7625. {
  7626. pageindex = Convert.ToInt32(strpageindex);
  7627. }
  7628. if (strpagesize.Trim() != "")
  7629. {
  7630. pagesize = Convert.ToInt32(strpagesize);
  7631. }
  7632. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  7633. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  7634. if (isdc > 0)
  7635. {
  7636. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7637. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7638. if (msg == "")
  7639. {
  7640. return Success("导出成功");
  7641. }
  7642. else
  7643. {
  7644. return Error("导出失败");
  7645. }
  7646. }
  7647. int recordCount = 0;
  7648. dt = BLL.PagerBLL.GetListPager(
  7649. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7650. "F_Id",
  7651. cols,
  7652. sql,
  7653. "ORDER BY F_CreateTime DESC",
  7654. pagesize,
  7655. pageindex,
  7656. true,
  7657. out recordCount);
  7658. #region 声音文件
  7659. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7660. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7661. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7662. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  7663. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  7664. dt.Columns.Add("IsReturnNotice", typeof(string));
  7665. dt.Columns.Add("FilePath", typeof(string));
  7666. dt.Columns.Add("Buttons", typeof(object));
  7667. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7668. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7669. int IsReturnNotice = 0;
  7670. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  7671. {
  7672. IsReturnNotice = 1;
  7673. }
  7674. foreach (DataRow dr in dt.Rows)
  7675. {
  7676. //获取最新交办信息
  7677. //string iszbdw = "0";
  7678. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7679. if (state > 1)
  7680. {
  7681. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  7682. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7683. if (dtjb.Rows.Count > 0)
  7684. {
  7685. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7686. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7687. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7688. {
  7689. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7690. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7691. }
  7692. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7693. }
  7694. else
  7695. {
  7696. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7697. string mid = dr["F_MainDeptId"].ToString();
  7698. if (!string.IsNullOrEmpty(mid))
  7699. {
  7700. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  7701. }
  7702. }
  7703. }
  7704. //获取最新通报信息
  7705. string sqltb = "SELECT TOP 1 * FROM T_Bus_NoticeCriticism WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  7706. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  7707. if (dttb.Rows.Count > 0)
  7708. {
  7709. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  7710. {
  7711. //dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  7712. dr["NoticeDeptName"] = departmentBLL.GetDeptNames(dttb.Rows[0]["F_DeptIds"].ToString());
  7713. }
  7714. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  7715. }
  7716. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7717. {
  7718. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7719. }
  7720. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7721. {
  7722. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7723. }
  7724. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7725. btns.Add(ButtonGroup.query());
  7726. dr["Buttons"] = btns;
  7727. dr["IsReturnNotice"] = IsReturnNotice;
  7728. }
  7729. #endregion
  7730. var obj = new
  7731. {
  7732. state = "success",
  7733. message = "成功",
  7734. rows = dt,
  7735. total = recordCount
  7736. };
  7737. return Content(obj.ToJson());
  7738. }
  7739. /// <summary>
  7740. /// 督办列表
  7741. /// </summary>
  7742. /// <param name="isdc"></param>
  7743. /// <returns></returns>
  7744. //[Authority]
  7745. public ActionResult GetSupervList(int isdc = 0)
  7746. {
  7747. DataTable dt = new DataTable();
  7748. string sql = " and F_IsDelete=0";
  7749. #region 参数
  7750. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  7751. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  7752. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  7753. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7754. int islike = RequestString.GetInt("islike", 1);
  7755. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7756. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7757. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7758. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7759. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7760. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7761. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7762. int source = RequestString.GetInt("source", 0);
  7763. int keyid = RequestString.GetInt("keyid", 0);
  7764. int type = RequestString.GetInt("type", 0);
  7765. int bigtype = RequestString.GetInt("bigtype", 0);
  7766. int smalltype = RequestString.GetInt("smalltype", 0);
  7767. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7768. int deptid = RequestString.GetInt("deptid", 0);
  7769. int deptlevel = RequestString.GetInt("deptlevel", 0);
  7770. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  7771. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  7772. int pageindex = RequestString.GetInt("page", 1);
  7773. int pagesize = RequestString.GetInt("pagesize", 10);
  7774. int business = RequestString.GetInt("business", 0);
  7775. int Supervisor = RequestString.GetInt("Supervisor", 0);
  7776. string strSupervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("strSupervisor"));//
  7777. int isExamine = RequestString.GetInt("isExamine", 0);
  7778. int dbdeptid = RequestString.GetInt("dbdeptid", 0);
  7779. string result = HttpUtility.UrlDecode(RequestString.GetQueryString("result"));//办理结果
  7780. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  7781. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  7782. string dbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstarttime"));
  7783. string dbstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstrendtime"));
  7784. string comtitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7785. string comContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7786. int isRelease = RequestString.GetInt("isRelease", 0);
  7787. if (keyid != 0)
  7788. {
  7789. sql += "and a.F_Key in(select F_ValueId from dbo.GetValueId(" + keyid + ")) ";
  7790. }
  7791. if (comtitle.Trim() != "" && comtitle != "undefined")
  7792. {
  7793. sql += " and F_ComTitle like '%" + comtitle + "%' ";
  7794. }
  7795. if (comContent.Trim() != "" && comContent != "undefined")
  7796. {
  7797. sql += " and (F_ComContent like '%" + comContent + "%' " +
  7798. "or F_Content like '%" + comContent + "%' )";
  7799. }
  7800. if (isRelease > 0)
  7801. {
  7802. sql += "and F_IsRelease='" + isRelease + "'";
  7803. }
  7804. if (ejdeptid > 0)
  7805. {
  7806. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  7807. }
  7808. int isbusiness = RequestString.GetInt("isbusiness", -1);
  7809. if (isbusiness > -1)
  7810. {
  7811. if (isbusiness == 0)
  7812. {
  7813. sql += " and (F_IsBusiness =0 or F_IsBusiness is null) ";
  7814. }
  7815. else
  7816. {
  7817. sql += " and F_IsBusiness='1' ";
  7818. }
  7819. }
  7820. if (result.Trim() != "" && result != "undefined")
  7821. {
  7822. sql += " and F_Result like'%" + result + "%' ";
  7823. }
  7824. string Remind = "";
  7825. if (strusercode.Trim() != "" && strusercode != "undefined")
  7826. {
  7827. Remind += " and F_CreateUser ='" + strusercode + "' ";
  7828. }
  7829. if (dbdeptid > 0)
  7830. {
  7831. sql += " and F_WorkOrderId in(select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + dbdeptid + "')) )";
  7832. }
  7833. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  7834. {
  7835. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  7836. {
  7837. sql += " and F_DealTime between '" + dealstarttime +
  7838. "' AND '" + dealstrendtime + "'";
  7839. }
  7840. else
  7841. {
  7842. sql += " and F_DealTime>='" + dealstarttime + "' ";
  7843. }
  7844. }
  7845. else
  7846. {
  7847. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  7848. {
  7849. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  7850. }
  7851. }
  7852. int iscb = RequestString.GetInt("iscb", -1);
  7853. if (strSupervisor.Trim() != "" && strSupervisor != "undefined")
  7854. {
  7855. Remind += " and Supervisor ='" + strSupervisor + "' ";
  7856. }
  7857. //if (User.F_RoleCode == "DBZY")
  7858. //{
  7859. // if (Supervisor == 1)
  7860. // {
  7861. // if (strtab == "0")
  7862. // Remind += "and Supervisor='" + User.F_UserCode + "'";
  7863. // else
  7864. // Remind += "and (Supervisor ='' or Supervisor is null " +
  7865. // "or Supervisor='" + User.F_UserCode + "' )";
  7866. // }
  7867. // else if (Supervisor == 2)
  7868. // {
  7869. // Remind += "and (Supervisor ='' or Supervisor is null )";
  7870. // }
  7871. //}
  7872. //else
  7873. //{
  7874. // if (Supervisor == 1)
  7875. // {
  7876. // if (strtab == "0")
  7877. // Remind += "and Supervisor !='' and Supervisor is not null";
  7878. // }
  7879. // else if (Supervisor == 2)
  7880. // {
  7881. // Remind += "and (Supervisor ='' or Supervisor is null )";
  7882. // }
  7883. //}
  7884. if (dbstarttime.Trim() != "" && dbstarttime != "undefined")
  7885. {
  7886. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  7887. {
  7888. Remind += " and F_CreateTime between '" + dbstarttime +
  7889. "' AND '" + dbstrendtime + "'";
  7890. }
  7891. else
  7892. {
  7893. Remind += " and F_CreateTime>='" + dbstarttime + "' ";
  7894. }
  7895. }
  7896. else
  7897. {
  7898. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  7899. {
  7900. Remind += " and F_CreateTime<='" + dbstrendtime + "' ";
  7901. }
  7902. }
  7903. if (isExamine == 1)
  7904. {
  7905. Remind += "and F_IsExamine='1'";
  7906. }
  7907. else if (isExamine == 2)
  7908. {
  7909. Remind += "and (F_IsExamine !='1' or F_IsExamine is null) ";
  7910. }
  7911. #endregion
  7912. #region 筛选
  7913. //存在有督办记录的工单
  7914. var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0" + Remind;
  7915. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  7916. switch (strtab)
  7917. {
  7918. case "0"://督办-待办
  7919. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  7920. sql += "and F_WorkState !='9'";
  7921. break;
  7922. case "1"://督办-办理中
  7923. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState " +
  7924. "not in (6,9)";
  7925. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  7926. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  7927. if (strstate.Trim() != "" && strstate != "undefined")
  7928. {
  7929. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  7930. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  7931. else
  7932. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7933. }
  7934. if (iscb > -1)
  7935. {
  7936. if (iscb == 0)
  7937. {
  7938. sql += " and F_WorkState != '8' ";
  7939. }
  7940. else
  7941. {
  7942. sql += " and F_WorkState = '8' ";
  7943. }
  7944. }
  7945. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  7946. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  7947. {
  7948. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  7949. }
  7950. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  7951. {
  7952. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  7953. }
  7954. sql += ")";
  7955. if (User.F_RoleCode == "WLDW")
  7956. {
  7957. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as b WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and (F_IsNext =" + 0 + " or F_IsNext='' )and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = b.F_WorkOrderId and F_Id > b.F_Id ) and F_WorkState in (2,4,8) )";
  7958. }
  7959. break;
  7960. case "2"://督办-超期未完结
  7961. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState IN (2,4,8) and F_LimitTime<getdate() ";
  7962. if (strstate.Trim() != "" && strstate != "undefined")
  7963. {
  7964. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  7965. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  7966. else
  7967. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7968. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7969. }
  7970. break;
  7971. case "3"://督办-已退回
  7972. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  7973. break;
  7974. case "4"://督办-已完结的工单
  7975. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State !=2 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  7976. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  7977. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  7978. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  7979. {
  7980. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  7981. }
  7982. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  7983. {
  7984. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  7985. }
  7986. break;
  7987. default:
  7988. sql += " and F_WorkOrderID in(" + sqlsup + " )";
  7989. break;
  7990. case "6"://督办-待审核回复
  7991. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_IsDelete=0 ";
  7992. if (isExamine == 1)
  7993. sql += "and F_WorkState =7";
  7994. else
  7995. sql += "and F_WorkState =6";
  7996. break;
  7997. case "7"://督办综合查询
  7998. sql += " and F_WorkOrderID in(" + sqlsup + " ) " + " and F_IsDelete=0 ";
  7999. break;
  8000. }
  8001. //int jianhang = RequestString.GetInt("jianhang", 0);
  8002. //int phoneType = RequestString.GetInt("phoneType", 0);
  8003. //if (jianhang > 0)
  8004. //{
  8005. // if (jianhang == 3)
  8006. // sql += " and F_InfoSource = '2501' ";
  8007. // else
  8008. // sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  8009. //}
  8010. //else
  8011. //{
  8012. // sql += " and F_InfoSource = '1' ";
  8013. // if (phoneType == 1)
  8014. // sql += " and F_PhoneType != '12345' ";
  8015. // else if (phoneType == 2)
  8016. // sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  8017. // "or F_PhoneType is null ) ";
  8018. //}
  8019. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  8020. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  8021. {
  8022. sql += " and F_PhoneType = '" + incomingcall + "' ";
  8023. }
  8024. if (strworkid.Trim() != "" && strworkid != "undefined")
  8025. {
  8026. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  8027. }
  8028. if (strname.Trim() != "" && strname != "undefined")
  8029. {
  8030. sql += " and F_CusName like '%" + strname + "%' ";
  8031. }
  8032. if (islike > 0)
  8033. {
  8034. if (strtel.Trim() != "" && strtel != "undefined")
  8035. {
  8036. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  8037. }
  8038. }
  8039. else
  8040. {
  8041. if (strtel.Trim() != "" && strtel != "undefined")
  8042. {
  8043. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  8044. }
  8045. }
  8046. if (User.F_RoleCode == "WLDW")
  8047. {
  8048. deptid = User.F_DeptId;
  8049. }
  8050. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  8051. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  8052. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  8053. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  8054. {
  8055. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  8056. }
  8057. if (Result.Trim() != "" && Result != "undefined")
  8058. {
  8059. sql += " and F_Result like '%" + Result + "%' ";
  8060. }
  8061. if (ComContent.Trim() != "" && ComContent != "undefined")
  8062. {
  8063. sql += " and F_ComContent like '%" + ComContent + "%' ";
  8064. }
  8065. if (strkey.Trim() != "" && strkey != "undefined")
  8066. {
  8067. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  8068. " or F_Result like '%" + strkey + "%' ) ";
  8069. }
  8070. #region 坐席&调度员
  8071. if (strtab != "0")
  8072. {
  8073. if (strusercode.Trim() != "" && strusercode != "undefined")
  8074. {//坐席
  8075. var usercode = strusercode.Trim().Split(',');
  8076. var newusercode = "";
  8077. foreach (var item in usercode)
  8078. {
  8079. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8080. newusercode += "'" + item + "',";
  8081. }
  8082. newusercode = newusercode.Trim(',');
  8083. if (newusercode.Trim() != "" && newusercode != "undefined")
  8084. {
  8085. sql += " and F_CreateUser in (" + newusercode + ") ";
  8086. }
  8087. }
  8088. }
  8089. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  8090. {//调度员
  8091. var ddusercode = strddusercode.Trim().Split(',');
  8092. var newusercode = "";
  8093. foreach (var item in ddusercode)
  8094. {
  8095. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8096. newusercode += "'" + item + "',";
  8097. }
  8098. newusercode = newusercode.Trim(',');
  8099. if (newusercode.Trim() != "" && newusercode != "undefined")
  8100. {
  8101. sql += " and F_AssignUser in(" + newusercode + ") ";
  8102. }
  8103. }
  8104. #endregion
  8105. if (source != 0)
  8106. {
  8107. sql += " and F_InfoSource = '" + source + "' ";
  8108. }
  8109. string sqlwheres = ""; string value = "";
  8110. if (keyid != 0)
  8111. {
  8112. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  8113. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  8114. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  8115. // " or F_Key='" + keyid + "' )";
  8116. }
  8117. if (type != 0)
  8118. {
  8119. sql += " and F_InfoType = '" + type + "' ";
  8120. }
  8121. if (bigtype != 0)
  8122. {
  8123. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8124. }
  8125. if (smalltype != 0)
  8126. {
  8127. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8128. }
  8129. if (sourcearea != 0)
  8130. {
  8131. sql += " and F_SourceArea = '" + sourcearea + "' ";
  8132. }
  8133. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8134. {
  8135. sql += " and F_CreateTime>='" + strstarttime + "' ";
  8136. }
  8137. if (strendtime.Trim() != "" && strendtime != "undefined")
  8138. {
  8139. sql += " and F_CreateTime<='" + strendtime + "' ";
  8140. }
  8141. if (deptid != 0)
  8142. {
  8143. if (deptlevel == 0)
  8144. {
  8145. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  8146. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8147. }
  8148. else
  8149. {
  8150. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  8151. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8152. }
  8153. }
  8154. if (deptid != 0)
  8155. {
  8156. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  8157. }
  8158. #endregion
  8159. #region 导出
  8160. string cols = "F_WorkOrderId,F_ComTitle,F_ComContent,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  8161. if (isdc > 0)
  8162. {
  8163. var top = " "; var orderby = " order by F_CreateTime";
  8164. if (sql == " and F_IsDelete=0 ")
  8165. {
  8166. top = " top 1000 "; orderby += " desc ";
  8167. }
  8168. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  8169. + " dbo.GetDeptNames((select top 1 F_MainDeptId from T_Bus_AssignedInfo where F_WorkOrderId=wo.F_WorkOrderId order by F_Id desc )) 主办单位, "
  8170. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  8171. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意,(select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  8172. "and F_WorkOrderId=wo.F_WorkOrderId order by F_CreateTime desc ) as 退回原因 "
  8173. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  8174. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  8175. if (msg == "")
  8176. {
  8177. return Success("导出成功");
  8178. }
  8179. else
  8180. {
  8181. return Error("导出失败");
  8182. }
  8183. }
  8184. #endregion
  8185. int recordCount = 0;
  8186. dt = BLL.PagerBLL.GetListPager(
  8187. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  8188. "F_Id",
  8189. cols,
  8190. sql,
  8191. "ORDER BY F_CreateTime DESC",
  8192. pagesize,
  8193. pageindex,
  8194. true,
  8195. out recordCount);
  8196. #region 附加展示
  8197. dt.Columns.Add("DeptName", typeof(string));//交办单位
  8198. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  8199. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  8200. dt.Columns.Add("OverState", typeof(string));//超时状态
  8201. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  8202. dt.Columns.Add("GapTime", typeof(string));//时间差
  8203. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  8204. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  8205. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8206. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8207. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  8208. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  8209. foreach (DataRow dr in dt.Rows)
  8210. {
  8211. //获取最新交办信息
  8212. string iszbdw = "0";
  8213. int state = Int32.Parse(dr["F_WorkState"].ToString());
  8214. string ispd = "";
  8215. if (state > 1 && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DBGLY")
  8216. {
  8217. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  8218. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8219. if (dtjb.Rows.Count > 0)
  8220. {
  8221. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  8222. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  8223. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  8224. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  8225. {
  8226. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  8227. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  8228. }
  8229. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  8230. #region
  8231. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  8232. {
  8233. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8234. dr["LimitTime"] = lt;
  8235. if (!string.IsNullOrWhiteSpace(lt))
  8236. {
  8237. var ltime = DateTime.Parse(lt);
  8238. if (ltime > DateTime.Now)
  8239. {
  8240. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'";
  8241. //var SYSJ = DbHelperSQL.GetSingle(SY);
  8242. //if (SYSJ != null && SYSJ.ToString() != "")
  8243. //{
  8244. // try
  8245. // {
  8246. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  8247. // }
  8248. // catch
  8249. // {
  8250. // }
  8251. //}
  8252. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  8253. //ltime = ltime.AddDays(-days);
  8254. }
  8255. else
  8256. {
  8257. //string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays with(nolock) WHERE F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'";
  8258. //var SYSJ = DbHelperSQL.GetSingle(SY);
  8259. //if (SYSJ != null && SYSJ.ToString() != "")
  8260. //{
  8261. // try
  8262. // {
  8263. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  8264. // }
  8265. // catch
  8266. // {
  8267. // }
  8268. //}
  8269. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  8270. ltime = ltime.AddDays(days);
  8271. }
  8272. TimeSpan ts = ltime.Subtract(DateTime.Now);
  8273. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8274. if (tss < 0) { tss = -tss; }
  8275. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8276. if (ltime > DateTime.Now)
  8277. {
  8278. if (configcs != null)
  8279. {
  8280. int cs = Int32.Parse(configcs.F_ParamValue);
  8281. if (ts.TotalHours > cs)
  8282. {
  8283. dr["OverState"] = 1;
  8284. }
  8285. else
  8286. {
  8287. dr["OverState"] = 2;
  8288. }
  8289. }
  8290. dr["GapTime"] = "剩余" + gshsj;
  8291. }
  8292. else
  8293. {
  8294. dr["OverState"] = 3;
  8295. dr["GapTime"] = "超时" + gshsj;
  8296. }
  8297. }
  8298. }
  8299. if (state == (int)EnumWorkState.finish)
  8300. {
  8301. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  8302. var dttime = DateTime.Now;
  8303. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  8304. else
  8305. {
  8306. var DealTime = dr["F_CloseTime"].ToString();
  8307. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  8308. }
  8309. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8310. dr["LimitTime"] = lt;
  8311. if (!string.IsNullOrWhiteSpace(lt))
  8312. {
  8313. var ltime = DateTime.Parse(lt);
  8314. if (ltime < dttime)
  8315. {
  8316. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  8317. ltime = ltime.AddDays(days);
  8318. TimeSpan ts = dttime.Subtract(ltime);
  8319. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8320. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8321. dr["OverState"] = 3;
  8322. dr["GapTime"] = "超时" + gshsj;
  8323. }
  8324. }
  8325. }
  8326. #endregion
  8327. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  8328. }
  8329. else
  8330. {
  8331. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  8332. string mid = dr["F_MainDeptId"].ToString();
  8333. if (!string.IsNullOrEmpty(mid))
  8334. {
  8335. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  8336. }
  8337. }
  8338. }
  8339. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  8340. {
  8341. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8342. }
  8343. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  8344. {
  8345. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8346. }
  8347. #region 按钮
  8348. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  8349. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  8350. btns.Clear();
  8351. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  8352. {
  8353. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  8354. #region 判断是否存在待督办
  8355. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  8356. if (butt != null)
  8357. btns.Remove(butt);
  8358. var delay = btns.Find(c => c.key == ButtonGroup.delay().key);
  8359. if (delay != null)
  8360. btns.Remove(delay);
  8361. #endregion
  8362. }
  8363. else
  8364. {
  8365. switch (strtab)
  8366. {
  8367. case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  8368. btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  8369. btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  8370. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "DBGLY")
  8371. btns.Add(ButtonGroup.forceend());
  8372. break;
  8373. case "1"://督办-办理中 操作为:查看工单、短信催办
  8374. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY")
  8375. {
  8376. if (state == 3)
  8377. {
  8378. btns.Add(ButtonGroup.auditreback());
  8379. }
  8380. else
  8381. {
  8382. btns.Add(ButtonGroup.takeback());
  8383. btns.Add(ButtonGroup.forceend());
  8384. }
  8385. }
  8386. break;
  8387. case "2"://督办-超期未完结 操作为:查看工单、短信催办
  8388. //if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY")
  8389. // btns.Add(ButtonGroup.forceend());
  8390. break;
  8391. case "3"://督办-已退回:查看
  8392. break;
  8393. case "4"://督办-已完结:查看
  8394. break;
  8395. case "6"://督办-办理中 操作为:查看工单、短信催办
  8396. if (isExamine != 1)
  8397. {
  8398. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  8399. {
  8400. btns.Add(ButtonGroup.Approved());
  8401. btns.Add(ButtonGroup.Auditreject());
  8402. }
  8403. }
  8404. else
  8405. {
  8406. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  8407. {
  8408. btns.Add(ButtonGroup.forceend());
  8409. }
  8410. }
  8411. break;
  8412. }
  8413. btns.Add(ButtonGroup.query());
  8414. }
  8415. dr["Buttons"] = btns;
  8416. #endregion
  8417. }
  8418. #endregion
  8419. var obj = new
  8420. {
  8421. state = "success",
  8422. message = "成功",
  8423. rows = dt,
  8424. total = recordCount
  8425. };
  8426. return Content(obj.ToJson());
  8427. }
  8428. public ActionResult GetNoticeListOLD(int isdc = 0)
  8429. {
  8430. DataTable dt = new DataTable();
  8431. string sql = " and F_IsDelete=0 ";
  8432. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  8433. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  8434. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  8435. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  8436. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  8437. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  8438. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  8439. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  8440. int source = RequestString.GetInt("source", 0);
  8441. int keyid = RequestString.GetInt("keyid", 0);
  8442. int type = RequestString.GetInt("type", 0);
  8443. int bigtype = RequestString.GetInt("bigtype", 0);
  8444. int smalltype = RequestString.GetInt("smalltype", 0);
  8445. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8446. int deptid = RequestString.GetInt("deptid", 0);
  8447. string strpageindex = RequestString.GetQueryString("page");
  8448. int pageindex = 1;
  8449. string strpagesize = RequestString.GetQueryString("pagesize");
  8450. int pagesize = 10;
  8451. if (strworkid.Trim() != "" && strworkid != "undefined")
  8452. {
  8453. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  8454. }
  8455. if (strname.Trim() != "" && strname != "undefined")
  8456. {
  8457. sql += " and F_CusName like '%" + strname + "%' ";
  8458. }
  8459. if (strtel.Trim() != "" && strtel != "undefined")
  8460. {
  8461. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  8462. }
  8463. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  8464. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  8465. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  8466. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  8467. {
  8468. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  8469. }
  8470. if (Result.Trim() != "" && Result != "undefined")
  8471. {
  8472. sql += " and F_Result like '%" + Result + "%' ";
  8473. }
  8474. if (ComContent.Trim() != "" && ComContent != "undefined")
  8475. {
  8476. sql += " and F_ComContent like '%" + ComContent + "%' ";
  8477. }
  8478. if (strkey.Trim() != "" && strkey != "undefined")
  8479. {
  8480. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  8481. " or F_Result like '%" + strkey + "%' ) ";
  8482. }
  8483. #region 坐席&调度员
  8484. if (strusercode.Trim() != "" && strusercode != "undefined")
  8485. {//坐席
  8486. var usercode = strusercode.Trim().Split(',');
  8487. var newusercode = "";
  8488. foreach (var item in usercode)
  8489. {
  8490. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8491. newusercode += "'" + item + "',";
  8492. }
  8493. newusercode = newusercode.Trim(',');
  8494. if (newusercode.Trim() != "" && newusercode != "undefined")
  8495. {
  8496. sql += " and F_CreateUser in (" + newusercode + ") ";
  8497. }
  8498. }
  8499. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  8500. {//调度员
  8501. var ddusercode = strddusercode.Trim().Split(',');
  8502. var newusercode = "";
  8503. foreach (var item in ddusercode)
  8504. {
  8505. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8506. newusercode += "'" + item + "',";
  8507. }
  8508. newusercode = newusercode.Trim(',');
  8509. if (newusercode.Trim() != "" && newusercode != "undefined")
  8510. {
  8511. sql += " and F_AssignUser in(" + newusercode + ") ";
  8512. }
  8513. }
  8514. //if (strusercode.Trim() != "" && strusercode != "undefined")
  8515. //{
  8516. // sql += " and F_CreateUser = '" + strusercode + "' ";
  8517. //}
  8518. #endregion
  8519. if (source != 0)
  8520. {
  8521. sql += " and F_InfoSource = '" + source + "' ";
  8522. }
  8523. string sqlwheres = "";
  8524. if (keyid != 0)
  8525. {
  8526. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  8527. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  8528. // " or F_Key='" + keyid + "' )";
  8529. }
  8530. if (type != 0)
  8531. {
  8532. sql += " and F_InfoType = '" + type + "' ";
  8533. }
  8534. if (bigtype != 0)
  8535. {
  8536. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8537. }
  8538. if (smalltype != 0)
  8539. {
  8540. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8541. }
  8542. if (sourcearea != 0)
  8543. {
  8544. sql += " and F_SourceArea = '" + sourcearea + "' ";
  8545. }
  8546. if (deptid != 0)
  8547. {
  8548. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  8549. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8550. }
  8551. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8552. {
  8553. sql += " and F_CreateTime>='" + strstarttime + "' ";
  8554. }
  8555. if (strendtime.Trim() != "" && strendtime != "undefined")
  8556. {
  8557. sql += " and F_CreateTime<='" + strendtime + "' ";
  8558. }
  8559. if (User.F_RoleCode == "WLDW")
  8560. {
  8561. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + User.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  8562. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8563. }
  8564. else
  8565. {
  8566. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  8567. }
  8568. if (strpageindex.Trim() != "")
  8569. {
  8570. pageindex = Convert.ToInt32(strpageindex);
  8571. }
  8572. if (strpagesize.Trim() != "")
  8573. {
  8574. pagesize = Convert.ToInt32(strpagesize);
  8575. }
  8576. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  8577. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  8578. if (isdc > 0)
  8579. {
  8580. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  8581. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  8582. if (msg == "")
  8583. {
  8584. return Success("导出成功");
  8585. }
  8586. else
  8587. {
  8588. return Error("导出失败");
  8589. }
  8590. }
  8591. int recordCount = 0;
  8592. dt = BLL.PagerBLL.GetListPager(
  8593. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  8594. "F_Id",
  8595. cols,
  8596. sql,
  8597. "ORDER BY F_CreateTime DESC",
  8598. pagesize,
  8599. pageindex,
  8600. true,
  8601. out recordCount);
  8602. #region 声音文件
  8603. dt.Columns.Add("DeptName", typeof(string));//交办单位
  8604. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  8605. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  8606. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  8607. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  8608. dt.Columns.Add("IsReturnNotice", typeof(string));
  8609. dt.Columns.Add("FilePath", typeof(string));
  8610. dt.Columns.Add("Buttons", typeof(object));
  8611. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8612. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8613. int IsReturnNotice = 0;
  8614. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  8615. {
  8616. IsReturnNotice = 1;
  8617. }
  8618. foreach (DataRow dr in dt.Rows)
  8619. {
  8620. //获取最新交办信息
  8621. //string iszbdw = "0";
  8622. int state = Int32.Parse(dr["F_WorkState"].ToString());
  8623. if (state > 1)
  8624. {
  8625. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  8626. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8627. if (dtjb.Rows.Count > 0)
  8628. {
  8629. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  8630. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  8631. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  8632. {
  8633. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  8634. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  8635. }
  8636. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  8637. }
  8638. else
  8639. {
  8640. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  8641. string mid = dr["F_MainDeptId"].ToString();
  8642. if (!string.IsNullOrEmpty(mid))
  8643. {
  8644. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  8645. }
  8646. }
  8647. }
  8648. //获取最新通报信息
  8649. string sqltb = "SELECT TOP 1 * FROM T_Bus_NoticeCriticism WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  8650. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  8651. if (dttb.Rows.Count > 0)
  8652. {
  8653. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  8654. {
  8655. //dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  8656. dr["NoticeDeptName"] = departmentBLL.GetDeptNames(dttb.Rows[0]["F_DeptIds"].ToString());
  8657. }
  8658. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  8659. }
  8660. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  8661. {
  8662. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8663. }
  8664. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  8665. {
  8666. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8667. }
  8668. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  8669. btns.Add(ButtonGroup.query());
  8670. dr["Buttons"] = btns;
  8671. dr["IsReturnNotice"] = IsReturnNotice;
  8672. }
  8673. #endregion
  8674. var obj = new
  8675. {
  8676. state = "success",
  8677. message = "成功",
  8678. rows = dt,
  8679. total = recordCount
  8680. };
  8681. return Content(obj.ToJson());
  8682. }
  8683. public ActionResult GetWorkorderSimp()
  8684. {
  8685. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8686. if (!string.IsNullOrEmpty(strworkorderid))
  8687. {
  8688. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_ComContent,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  8689. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  8690. var dt = DbHelperSQL.Query(sql).Tables[0];
  8691. if (dt.Rows.Count > 0)
  8692. {
  8693. return Success("成功", dt);
  8694. }
  8695. return Error("获取失败");
  8696. }
  8697. return Error("参数错误");
  8698. }
  8699. /// <summary>
  8700. /// 获取工单信息
  8701. /// </summary>
  8702. /// <returns></returns>
  8703. //[Authority]
  8704. public ActionResult GetWorkOrder()
  8705. {
  8706. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8707. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  8708. if (!string.IsNullOrEmpty(strworkorderid))
  8709. {
  8710. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  8711. + "dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) as KeyName,dbo.GetAreaChildrenCode(F_Township) as Township , dbo.GetAreaChildrenCode(F_Village) as Village,dbo.GetDeptName(F_MainDeptId) deptname ," + "F_DeptIdIsSms = (select F_IsSms from T_Sys_Department where F_DeptId =a.F_MainDeptId)"
  8712. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  8713. var dt = DbHelperSQL.Query(sql).Tables[0];
  8714. if (dt.Rows.Count > 0)
  8715. {
  8716. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  8717. {
  8718. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  8719. if (isp == "1")
  8720. {
  8721. dt.Rows[0]["F_CusName"] = "";
  8722. dt.Rows[0]["F_CusPhone"] = "";
  8723. dt.Rows[0]["F_ConPhone"] = "";
  8724. }
  8725. }
  8726. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8727. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8728. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8729. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  8730. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  8731. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  8732. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8733. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  8734. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8735. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8736. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8737. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8738. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=2 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8739. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8740. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8741. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryNames(F_StandardIDS) as StandardNames "
  8742. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8743. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  8744. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8745. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  8746. + "from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8747. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8748. + "from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8749. // string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  8750. // + "from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8751. //string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  8752. // + "from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8753. string blsql = "", ejblsql = "";
  8754. if (User.F_RoleCode == "WLDW")
  8755. {
  8756. blsql = "select TOP 1 *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  8757. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  8758. }
  8759. else if (User.F_RoleCode == "EJWLDW")
  8760. {
  8761. blsql = "select TOP 1 *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  8762. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_CreateDeptId='" + User.F_DeptId + "' and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  8763. }
  8764. else
  8765. {
  8766. blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8767. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8768. }
  8769. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8770. + "from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  8771. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8772. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  8773. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  8774. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8775. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  8776. #region 声音文件
  8777. dt.Columns.Add("FilePath", typeof(string));
  8778. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  8779. {
  8780. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8781. }
  8782. else if (dt.Rows[0]["F_CallRecordId"] != null)
  8783. {
  8784. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  8785. }
  8786. #endregion
  8787. #region 附件
  8788. if (configfj != null)
  8789. {
  8790. dt = BindFileData(dt, configfj.F_ParamValue);
  8791. dt = BindHandlingFileFileData(dt, configfj.F_ParamValue);
  8792. }
  8793. #endregion
  8794. #region 监察信息
  8795. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  8796. if (configfj != null)
  8797. {
  8798. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  8799. }
  8800. #endregion
  8801. #region 批示信息
  8802. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  8803. if (configfj != null)
  8804. {
  8805. psdt = BindFileData(psdt, configfj.F_ParamValue);
  8806. }
  8807. #endregion
  8808. #region 指示信息
  8809. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  8810. if (configfj != null)
  8811. {
  8812. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  8813. }
  8814. #endregion
  8815. #region 回退信息
  8816. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  8817. #endregion
  8818. #region 督办信息
  8819. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  8820. if (configfj != null)
  8821. {
  8822. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  8823. }
  8824. #endregion
  8825. #region 交办信息
  8826. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  8827. if (configfj != null)
  8828. {
  8829. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  8830. }
  8831. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  8832. if (configfj != null)
  8833. {
  8834. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  8835. }
  8836. #endregion
  8837. #region 退回信息
  8838. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  8839. #endregion
  8840. #region 延时信息
  8841. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  8842. if (configfj != null)
  8843. {
  8844. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  8845. }
  8846. #endregion
  8847. #region 办理情况
  8848. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  8849. if (configfj != null)
  8850. {
  8851. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  8852. }
  8853. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  8854. if (configfj != null)
  8855. {
  8856. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  8857. }
  8858. #endregion
  8859. #region 回访信息
  8860. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  8861. hfdt.Columns.Add("FilePath", typeof(string));
  8862. foreach (DataRow bldr in hfdt.Rows)
  8863. {
  8864. if (bldr["F_CallRecordId"] != null && config != null)
  8865. {
  8866. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8867. }
  8868. }
  8869. #endregion
  8870. #region 市民催单
  8871. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  8872. cbdt.Columns.Add("FilePath", typeof(string));
  8873. foreach (DataRow bldr in cbdt.Rows)
  8874. {
  8875. if (bldr["F_CallRecordId"] != null && config != null)
  8876. {
  8877. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8878. }
  8879. }
  8880. #endregion
  8881. #region 市民评议
  8882. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  8883. #endregion
  8884. #region 办理过程
  8885. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  8886. gcdt.Columns.Add("File", typeof(object));
  8887. gcdt.Columns.Add("FilePath", typeof(string));
  8888. if (configfj != null || configly != null || config != null)
  8889. {
  8890. foreach (DataRow bldr in gcdt.Rows)
  8891. {
  8892. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  8893. {
  8894. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  8895. }
  8896. if (bldr["F_LeaveRecordId"] != null && configly != null)
  8897. {
  8898. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8899. }
  8900. else if (bldr["F_CallRecordId"] != null && config != null)
  8901. {
  8902. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8903. }
  8904. }
  8905. }
  8906. #endregion
  8907. #region 操作按钮
  8908. var btns = new List<ButtonGroup.button>();
  8909. if (jbdt.Rows.Count > 0)
  8910. {
  8911. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  8912. string ispd = jbzx["F_IsNext"].ToString();
  8913. string iszbdw = "0";
  8914. string fmd = jbzx["F_MainDeptId"].ToString();
  8915. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  8916. if (fmd == User.F_DeptId.ToString())
  8917. { iszbdw = "1"; }
  8918. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  8919. {
  8920. iszbdw = "2";
  8921. }
  8922. if (User.F_RoleCode == "EJWLDW")
  8923. {
  8924. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo_Next WITH(NOLOCK) WHERE F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc";
  8925. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8926. if (dtjb.Rows.Count > 0)
  8927. {
  8928. ispd = (int.Parse(dtjb.Rows[0]["F_IsSure"].ToString()) + 1).ToString();
  8929. }
  8930. }
  8931. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  8932. {
  8933. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  8934. }
  8935. }
  8936. else
  8937. {
  8938. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  8939. }
  8940. #region 判断是否存在待督办
  8941. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  8942. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  8943. if (recount > 0)
  8944. {
  8945. if (butt != null)
  8946. btns.Remove(butt);
  8947. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8948. {
  8949. btns.Add(ButtonGroup.oversee());
  8950. btns.Add(ButtonGroup.turnnosee());
  8951. }
  8952. }
  8953. if (btns == null)
  8954. {
  8955. btns.Add(ButtonGroup.query());
  8956. }
  8957. else
  8958. {
  8959. if (btns.Count == 0)
  8960. btns.Add(ButtonGroup.query());
  8961. }
  8962. #endregion
  8963. #endregion
  8964. #region 其他权限
  8965. int issend = 0;
  8966. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD"))
  8967. //{
  8968. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  8969. // {
  8970. // issend = 1;
  8971. // }
  8972. //}
  8973. int isnotice = 0;
  8974. if (dt.Rows[0]["F_IsNotice"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "DDZG"))
  8975. {
  8976. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  8977. {
  8978. isnotice = 1;
  8979. }
  8980. }
  8981. int isedit = 0;
  8982. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  8983. //{
  8984. // isedit = 1;
  8985. //}
  8986. #endregion
  8987. var obj = new
  8988. {
  8989. data = dt,
  8990. jcdata = jcdt,
  8991. psdata = psdt,
  8992. zsdata = zsdt,
  8993. htdata = htdt,
  8994. dbdata = dbdt,
  8995. jbdata = jbdt,
  8996. ejjbdata = ejjbdt,
  8997. thdata = thdt,
  8998. ysdata = ysdt,
  8999. bldata = bldt,
  9000. ejbldata = ejbldt,
  9001. hfdata = hfdt,
  9002. cbdata = cbdt,
  9003. gcdata = gcdt,
  9004. issend = issend,
  9005. isedit = isedit,
  9006. isnotice = isnotice,
  9007. btndata = btns,
  9008. pydt
  9009. };
  9010. return Success("获取成功", obj);
  9011. }
  9012. else
  9013. {
  9014. return Error("获取失败");
  9015. }
  9016. }
  9017. else
  9018. {
  9019. return Error("参数传输失败");
  9020. }
  9021. }
  9022. /// <summary>
  9023. /// 导出word
  9024. /// </summary>
  9025. /// <returns></returns>
  9026. //[Authority]
  9027. public ActionResult ExportWorkOrder()
  9028. {
  9029. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9030. if (!string.IsNullOrEmpty(strworkorderid))
  9031. {
  9032. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  9033. + "dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) as KeyName,dbo.GetDeptName(F_MainDeptId) deptname ," + "F_DeptIdIsSms = (select F_IsSms from T_Sys_Department where F_DeptId =a.F_MainDeptId)"
  9034. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  9035. var dt = DbHelperSQL.Query(sql).Tables[0];
  9036. if (dt.Rows.Count > 0)
  9037. {
  9038. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  9039. {
  9040. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  9041. if (isp == "1")
  9042. {
  9043. dt.Rows[0]["F_CusName"] = "";
  9044. dt.Rows[0]["F_CusPhone"] = "";
  9045. dt.Rows[0]["F_ConPhone"] = "";
  9046. }
  9047. }
  9048. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryNames(F_StandardIDS) as StandardNames "
  9049. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9050. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  9051. //ExportWord np = new ExportWord();
  9052. //np.CreateWord(dt ,jbdt,User .F_UserCode );
  9053. //string url = dt.Rows[0]["F_WorkOrderId"].ToString();
  9054. //url = "http://192.168.8.9:1042//Upload/Word/工单" + url + ".doc";
  9055. //return Success(url);
  9056. var aw = new AsposeWord();
  9057. aw.OpenWithTemplate(Server.MapPath("/Upload/Word/热线工单模版.doc"));
  9058. aw.Builder();
  9059. aw.CreateAssignWord(dt, jbdt, User.F_UserCode);
  9060. var bt = aw.ExportAs();
  9061. Response.AppendHeader("Access-Control-Expose-Headers", "Content-Disposition");
  9062. return File(bt, "application/msword", "工单" + strworkorderid + ".doc");
  9063. }
  9064. else
  9065. {
  9066. return Error("获取失败");
  9067. }
  9068. }
  9069. else
  9070. {
  9071. return Error("参数传输失败");
  9072. }
  9073. }
  9074. /// <summary>
  9075. /// 获取工单信息
  9076. /// </summary>
  9077. /// <returns></returns>
  9078. //[Authority]
  9079. public ActionResult GetWorkOrderNew()
  9080. {
  9081. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9082. int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  9083. if (!string.IsNullOrEmpty(strworkorderid))
  9084. {
  9085. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  9086. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  9087. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9088. switch (type)
  9089. {
  9090. case 0:
  9091. #region 基本信息
  9092. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetKeyNames(F_Key) as KeyName,dbo.GetDeptName(F_MainDeptId) deptname ,dbo.GetAreaChildrenCode(F_Township) as Township , dbo.GetAreaChildrenCode(F_Village) as Village,F_DeptIdIsSms = (select F_IsSms from T_Sys_Department WITH(NOLOCK) where F_DeptId =a.F_MainDeptId),dbo.GetIsRelease(F_WorkOrderId) as IsRelease " +
  9093. ",(case (select COUNT(1) from T_Cus_VipInfo where F_Phone = a.F_CusPhone and F_IsDelete = 0 and F_State = 0 ) when 0 then 0 else 1 end) as vip from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  9094. var dt = DbHelperSQL.Query(sql).Tables[0];
  9095. if (dt.Rows.Count > 0)
  9096. {
  9097. if (User.F_RoleCode == "WLDW" && dt.Rows[0]["F_MainDeptId"].ToString() != User.F_DeptId.ToString())
  9098. {
  9099. dt.Rows[0]["F_Result"] = "";
  9100. }
  9101. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  9102. {
  9103. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  9104. if (isp == "1")
  9105. {
  9106. dt.Rows[0]["F_CusPhone"] = "";
  9107. dt.Rows[0]["F_ConPhone"] = "";
  9108. }
  9109. }
  9110. if (dt.Rows[0]["F_See"] != null)
  9111. {
  9112. if (!dt.Rows[0]["F_See"].ToString().Contains("'" + User.F_DeptId + "'"))
  9113. {
  9114. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9115. keyValuePairs.Add("F_See", dt.Rows[0]["F_See"].ToString() + ",'" + User.F_DeptId + "'");
  9116. workorderBLL.UpdateWorkOrder(int.Parse(dt.Rows[0]["F_Id"].ToString()), keyValuePairs);
  9117. }
  9118. }
  9119. else
  9120. {
  9121. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9122. keyValuePairs.Add("F_See", "'" + User.F_DeptId + "'");
  9123. workorderBLL.UpdateWorkOrder(int.Parse(dt.Rows[0]["F_Id"].ToString()), keyValuePairs);
  9124. }
  9125. #region 声音文件
  9126. dt.Columns.Add("FilePath", typeof(string));
  9127. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  9128. {
  9129. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9130. }
  9131. else if (dt.Rows[0]["F_CallRecordId"] != null)
  9132. {
  9133. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  9134. }
  9135. if (dt.Rows[0]["F_InfoSource"].ToString() == "2580")
  9136. {
  9137. dt.Columns.Add("TFDBACKTIME_BF", typeof(string));
  9138. dt.Columns.Add("SEND_CONTENT", typeof(string));
  9139. dt.Columns.Add("CASE_SERIAL", typeof(string));
  9140. string workorder = strworkorderid;
  9141. if (dt.Rows[0]["F_MainWorkorder1"] != null && dt.Rows[0]["F_MainWorkorder1"].ToString() != "")
  9142. {
  9143. workorder = dt.Rows[0]["F_MainWorkorder1"].ToString();
  9144. }
  9145. var TFDBACKTIME_BF = DbHelperSQL.Query("select CASE_SERIAL,SEND_CONTENT ," +
  9146. "TFDBACKTIME_BF from " +
  9147. "T_Sys_Affairs where F_WorkOrderId" +
  9148. "='" + workorder + "'").Tables[0];
  9149. if (TFDBACKTIME_BF != null && TFDBACKTIME_BF.Rows.Count > 0)
  9150. {
  9151. dt.Rows[0]["TFDBACKTIME_BF"] = TFDBACKTIME_BF.Rows[0]["TFDBACKTIME_BF"].ToString();
  9152. dt.Rows[0]["SEND_CONTENT"] = TFDBACKTIME_BF.Rows[0]["SEND_CONTENT"].ToString();
  9153. dt.Rows[0]["CASE_SERIAL"] = TFDBACKTIME_BF.Rows[0]["CASE_SERIAL"].ToString();
  9154. }
  9155. }
  9156. #endregion
  9157. #region 附件
  9158. if (configfj != null)
  9159. {
  9160. dt = BindFileData(dt, configfj.F_ParamValue);
  9161. dt = BindHandlingFileFileData(dt, configfj.F_ParamValue);
  9162. }
  9163. #endregion
  9164. #region 操作按钮
  9165. var btns = new List<ButtonGroup.button>();
  9166. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dt.Rows[0]["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  9167. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  9168. string ispd = "";
  9169. if (dtjb != null && dtjb.Rows.Count > 0)
  9170. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  9171. if (User.F_RoleCode == "EJWLDW")
  9172. {
  9173. string sqlejjb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo_Next WITH(NOLOCK) WHERE F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc";
  9174. var dtejjb = DbHelperSQL.Query(sqlejjb).Tables[0];
  9175. if (dtejjb.Rows.Count > 0)
  9176. {
  9177. ispd = (int.Parse(dtejjb.Rows[0]["F_IsSure"].ToString()) + 1).ToString();
  9178. }
  9179. }
  9180. btns = ButtonGroup.GetAPPButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsProResult"].ToString(), dt.Rows[0]["F_InfoSource"].ToString(), ispd);
  9181. #endregion
  9182. #region 其他权限
  9183. int issend = 0;
  9184. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD"))
  9185. //{
  9186. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  9187. // {
  9188. // issend = 1;
  9189. // }
  9190. //}
  9191. int isnotice = 0;
  9192. if (dt.Rows[0]["F_IsNotice"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  9193. {
  9194. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  9195. {
  9196. isnotice = 1;
  9197. }
  9198. }
  9199. int isedit = 0;
  9200. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  9201. //{
  9202. // isedit = 1;
  9203. //}
  9204. #endregion
  9205. var obj = new
  9206. {
  9207. data = dt,
  9208. issend,
  9209. isedit,
  9210. isnotice,
  9211. btndata = btns
  9212. };
  9213. return Success("获取成功", obj);
  9214. }
  9215. else
  9216. {
  9217. return Error("获取失败");
  9218. }
  9219. #endregion
  9220. case 1:
  9221. #region 交办信息
  9222. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryNames(F_StandardIDS) as StandardNames from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9223. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9224. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9225. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  9226. if (configfj != null)
  9227. {
  9228. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  9229. }
  9230. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  9231. if (configfj != null)
  9232. {
  9233. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  9234. }
  9235. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  9236. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  9237. {
  9238. BindFileData(thdt, configfj.F_ParamValue);
  9239. }
  9240. var obj1 = new
  9241. {
  9242. jbdata = jbdt,
  9243. ejjbdata = ejjbdt,
  9244. thdata = thdt
  9245. };
  9246. return Success("获取成功", obj1);
  9247. #endregion
  9248. case 2:
  9249. #region 指示信息
  9250. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=2 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9251. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  9252. if (configfj != null)
  9253. {
  9254. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  9255. }
  9256. return Success("获取成功", zsdt);
  9257. #endregion
  9258. case 3:
  9259. #region 回退信息
  9260. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9261. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  9262. return Success("获取成功", htdt);
  9263. #endregion
  9264. case 4:
  9265. #region 办理情况
  9266. string blsql = "", ejblsql = "";
  9267. if (User.F_RoleCode == "WLDW")
  9268. {
  9269. blsql = "select TOP 1 *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9270. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9271. }
  9272. else if (User.F_RoleCode == "EJWLDW")
  9273. {
  9274. blsql = "select TOP 1 *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9275. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_CreateDeptId='" + User.F_DeptId + "' and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9276. }
  9277. else
  9278. {
  9279. blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9280. ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9281. }
  9282. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  9283. if (bldt != null && bldt.Rows.Count > 0)
  9284. {
  9285. if (User.F_RoleCode == "WLDW" && bldt.Rows[0]["F_CreateDeptId"].ToString() != User.F_DeptId.ToString())
  9286. {
  9287. bldt.Rows[0]["F_Result"] = "";
  9288. }
  9289. }
  9290. if (configfj != null)
  9291. {
  9292. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  9293. }
  9294. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  9295. if (configfj != null)
  9296. {
  9297. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  9298. }
  9299. var obj5 = new
  9300. {
  9301. bldata = bldt,
  9302. ejbldata = ejbldt
  9303. };
  9304. return Success("获取成功", obj5);
  9305. #endregion
  9306. case 5:
  9307. #region 延时信息
  9308. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9309. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  9310. if (configfj != null)
  9311. {
  9312. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  9313. }
  9314. return Success("获取成功", ysdt);
  9315. #endregion
  9316. case 6:
  9317. #region 回访信息
  9318. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  9319. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  9320. hfdt.Columns.Add("FilePath", typeof(string));
  9321. hfdt.Columns.Add("F_Phone", typeof(string));
  9322. foreach (DataRow bldr in hfdt.Rows)
  9323. {
  9324. if (bldr["F_CallRecordId"] != null && config != null)
  9325. {
  9326. try
  9327. {
  9328. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_CallRecordId"].ToString()));
  9329. if (luyin != null)
  9330. {
  9331. if (!string.IsNullOrEmpty(luyin.FilePath))
  9332. {
  9333. var ym = config.F_ParamValue;
  9334. ym = ym.Substring(0, ym.Length - 1);
  9335. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  9336. bldr["FilePath"] = ym + lujing;
  9337. }
  9338. bldr["F_Phone"] = luyin.CallNumber;
  9339. }
  9340. }
  9341. catch
  9342. {
  9343. }
  9344. }
  9345. }
  9346. return Success("获取成功", hfdt);
  9347. #endregion
  9348. case 7:
  9349. #region 督办信息
  9350. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9351. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  9352. if (configfj != null)
  9353. {
  9354. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  9355. }
  9356. return Success("获取成功", dbdt);
  9357. #endregion
  9358. case 8:
  9359. #region 市民催单
  9360. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9361. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  9362. cbdt.Columns.Add("FilePath", typeof(string));
  9363. foreach (DataRow bldr in cbdt.Rows)
  9364. {
  9365. if (bldr["F_CallRecordId"] != null && config != null)
  9366. {
  9367. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9368. }
  9369. }
  9370. return Success("获取成功", cbdt);
  9371. #endregion
  9372. case 9:
  9373. #region 办理过程
  9374. string gcsql = "select o.*,u.F_UserName from T_Bus_Operation o WITH(NOLOCK) left join T_Sys_UserAccount u WITH(NOLOCK) on o.F_CreateUser=u.F_UserCode where o.F_IsDelete=0 and o.F_WorkOrderId ='" + strworkorderid + "' order by o.F_CreateTime ";
  9375. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  9376. gcdt.Columns.Add("File", typeof(object));
  9377. gcdt.Columns.Add("FilePath", typeof(string));
  9378. if (configfj != null || configly != null || config != null)
  9379. {
  9380. foreach (DataRow bldr in gcdt.Rows)
  9381. {
  9382. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  9383. {
  9384. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  9385. }
  9386. if (bldr["F_LeaveRecordId"] != null && configly != null)
  9387. {
  9388. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9389. }
  9390. else if (bldr["F_CallRecordId"] != null && config != null)
  9391. {
  9392. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9393. }
  9394. }
  9395. }
  9396. return Success("获取成功", gcdt);
  9397. #endregion
  9398. case 10:
  9399. #region 市民评议
  9400. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  9401. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  9402. return Success("获取成功", pydt);
  9403. #endregion
  9404. case 11:
  9405. #region 监察信息
  9406. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9407. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  9408. if (configfj != null)
  9409. {
  9410. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  9411. }
  9412. return Success("获取成功", jcdt);
  9413. #endregion
  9414. case 12:
  9415. #region 批示信息
  9416. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9417. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  9418. if (configfj != null)
  9419. {
  9420. psdt = BindFileData(psdt, configfj.F_ParamValue);
  9421. }
  9422. return Success("获取成功", psdt);
  9423. #endregion
  9424. case 13:
  9425. #region 审核信息
  9426. string shsql = "select *,[dbo].[GetDeptNames](a.F_MainDeptId) as DeptNames from T_Bus_ToExamine a WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_ID desc";
  9427. var shdt = DbHelperSQL.Query(shsql).Tables[0];
  9428. return Success("获取成功", shdt);
  9429. #endregion
  9430. }
  9431. return Error("获取失败");
  9432. }
  9433. else
  9434. {
  9435. return Error("参数传输失败");
  9436. }
  9437. }
  9438. /// <summary>
  9439. /// 获取草稿信息
  9440. /// </summary>
  9441. /// <returns></returns>
  9442. //[Authority]
  9443. public ActionResult GetDraftInfo()
  9444. {
  9445. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9446. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  9447. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  9448. {
  9449. string sql = string.Empty;
  9450. switch (type)
  9451. {
  9452. case 1:
  9453. sql = "select top 1 *,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryName(F_StandardIDS) as StandardNames from T_Bus_AssignedInfo WITH(NOLOCK)"; break;
  9454. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  9455. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  9456. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  9457. }
  9458. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + User.F_UserCode + " order by F_CreateTime desc";
  9459. var dt = DbHelperSQL.Query(sql).Tables[0];
  9460. if (dt.Rows.Count > 0)
  9461. {
  9462. #region 附件
  9463. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9464. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  9465. {
  9466. BindFileData(dt, configfj.F_ParamValue);
  9467. }
  9468. #endregion
  9469. }
  9470. return Success("获取成功", dt);
  9471. }
  9472. else
  9473. {
  9474. return Error("参数传输失败");
  9475. }
  9476. }
  9477. /// <summary>
  9478. /// 获取审核信息
  9479. /// </summary>
  9480. /// <returns></returns>
  9481. //[Authority]
  9482. public ActionResult GetAuditInfo()
  9483. {
  9484. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9485. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  9486. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  9487. {
  9488. string sql = string.Empty;
  9489. switch (type)
  9490. {
  9491. case 1: sql = "select top 1 dbo.GetDeptNames(a .F_CreateDeptId) as DepeName , * from T_Bus_Feedback a WITH(NOLOCK) where F_Type=3 and F_State=1 and "; break;
  9492. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  9493. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and "; break;
  9494. }
  9495. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  9496. var dt = DbHelperSQL.Query(sql).Tables[0];
  9497. if (dt.Rows.Count > 0)
  9498. {
  9499. #region 附件
  9500. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9501. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  9502. {
  9503. BindFileData(dt, configfj.F_ParamValue);
  9504. }
  9505. #endregion
  9506. }
  9507. return Success("获取成功", dt);
  9508. }
  9509. else
  9510. {
  9511. return Error("参数传输失败");
  9512. }
  9513. }
  9514. /// <summary>
  9515. /// 获取所有交办单位
  9516. /// </summary>
  9517. /// <returns></returns>
  9518. //[Authority]
  9519. public ActionResult GetAllAssignDept()
  9520. {
  9521. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9522. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  9523. if (modelT_Bus_WorkOrder != null)
  9524. {
  9525. string ids = string.Empty;
  9526. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  9527. foreach (var assign in Assigns)
  9528. {
  9529. if (string.IsNullOrEmpty(ids))
  9530. {
  9531. ids = assign.F_MainDeptId.Value.ToString();
  9532. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  9533. {
  9534. ids += "," + assign.F_OtherDeptIds;
  9535. }
  9536. }
  9537. else
  9538. {
  9539. ids += "," + assign.F_MainDeptId.Value.ToString();
  9540. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  9541. {
  9542. ids += "," + assign.F_OtherDeptIds;
  9543. }
  9544. }
  9545. }
  9546. if (string.IsNullOrEmpty(ids))
  9547. {
  9548. ids = "0";
  9549. }
  9550. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  9551. return Success("获取成功", dt);
  9552. }
  9553. else
  9554. {
  9555. return Error("操作失败");
  9556. }
  9557. }
  9558. /// <summary>
  9559. /// 获取二级单位处理信息
  9560. /// </summary>
  9561. /// <returns></returns>
  9562. //[Authority]
  9563. public ActionResult GetSecondDealInfo()
  9564. {
  9565. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9566. if (!string.IsNullOrEmpty(strworkorderid))
  9567. {
  9568. //string sql = "SELECT an.F_Id, an.F_WorkOrderId, an.F_MainDeptId, an.F_OtherDeptIds, an.F_AssignedOpinion, an.F_Remark, an.F_CreateUser, an.F_CreateTime, an.F_IsSure, an.F_State, ";
  9569. //sql += " an.F_SureTime, an.F_IsDelete, an.F_DeleteUser, an.F_DeleteTime, an.F_SureUser, an.F_FeedbackTime, an.F_LimitTime, an.F_IsOverdue, an.F_IsSatisfie, ";
  9570. //sql += " an.F_IsReload, an.F_ReloadUser, an.F_ReloadTime, an.F_File, an.F_IsNotice, an.F_NoticeUser, an.F_NoticeTime, fn.F_AssignedId, ";
  9571. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  9572. //sql += " FROM T_Bus_AssignedInfo_Next AS an LEFT OUTER JOIN T_Bus_Feedback_Next AS fn ON an.F_Id = fn.F_AssignedId AND an.F_IsDelete = 0 AND fn.F_IsDelete = 0";
  9573. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  9574. //var dt = DbHelperSQL.Query(sql).Tables[0];
  9575. string sql = "select top 1 * from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  9576. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  9577. if (User.F_RoleCode == "EJWLDW")
  9578. {
  9579. sql = "select top 1 * from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "'and F_MainDeptId='" + User.F_DeptId + "' and F_IsDelete = 0 order by F_CreateTime desc";
  9580. }
  9581. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  9582. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9583. if (configfj != null)
  9584. {
  9585. bldt = BindFileData(bldt, configfj.F_ParamValue);
  9586. }
  9587. var obj = new
  9588. {
  9589. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  9590. fkinfo = bldt
  9591. };
  9592. return Success("获取成功", obj);
  9593. }
  9594. else
  9595. {
  9596. return Error("参数传输失败");
  9597. }
  9598. }
  9599. /// <summary>
  9600. /// 获取二级单位最新处理信息
  9601. /// </summary>
  9602. /// <returns></returns>
  9603. //[Authority]
  9604. public ActionResult GetNewSecondDealInfo()
  9605. {
  9606. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9607. if (!string.IsNullOrEmpty(strworkorderid))
  9608. {
  9609. string sql = "select top 1 * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  9610. var bldt = DbHelperSQL.Query(sql).Tables[0];
  9611. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9612. if (configfj != null)
  9613. {
  9614. bldt = BindFileData(bldt, configfj.F_ParamValue);
  9615. }
  9616. return Success("获取成功", bldt);
  9617. }
  9618. else
  9619. {
  9620. return Error("参数传输失败");
  9621. }
  9622. }
  9623. /// <summary>
  9624. /// 修改工单内容和处理结果
  9625. /// </summary>
  9626. /// <returns></returns>
  9627. //[Authority]
  9628. public ActionResult EditResult()
  9629. {
  9630. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  9631. {
  9632. string workorderid = RequestString.GetFormString("workorderid");
  9633. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9634. string result = RequestString.GetFormString("result");
  9635. string content = RequestString.GetFormString("content");
  9636. string comContent = RequestString.GetFormString("comContent");
  9637. string additionalReply = RequestString.GetFormString("additionalReply");
  9638. if (modelT_Bus_WorkOrder != null)
  9639. {
  9640. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9641. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9642. if (!string.IsNullOrEmpty(content))
  9643. {
  9644. string message = "";
  9645. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Content))
  9646. message = modelT_Bus_WorkOrder.F_Content;
  9647. else
  9648. message = modelT_Bus_WorkOrder.F_ComTitle;
  9649. if (content != message)
  9650. {
  9651. // modelT_Bus_WorkOrder.F_Content = content;
  9652. keyValuePairs.Add("F_Content", content);
  9653. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9654. oper.F_WorkOrderId = workorderid;
  9655. oper.F_AssignedId = 0;
  9656. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9657. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  9658. oper.F_CreateUser = User.F_UserCode;
  9659. oper.F_CreateTime = DateTime.Now;
  9660. oper.F_IsDelete = 0;
  9661. operBLL.Add(oper);
  9662. }
  9663. }
  9664. if (!string.IsNullOrEmpty(comContent))
  9665. {
  9666. string message = "";
  9667. message = modelT_Bus_WorkOrder.F_ComContent;
  9668. if (comContent != message)
  9669. {
  9670. // modelT_Bus_WorkOrder.F_Content = content;
  9671. keyValuePairs.Add("F_ComContent", comContent);
  9672. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9673. oper.F_WorkOrderId = workorderid;
  9674. oper.F_AssignedId = 0;
  9675. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9676. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  9677. oper.F_CreateUser = User.F_UserCode;
  9678. oper.F_CreateTime = DateTime.Now;
  9679. oper.F_IsDelete = 0;
  9680. operBLL.Add(oper);
  9681. }
  9682. }
  9683. if (!string.IsNullOrEmpty(additionalReply))
  9684. {
  9685. string message = "";
  9686. message = modelT_Bus_WorkOrder.F_AdditionalReply;
  9687. if (additionalReply != message)
  9688. {
  9689. // modelT_Bus_WorkOrder.F_Content = content;
  9690. keyValuePairs.Add("F_AdditionalReply", additionalReply);
  9691. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9692. oper.F_WorkOrderId = workorderid;
  9693. oper.F_AssignedId = 0;
  9694. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9695. oper.F_Message = userinfo + " 修改了追加回复内容,原内容:" + message;
  9696. oper.F_CreateUser = User.F_UserCode;
  9697. oper.F_CreateTime = DateTime.Now;
  9698. oper.F_IsDelete = 0;
  9699. operBLL.Add(oper);
  9700. }
  9701. }
  9702. if (!string.IsNullOrEmpty(result))
  9703. {
  9704. string message = "";
  9705. message = modelT_Bus_WorkOrder.F_Result;
  9706. if (result != message)
  9707. {
  9708. // modelT_Bus_WorkOrder.F_Result = result;
  9709. keyValuePairs.Add("F_Result", result);
  9710. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9711. oper.F_WorkOrderId = workorderid;
  9712. oper.F_AssignedId = 0;
  9713. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9714. oper.F_Message = userinfo + " 修改了办理结果,原结果:" + message;
  9715. oper.F_CreateUser = User.F_UserCode;
  9716. oper.F_CreateTime = DateTime.Now;
  9717. oper.F_IsDelete = 0;
  9718. operBLL.Add(oper);
  9719. }
  9720. }
  9721. if (keyValuePairs.Count > 0)
  9722. {
  9723. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  9724. if (n)
  9725. return Success("操作成功");
  9726. else
  9727. return Error("修改失败");
  9728. }
  9729. else
  9730. {
  9731. return Success("操作成功");
  9732. }
  9733. }
  9734. else
  9735. {
  9736. return Error("操作失败");
  9737. }
  9738. }
  9739. else
  9740. {
  9741. return Error("权限不足");
  9742. }
  9743. }
  9744. /// <summary>
  9745. /// 修改下级单位处理内容
  9746. /// </summary>
  9747. /// <returns></returns>
  9748. //[Authority]
  9749. public ActionResult EditDealWorkOrder()
  9750. {
  9751. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9752. {
  9753. string workorderid = RequestString.GetFormString("workorderid");
  9754. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9755. string result = RequestString.GetFormString("result");
  9756. string flies = RequestString.GetFormString("flies");
  9757. int feedbackid = RequestString.GetInt("feedbackid", 0);
  9758. var modelT_Bus_Feedback_Nexts = new Model.T_Bus_Feedback_Next();
  9759. if (feedbackid > 0)
  9760. {
  9761. modelT_Bus_Feedback_Nexts = new BLL.T_Bus_Feedback_Next().GetModel(feedbackid);
  9762. }
  9763. else
  9764. {
  9765. var modelT_Bus_Feedback = new BLL.T_Bus_Feedback_Next()
  9766. .GetModelList("F_WorkOrderId='" + workorderid + "' and F_IsDelete = 0 order by F_CreateTime desc");
  9767. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.Count > 0)
  9768. {
  9769. modelT_Bus_Feedback_Nexts = modelT_Bus_Feedback[0];
  9770. }
  9771. }
  9772. if (modelT_Bus_WorkOrder != null)
  9773. {
  9774. string message = modelT_Bus_Feedback_Nexts.F_Result;
  9775. modelT_Bus_Feedback_Nexts.F_Result = result;//反馈内容
  9776. modelT_Bus_Feedback_Nexts.F_File = flies;
  9777. bool n = new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Nexts);
  9778. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9779. oper.F_WorkOrderId = workorderid;
  9780. oper.F_AssignedId = modelT_Bus_Feedback_Nexts.F_Id;
  9781. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9782. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9783. oper.F_Message = userinfo + " 修改了下级单位办理内容,原内容:" + message;
  9784. oper.F_CreateUser = User.F_UserCode;
  9785. oper.F_CreateTime = DateTime.Now;
  9786. oper.F_IsDelete = 0;
  9787. operBLL.Add(oper);
  9788. return Success("操作成功");
  9789. }
  9790. else
  9791. {
  9792. return Error("操作失败");
  9793. }
  9794. }
  9795. else
  9796. {
  9797. return Error("权限不足");
  9798. }
  9799. }
  9800. /// <summary>
  9801. /// 查看回访信息
  9802. /// </summary>
  9803. /// <returns></returns>
  9804. //[Authority]
  9805. public ActionResult GetVisitInfo()
  9806. {
  9807. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9808. if (!string.IsNullOrEmpty(strworkorderid))
  9809. {
  9810. string sqlvisit = "select * from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSatisfie=0 order by F_CreateTime";
  9811. string sqlassgin = "select * from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 order by F_CreateTime";
  9812. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  9813. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  9814. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  9815. dtvisit.Columns.Add("FilePath", typeof(string));
  9816. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  9817. if (dtvisit.Rows.Count > 0)
  9818. {
  9819. foreach (DataRow bldr in dtvisit.Rows)
  9820. {
  9821. #region 是否可勾选
  9822. var IsShowCheck = 0;
  9823. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  9824. if (drass.Length > 0)
  9825. {
  9826. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  9827. if (ass > 0)
  9828. {
  9829. if (ass == User.F_DeptId)
  9830. IsShowCheck = 1;
  9831. }
  9832. }
  9833. bldr["IsShowCheck"] = IsShowCheck;
  9834. #endregion
  9835. #region 录音
  9836. if (bldr["F_CallRecordId"] != null && config != null)
  9837. {
  9838. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9839. }
  9840. #endregion
  9841. }
  9842. }
  9843. return Success("获取成功", dtvisit);
  9844. }
  9845. else
  9846. {
  9847. return Error("参数传输失败");
  9848. }
  9849. }
  9850. #endregion
  9851. /// <summary>
  9852. /// 上传附件
  9853. /// </summary>
  9854. /// <returns></returns>
  9855. //[Authority]
  9856. public ActionResult UploadFile()
  9857. {
  9858. #region 单个上传 no use
  9859. //string path = string.Empty;
  9860. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  9861. //if (_upfile != null)
  9862. //{
  9863. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  9864. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  9865. // string name = string.Empty;
  9866. // FileUp fu = new FileUp();
  9867. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  9868. // if (model != null)
  9869. // {
  9870. // name = fu.Upload(_upfile, model.F_ParamValue);
  9871. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  9872. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  9873. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  9874. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  9875. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  9876. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  9877. // model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  9878. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  9879. // return Success("成功", model_T_Sys_Accessories);
  9880. // }
  9881. // else
  9882. // {
  9883. // return Error("上传失败");
  9884. // }
  9885. //}
  9886. //else
  9887. //{
  9888. // return Error("请选择要上传的文件");
  9889. //}
  9890. #endregion
  9891. #region 多个上传
  9892. HttpFileCollection files = RequestString.GetFiles();
  9893. if (files.Count > 0)
  9894. {
  9895. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  9896. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  9897. for (int i = 0; i < files.Count; i++)
  9898. {
  9899. HttpPostedFile file = files[i];
  9900. FileUp fu = new FileUp();
  9901. string fileExtension = Configs.GetValue("fileExtension");
  9902. if (!fileExtension.Contains((System.IO.Path.GetExtension(file.FileName).ToLower())))
  9903. {
  9904. return Error("附件格式不正确");
  9905. }
  9906. string name = fu.Upload(file, path);
  9907. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  9908. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  9909. model_T_Sys_Accessories.F_FileName = name;//附件名称
  9910. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  9911. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  9912. model_T_Sys_Accessories.F_Size = file.ContentLength;
  9913. model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  9914. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  9915. model_T_Sys_Accessories.F_FileId = id;
  9916. acs.Add(model_T_Sys_Accessories);
  9917. }
  9918. return Success("成功", acs);
  9919. }
  9920. else
  9921. {
  9922. return Error("请选择要上传的文件");
  9923. }
  9924. #endregion
  9925. }
  9926. /// <summary>
  9927. /// 添加工单信息
  9928. /// </summary>
  9929. /// <returns></returns>
  9930. //[Authority]
  9931. public ActionResult AddWorkOrder()
  9932. {
  9933. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  9934. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY"
  9935. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ"
  9936. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  9937. || User.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  9938. {
  9939. int source = RequestString.GetInt("source", 0);
  9940. string cusname = RequestString.GetFormString("cusname");
  9941. string cussex = RequestString.GetFormString("cussex");
  9942. string cusphone = RequestString.GetFormString("cusphone");
  9943. string cusaddress = RequestString.GetFormString("cusaddress");
  9944. string email = RequestString.GetFormString("email");
  9945. string zipcode = RequestString.GetFormString("zipcode");
  9946. string conname = RequestString.GetFormString("conname");
  9947. string conphone = RequestString.GetFormString("conphone");
  9948. string title = RequestString.GetFormString("title");
  9949. string content = RequestString.GetFormString("content");
  9950. string files = RequestString.GetFormString("files");
  9951. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9952. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9953. int isresult = RequestString.GetInt("isresult", 0);
  9954. string result = RequestString.GetFormString("result");
  9955. string keys = RequestString.GetFormString("keys");
  9956. string splituser = RequestString.GetFormString("splituser");
  9957. int type = RequestString.GetInt("type", 0);
  9958. int bigtype = RequestString.GetInt("bigtype", 0);
  9959. int smalltype = RequestString.GetInt("smalltype", 0);
  9960. int isprotect = RequestString.GetInt("isprotect", 0);
  9961. int level = RequestString.GetInt("level", 0);
  9962. int issubmit = RequestString.GetInt("issubmit", 0);
  9963. string callid = RequestString.GetFormString("callid");
  9964. string CallRecordsId = RequestString.GetFormString("CallRecordsId");
  9965. string longitude = RequestString.GetFormString("longitude");//经度
  9966. string latitude = RequestString.GetFormString("latitude");//纬度
  9967. int business = RequestString.GetInt("business", 0); ;//
  9968. int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
  9969. int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
  9970. int LeaveRecordId = RequestString.GetInt("LeaveRecordId", 0);
  9971. int township = RequestString.GetInt("township", 0);
  9972. int village = RequestString.GetInt("village", 0);
  9973. string file = RequestString.GetFormString("file");
  9974. int smsid = RequestString.GetInt("smsid", 0);
  9975. int deptid = 0;
  9976. var modeldept = new Model.T_Sys_Department();
  9977. var premodeldept = new Model.T_Sys_Department();
  9978. var isAutoSendOrder = Configs.GetValue("IsAutoSendOrder");
  9979. if (string.IsNullOrEmpty(keys))
  9980. {
  9981. return Error("请选择反映类别");
  9982. }
  9983. if (isAutoSendOrder == "1")
  9984. {
  9985. if (!string.IsNullOrEmpty(keys))
  9986. {
  9987. try
  9988. {
  9989. var model = new BLL.T_Sys_DictionaryValue().GetModel
  9990. (int.Parse(keys));
  9991. if (model != null && model.F_Deptid != 0 && model.F_Deptid != null)
  9992. {
  9993. deptid = (int)model.F_Deptid;
  9994. modeldept = new BLL.T_Sys_Department().GetModel(deptid);
  9995. if (modeldept != null && modeldept.F_DeptId != 0)
  9996. {
  9997. if (modeldept.F_IsDept == 2)
  9998. {
  9999. if (modeldept.F_PartentId > 0)
  10000. {
  10001. premodeldept = department((int)modeldept.F_PartentId);
  10002. }
  10003. }
  10004. else
  10005. {
  10006. premodeldept = modeldept;
  10007. }
  10008. }
  10009. }
  10010. }
  10011. catch
  10012. {
  10013. }
  10014. }
  10015. }
  10016. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  10017. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10018. {
  10019. #region 保存工单信息
  10020. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  10021. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  10022. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  10023. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10024. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10025. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10026. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10027. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10028. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10029. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10030. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10031. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10032. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10033. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10034. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10035. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10036. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10037. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10038. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10039. modelT_Bus_WorkOrder.F_File = files;//附件
  10040. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10041. modelT_Bus_WorkOrder.F_Key = keys;
  10042. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  10043. modelT_Bus_WorkOrder.F_Level = level;
  10044. modelT_Bus_WorkOrder.F_VisitType = visittype;
  10045. modelT_Bus_WorkOrder.F_Township = township;
  10046. modelT_Bus_WorkOrder.F_Village = village;
  10047. if (LeaveRecordId > 0)
  10048. {
  10049. var ld = new BLL.T_Call_LeaveRecord().GetModel(LeaveRecordId);
  10050. if (ld != null)
  10051. {
  10052. ld.F_Status = 1;
  10053. ld.F_DealTime = DateTime.Now;
  10054. ld.F_UserId = User.F_UserId;
  10055. ld.F_UserCode = User.F_UserCode;
  10056. ld.F_UserName = User.F_UserName;
  10057. new BLL.T_Call_LeaveRecord().Update(ld);
  10058. modelT_Bus_WorkOrder.F_LeaveRecordId = LeaveRecordId;
  10059. }
  10060. }
  10061. Task.Run(() =>
  10062. {
  10063. if (smsid > 0)
  10064. {
  10065. var sms = new BLL.T_SMS_RecvSMS().GetModel(smsid);
  10066. if (sms != null)
  10067. {
  10068. sms.F_Name = modelT_Bus_WorkOrder.F_WorkOrderId;
  10069. new BLL.T_SMS_RecvSMS().Update(sms);
  10070. }
  10071. }
  10072. });
  10073. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  10074. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  10075. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  10076. //是否直办(即时答复)0:,否1: 是
  10077. modelT_Bus_WorkOrder.F_IsResult = isresult;
  10078. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  10079. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  10080. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  10081. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  10082. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  10083. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  10084. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  10085. modelT_Bus_WorkOrder.F_ToBereply = 0;
  10086. //如果选择即刻答复:是,即为直办,工单结束
  10087. if (isresult == 1)
  10088. {
  10089. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  10090. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  10091. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  10092. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10093. modelT_Bus_WorkOrder.F_IsClosed = 1;
  10094. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10095. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  10096. if (!string.IsNullOrEmpty(file))
  10097. {
  10098. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  10099. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10100. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  10101. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10102. #region 20200114新增字段 zhengbingbing
  10103. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10104. DateTime contime = DateTime.Now;
  10105. modelT_Bus_Feedback.F_IsProResult = 1;
  10106. #endregion
  10107. modelT_Bus_Feedback.F_File = file;
  10108. modelT_Bus_Feedback.F_IsAudit = 0;
  10109. modelT_Bus_Feedback.F_IsDelete = 0;
  10110. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  10111. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10112. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  10113. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10114. modelT_Bus_Feedback.F_State = 1;
  10115. modelT_Bus_Feedback.F_Type = 1;
  10116. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10117. }
  10118. }
  10119. else if (issubmit == 1)
  10120. {
  10121. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10122. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//
  10123. }
  10124. #region
  10125. #endregion
  10126. if (!string.IsNullOrEmpty(CallRecordsId))
  10127. {
  10128. var rd = new BLL.T_Call_CallRecords().GetModelByRecordId(CallRecordsId);
  10129. if (rd != null)
  10130. {
  10131. modelT_Bus_WorkOrder.F_CallId = rd.CallId;
  10132. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10133. rd.IsExitWorkOrder = true;
  10134. new BLL.T_Call_CallRecords().Update(rd);
  10135. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  10136. }
  10137. }
  10138. else if (!string.IsNullOrEmpty(callid))
  10139. {
  10140. modelT_Bus_WorkOrder.F_CallId = callid;
  10141. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  10142. if (rd != null)
  10143. {
  10144. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10145. rd.IsExitWorkOrder = true;
  10146. new BLL.T_Call_CallRecords().Update(rd);
  10147. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  10148. }
  10149. }
  10150. modelT_Bus_WorkOrder.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder);
  10151. #endregion
  10152. trans.Complete();
  10153. }
  10154. if (modelT_Bus_WorkOrder.F_Id <= 0)
  10155. return Error("添加失败");
  10156. else
  10157. {
  10158. Task.Run(() =>
  10159. {
  10160. string case_message= case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_info");
  10161. if (case_message == "")
  10162. { //服务工单材料
  10163. if (!string.IsNullOrEmpty(files))
  10164. {
  10165. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_WorkOrder.F_Id, "10");
  10166. }
  10167. //电话服务记录
  10168. if (!string.IsNullOrEmpty(callid))
  10169. {
  10170. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_record");
  10171. }
  10172. }
  10173. }).ContinueWith(p =>
  10174. {
  10175. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10176. });
  10177. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10178. string message = "";
  10179. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10180. {
  10181. message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10182. }
  10183. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10184. {
  10185. message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10186. }
  10187. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  10188. {
  10189. message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10190. Task.Run(() =>
  10191. {
  10192. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  10193. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  10194. {
  10195. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  10196. }
  10197. }).ContinueWith(p =>
  10198. {
  10199. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10200. });
  10201. try
  10202. {
  10203. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  10204. {
  10205. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  10206. }
  10207. }
  10208. catch (Exception ex)
  10209. {
  10210. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  10211. }
  10212. }
  10213. var curuser = User;
  10214. Task.Run(() =>
  10215. {
  10216. #region 插入操作记录
  10217. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10218. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10219. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10220. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  10221. oper.F_File = modelT_Bus_WorkOrder.F_File;
  10222. oper.F_Message = message;
  10223. oper.F_CreateUser = curuser.F_UserCode;
  10224. oper.F_CreateTime = DateTime.Now;
  10225. oper.F_IsDelete = 0;
  10226. operBLL.Add(oper);
  10227. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.finish)
  10228. {
  10229. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  10230. string msg = "";
  10231. // bool n = SMSController.AddSmS(0, msg, count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  10232. string phone = modelT_Bus_WorkOrder.F_CusPhone;
  10233. if (phone.Length > 11)
  10234. phone = phone.Substring(1, 11);
  10235. string n = SmsNewController.AddSmS(0, count, phone, "681240256766803968", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  10236. }
  10237. #endregion
  10238. }).ContinueWith(p =>
  10239. {
  10240. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10241. });
  10242. Task.Run(() =>
  10243. {
  10244. saveCus(cusname, cusphone, cusaddress);
  10245. });
  10246. if (isAutoSendOrder == "1" && premodeldept.F_DeptId != 0 && premodeldept.F_DeptId != null)
  10247. {
  10248. Task.Run(async () =>
  10249. {
  10250. #region 自动派单
  10251. //时限
  10252. string resdatetime = GetLimittime(7);
  10253. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10254. // DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  10255. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  10256. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10257. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  10258. // var datatime = DateTime.Now.AddDays(7);
  10259. // if (Convert.ToDateTime(resdatetime) > datatime)
  10260. // {
  10261. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  10262. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10263. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  10264. // " with(nolock) where F_OffState = 1 and " +
  10265. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  10266. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  10267. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  10268. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  10269. // {
  10270. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  10271. // }
  10272. // //var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10273. // //if (datetime.DayOfWeek == DayOfWeek.Saturday || datetime.DayOfWeek == DayOfWeek.Sunday)
  10274. // //{
  10275. // // resdatetime = datetime.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss");
  10276. // //}
  10277. // //else
  10278. // //{
  10279. // // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  10280. // //}
  10281. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  10282. // }
  10283. //交办信息
  10284. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10285. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10286. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10287. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;
  10288. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  10289. modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
  10290. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  10291. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10292. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10293. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10294. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10295. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10296. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10297. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10298. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10299. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  10300. //工单信息
  10301. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10302. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  10303. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  10304. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  10305. //modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  10306. keyValuePairs.Add("F_OtherDeptIds", "");
  10307. // modelT_Bus_WorkOrder.F_OtherDeptIds = ""
  10308. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  10309. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  10310. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10311. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10312. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10313. var msgss = userinfo + " 交办了工单,主办单位:" + premodeldept.F_DeptName;
  10314. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10315. if (modeldept.F_IsDept == 2)
  10316. {
  10317. SplitOrderNew(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单", curuser);
  10318. }
  10319. else
  10320. {
  10321. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  10322. keyValuePairs1.Add("F_WorkState", 2);
  10323. modelT_Bus_WorkOrder.F_WorkState = 2;
  10324. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  10325. await Task.Run(() =>
  10326. {
  10327. //addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10328. });
  10329. }
  10330. await Task.Run(() => {
  10331. //推送消息表
  10332. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  10333. foreach (var u in users)
  10334. {
  10335. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10336. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  10337. {
  10338. continue;
  10339. }
  10340. else
  10341. {
  10342. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10343. // string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
  10344. // bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
  10345. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10346. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  10347. modelT_Bus_WorkOrder.F_WorkOrderId);
  10348. }
  10349. }
  10350. });
  10351. #endregion
  10352. }).ContinueWith(p => {
  10353. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10354. });
  10355. }
  10356. }
  10357. return Success("操作成功");
  10358. }
  10359. else
  10360. {
  10361. return Error("权限不足");
  10362. }
  10363. }
  10364. private string GetLimittime(int limit)
  10365. {
  10366. string resdatetime = "";
  10367. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10368. DataTable dt = DbHelperSQL.Query("select top " + limit + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  10369. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  10370. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10371. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  10372. var datatime = DateTime.Now.AddDays(limit);
  10373. if (Convert.ToDateTime(resdatetime) > datatime)
  10374. {
  10375. if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
  10376. {
  10377. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  10378. //DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10379. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  10380. // " with(nolock) where F_OffState = 1 and " +
  10381. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  10382. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  10383. resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  10384. "08:00:00").ToString("yyyy-MM-dd HH:mm:ss");
  10385. }
  10386. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  10387. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  10388. // {
  10389. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  10390. // }
  10391. //var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10392. //if (datetime.DayOfWeek == DayOfWeek.Saturday || datetime.DayOfWeek == DayOfWeek.Sunday)
  10393. //{
  10394. // resdatetime = datetime.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss");
  10395. //}
  10396. //else
  10397. //{
  10398. // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  10399. //}
  10400. // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  10401. }
  10402. return resdatetime;
  10403. }
  10404. /// <summary>
  10405. /// 添加工单信息
  10406. /// </summary>
  10407. /// <returns></returns>
  10408. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  10409. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  10410. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  10411. {
  10412. string workorderid = string.Empty;
  10413. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10414. {
  10415. #region 保存工单信息
  10416. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  10417. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  10418. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  10419. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea
  10420. , creattime, endtime);
  10421. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10422. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10423. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10424. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10425. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10426. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10427. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10428. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10429. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10430. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10431. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10432. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10433. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10434. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10435. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10436. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10437. modelT_Bus_WorkOrder.F_File = files;//附件
  10438. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10439. modelT_Bus_WorkOrder.F_Key = keys;
  10440. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  10441. modelT_Bus_WorkOrder.F_Level = level;
  10442. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  10443. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  10444. //modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  10445. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  10446. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  10447. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  10448. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  10449. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  10450. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  10451. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  10452. workorderBLL.Add(modelT_Bus_WorkOrder);
  10453. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  10454. #endregion
  10455. #region 插入操作记录
  10456. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10457. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10458. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10459. string userinfo = "";
  10460. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  10461. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  10462. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  10463. {
  10464. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10465. }
  10466. //oper.F_CreateUser = User.F_UserCode;
  10467. oper.F_CreateTime = DateTime.Now;
  10468. oper.F_IsDelete = 0;
  10469. operBLL.Add(oper);
  10470. #endregion
  10471. trans.Complete();
  10472. }
  10473. return workorderid;
  10474. }
  10475. /// <summary>
  10476. /// 添加工单信息留言
  10477. /// </summary>
  10478. /// <returns></returns>
  10479. //[Authority]
  10480. public ActionResult AddWorkOrderByLY()
  10481. {
  10482. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10483. {
  10484. int source = RequestString.GetInt("source", 0);
  10485. string cusname = RequestString.GetFormString("cusname");
  10486. string cussex = RequestString.GetFormString("cussex");
  10487. string cusphone = RequestString.GetFormString("cusphone");
  10488. string cusaddress = RequestString.GetFormString("cusaddress");
  10489. string email = RequestString.GetFormString("email");
  10490. string zipcode = RequestString.GetFormString("zipcode");
  10491. string conname = RequestString.GetFormString("conname");
  10492. string conphone = RequestString.GetFormString("conphone");
  10493. string title = RequestString.GetFormString("title");
  10494. string content = RequestString.GetFormString("content");
  10495. string files = RequestString.GetFormString("files");
  10496. int sourcearea = RequestString.GetInt("sourcearea", 0);
  10497. string sourceaddress = RequestString.GetFormString("sourceaddress");
  10498. int isresult = RequestString.GetInt("isresult", 0);
  10499. string result = RequestString.GetFormString("result");
  10500. string keys = RequestString.GetFormString("keys");
  10501. string splituser = RequestString.GetFormString("splituser");
  10502. int type = RequestString.GetInt("type", 0);
  10503. int bigtype = RequestString.GetInt("bigtype", 0);
  10504. int smalltype = RequestString.GetInt("smalltype", 0);
  10505. int isprotect = RequestString.GetInt("isprotect", 0);
  10506. int level = RequestString.GetInt("level", 0);
  10507. int issubmit = RequestString.GetInt("issubmit", 0);
  10508. int lyid = RequestString.GetInt("lyid", 0);
  10509. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10510. {
  10511. #region 保存工单信息
  10512. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  10513. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  10514. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  10515. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  10516. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10517. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10518. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10519. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10520. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10521. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10522. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10523. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10524. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10525. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10526. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10527. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10528. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10529. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10530. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10531. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10532. modelT_Bus_WorkOrder.F_File = files;//附件
  10533. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10534. modelT_Bus_WorkOrder.F_Key = keys;
  10535. modelT_Bus_WorkOrder.F_Level = level;
  10536. //是否直办(即时答复)0:,否1: 是
  10537. modelT_Bus_WorkOrder.F_IsResult = isresult;
  10538. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  10539. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  10540. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  10541. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  10542. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  10543. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  10544. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  10545. //如果选择即刻答复:是,即为直办,工单结束
  10546. if (isresult == 1)
  10547. {
  10548. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  10549. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  10550. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10551. modelT_Bus_WorkOrder.F_IsClosed = 1;
  10552. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10553. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  10554. }
  10555. else if (issubmit == 1)
  10556. {
  10557. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10558. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  10559. }
  10560. #region
  10561. //20190715去掉审核环节
  10562. //else
  10563. //{
  10564. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  10565. //}
  10566. //else if (issubmit == 1)
  10567. //{
  10568. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10569. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  10570. //}
  10571. #endregion
  10572. if (lyid != 0)
  10573. {
  10574. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  10575. if (rd != null)
  10576. {
  10577. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  10578. }
  10579. }
  10580. workorderBLL.Add(modelT_Bus_WorkOrder);
  10581. #endregion
  10582. #region 插入操作记录
  10583. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10584. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10585. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10586. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  10587. oper.F_File = modelT_Bus_WorkOrder.F_File;
  10588. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10589. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  10590. {
  10591. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10592. }
  10593. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  10594. {
  10595. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10596. }
  10597. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  10598. {
  10599. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10600. }
  10601. oper.F_CreateUser = User.F_UserCode;
  10602. oper.F_CreateTime = DateTime.Now;
  10603. oper.F_IsDelete = 0;
  10604. operBLL.Add(oper);
  10605. ////推送消息表
  10606. //if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  10607. //{
  10608. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10609. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10610. // foreach (var u in users)
  10611. // {
  10612. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10613. // }
  10614. //}
  10615. #endregion
  10616. trans.Complete();
  10617. }
  10618. return Success("操作成功");
  10619. }
  10620. else
  10621. {
  10622. return Error("权限不足");
  10623. }
  10624. }
  10625. /// <summary>
  10626. /// 添加工单信息
  10627. /// </summary>
  10628. /// <returns></returns>
  10629. //[Authority]
  10630. public ActionResult AddWorkOrderByAPP()
  10631. {
  10632. int source = RequestString.GetInt("source", 6);
  10633. string cusname = RequestString.GetFormString("cusname");
  10634. string cussex = RequestString.GetFormString("cussex");
  10635. string cusphone = RequestString.GetFormString("cusphone");
  10636. string cusaddress = RequestString.GetFormString("cusaddress");
  10637. string email = RequestString.GetFormString("email");
  10638. string zipcode = RequestString.GetFormString("zipcode");
  10639. string conname = RequestString.GetFormString("conname");
  10640. string conphone = RequestString.GetFormString("conphone");
  10641. string title = RequestString.GetFormString("title");
  10642. string content = RequestString.GetFormString("content");
  10643. string files = RequestString.GetFormString("files");
  10644. int sourcearea = RequestString.GetInt("sourcearea", 0);
  10645. string sourceaddress = RequestString.GetFormString("sourceaddress");
  10646. int isresult = RequestString.GetInt("isresult", 0);
  10647. string result = RequestString.GetFormString("result");
  10648. string keys = RequestString.GetFormString("keys");
  10649. string splituser = RequestString.GetFormString("splituser");
  10650. int type = RequestString.GetInt("type", 0);
  10651. int bigtype = RequestString.GetInt("bigtype", 0);
  10652. int smalltype = RequestString.GetInt("smalltype", 0);
  10653. int isprotect = RequestString.GetInt("isprotect", 0);
  10654. int level = RequestString.GetInt("level", 0);
  10655. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  10656. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  10657. if (!string.IsNullOrEmpty(workorderid))
  10658. {
  10659. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10660. {
  10661. #region 保存用户工单信息
  10662. var model = new BLL.T_Sys_Users().GetModel(User.F_UserCode);
  10663. if (model == null)
  10664. {
  10665. model = new Model.T_Sys_Users();
  10666. model.F_OpenId = User.F_UserCode;
  10667. model.F_Type = (int)EnumUserType.app;//3;
  10668. model.F_CreateTime = DateTime.Now;
  10669. model.F_Id = new BLL.T_Sys_Users().Add(model);
  10670. }
  10671. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  10672. tbu.F_UserId = model.F_Id;
  10673. tbu.F_WorkOrderId = workorderid;
  10674. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  10675. #endregion
  10676. trans.Complete();
  10677. }
  10678. return Success("操作成功");
  10679. }
  10680. else
  10681. {
  10682. return Error("操作失败");
  10683. }
  10684. }
  10685. /// <summary>
  10686. /// 修改工单信息
  10687. /// </summary>
  10688. /// <returns></returns>
  10689. //[Authority]
  10690. public ActionResult EditWorkOrder(List<maindeptcontent> contsents)
  10691. {
  10692. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ"
  10693. )
  10694. {
  10695. string workorderid = RequestString.GetFormString("workorderid");
  10696. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10697. int source = RequestString.GetInt("source", 0);
  10698. string cusname = RequestString.GetFormString("cusname");
  10699. string cussex = RequestString.GetFormString("cussex");
  10700. string cusphone = RequestString.GetFormString("cusphone");
  10701. string cusaddress = RequestString.GetFormString("cusaddress");
  10702. string email = RequestString.GetFormString("email");
  10703. string zipcode = RequestString.GetFormString("zipcode");
  10704. string conname = RequestString.GetFormString("conname");
  10705. string conphone = RequestString.GetFormString("conphone");
  10706. int state = RequestString.GetInt("state", 0);
  10707. string title = RequestString.GetFormString("title");
  10708. string content = RequestString.GetFormString("content");
  10709. string files = RequestString.GetFormString("files");
  10710. int sourcearea = RequestString.GetInt("sourcearea", 0);
  10711. string sourceaddress = RequestString.GetFormString("sourceaddress");
  10712. int isresult = RequestString.GetInt("isresult", 0);
  10713. string result = RequestString.GetFormString("result");
  10714. string keys = RequestString.GetFormString("keys");
  10715. string splituser = RequestString.GetFormString("splituser");
  10716. int type = RequestString.GetInt("type", 0);
  10717. int bigtype = RequestString.GetInt("bigtype", 0);
  10718. int smalltype = RequestString.GetInt("smalltype", 0);
  10719. int isprotect = RequestString.GetInt("isprotect", 0);
  10720. int level = RequestString.GetInt("level", 0);
  10721. int issubmit = RequestString.GetInt("issubmit", 0);
  10722. int isopen = RequestString.GetInt("isopen", 0);
  10723. int business = RequestString.GetInt("business", 0);
  10724. int township = RequestString.GetInt("township", 0);
  10725. int village = RequestString.GetInt("village", 0);
  10726. string file = RequestString.GetFormString("file");
  10727. string workcontent = RequestString.GetFormString("workcontent");
  10728. string maindeptids = RequestString.GetFormString("maindeptids");
  10729. int limittimes = RequestString.GetInt("limittimes", 0);
  10730. //领导批示
  10731. string superOpinion = RequestString.GetFormString("superOpinion");
  10732. lock (_MyLock)
  10733. {
  10734. #region 保存工单信息
  10735. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10736. keyValuePairs.Add("F_InfoSource", source);
  10737. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10738. keyValuePairs.Add("F_Township", township);
  10739. //modelT_Bus_WorkOrder.F_Township = township;
  10740. keyValuePairs.Add("F_Village", village);
  10741. //modelT_Bus_WorkOrder.F_Village = village;
  10742. keyValuePairs.Add("F_InfoType", type);
  10743. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10744. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  10745. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10746. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  10747. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10748. keyValuePairs.Add("F_SourceArea", sourcearea);
  10749. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10750. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  10751. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10752. keyValuePairs.Add("F_CusName", cusname);
  10753. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10754. keyValuePairs.Add("F_CusSex", cussex);
  10755. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10756. keyValuePairs.Add("F_CusPhone", cusphone);
  10757. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10758. keyValuePairs.Add("F_CusAddress", cusaddress);
  10759. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10760. keyValuePairs.Add("F_ZipCode", zipcode);
  10761. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10762. keyValuePairs.Add("F_ConName", conname);
  10763. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10764. keyValuePairs.Add("F_ConPhone", conphone);
  10765. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10766. keyValuePairs.Add("F_Email", email);
  10767. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10768. keyValuePairs.Add("F_ComTitle", title);
  10769. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10770. keyValuePairs.Add("F_ComContent", content);
  10771. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10772. keyValuePairs.Add("F_File", files);
  10773. // modelT_Bus_WorkOrder.F_File = files;//附件
  10774. keyValuePairs.Add("F_IsProtect", isprotect);
  10775. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10776. keyValuePairs.Add("F_Content", workcontent);
  10777. // modelT_Bus_WorkOrder.F_Content = workcontent;
  10778. keyValuePairs.Add("F_Key", keys);
  10779. // modelT_Bus_WorkOrder.F_Key = keys;
  10780. keyValuePairs.Add("F_Level", level);
  10781. // modelT_Bus_WorkOrder.F_Level = level;
  10782. keyValuePairs.Add("F_ToBereply", 0);
  10783. keyValuePairs.Add("F_SplitUser", splituser);
  10784. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  10785. //是否直办(即时答复)0:,否1: 是
  10786. keyValuePairs.Add("F_IsResult", isresult);
  10787. //领导批示
  10788. keyValuePairs.Add("F_SuperOpinion", superOpinion);
  10789. if (source != 1 && source != 3 && source != 6 && !string.IsNullOrEmpty(maindeptids))
  10790. {
  10791. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptids + ")");
  10792. if (deptlist != null)
  10793. {
  10794. if (deptlist.Count == 1)
  10795. {
  10796. var deptinfo = deptlist.FirstOrDefault();
  10797. if (deptinfo.F_IsDept == 2)
  10798. {
  10799. if (deptinfo.F_PartentId > 0)
  10800. {
  10801. var premodeldept = department((int)deptinfo.F_PartentId);
  10802. if (premodeldept == null)
  10803. return Error("该单位没有上级单位,派单失败");
  10804. }
  10805. else
  10806. {
  10807. return Error("该单位没有上级单位,派单失败");
  10808. }
  10809. }
  10810. }
  10811. else
  10812. {
  10813. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  10814. return Error("派单多单位不能派给三级单位");
  10815. }
  10816. }
  10817. else
  10818. {
  10819. return Error("单位不存在");
  10820. }
  10821. }
  10822. modelT_Bus_WorkOrder.F_IsResult = isresult;
  10823. keyValuePairs.Add("F_Result", result);
  10824. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  10825. if (isopen > 0)
  10826. {
  10827. keyValuePairs.Add("F_IsOpen", isopen);
  10828. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  10829. }
  10830. if (isresult == 1)
  10831. {
  10832. keyValuePairs.Add("F_WorkState", 9);
  10833. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  10834. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  10835. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  10836. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  10837. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  10838. keyValuePairs.Add("F_DealTime", DateTime.Now);
  10839. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10840. keyValuePairs.Add("F_IsClosed", 1);
  10841. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  10842. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  10843. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10844. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  10845. var cureuser = User;
  10846. Task.Run(() =>
  10847. {
  10848. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  10849. }).ContinueWith(p =>
  10850. {
  10851. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10852. });
  10853. }
  10854. else if (issubmit == 1)
  10855. {
  10856. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  10857. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10858. keyValuePairs.Add("F_WorkState", 1);
  10859. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  10860. }
  10861. if (!string.IsNullOrEmpty(file))
  10862. {
  10863. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  10864. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10865. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  10866. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10867. #region 20200114新增字段 zhengbingbing
  10868. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10869. DateTime contime = DateTime.Now;
  10870. modelT_Bus_Feedback.F_IsProResult = 1;
  10871. #endregion
  10872. modelT_Bus_Feedback.F_File = file;
  10873. modelT_Bus_Feedback.F_IsAudit = 0;
  10874. modelT_Bus_Feedback.F_IsDelete = 0;
  10875. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  10876. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10877. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  10878. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10879. modelT_Bus_Feedback.F_State = 1;
  10880. modelT_Bus_Feedback.F_Type = 1;
  10881. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10882. }
  10883. #region
  10884. #endregion
  10885. if (state > 0)
  10886. {
  10887. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10888. {
  10889. int assignid = RequestString.GetInt("assignid", 0);
  10890. int maindeptid = RequestString.GetInt("maindeptid", 0);
  10891. //string maindeptid = RequestString.GetFormString("maindeptid");
  10892. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10893. DateTime limittime = DateTime.Now;
  10894. try
  10895. {
  10896. limittime = DateTime.Now.AddDays(int.Parse(RequestString.GetFormString("limittime")));
  10897. }
  10898. catch
  10899. {
  10900. limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  10901. }
  10902. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10903. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10904. if (!string.IsNullOrEmpty(otherdeptids))
  10905. {
  10906. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  10907. {
  10908. return Error("主办单位不能出现在协办单位");
  10909. }
  10910. }
  10911. if (limittime < DateTime.Now)
  10912. {
  10913. return Error("办理时限不能小于当前时间");
  10914. }
  10915. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10916. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  10917. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  10918. {
  10919. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  10920. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10921. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10922. {
  10923. int aid = 0;
  10924. using (TransactionScope tran = new TransactionScope())
  10925. {
  10926. if (assignid == 0)
  10927. {
  10928. #region 插入交办记录
  10929. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10930. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  10931. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  10932. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10933. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10934. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10935. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10936. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10937. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10938. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10939. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10940. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10941. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10942. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10943. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10944. #endregion
  10945. }
  10946. else
  10947. {
  10948. #region 修改交办记录
  10949. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  10950. if (modelT_Bus_AssignedInfo != null)
  10951. {
  10952. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  10953. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  10954. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10955. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10956. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10957. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10958. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10959. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10960. assignBLL.Update(modelT_Bus_AssignedInfo);
  10961. aid = modelT_Bus_AssignedInfo.F_Id;
  10962. }
  10963. #endregion
  10964. }
  10965. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10966. {
  10967. #region 保存工单信息
  10968. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  10969. keyValuePairs.Add("F_WorkState", 2);
  10970. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  10971. keyValuePairs.Add("F_LimitTime", limittime);
  10972. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  10973. keyValuePairs.Add("F_MainDeptId", maindeptid);
  10974. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  10975. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  10976. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  10977. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  10978. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  10979. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10980. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10981. #endregion
  10982. #region 删除草稿信息
  10983. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10984. foreach (var cg in cglist)
  10985. {
  10986. cg.F_IsDelete = 1;
  10987. cg.F_DeleteUser = User.F_UserCode;
  10988. cg.F_DeleteTime = DateTime.Now;
  10989. assignBLL.Update(cg);
  10990. }
  10991. #endregion
  10992. #region 插入操作记录
  10993. Model.T_Bus_Operation opers = new Model.T_Bus_Operation();
  10994. opers.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10995. opers.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10996. opers.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10997. string userinfos = User.depname + "(" + User.F_UserCode + ")";
  10998. opers.F_Message = userinfos + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10999. if (!string.IsNullOrEmpty(otherdeptids))
  11000. {
  11001. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  11002. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  11003. opers.F_Message += ",协办单位:" + deptname;
  11004. }
  11005. opers.F_CreateUser = User.F_UserCode;
  11006. opers.F_CreateTime = DateTime.Now;
  11007. opers.F_IsDelete = 0;
  11008. operBLL.Add(opers);
  11009. ////推送消息表
  11010. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11011. //foreach (var u in users)
  11012. //{
  11013. // msg.AddInternalMessagesInfo("工单消息", opers.F_Message + ",工单编号:" + opers.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11014. //}
  11015. #endregion
  11016. }
  11017. tran.Complete();
  11018. }
  11019. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  11020. }
  11021. else
  11022. {
  11023. return Error("已经交办过了");
  11024. }
  11025. }
  11026. else
  11027. {
  11028. return Error("操作失败");
  11029. }
  11030. }
  11031. else
  11032. {
  11033. return Error("权限不足");
  11034. }
  11035. }
  11036. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11037. #endregion
  11038. #region 插入操作记录
  11039. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11040. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11041. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11042. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  11043. oper.F_File = modelT_Bus_WorkOrder.F_File;
  11044. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11045. oper.F_Message = userinfo + " 修改了工单";
  11046. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11047. {
  11048. oper.F_Message = userinfo + " 修改并提交了工单";
  11049. }
  11050. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)//1)
  11051. {
  11052. oper.F_Message = userinfo + " 修改了重办工单";
  11053. }
  11054. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11055. {
  11056. oper.F_Message = userinfo + " 修改并结案了工单";
  11057. Task.Run(() =>
  11058. {
  11059. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  11060. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  11061. {
  11062. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  11063. }
  11064. }).ContinueWith(p =>
  11065. {
  11066. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11067. });
  11068. try
  11069. {
  11070. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  11071. {
  11072. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  11073. }
  11074. }
  11075. catch (Exception ex)
  11076. {
  11077. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  11078. }
  11079. }
  11080. oper.F_CreateUser = User.F_UserCode;
  11081. oper.F_CreateTime = DateTime.Now;
  11082. oper.F_IsDelete = 0;
  11083. operBLL.Add(oper);
  11084. //Task.Run(() =>
  11085. //{//推送消息表
  11086. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11087. // {
  11088. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY'or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11089. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  11090. // foreach (var u in users)
  11091. // {
  11092. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11093. // }
  11094. // }
  11095. //});
  11096. //调用科大讯飞
  11097. #endregion
  11098. }
  11099. return Success("操作成功");
  11100. }
  11101. else
  11102. {
  11103. return Success("权限不足");
  11104. }
  11105. }
  11106. /// <summary>
  11107. /// 修改工单信息
  11108. /// </summary>
  11109. /// <returns></returns>
  11110. //[Authority]
  11111. public ActionResult EditWorkOrderBySource()
  11112. {
  11113. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11114. {
  11115. string workorderid = RequestString.GetFormString("workorderid");
  11116. int source = RequestString.GetInt("source", 0);
  11117. string cusname = RequestString.GetFormString("cusname");
  11118. string cussex = RequestString.GetFormString("cussex");
  11119. string cusphone = RequestString.GetFormString("cusphone");
  11120. string cusaddress = RequestString.GetFormString("cusaddress");
  11121. string email = RequestString.GetFormString("email");
  11122. string zipcode = RequestString.GetFormString("zipcode");
  11123. string conname = RequestString.GetFormString("conname");
  11124. string conphone = RequestString.GetFormString("conphone");
  11125. string title = RequestString.GetFormString("title");
  11126. string content = RequestString.GetFormString("content");
  11127. string files = RequestString.GetFormString("files");
  11128. int sourcearea = RequestString.GetInt("sourcearea", 0);
  11129. string sourceaddress = RequestString.GetFormString("sourceaddress");
  11130. string workcontent = RequestString.GetFormString("workcontent");
  11131. int isresult = RequestString.GetInt("isresult", 0);
  11132. string result = RequestString.GetFormString("result");
  11133. string keys = RequestString.GetFormString("keys");
  11134. string splituser = RequestString.GetFormString("splituser");
  11135. int type = RequestString.GetInt("type", 0);
  11136. int bigtype = RequestString.GetInt("bigtype", 0);
  11137. int smalltype = RequestString.GetInt("smalltype", 0);
  11138. int isprotect = RequestString.GetInt("isprotect", 0);
  11139. int level = RequestString.GetInt("level", 0);
  11140. int issubmit = RequestString.GetInt("issubmit", 0);
  11141. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11142. if (modelT_Bus_WorkOrder != null)
  11143. {
  11144. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  11145. {
  11146. //using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11147. //{
  11148. #region 保存工单信息
  11149. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11150. keyValuePairs.Add("F_InfoSource", source);
  11151. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  11152. keyValuePairs.Add("F_InfoType", type);
  11153. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  11154. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  11155. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  11156. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  11157. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  11158. keyValuePairs.Add("F_SourceArea", sourcearea);
  11159. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  11160. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  11161. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  11162. keyValuePairs.Add("F_CusName", cusname);
  11163. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  11164. keyValuePairs.Add("F_CusSex", cussex);
  11165. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  11166. keyValuePairs.Add("F_CusPhone", cusphone);
  11167. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  11168. keyValuePairs.Add("F_CusAddress", cusaddress);
  11169. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  11170. keyValuePairs.Add("F_ZipCode", zipcode);
  11171. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  11172. keyValuePairs.Add("F_ConName", conname);
  11173. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  11174. keyValuePairs.Add("F_ConPhone", conphone);
  11175. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  11176. keyValuePairs.Add("F_Email", email);
  11177. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  11178. keyValuePairs.Add("F_ComTitle", title);
  11179. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  11180. keyValuePairs.Add("F_ComContent", content);
  11181. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  11182. keyValuePairs.Add("F_File", files);
  11183. // modelT_Bus_WorkOrder.F_File = files;//附件
  11184. keyValuePairs.Add("F_IsProtect", isprotect);
  11185. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  11186. keyValuePairs.Add("F_Content", workcontent);
  11187. // modelT_Bus_WorkOrder.F_Content = workcontent;
  11188. keyValuePairs.Add("F_Key", keys);
  11189. // modelT_Bus_WorkOrder.F_Key = keys;
  11190. keyValuePairs.Add("F_Level", level);
  11191. // modelT_Bus_WorkOrder.F_Level = level;
  11192. keyValuePairs.Add("F_ToBereply", 0);
  11193. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  11194. //是否直办(即时答复)0:,否1: 是
  11195. keyValuePairs.Add("F_IsResult", isresult);
  11196. modelT_Bus_WorkOrder.F_IsResult = isresult;
  11197. keyValuePairs.Add("F_Result", result);
  11198. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  11199. // modelT_Bus_WorkOrder.F_Business = business;
  11200. //如果选择即刻答复:是,即为直办,工单结束
  11201. if (isresult == 1)
  11202. {
  11203. keyValuePairs.Add("F_WorkState", 9);
  11204. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  11205. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  11206. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  11207. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  11208. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11209. keyValuePairs.Add("F_DealTime", DateTime.Now);
  11210. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11211. keyValuePairs.Add("F_IsClosed", 1);
  11212. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  11213. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  11214. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  11215. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  11216. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  11217. keyValuePairs.Add("F_IsDelete", 0);
  11218. keyValuePairs.Add("F_IsEnabled", 1);
  11219. keyValuePairs.Add("F_EnableTime", DateTime.Now);
  11220. }
  11221. else if (issubmit == 1)
  11222. {
  11223. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  11224. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11225. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  11226. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  11227. keyValuePairs.Add("F_IsDelete", 0);
  11228. keyValuePairs.Add("F_IsEnabled", 1);
  11229. keyValuePairs.Add("F_EnableTime", DateTime.Now);
  11230. }
  11231. #region
  11232. #endregion
  11233. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  11234. // modelT_Bus_WorkOrder.F_IsEnabled = 1;
  11235. // modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now
  11236. // modelT_Bus_WorkOrder.F_IsDelete = 0;
  11237. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11238. #endregion
  11239. #region 插入操作记录
  11240. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11241. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11242. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11243. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  11244. oper.F_File = modelT_Bus_WorkOrder.F_File;
  11245. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11246. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  11247. {
  11248. oper.F_Message = userinfo + " 处理了工单";
  11249. }
  11250. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11251. {
  11252. oper.F_Message = userinfo + " 处理并提交了工单";
  11253. }
  11254. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11255. {
  11256. oper.F_Message = userinfo + " 处理并结案了工单";
  11257. }
  11258. oper.F_CreateUser = User.F_UserCode;
  11259. oper.F_CreateTime = DateTime.Now;
  11260. oper.F_IsDelete = 0;
  11261. operBLL.Add(oper);
  11262. //推送消息表
  11263. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11264. //{
  11265. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11266. //}
  11267. //调用科大讯飞
  11268. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11269. //{
  11270. // ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  11271. // bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, User.F_UserCode, User.depname, modelT_Bus_WorkOrder.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  11272. // if (bl)
  11273. // {
  11274. // Success("调用成功,工单号:" + oper.F_WorkOrderId);
  11275. // }
  11276. // else
  11277. // {
  11278. // Error("调用失败,工单号:" + oper.F_WorkOrderId);
  11279. // }
  11280. //}
  11281. #endregion
  11282. // trans.Complete();
  11283. //}
  11284. return Success("操作成功");
  11285. }
  11286. else
  11287. {
  11288. return Error("已经处理过了");
  11289. }
  11290. }
  11291. else
  11292. {
  11293. return Error("操作失败");
  11294. }
  11295. }
  11296. else
  11297. {
  11298. return Success("权限不足");
  11299. }
  11300. }
  11301. #region 新增审核工单流程
  11302. /// <summary>
  11303. /// 20190315需求变动,新增审核工单,由组长审核
  11304. /// </summary>
  11305. /// <param name="ids"></param>
  11306. /// <returns></returns>
  11307. //[Authority]
  11308. public ActionResult AuditWorkOrder()
  11309. {
  11310. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11311. {
  11312. string workorderid = RequestString.GetFormString("workorderid");
  11313. int state = RequestString.GetInt("state", 0);
  11314. string reason = RequestString.GetFormString("reason");
  11315. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11316. if (modelT_Bus_WorkOrder != null)
  11317. {
  11318. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11319. {
  11320. if (modelT_Bus_WorkOrder != null)
  11321. {
  11322. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11323. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  11324. {
  11325. var opt = "审核并提交"; var re = "";
  11326. #region 保存工单信息
  11327. if (state == 1)
  11328. {
  11329. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  11330. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11331. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  11332. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  11333. }
  11334. else
  11335. {
  11336. keyValuePairs.Add("F_WorkState", 0);
  11337. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  11338. opt = "审核并退回";
  11339. re = ",退回原因:" + reason;
  11340. }
  11341. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11342. #endregion
  11343. #region 插入操作记录
  11344. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11345. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11346. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11347. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11348. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  11349. oper.F_CreateUser = User.F_UserCode;
  11350. oper.F_CreateTime = DateTime.Now;
  11351. oper.F_IsDelete = 0;
  11352. operBLL.Add(oper);
  11353. //推送消息表
  11354. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  11355. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11356. //{
  11357. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11358. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  11359. // foreach (var u in users)
  11360. // {
  11361. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11362. // }
  11363. //}
  11364. #endregion
  11365. }
  11366. }
  11367. trans.Complete();
  11368. }
  11369. return Success("操作成功");
  11370. }
  11371. else
  11372. {
  11373. return Error("操作失败");
  11374. }
  11375. }
  11376. else
  11377. {
  11378. return Error("权限不足");
  11379. }
  11380. }
  11381. #endregion
  11382. /// <summary>
  11383. /// 提交工单
  11384. /// </summary>
  11385. /// <param name="ids"></param>
  11386. /// <returns></returns>
  11387. //[Authority]
  11388. public ActionResult SubmitWorkOrder(string[] ids)
  11389. {
  11390. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  11391. {
  11392. if (ids != null && ids.Length > 0)
  11393. {
  11394. foreach (string str in ids)
  11395. {
  11396. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11397. {
  11398. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  11399. if (modelT_Bus_WorkOrder != null)
  11400. {
  11401. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11402. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  11403. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  11404. {
  11405. #region 保存工单信息
  11406. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  11407. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11408. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  11409. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  11410. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  11411. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11412. #endregion
  11413. #region 插入操作记录
  11414. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11415. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11416. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11417. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11418. oper.F_Message = userinfo + " 提交了工单";
  11419. oper.F_CreateUser = User.F_UserCode;
  11420. oper.F_CreateTime = DateTime.Now;
  11421. oper.F_IsDelete = 0;
  11422. operBLL.Add(oper);
  11423. //推送消息表
  11424. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  11425. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11426. //{
  11427. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11428. // if (role != null && role.Count() > 0)
  11429. // {
  11430. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  11431. // foreach (var u in users)
  11432. // {
  11433. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11434. // }
  11435. // }
  11436. //}
  11437. #endregion
  11438. }
  11439. }
  11440. trans.Complete();
  11441. }
  11442. }
  11443. return Success("操作成功");
  11444. }
  11445. else
  11446. {
  11447. return Error("操作失败");
  11448. }
  11449. }
  11450. else
  11451. {
  11452. return Error("权限不足");
  11453. }
  11454. }
  11455. /// <summary>
  11456. /// 回退工单
  11457. /// </summary>
  11458. /// <returns></returns>
  11459. //[Authority]
  11460. public ActionResult ReturnWorkOrder()
  11461. {
  11462. string workorderid = RequestString.GetFormString("workorderid");
  11463. string backuser = RequestString.GetFormString("backuser");
  11464. string backreason = RequestString.GetFormString("backreason");
  11465. string files = RequestString.GetFormString("files");
  11466. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  11467. if (modelT_Bus_WorkOrder != null)
  11468. {
  11469. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  11470. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  11471. {
  11472. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11473. {
  11474. #region 保存工单信息
  11475. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11476. keyValuePairs.Add("F_WorkState", 0);
  11477. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  11478. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  11479. keyValuePairs.Add("F_IsResult", 0);
  11480. keyValuePairs.Add("F_IsReturn", 1);
  11481. // modelT_Bus_WorkOrder.F_IsReturn = 1;
  11482. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  11483. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11484. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  11485. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11486. keyValuePairs.Add("F_Prevaricate", modelT_Bus_WorkOrder.F_Prevaricate + 1);
  11487. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11488. #endregion
  11489. #region 插入批示记录
  11490. //批示记录
  11491. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  11492. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  11493. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  11494. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  11495. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  11496. model_T_Bus_SubmitSuper.F_File = files;//附件
  11497. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  11498. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  11499. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  11500. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  11501. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  11502. #endregion
  11503. #region 插入操作记录
  11504. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11505. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11506. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11507. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11508. oper.F_Message = userinfo + " 回退了工单";
  11509. oper.F_CreateUser = User.F_UserCode;
  11510. oper.F_CreateTime = DateTime.Now;
  11511. oper.F_IsDelete = 0;
  11512. operBLL.Add(oper);
  11513. #endregion
  11514. trans.Complete();
  11515. }
  11516. return Success("操作成功");
  11517. }
  11518. else
  11519. {
  11520. return Error("已经处理过了");
  11521. }
  11522. }
  11523. else
  11524. {
  11525. return Error("操作失败");
  11526. }
  11527. }
  11528. /// <summary>
  11529. /// 领导批示/市长指示
  11530. /// </summary>
  11531. /// <param name="ids"></param>
  11532. /// <returns></returns>
  11533. //[Authority]
  11534. public ActionResult SuperWorkOrder()
  11535. {
  11536. string workorderid = RequestString.GetFormString("workorderid");
  11537. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  11538. string superuser = RequestString.GetFormString("superuser");
  11539. string superopinion = RequestString.GetFormString("superopinion");
  11540. string files = RequestString.GetFormString("files");
  11541. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11542. if (modelT_Bus_WorkOrder != null)
  11543. {
  11544. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11545. {
  11546. #region 保存工单信息 no use
  11547. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  11548. //workorderBLL.Update(modelT_Bus_WorkOrder);
  11549. #endregion
  11550. #region 插入批示记录
  11551. //批示记录
  11552. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  11553. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  11554. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  11555. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  11556. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  11557. model_T_Bus_SubmitSuper.F_File = files;//附件
  11558. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  11559. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  11560. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  11561. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  11562. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  11563. #endregion
  11564. #region 插入操作记录
  11565. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11566. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11567. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11568. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11569. oper.F_Message = userinfo + " 批示了工单";
  11570. oper.F_CreateUser = User.F_UserCode;
  11571. oper.F_CreateTime = DateTime.Now;
  11572. oper.F_IsDelete = 0;
  11573. operBLL.Add(oper);
  11574. #endregion
  11575. trans.Complete();
  11576. }
  11577. return Success("操作成功");
  11578. }
  11579. else
  11580. {
  11581. return Error("操作失败");
  11582. }
  11583. }
  11584. /// <summary>
  11585. /// 办理中交办
  11586. /// </summary>
  11587. /// <returns></returns>
  11588. //[Authority]
  11589. public ActionResult HandleAssign()
  11590. {
  11591. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  11592. {
  11593. string workorderid = RequestString.GetFormString("workorderid");
  11594. int state = RequestString.GetInt("state", 0);
  11595. int assignid = RequestString.GetInt("assignid", 0);
  11596. string maindeptid = RequestString.GetFormString("maindeptid");
  11597. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11598. int limittime = RequestString.GetInt("limittime", 0);
  11599. string limittimes = RequestString.GetFormString("limittimes");
  11600. string resdatetime = "";
  11601. if (limittime > 0)
  11602. {
  11603. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  11604. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  11605. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  11606. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  11607. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  11608. var datatime = DateTime.Now.AddDays(limittime);
  11609. if (Convert.ToDateTime(resdatetime) > datatime)
  11610. {
  11611. resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  11612. }
  11613. }
  11614. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11615. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11616. if (!string.IsNullOrEmpty(otherdeptids))
  11617. {
  11618. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  11619. if (both.Count() > 0)
  11620. {
  11621. return Error("主办单位不能出现在协办单位");
  11622. }
  11623. }
  11624. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11625. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11626. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11627. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  11628. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  11629. {
  11630. int aid = 0; var rre = "";
  11631. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11632. {
  11633. string newids = ""; string errdeptid = ""; string deptname = "";
  11634. foreach (var deptinfo in deptlist)
  11635. {
  11636. deptname += deptinfo.F_DeptName + ",";
  11637. #region 新增工单
  11638. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  11639. modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  11640. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  11641. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  11642. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  11643. modelT_Bus_WorkOrder1.F_MainWorkorder1 = workorderid;
  11644. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  11645. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  11646. {
  11647. errdeptid += deptinfo.F_DeptName + ",";
  11648. continue;
  11649. }
  11650. #endregion
  11651. #region 交办
  11652. #region 插入交办记录
  11653. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  11654. if (modelT_Bus_WorkOrder.F_Level == 2)
  11655. {
  11656. try
  11657. {
  11658. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  11659. }
  11660. catch
  11661. {
  11662. return Error("请选择正确的时间");
  11663. }
  11664. }
  11665. else
  11666. {
  11667. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  11668. }
  11669. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11670. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11671. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11672. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11673. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11674. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11675. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11676. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11677. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11678. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11679. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11680. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11681. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11682. #endregion
  11683. #endregion
  11684. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11685. {
  11686. #region 保存工单信息
  11687. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11688. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  11689. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  11690. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  11691. if (modelT_Bus_WorkOrder1.F_Level == 2)
  11692. {
  11693. try
  11694. {
  11695. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  11696. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  11697. }
  11698. catch
  11699. {
  11700. return Error("请选择正确的时间");
  11701. }
  11702. }
  11703. else
  11704. {
  11705. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  11706. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  11707. }
  11708. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  11709. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  11710. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  11711. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  11712. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  11713. //modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  11714. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  11715. //modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  11716. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  11717. #endregion
  11718. #region 插入操作记录
  11719. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  11720. if (!string.IsNullOrEmpty(otherdeptids))
  11721. {
  11722. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  11723. string deptnamea = departmentBLL.GetDeptNames(otherdeptids);
  11724. msgss += ",协办单位:" + deptnamea;
  11725. }
  11726. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  11727. ////推送消息表
  11728. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11729. //foreach (var u in users)
  11730. //{
  11731. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11732. //}
  11733. #endregion
  11734. }
  11735. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  11736. Task.Run(() =>
  11737. {
  11738. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  11739. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  11740. {
  11741. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  11742. }
  11743. }).ContinueWith(p =>
  11744. {
  11745. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11746. });
  11747. }
  11748. newids = newids.Trim(',');
  11749. var msgs = "";
  11750. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder1 = workorderBLL.GetModel(workorderid);
  11751. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  11752. keyValuePairs1.Add("F_MainWorkorder1", tempT_Bus_WorkOrder1.F_WorkOrderId);
  11753. // tempT_Bus_WorkOrder1.F_MainWorkorder1 = tempT_Bus_WorkOrder1.F_WorkOrderId;
  11754. keyValuePairs1.Add("F_SubWorkorder1", newids + "," + tempT_Bus_WorkOrder1.F_WorkOrderId);
  11755. // tempT_Bus_WorkOrder1.F_SubWorkorder1 = newids+","+ tempT_Bus_WorkOrder1.F_WorkOrderId ;
  11756. workorderBLL.UpdateWorkOrder(tempT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  11757. if (errdeptid == "")
  11758. {
  11759. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  11760. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  11761. }
  11762. else
  11763. {
  11764. errdeptid = errdeptid.Trim(',');
  11765. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  11766. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  11767. }
  11768. #region 插入操作记录
  11769. #endregion
  11770. trans.Complete();
  11771. #region
  11772. #endregion
  11773. }
  11774. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  11775. if (user != null && user.Count > 0)
  11776. {
  11777. foreach (var it in user)
  11778. {
  11779. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  11780. {
  11781. continue;
  11782. }
  11783. else
  11784. {
  11785. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  11786. // string msg = workorderid;
  11787. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11788. string mag = "[\"" + workorderid + "\"]";
  11789. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  11790. workorderid);
  11791. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  11792. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  11793. else
  11794. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  11795. }
  11796. }
  11797. }
  11798. //审核员给二级单位转派
  11799. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  11800. }
  11801. else
  11802. {
  11803. return Error("操作失败");
  11804. }
  11805. }
  11806. else
  11807. {
  11808. return Error("权限不足");
  11809. }
  11810. }
  11811. private Model.T_Sys_Department department(int PartentId)
  11812. {
  11813. var model = new BLL.T_Sys_Department().GetModel(PartentId);
  11814. if (model != null)
  11815. {
  11816. if (model.F_IsDept == 1)
  11817. {
  11818. return model;
  11819. }
  11820. else
  11821. {
  11822. if (model.F_PartentId > 0)
  11823. model = department((int)model.F_PartentId);
  11824. else
  11825. return null;
  11826. }
  11827. }
  11828. else
  11829. {
  11830. return null;
  11831. }
  11832. return model;
  11833. }
  11834. public class maindeptcontent
  11835. {
  11836. public int id { set; get; }
  11837. public string content { set; get; }
  11838. }
  11839. /// <summary>
  11840. ///
  11841. /// </summary>
  11842. /// <returns></returns>
  11843. //[Authority]
  11844. public ActionResult AssignWorkOrderNew(List<maindeptcontent> content)
  11845. {
  11846. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  11847. {
  11848. string workorderid = RequestString.GetFormString("workorderid");
  11849. int state = RequestString.GetInt("state", 0);
  11850. int assignid = RequestString.GetInt("assignid", 0);
  11851. string maindeptid = RequestString.GetFormString("maindeptid");
  11852. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11853. int limittime = RequestString.GetInt("limittime", 0);
  11854. string limittimes = RequestString.GetFormString("limittimes");
  11855. int ispd = RequestString.GetInt("ispd", 0);
  11856. int isms = RequestString.GetInt("isms", 1);
  11857. string resdatetime = "";
  11858. if (limittime > 0)
  11859. {
  11860. resdatetime = GetLimittime(limittime);
  11861. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  11862. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  11863. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '"+ resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  11864. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  11865. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  11866. //var datatime = DateTime.Now.AddDays(limittime);
  11867. //if (Convert.ToDateTime(resdatetime) > datatime)
  11868. //{
  11869. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  11870. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  11871. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  11872. // " with(nolock) where F_OffState = 1 and " +
  11873. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  11874. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  11875. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd")!=
  11876. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  11877. // {
  11878. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  11879. // }
  11880. // // if (datetime.DayOfWeek==DayOfWeek.Saturday|| datetime.DayOfWeek == DayOfWeek.Sunday)
  11881. // //{
  11882. // // if(datetime.Hour >=0&& datetime.Hour<=8)
  11883. // // {
  11884. // // datetime.AddHours (8);
  11885. // // }
  11886. // // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  11887. // // resdatetime = datetime.AddDays (2).ToString("yyyy-MM-dd HH:mm:ss");
  11888. // //}
  11889. // //else
  11890. // //{
  11891. // // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  11892. // //}
  11893. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  11894. //}
  11895. }
  11896. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11897. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11898. if (!string.IsNullOrEmpty(otherdeptids))
  11899. {
  11900. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  11901. if (both.Count() > 0)
  11902. {
  11903. return Error("主办单位不能出现在协办单位");
  11904. }
  11905. }
  11906. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11907. var premodeldept = new Model.T_Sys_Department();
  11908. if (ispd > 0)
  11909. {
  11910. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Key))
  11911. return Error("自动派单失败,请选择反映类别!");
  11912. try
  11913. {
  11914. var model = new BLL.T_Sys_DictionaryValue().GetModel
  11915. (int.Parse(modelT_Bus_WorkOrder.F_Key));
  11916. if (model != null)
  11917. {
  11918. if (model.F_Deptid != null)
  11919. maindeptid = model.F_Deptid.ToString();
  11920. else
  11921. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  11922. }
  11923. else
  11924. return Error("自动派单失败,请选择反映类别.");
  11925. }
  11926. catch
  11927. {
  11928. return Error("自动派单失败,请选择反映类别");
  11929. }
  11930. }
  11931. else
  11932. {
  11933. if (string.IsNullOrEmpty(maindeptid))
  11934. return Error("请选择派单部门");
  11935. }
  11936. if (modelT_Bus_WorkOrder.F_WorkState != 0 && modelT_Bus_WorkOrder.F_WorkState != 1 && modelT_Bus_WorkOrder.F_WorkState != 11)
  11937. {
  11938. return Error("工单已派单");
  11939. }
  11940. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  11941. if (deptlist != null)
  11942. {
  11943. if (deptlist.Count == 1)
  11944. {
  11945. var deptinfo = deptlist.FirstOrDefault();
  11946. if (deptinfo.F_IsDept == 2)
  11947. {
  11948. if (deptinfo.F_PartentId > 0)
  11949. {
  11950. premodeldept = department((int)deptinfo.F_PartentId);
  11951. if (premodeldept == null)
  11952. return Error("该单位没有上级单位,派单失败");
  11953. }
  11954. else
  11955. {
  11956. return Error("该单位没有上级单位,派单失败");
  11957. }
  11958. }
  11959. }
  11960. else
  11961. {
  11962. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  11963. return Error("派单多单位不能派给三级单位");
  11964. }
  11965. }
  11966. else
  11967. {
  11968. return Error("单位不存在");
  11969. }
  11970. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11971. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  11972. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11973. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  11974. {
  11975. if (modelT_Bus_WorkOrder.F_Level == 2)
  11976. {
  11977. try
  11978. {
  11979. Convert.ToDateTime(limittimes);
  11980. }
  11981. catch
  11982. {
  11983. return Error("请选择正确的时间");
  11984. }
  11985. }
  11986. int aid = 0;
  11987. var curuser = User;
  11988. if (deptlist.Count == 1)
  11989. {
  11990. #region 交办一个单位
  11991. var maindept = deptlist.FirstOrDefault();
  11992. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11993. {
  11994. if (assignid == 0)
  11995. {
  11996. #region 插入交办记录
  11997. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11998. if (modelT_Bus_WorkOrder.F_Level == 2)
  11999. {
  12000. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12001. }
  12002. else
  12003. {
  12004. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12005. }
  12006. if (maindept.F_IsDept == 2)
  12007. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  12008. else
  12009. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  12010. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12011. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12012. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12013. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12014. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12015. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12016. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12017. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12018. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12019. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12020. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12021. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  12022. #endregion
  12023. }
  12024. else
  12025. {
  12026. #region 修改交办记录
  12027. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  12028. if (modelT_Bus_AssignedInfo != null)
  12029. {
  12030. if (modelT_Bus_WorkOrder.F_Level == 2)
  12031. {
  12032. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12033. }
  12034. else
  12035. {
  12036. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12037. }
  12038. if (maindept.F_IsDept == 2)
  12039. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  12040. else
  12041. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  12042. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12043. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12044. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12045. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12046. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12047. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12048. assignBLL.Update(modelT_Bus_AssignedInfo);
  12049. aid = modelT_Bus_AssignedInfo.F_Id;
  12050. }
  12051. #endregion
  12052. }
  12053. trans.Complete();
  12054. }
  12055. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12056. {
  12057. Task.Run(() =>
  12058. {
  12059. #region 保存工单信息
  12060. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12061. if (content != null && content.Count > 0)
  12062. {
  12063. keyValuePairs.Add("F_Content", content[0].content);
  12064. }
  12065. if (modelT_Bus_WorkOrder.F_Level == 2)
  12066. {
  12067. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12068. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  12069. }
  12070. else
  12071. {
  12072. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12073. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  12074. }
  12075. if (maindept.F_IsDept == 2)
  12076. {
  12077. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  12078. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  12079. }
  12080. else
  12081. {
  12082. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  12083. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  12084. }
  12085. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  12086. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12087. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  12088. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  12089. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12090. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12091. if (maindept.F_IsDept == 2)
  12092. {
  12093. modelT_Bus_WorkOrder.F_WorkState = 4;
  12094. keyValuePairs.Add("F_WorkState", 4);
  12095. }
  12096. else
  12097. {
  12098. modelT_Bus_WorkOrder.F_WorkState = 2;
  12099. keyValuePairs.Add("F_WorkState", 2);
  12100. }
  12101. // keyValuePairs.Add("F_IsSendBack", 0);
  12102. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  12103. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12104. #endregion
  12105. }).ContinueWith(q =>
  12106. {
  12107. string DeptName = "";
  12108. if (maindept.F_IsDept == 2)
  12109. {
  12110. DeptName = premodeldept.F_DeptName;
  12111. }
  12112. else
  12113. DeptName = maindept.F_DeptName;
  12114. var msgss = userinfo + " 交办了工单,主办单位:" + DeptName;
  12115. if (!string.IsNullOrEmpty(otherdeptids))
  12116. {
  12117. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  12118. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  12119. msgss += ",协办单位:" + deptname;
  12120. }
  12121. if (maindept.F_IsDept == 2)
  12122. {
  12123. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12124. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion, curuser);
  12125. }
  12126. else
  12127. {
  12128. Task.Run(() =>
  12129. {
  12130. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12131. }).ContinueWith(p =>
  12132. {
  12133. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12134. });
  12135. }
  12136. #region 插入推送消息
  12137. //Task.Run(() =>
  12138. //{
  12139. // addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12140. //}).ContinueWith(p =>
  12141. //{
  12142. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12143. //});
  12144. if (isms > 0)
  12145. {
  12146. if (maindept.F_IsDept == 2)
  12147. {
  12148. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  12149. foreach (var u in users)
  12150. {
  12151. if (curuser.F_RoleCode == "DBZY")
  12152. {
  12153. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12154. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12155. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  12156. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  12157. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12158. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12159. }
  12160. else
  12161. {
  12162. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  12163. {
  12164. continue;
  12165. }
  12166. else
  12167. {
  12168. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  12169. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12170. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  12171. //modelT_Bus_WorkOrder.F_WorkOrderId);
  12172. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12173. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12174. else
  12175. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12176. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12177. }
  12178. }
  12179. }
  12180. }
  12181. else
  12182. {
  12183. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  12184. foreach (var u in users)
  12185. {
  12186. if (curuser.F_RoleCode == "DBZY")
  12187. {
  12188. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12189. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12190. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  12191. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  12192. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12193. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12194. }
  12195. else
  12196. {
  12197. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  12198. {
  12199. continue;
  12200. }
  12201. else
  12202. {
  12203. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12204. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12205. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  12206. //modelT_Bus_WorkOrder.F_WorkOrderId);
  12207. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12208. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12209. else
  12210. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12211. }
  12212. //msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12213. }
  12214. }
  12215. }
  12216. }
  12217. #endregion
  12218. });
  12219. }
  12220. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  12221. #endregion
  12222. }
  12223. else
  12224. {
  12225. Task.Run(() =>
  12226. {
  12227. string newids = ""; string errdeptid = ""; string deptname = "";
  12228. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12229. if (curuser.F_RoleCode == "DBZY")
  12230. {
  12231. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  12232. }
  12233. object obj = new object();
  12234. List<Task> taskList = new List<Task>();
  12235. foreach (var deptinfo in deptlist)
  12236. {
  12237. deptname += deptinfo.F_DeptName + ",";
  12238. #region 新增工单
  12239. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  12240. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  12241. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  12242. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  12243. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  12244. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  12245. if (content != null && content.Count > 0)
  12246. {
  12247. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  12248. {
  12249. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  12250. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  12251. }
  12252. }
  12253. modelT_Bus_WorkOrder1.F_IsRelease = null;
  12254. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  12255. if (curuser.F_RoleCode == "DBZY")
  12256. {
  12257. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  12258. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12259. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  12260. }
  12261. #endregion
  12262. if (modelT_Bus_WorkOrder1.F_Id > 0)
  12263. {
  12264. #region 插入交办记录
  12265. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12266. if (modelT_Bus_WorkOrder.F_Level == 2)
  12267. {
  12268. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12269. }
  12270. else
  12271. {
  12272. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12273. }
  12274. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12275. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12276. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12277. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12278. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12279. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12280. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12281. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12282. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12283. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12284. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12285. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12286. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12287. #endregion
  12288. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12289. {
  12290. #region 保存工单信息
  12291. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12292. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  12293. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  12294. if (modelT_Bus_WorkOrder1.F_Level == 2)
  12295. {
  12296. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12297. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  12298. }
  12299. else
  12300. {
  12301. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12302. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  12303. }
  12304. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  12305. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12306. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  12307. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12308. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  12309. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  12310. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12311. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  12312. // keyValuePairs.Add("F_IsSendBack", 0);
  12313. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  12314. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  12315. #endregion
  12316. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12317. if (!string.IsNullOrEmpty(otherdeptids))
  12318. {
  12319. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  12320. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  12321. msgss += ",协办单位:" + deptname1;
  12322. }
  12323. #region 插入操作记录
  12324. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12325. #endregion
  12326. #region 插入推送消息
  12327. //推送消息表
  12328. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12329. //foreach (var u in users)
  12330. //{
  12331. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12332. //}
  12333. #endregion
  12334. #region 发短信
  12335. if (isms > 0)
  12336. {
  12337. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  12338. if (user != null && user.Count > 0)
  12339. {
  12340. foreach (var it in user)
  12341. {
  12342. if (curuser.F_RoleCode == "DBZY")
  12343. {
  12344. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  12345. //string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  12346. //string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag,
  12347. //modelT_Bus_WorkOrder1.F_WorkOrderId);
  12348. string t = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  12349. }
  12350. else
  12351. {
  12352. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  12353. {
  12354. continue;
  12355. }
  12356. else
  12357. {
  12358. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  12359. //string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  12360. //string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  12361. //modelT_Bus_WorkOrder1.F_WorkOrderId);
  12362. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12363. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  12364. else
  12365. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  12366. }
  12367. }
  12368. }
  12369. }
  12370. }
  12371. #endregion
  12372. }
  12373. Task.Run(() =>
  12374. {
  12375. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  12376. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  12377. {
  12378. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  12379. }
  12380. }).ContinueWith(p =>
  12381. {
  12382. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12383. });
  12384. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  12385. }
  12386. else
  12387. {
  12388. errdeptid += deptinfo.F_DeptName + ",";
  12389. }
  12390. }
  12391. newids = newids.Trim(',');
  12392. var msgs = "";
  12393. if (errdeptid == "")
  12394. {
  12395. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12396. keyValuePairs.Add("F_SubWorkorder1", newids);
  12397. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  12398. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12399. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  12400. }
  12401. else
  12402. {
  12403. errdeptid = errdeptid.Trim(',');
  12404. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  12405. }
  12406. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  12407. }).ContinueWith(p =>
  12408. {
  12409. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12410. });
  12411. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  12412. // keyValuePairs1.Add("F_IsSendBack", 0);
  12413. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  12414. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  12415. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  12416. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  12417. return Success("操作成功");
  12418. }
  12419. }
  12420. else
  12421. {
  12422. return Error("操作失败");
  12423. }
  12424. }
  12425. else
  12426. {
  12427. return Error("权限不足");
  12428. }
  12429. }
  12430. /// <summary>
  12431. /// 审核工单
  12432. /// </summary>
  12433. /// <returns></returns>
  12434. public ActionResult ToExamineWorkOrder()
  12435. {
  12436. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12437. {
  12438. string workorderid = RequestString.GetFormString("workorderid");
  12439. int nexttype = RequestString.GetInt("nexttype", 0);//审核通过1审核不通过2审核通过转办
  12440. int statistics = RequestString.GetInt("statistics", 0);//是否进行退回统计0否1是
  12441. int groupstatistics = RequestString.GetInt("groupstatistics", 0);
  12442. int limittime = RequestString.GetInt("limittime", 0);
  12443. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  12444. int issms = RequestString.GetInt("issms", 0);//是否发送短信
  12445. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12446. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12447. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12448. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new Model.T_Bus_ToExamine();
  12449. if (modelT_Bus_WorkOrder != null)
  12450. {
  12451. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  12452. {
  12453. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12454. {
  12455. modelT_Bus_ToExamine.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12456. modelT_Bus_ToExamine.F_IsDelete = 0;
  12457. modelT_Bus_ToExamine.F_Type = nexttype;
  12458. modelT_Bus_ToExamine.F_CreatUser = User.F_UserCode;
  12459. modelT_Bus_ToExamine.F_Result = cbreason;
  12460. modelT_Bus_ToExamine.F_CreateTime = DateTime.Now;
  12461. if (modelT_Bus_AssignedInfo != null)
  12462. {
  12463. modelT_Bus_ToExamine.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12464. }
  12465. int id = new BLL.T_Bus_ToExamine().Add(modelT_Bus_ToExamine);
  12466. if (modelT_Bus_ToExamine != null)
  12467. {
  12468. //提交重办满意度改为满意
  12469. var opt = "审核通过"; var cbreasons = "";
  12470. if (nexttype == 0)
  12471. {
  12472. keyValuePairs.Add("F_Note", "");
  12473. keyValuePairs.Add("F_WorkState", 7);
  12474. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  12475. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12476. string deptname = User.depname; string code = User.F_UserCode;
  12477. Task.Run(() =>
  12478. {
  12479. if (issms > 0)
  12480. {
  12481. SendVisits(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, deptname, code);
  12482. }
  12483. });
  12484. }
  12485. #region 重办
  12486. else if (nexttype == 2)
  12487. {
  12488. #region 保存工单信息
  12489. //if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  12490. //{
  12491. // return Error("回访时,提交重办只能操作一次");
  12492. //}
  12493. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  12494. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  12495. keyValuePairs2.Add("F_RemindDay", 3);
  12496. else
  12497. keyValuePairs2.Add("F_RemindDay", 2);
  12498. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  12499. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  12500. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  12501. keyValuePairs2.Add("F_IsSms", 0);
  12502. // modelT_Bus_WorkOrder.F_IsSms = 0;
  12503. keyValuePairs2.Add("F_Identification", 0);
  12504. // modelT_Bus_WorkOrder.F_Identification = 0;
  12505. keyValuePairs2.Add("F_Note", "");
  12506. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  12507. #endregion
  12508. opt = "于" + DateTime.Now
  12509. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  12510. cbreasons = ",重办原因:" + cbreason;
  12511. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  12512. if (t_Bus_RemindRecord != null)
  12513. {
  12514. if (t_Bus_RemindRecord.F_State != 2)
  12515. {
  12516. t_Bus_RemindRecord.F_State = 0;
  12517. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  12518. }
  12519. }
  12520. #endregion
  12521. }
  12522. else if (nexttype == 1)
  12523. {
  12524. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  12525. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  12526. {
  12527. if (User.F_RoleCode == "ZXHWY")
  12528. {
  12529. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  12530. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  12531. keyValuePairs3.Add("F_Note", "");
  12532. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  12533. if (statistics > 0)
  12534. {
  12535. if (modelT_Bus_AssignedInfo.F_IsPerform == 1)
  12536. modelT_Bus_AssignedInfo.F_IsPerform = 2;
  12537. else
  12538. modelT_Bus_AssignedInfo.F_IsPerform = 3;
  12539. if (groupstatistics > 0)
  12540. modelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  12541. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12542. }
  12543. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  12544. {
  12545. #region 插入操作记录
  12546. #region 20191021调整为多个主办单位时调整
  12547. #endregion
  12548. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  12549. cbreasons = ",重办原因:" + cbreason;
  12550. #endregion
  12551. }
  12552. }
  12553. else
  12554. {
  12555. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12556. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12557. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12558. // DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  12559. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime .Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  12560. // var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  12561. var resdatetime = GetLimittime(6);
  12562. if (!string.IsNullOrEmpty(resdatetime))
  12563. {
  12564. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  12565. // var datatime = DateTime.Now;
  12566. // if (limittime>0)
  12567. // datatime = DateTime.Now.AddDays(limittime);
  12568. // else
  12569. // datatime = DateTime.Now.AddDays(6);
  12570. // if (Convert.ToDateTime(resdatetime) > datatime)
  12571. // {
  12572. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  12573. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  12574. // " with(nolock) where F_OffState = 1 and " +
  12575. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  12576. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  12577. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  12578. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  12579. // {
  12580. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  12581. // }
  12582. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  12583. // }
  12584. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  12585. }
  12586. if (statistics > 0)
  12587. {
  12588. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  12589. if (groupstatistics > 0)
  12590. newmodelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  12591. }
  12592. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  12593. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  12594. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  12595. newmodelT_Bus_AssignedInfo.F_State = 1;
  12596. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12597. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12598. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12599. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12600. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12601. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  12602. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  12603. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12604. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12605. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12606. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  12607. {
  12608. #region 保存工单信息
  12609. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  12610. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  12611. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  12612. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  12613. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  12614. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  12615. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12616. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  12617. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12618. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12619. {
  12620. keyValuePairs3.Add("F_RemindDay", 1);
  12621. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  12622. }
  12623. keyValuePairs3.Add("F_IsReload", n + 1);
  12624. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12625. if (!string.IsNullOrEmpty(resdatetime))
  12626. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  12627. keyValuePairs3.Add("F_IsOverdue", 0);
  12628. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12629. keyValuePairs3.Add("F_IsSms", 0);
  12630. // modelT_Bus_WorkOrder.F_IsSms = 0;
  12631. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  12632. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12633. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  12634. keyValuePairs3.Add("F_Identification", 2);
  12635. // modelT_Bus_WorkOrder.F_Identification = 1;
  12636. keyValuePairs3.Add("F_Result", "");
  12637. // modelT_Bus_WorkOrder.F_Result = "";
  12638. keyValuePairs3.Add("F_DealDeptId", null);
  12639. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  12640. keyValuePairs3.Add("F_DealUser", "");
  12641. // modelT_Bus_WorkOrder.F_DealUser = "";
  12642. keyValuePairs3.Add("F_DealTime", null);
  12643. // modelT_Bus_WorkOrder.F_DealTime = null;
  12644. keyValuePairs3.Add("F_Note", "");
  12645. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  12646. {
  12647. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  12648. if (user != null && user.Count > 0)
  12649. {
  12650. foreach (var it in user)
  12651. {
  12652. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  12653. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  12654. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  12655. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12656. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  12657. "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  12658. }
  12659. }
  12660. #region 插入操作记录
  12661. #region 20191021调整为多个主办单位时调整
  12662. #endregion
  12663. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  12664. cbreasons = ",重办原因:" + cbreason;
  12665. #endregion
  12666. }
  12667. #endregion
  12668. }
  12669. else
  12670. {
  12671. return Error("退回失败");
  12672. }
  12673. }
  12674. }
  12675. }
  12676. #region 插入操作记录
  12677. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12678. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12679. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  12680. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12681. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12682. oper.F_Message = userinfo + " " + opt + "了工单" + cbreasons;
  12683. oper.F_CreateUser = User.F_UserCode;
  12684. oper.F_CreateTime = DateTime.Now;
  12685. oper.F_IsDelete = 0;
  12686. operBLL.Add(oper);
  12687. //推送消息表
  12688. #endregion
  12689. }
  12690. trans.Complete();
  12691. }
  12692. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  12693. }
  12694. else
  12695. {
  12696. return Error("已经审核过了");
  12697. }
  12698. }
  12699. else
  12700. {
  12701. return Error("工单不存在");
  12702. }
  12703. }
  12704. else
  12705. {
  12706. return Error("权限不足");
  12707. }
  12708. }
  12709. /// <summary>
  12710. /// 交办工单
  12711. /// </summary>
  12712. /// <returns></returns>
  12713. //[Authority]
  12714. public ActionResult AssignWorkOrder()
  12715. {
  12716. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12717. {
  12718. string workorderid = RequestString.GetFormString("workorderid");
  12719. int state = RequestString.GetInt("state", 0);
  12720. int assignid = RequestString.GetInt("assignid", 0);
  12721. int maindeptid = RequestString.GetInt("maindeptid", 0);
  12722. //string maindeptid = RequestString.GetFormString("maindeptid");
  12723. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12724. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  12725. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12726. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  12727. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  12728. {
  12729. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  12730. {
  12731. return Error("操作失败");
  12732. }
  12733. }
  12734. if (!string.IsNullOrEmpty(otherdeptids))
  12735. {
  12736. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  12737. {
  12738. return Error("主办单位不能出现在协办单位");
  12739. }
  12740. }
  12741. if (limittime < DateTime.Now)
  12742. {
  12743. return Error("办理时限不能小于当前时间");
  12744. }
  12745. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12746. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12747. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  12748. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  12749. {
  12750. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  12751. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12752. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12753. {
  12754. int aid = 0;
  12755. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12756. {
  12757. if (assignid == 0)
  12758. {
  12759. #region 插入交办记录
  12760. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12761. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12762. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  12763. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12764. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12765. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12766. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12767. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12768. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12769. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12770. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12771. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12772. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12773. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12774. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12775. #endregion
  12776. }
  12777. else
  12778. {
  12779. #region 修改交办记录
  12780. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  12781. if (modelT_Bus_AssignedInfo != null)
  12782. {
  12783. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12784. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  12785. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12786. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12787. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12788. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12789. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12790. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12791. assignBLL.Update(modelT_Bus_AssignedInfo);
  12792. aid = modelT_Bus_AssignedInfo.F_Id;
  12793. }
  12794. #endregion
  12795. }
  12796. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12797. {
  12798. #region 保存工单信息
  12799. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  12800. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  12801. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  12802. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  12803. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12804. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12805. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12806. workorderBLL.Update(modelT_Bus_WorkOrder);
  12807. #endregion
  12808. #region 删除草稿信息
  12809. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12810. foreach (var cg in cglist)
  12811. {
  12812. cg.F_IsDelete = 1;
  12813. cg.F_DeleteUser = User.F_UserCode;
  12814. cg.F_DeleteTime = DateTime.Now;
  12815. assignBLL.Update(cg);
  12816. }
  12817. #endregion
  12818. #region 插入操作记录
  12819. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12820. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12821. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12822. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12823. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12824. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12825. if (!string.IsNullOrEmpty(otherdeptids))
  12826. {
  12827. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  12828. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  12829. oper.F_Message += ",协办单位:" + deptname;
  12830. }
  12831. oper.F_CreateUser = User.F_UserCode;
  12832. oper.F_CreateTime = DateTime.Now;
  12833. oper.F_IsDelete = 0;
  12834. operBLL.Add(oper);
  12835. ////推送消息表
  12836. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12837. //foreach (var u in users)
  12838. //{
  12839. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12840. //}
  12841. #endregion
  12842. }
  12843. trans.Complete();
  12844. }
  12845. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  12846. }
  12847. else
  12848. {
  12849. return Error("已经交办过了");
  12850. }
  12851. }
  12852. else
  12853. {
  12854. return Error("操作失败");
  12855. }
  12856. }
  12857. else
  12858. {
  12859. return Error("权限不足");
  12860. }
  12861. }
  12862. /// <summary>
  12863. /// 派工单
  12864. /// </summary>
  12865. /// <returns></returns>
  12866. //[Authority]
  12867. public string SplitOrder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  12868. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion)
  12869. {
  12870. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  12871. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  12872. {
  12873. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  12874. {
  12875. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12876. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12877. {
  12878. #region 插入派单记录
  12879. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12880. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  12881. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  12882. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12883. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  12884. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  12885. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  12886. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  12887. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  12888. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  12889. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  12890. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  12891. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  12892. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  12893. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  12894. #endregion
  12895. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  12896. {
  12897. #region 保存交办信息
  12898. modelT_Bus_AssignedInfo.F_IsNext = 1;
  12899. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  12900. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  12901. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12902. #endregion
  12903. #region 插入操作记录
  12904. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12905. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12906. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12907. oper.F_State = 4;
  12908. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12909. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  12910. oper.F_CreateUser = User.F_UserCode;
  12911. oper.F_CreateTime = DateTime.Now;
  12912. oper.F_IsDelete = 0;
  12913. operBLL.Add(oper);
  12914. //推送消息表
  12915. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12916. #endregion
  12917. }
  12918. trans.Complete();
  12919. }
  12920. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  12921. if (user != null && user.Count > 0)
  12922. {
  12923. foreach (var it in user)
  12924. {
  12925. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  12926. {
  12927. continue;
  12928. }
  12929. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12930. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  12931. //bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  12932. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12933. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  12934. modelT_Bus_WorkOrder.F_WorkOrderId);
  12935. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12936. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12937. else
  12938. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12939. }
  12940. }
  12941. //二级单位给三级单位转派都有短信提醒
  12942. return ("操作成功");
  12943. }
  12944. else
  12945. {
  12946. return ("操作失败");
  12947. }
  12948. }
  12949. else
  12950. {
  12951. return ("操作失败");
  12952. }
  12953. }
  12954. public void SplitOrderNew(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  12955. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion, Model.T_Sys_UserAccount Users)
  12956. {
  12957. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  12958. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  12959. {
  12960. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  12961. {
  12962. #region 插入派单记录
  12963. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12964. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  12965. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12966. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  12967. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  12968. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  12969. modelT_Bus_AssignedInfo_Next.F_CreateUser = Users.F_UserCode;
  12970. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  12971. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  12972. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  12973. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  12974. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  12975. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  12976. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  12977. #endregion
  12978. string userinfo = Users.depname + "(" + Users.F_UserCode + ")";
  12979. string message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  12980. if (modelT_Bus_AssignedInfo_Next.F_Id > 0)
  12981. {
  12982. #region 保存工单信息
  12983. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12984. keyValuePairs.Add("F_MainDeptID3", deptinfo.F_DeptId.ToString());
  12985. modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
  12986. if (modelT_Bus_WorkOrder.F_WorkState == 8)
  12987. {
  12988. keyValuePairs.Add("F_WorkState", 8);
  12989. modelT_Bus_WorkOrder.F_WorkState = 8;
  12990. }
  12991. else
  12992. {
  12993. keyValuePairs.Add("F_WorkState", 4);
  12994. modelT_Bus_WorkOrder.F_WorkState = 4;
  12995. }
  12996. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12997. modelT_Bus_AssignedInfo.F_IsNext = 1;
  12998. modelT_Bus_AssignedInfo.F_NextUser = Users.F_UserCode;
  12999. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13000. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13001. #endregion
  13002. #region 插入操作记录
  13003. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13004. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13005. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13006. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13007. oper.F_Message = message;
  13008. oper.F_CreateUser = Users.F_UserCode;
  13009. oper.F_CreateTime = DateTime.Now;
  13010. oper.F_IsDelete = 0;
  13011. operBLL.Add(oper);
  13012. #region 短信通知
  13013. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  13014. if (user != null && user.Count > 0)
  13015. {
  13016. foreach (var it in user)
  13017. {
  13018. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13019. {
  13020. continue;
  13021. }
  13022. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  13023. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  13024. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13025. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  13026. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13027. modelT_Bus_WorkOrder.F_WorkOrderId);
  13028. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13029. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13030. else
  13031. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13032. }
  13033. }
  13034. #endregion
  13035. #endregion
  13036. }
  13037. }
  13038. }
  13039. }
  13040. /// <summary>
  13041. /// 派工单
  13042. /// </summary>
  13043. /// <returns></returns>
  13044. //[Authority]
  13045. public ActionResult SplitWorkOrder()
  13046. {
  13047. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13048. {
  13049. string workorderid = RequestString.GetFormString("workorderid");
  13050. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  13051. string maindeptid = RequestString.GetFormString("maindeptid");
  13052. string otherdeptids = RequestString.GetFormString("otherdeptids");
  13053. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  13054. string assignedopinion = RequestString.GetFormString("assignedopinion");
  13055. string files = RequestString.GetFormString("files");
  13056. int state = RequestString.GetInt("state", 0);
  13057. // int nextid = RequestString.GetInt("nextid", 0);
  13058. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13059. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13060. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  13061. if (string.IsNullOrEmpty(maindeptid))
  13062. return Error("请选择部门");
  13063. var deptinfo = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid.Trim() + ")");
  13064. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  13065. {
  13066. if (limittime > modelT_Bus_AssignedInfo.F_LimitTime)
  13067. {
  13068. return Error("办理时限不能大于当前办理时限");
  13069. }
  13070. int type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13071. if ((type == 1 && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)) || (User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  13072. {
  13073. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 3 || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  13074. {
  13075. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13076. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13077. {
  13078. if (deptinfo.Count == 1)
  13079. {
  13080. #region 插入派单记录
  13081. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13082. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13083. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  13084. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo[0].F_DeptId;//主办单位id
  13085. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  13086. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  13087. else
  13088. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13089. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13090. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  13091. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  13092. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13093. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13094. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13095. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13096. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13097. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13098. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13099. #endregion
  13100. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  13101. {
  13102. #region 保存交办信息
  13103. if (modelT_Bus_AssignedInfo.F_IsNext != 3 && modelT_Bus_AssignedInfo.F_FeedbackTime
  13104. == null)
  13105. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13106. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  13107. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13108. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13109. #endregion
  13110. #region 保存工单信息
  13111. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13112. keyValuePairs.Add("F_MainDeptID3", maindeptid.ToString());
  13113. //modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  13114. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13115. #endregion
  13116. #region 插入操作记录
  13117. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13118. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13119. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13120. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13121. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13122. oper.F_Message = userinfo + " 派单给单位:" + deptinfo[0].F_DeptName;
  13123. oper.F_CreateUser = User.F_UserCode;
  13124. oper.F_CreateTime = DateTime.Now;
  13125. oper.F_IsDelete = 0;
  13126. operBLL.Add(oper);
  13127. //推送消息表
  13128. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13129. #endregion
  13130. }
  13131. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo[0].F_DeptId + " ");
  13132. if (user != null && user.Count > 0)
  13133. {
  13134. foreach (var it in user)
  13135. {
  13136. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13137. {
  13138. continue;
  13139. }
  13140. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  13141. // string msg = workorderid;
  13142. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13143. string mag = "[\"" + workorderid + "\"]";
  13144. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13145. workorderid);
  13146. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13147. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  13148. else
  13149. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  13150. }
  13151. }
  13152. //二级单位给三级单位转派都有短信提醒
  13153. trans.Complete();
  13154. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  13155. }
  13156. else
  13157. {
  13158. #region 插入派单记录
  13159. foreach (var it in deptinfo)
  13160. {
  13161. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13162. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13163. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  13164. modelT_Bus_AssignedInfo_Next.F_MainDeptId = it.F_DeptId;//主办单位id
  13165. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  13166. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  13167. else
  13168. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13169. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13170. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  13171. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  13172. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13173. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13174. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13175. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13176. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13177. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13178. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13179. #endregion
  13180. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  13181. {
  13182. #region 保存交办信息
  13183. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13184. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  13185. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13186. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13187. #endregion
  13188. #region 保存工单信息
  13189. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13190. keyValuePairs.Add("F_MainDeptID3", maindeptid.ToString());
  13191. //modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  13192. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13193. #endregion
  13194. #region 插入操作记录
  13195. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13196. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13197. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13198. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13199. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13200. oper.F_Message = userinfo + " 派单给单位:" + it.F_DeptName;
  13201. oper.F_CreateUser = User.F_UserCode;
  13202. oper.F_CreateTime = DateTime.Now;
  13203. oper.F_IsDelete = 0;
  13204. operBLL.Add(oper);
  13205. #endregion
  13206. }
  13207. }
  13208. trans.Complete();
  13209. return Success("操作成功");
  13210. }
  13211. }
  13212. }
  13213. else
  13214. {
  13215. return Error("已经派过单了");
  13216. }
  13217. }
  13218. else
  13219. {
  13220. return Error("操作失败");
  13221. }
  13222. }
  13223. else
  13224. {
  13225. return Error("操作失败");
  13226. }
  13227. }
  13228. else
  13229. {
  13230. return Error("权限不足");
  13231. }
  13232. }
  13233. /// <summary>
  13234. ///催单短信
  13235. /// </summary>
  13236. /// <returns></returns>
  13237. //[Authority]
  13238. public ActionResult Reminders(string workorderid)
  13239. {
  13240. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  13241. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13242. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13243. if (modelT_Bus_AssignedInfo.F_IsNext == 1 || modelT_Bus_AssignedInfo.F_IsNext == 2)
  13244. {
  13245. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  13246. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_AssignedInfo_Next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  13247. if (user != null)
  13248. {
  13249. foreach (var iv in user)
  13250. {
  13251. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  13252. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode, workorderid);
  13253. //msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  13254. //if (!string.IsNullOrEmpty(iv.F_Mobile))
  13255. //{
  13256. // // string msg = workorderid;
  13257. // //bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "", workorderid);
  13258. // string mag = "[\"" + workorderid + "\"]";
  13259. // string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  13260. // workorderid);
  13261. //}
  13262. }
  13263. }
  13264. }
  13265. else
  13266. {
  13267. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_WorkOrder.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  13268. if (user != null)
  13269. {
  13270. foreach (var iv in user)
  13271. {
  13272. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  13273. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode, workorderid);
  13274. //msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  13275. //if (!string.IsNullOrEmpty(iv.F_Mobile))
  13276. //{
  13277. // string mag = "[\"" + workorderid + "\"]";
  13278. // string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  13279. // workorderid);
  13280. //}
  13281. }
  13282. }
  13283. }
  13284. return Success("发送成功");
  13285. }
  13286. /// <summary>
  13287. /// 撤回待审核转办
  13288. /// 话务员操作撤回自己提交的工单
  13289. /// </summary>
  13290. /// <returns></returns>
  13291. //[Authority]
  13292. public ActionResult WithdrawDWorkOrder()
  13293. {
  13294. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY")
  13295. {
  13296. string workorderid = RequestString.GetFormString("workorderid");
  13297. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13298. if (modelT_Bus_WorkOrder != null && modelT_Bus_WorkOrder.F_CreateUser == User.F_UserCode && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  13299. {
  13300. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13301. {
  13302. #region 保存工单信息
  13303. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13304. keyValuePairs.Add("F_WorkState", 0);
  13305. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  13306. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13307. #endregion
  13308. #region 插入操作记录
  13309. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13310. string msg = userinfo + " 撤回了工单";
  13311. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msg, User.F_UserCode);
  13312. #endregion
  13313. trans.Complete();
  13314. }
  13315. return Success("操作成功");
  13316. }
  13317. else
  13318. {
  13319. return Error("操作失败");
  13320. }
  13321. }
  13322. else
  13323. {
  13324. return Error("权限不足");
  13325. }
  13326. }
  13327. /// <summary>
  13328. /// 收回工单
  13329. /// </summary>
  13330. /// <returns></returns>
  13331. //[Authority]
  13332. public ActionResult TakeBackWorkOrder()
  13333. {
  13334. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  13335. {
  13336. string workorderid = RequestString.GetFormString("workorderid");
  13337. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13338. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13339. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  13340. {
  13341. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  13342. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  13343. {
  13344. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13345. {
  13346. #region 插入交办记录
  13347. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  13348. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13349. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  13350. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  13351. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  13352. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  13353. AssignedInfo.F_State = 0;//0草稿 1正式
  13354. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  13355. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  13356. AssignedInfo.F_IsDelete = 0;
  13357. AssignedInfo.F_IsOverdue = 0;
  13358. AssignedInfo.F_IsSure = 0;
  13359. AssignedInfo.F_IsReload = 0;
  13360. AssignedInfo.F_IsNext = 0;
  13361. assignBLL.Add(AssignedInfo);
  13362. #endregion
  13363. #region 保存工单信息
  13364. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  13365. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13366. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  13367. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  13368. keyValuePairs.Add("F_MainDeptId", null);
  13369. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  13370. keyValuePairs.Add("F_OtherDeptIds", "");
  13371. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  13372. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13373. #endregion
  13374. #region 删除交办信息
  13375. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  13376. modelT_Bus_AssignedInfo.F_DeleteUser = User.F_UserCode;
  13377. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  13378. assignBLL.Update(modelT_Bus_AssignedInfo);
  13379. #endregion
  13380. #region 删除派单信息
  13381. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  13382. foreach (var cg in pdlist)
  13383. {
  13384. cg.F_IsDelete = 1;
  13385. cg.F_DeleteUser = User.F_UserCode;
  13386. cg.F_DeleteTime = DateTime.Now;
  13387. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  13388. }
  13389. #endregion
  13390. #region 删除二级单位处理信息
  13391. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  13392. foreach (var cg in cglist)
  13393. {
  13394. cg.F_IsDelete = 1;
  13395. cg.F_DeleteUser = User.F_UserCode;
  13396. cg.F_DeleteTime = DateTime.Now;
  13397. new BLL.T_Bus_Feedback_Next().Update(cg);
  13398. }
  13399. #endregion
  13400. var modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State !=2 and F_IsDelete = 0 and F_Type = 1 and F_WorkOrderId = '"
  13401. + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc").FirstOrDefault();
  13402. if (modelT_Bus_RemindRecord != null)
  13403. {
  13404. if (modelT_Bus_RemindRecord.F_State != 2)
  13405. {
  13406. modelT_Bus_RemindRecord.F_State = 0;
  13407. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  13408. }
  13409. }
  13410. #region 插入操作记录
  13411. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13412. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13413. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13414. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13415. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13416. oper.F_Message = userinfo + " 收回了工单";
  13417. oper.F_CreateUser = User.F_UserCode;
  13418. oper.F_CreateTime = DateTime.Now;
  13419. oper.F_IsDelete = 0;
  13420. operBLL.Add(oper);
  13421. #endregion
  13422. trans.Complete();
  13423. }
  13424. return Success("操作成功");
  13425. }
  13426. else
  13427. {
  13428. return Error("单位已查收,不能收回");
  13429. }
  13430. }
  13431. else
  13432. {
  13433. return Error("操作失败");
  13434. }
  13435. }
  13436. else
  13437. {
  13438. return Error("权限不足");
  13439. }
  13440. }
  13441. /// <summary>
  13442. /// 查收工单
  13443. /// </summary>
  13444. /// <returns></returns>
  13445. //[Authority]
  13446. public ActionResult ReceiveWorkOrder()
  13447. {
  13448. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13449. {
  13450. string workorderid = RequestString.GetFormString("workorderid");
  13451. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13452. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13453. //操作前新增判断状态
  13454. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13455. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13456. {
  13457. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13458. {
  13459. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13460. {
  13461. #region 保存工单信息
  13462. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13463. // int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=4 where F_Id ='" + modelT_Bus_WorkOrder .F_Id + "'");
  13464. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13465. keyValuePairs.Add("F_WorkState", 4);
  13466. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13467. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13468. // workorderBLL.Update(modelT_Bus_WorkOrder);
  13469. #endregion
  13470. #region 保存查收信息
  13471. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  13472. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13473. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13474. assignBLL.Update(modelT_Bus_AssignedInfo);
  13475. #endregion
  13476. #region 保存明细信息
  13477. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  13478. {
  13479. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  13480. foreach (string strid in strids)
  13481. {
  13482. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  13483. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13484. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  13485. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  13486. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13487. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  13488. modelT_Bus_AssignedItemInfo.F_State = 1;
  13489. modelT_Bus_AssignedItemInfo.F_Type = 2;
  13490. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13491. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  13492. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  13493. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  13494. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  13495. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  13496. }
  13497. }
  13498. #endregion
  13499. #region 插入操作记录
  13500. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13501. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13502. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13503. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13504. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13505. oper.F_Message = userinfo + " 查收了工单";
  13506. oper.F_CreateUser = User.F_UserCode;
  13507. oper.F_CreateTime = DateTime.Now;
  13508. oper.F_IsDelete = 0;
  13509. int n = operBLL.Add(oper);
  13510. #endregion
  13511. Task.Run(() =>
  13512. {
  13513. process_info(n, "case_process_info", "查收工单");
  13514. }).ContinueWith(p =>
  13515. {
  13516. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  13517. });
  13518. trans.Complete();
  13519. }
  13520. return Success("操作成功");
  13521. }
  13522. else
  13523. {
  13524. return Error("单位已查收,不能再次查收");
  13525. }
  13526. }
  13527. else
  13528. {
  13529. return Error("操作失败");
  13530. }
  13531. }
  13532. else
  13533. {
  13534. return Error("权限不足");
  13535. }
  13536. }
  13537. /// <summary>
  13538. /// 批量查收工单
  13539. /// </summary>
  13540. /// <returns></returns>
  13541. //[Authority]
  13542. public ActionResult ReceiveWorkOrderBatch(string ids)
  13543. {
  13544. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13545. {
  13546. string[] strids = ids.Split(','); string errids1 = "", errids = "";
  13547. foreach (string str in strids)
  13548. {
  13549. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  13550. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  13551. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive
  13552. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  13553. && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13554. {
  13555. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13556. {
  13557. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13558. {
  13559. #region 保存工单信息
  13560. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13561. keyValuePairs.Add("F_WorkState", 4);
  13562. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13563. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  13564. #endregion
  13565. #region 保存查收信息
  13566. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  13567. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13568. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13569. assignBLL.Update(modelT_Bus_AssignedInfo);
  13570. #endregion
  13571. #region 保存明细信息
  13572. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  13573. {
  13574. string[] strids1 = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  13575. foreach (string strid in strids1)
  13576. {
  13577. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  13578. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13579. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  13580. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  13581. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13582. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  13583. modelT_Bus_AssignedItemInfo.F_State = 1;
  13584. modelT_Bus_AssignedItemInfo.F_Type = 2;
  13585. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13586. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  13587. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  13588. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  13589. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  13590. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  13591. }
  13592. }
  13593. #endregion
  13594. #region 插入操作记录
  13595. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13596. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13597. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13598. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13599. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13600. oper.F_Message = userinfo + " 查收了工单";
  13601. oper.F_CreateUser = User.F_UserCode;
  13602. oper.F_CreateTime = DateTime.Now;
  13603. oper.F_IsDelete = 0;
  13604. int n = operBLL.Add(oper);
  13605. #endregion
  13606. Task.Run(() =>
  13607. {
  13608. process_info(n, "case_process_info", "查收工单");
  13609. }).ContinueWith(p =>
  13610. {
  13611. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  13612. });
  13613. trans.Complete();
  13614. }
  13615. }
  13616. else
  13617. {
  13618. errids1 += str + ",";
  13619. }
  13620. }
  13621. else
  13622. {
  13623. errids += str + ",";
  13624. }
  13625. }
  13626. if (errids1 == "" && errids == "")
  13627. return Success("操作成功");
  13628. else
  13629. {
  13630. string msg = "";
  13631. if (errids1 != "")
  13632. msg += ",工单编号为" + errids1.Trim(',') + "的工单已查收";
  13633. if (errids != "")
  13634. msg += ",工单编号为" + errids.Trim(',') + "的工单操作失败";
  13635. return Error("部分工单操作失败" + msg);
  13636. }
  13637. }
  13638. else
  13639. {
  13640. return Error("权限不足");
  13641. }
  13642. }
  13643. /// <summary>
  13644. /// 审核退回重办
  13645. /// </summary>
  13646. /// <returns></returns>
  13647. //[Authority]
  13648. public ActionResult AuditWorkorders()
  13649. {
  13650. if (User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13651. {
  13652. string workorderid = RequestString.GetFormString("workorderid");
  13653. string cbreason = RequestString.GetFormString("cbreason");
  13654. int state = RequestString.GetInt("state", 0);
  13655. int limittime = RequestString.GetInt("limittime", 0);
  13656. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13657. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13658. //操作前新增判断状态
  13659. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13660. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  13661. {
  13662. if (state > 0)
  13663. {
  13664. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  13665. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  13666. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  13667. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  13668. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13669. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13670. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  13671. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime.Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  13672. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  13673. if (!string.IsNullOrEmpty(resdatetime))
  13674. {
  13675. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  13676. var datatime = DateTime.Now;
  13677. if (limittime > 0)
  13678. resdatetime = GetLimittime(limittime);
  13679. else
  13680. resdatetime = GetLimittime(6);
  13681. // if (Convert.ToDateTime(resdatetime) > datatime)
  13682. // {
  13683. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  13684. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  13685. // " with(nolock) where F_OffState = 1 and " +
  13686. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  13687. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  13688. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  13689. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  13690. // {
  13691. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  13692. // }
  13693. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  13694. // }
  13695. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  13696. }
  13697. if (modelT_Bus_AssignedInfo.F_IsPerform == 2)
  13698. {
  13699. modelT_Bus_AssignedInfo.F_IsPerform = 1;
  13700. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  13701. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13702. }
  13703. else if (modelT_Bus_AssignedInfo.F_IsPerform == 3)
  13704. {
  13705. modelT_Bus_AssignedInfo.F_IsPerform = null;
  13706. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  13707. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13708. }
  13709. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  13710. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  13711. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = "";//交办意见
  13712. newmodelT_Bus_AssignedInfo.F_State = 1;
  13713. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13714. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13715. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  13716. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13717. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  13718. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  13719. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  13720. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  13721. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  13722. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  13723. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  13724. {
  13725. #region 保存工单信息
  13726. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  13727. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  13728. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  13729. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  13730. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  13731. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13732. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  13733. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13734. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13735. {
  13736. keyValuePairs3.Add("F_RemindDay", 1);
  13737. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  13738. }
  13739. keyValuePairs3.Add("F_IsReload", n + 1);
  13740. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  13741. if (!string.IsNullOrEmpty(resdatetime))
  13742. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  13743. keyValuePairs3.Add("F_IsOverdue", 0);
  13744. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13745. keyValuePairs3.Add("F_IsSms", 0);
  13746. // modelT_Bus_WorkOrder.F_IsSms = 0;
  13747. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  13748. keyValuePairs3.Add("F_Identification", 1);
  13749. // modelT_Bus_WorkOrder.F_Identification = 1;
  13750. keyValuePairs3.Add("F_Result", "");
  13751. // modelT_Bus_WorkOrder.F_Result = "";
  13752. keyValuePairs3.Add("F_DealDeptId", null);
  13753. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  13754. keyValuePairs3.Add("F_DealUser", "");
  13755. // modelT_Bus_WorkOrder.F_DealUser = "";
  13756. keyValuePairs3.Add("F_DealTime", null);
  13757. // modelT_Bus_WorkOrder.F_DealTime = null;
  13758. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  13759. {
  13760. #region 插入操作记录
  13761. #region 20191021调整为多个主办单位时调整
  13762. #endregion
  13763. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了退回重办";
  13764. string cbreasons = ",审核原因:" + cbreason;
  13765. #region 插入操作记录
  13766. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13767. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13768. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13769. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13770. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13771. oper.F_Message = userinfo + opt + cbreasons;
  13772. oper.F_CreateUser = User.F_UserCode;
  13773. oper.F_CreateTime = DateTime.Now;
  13774. oper.F_IsDelete = 0;
  13775. int v = operBLL.Add(oper);
  13776. #endregion
  13777. #endregion
  13778. }
  13779. #endregion
  13780. }
  13781. else
  13782. {
  13783. return Error("退回失败");
  13784. }
  13785. }
  13786. else
  13787. {
  13788. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  13789. var modeloper = new BLL.T_Bus_Operation().
  13790. GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State =6 order by F_CreateTime desc");
  13791. var modeloper1 = new BLL.T_Bus_Operation().
  13792. GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State =7 order by F_CreateTime desc");
  13793. int workorder = (int)EnumWorkState.dealed;
  13794. if (modeloper1 != null && modeloper1.Count > 0)
  13795. {
  13796. if (modeloper != null && modeloper.Count > 0)
  13797. {
  13798. if (modeloper1.FirstOrDefault().F_CreateTime > modeloper.FirstOrDefault().F_CreateTime)
  13799. workorder = (int)EnumWorkState.visit;
  13800. }
  13801. else
  13802. {
  13803. workorder = (int)EnumWorkState.visit;
  13804. }
  13805. }
  13806. keyValuePairs3.Add("F_WorkState", workorder);
  13807. modelT_Bus_WorkOrder.F_WorkState = workorder;
  13808. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了退回重办";
  13809. string cbreasons = ",审核原因:" + cbreason;
  13810. #region 插入操作记录
  13811. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  13812. {
  13813. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13814. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13815. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13816. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13817. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13818. oper.F_Message = userinfo + opt + cbreasons;
  13819. oper.F_CreateUser = User.F_UserCode;
  13820. oper.F_CreateTime = DateTime.Now;
  13821. oper.F_IsDelete = 0;
  13822. int v = operBLL.Add(oper);
  13823. }
  13824. #endregion
  13825. }
  13826. }
  13827. else
  13828. {
  13829. return Error("操作失败");
  13830. }
  13831. return Success("操作成功");
  13832. }
  13833. else
  13834. {
  13835. return Error("权限不足");
  13836. }
  13837. }
  13838. /// <summary>
  13839. /// 退回工单
  13840. /// </summary>
  13841. /// <returns></returns>
  13842. //[Authority]
  13843. public ActionResult RebackWorkOrder()
  13844. {
  13845. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13846. {
  13847. string workorderid = RequestString.GetFormString("workorderid");
  13848. string backreason = RequestString.GetFormString("backreason");
  13849. string file = RequestString.GetFormString("file");
  13850. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13851. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13852. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13853. {
  13854. // if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13855. // {
  13856. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13857. {
  13858. #region 保存工单信息
  13859. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  13860. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13861. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.auditreback);
  13862. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  13863. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13864. #endregion
  13865. #region 插入退回申请信息
  13866. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  13867. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13868. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13869. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  13870. model_T_Bus_Feedback.F_IsAudit = 0;
  13871. model_T_Bus_Feedback.F_IsDelete = 0;
  13872. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  13873. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  13874. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  13875. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  13876. model_T_Bus_Feedback.F_State = 1;
  13877. model_T_Bus_Feedback.F_Type = 3;
  13878. model_T_Bus_Feedback.F_File = file;
  13879. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  13880. #endregion
  13881. #region 保存交办信息
  13882. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  13883. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13884. //{
  13885. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  13886. //}
  13887. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  13888. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13889. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13890. assignBLL.Update(modelT_Bus_AssignedInfo);
  13891. #endregion
  13892. #region 插入操作记录
  13893. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13894. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13895. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13896. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13897. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13898. string message = "";
  13899. if (!string.IsNullOrEmpty(backreason))
  13900. {
  13901. message = ",退回原因:" + backreason;
  13902. }
  13903. oper.F_Message = userinfo + " 申请退回了工单" + message;
  13904. oper.F_CreateUser = User.F_UserCode;
  13905. oper.F_CreateTime = DateTime.Now;
  13906. oper.F_IsDelete = 0;
  13907. operBLL.Add(oper);
  13908. //推送消息表
  13909. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13910. #endregion
  13911. trans.Complete();
  13912. }
  13913. return Success("操作成功");
  13914. // }
  13915. // else
  13916. // {
  13917. // return Error("单位已查收,不能退回");
  13918. // }
  13919. }
  13920. else
  13921. {
  13922. return Error("操作失败");
  13923. }
  13924. }
  13925. else
  13926. {
  13927. return Error("权限不足");
  13928. }
  13929. }
  13930. /// <summary>
  13931. /// 审核退回工单
  13932. /// </summary>
  13933. /// <returns></returns>
  13934. //[Authority]
  13935. public ActionResult AuditRebackWorkOrder()
  13936. {
  13937. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  13938. {
  13939. string workorderid = RequestString.GetFormString("workorderid");
  13940. int state = RequestString.GetInt("state", 0);
  13941. string reason = RequestString.GetFormString("reason");
  13942. int isjb = RequestString.GetInt("isjb", 0);
  13943. int rebackid = RequestString.GetInt("rebackid", 0);
  13944. int zb = RequestString.GetInt("zb", 0);
  13945. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13946. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  13947. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13948. Model.T_Bus_AssignedInfo_Next modelAssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  13949. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  13950. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  13951. {
  13952. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  13953. //{
  13954. // return Error("操作失败");
  13955. //}
  13956. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13957. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  13958. {
  13959. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13960. {
  13961. var rre = "";
  13962. #region 保存查收信息
  13963. modelT_Bus_Feedback.F_IsAudit = state;//审核
  13964. modelT_Bus_Feedback.F_AuditUser = User.F_UserCode;
  13965. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  13966. modelT_Bus_Feedback.F_AuditReason = reason;
  13967. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  13968. #endregion
  13969. string strmsg = "同意";
  13970. if (modelT_Bus_Feedback.F_IsAudit == 1)
  13971. {
  13972. #region 插入交办记录
  13973. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  13974. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13975. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  13976. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  13977. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  13978. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  13979. AssignedInfo.F_State = 0;//0草稿 1正式
  13980. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  13981. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  13982. AssignedInfo.F_IsDelete = 0;
  13983. AssignedInfo.F_IsOverdue = 0;
  13984. AssignedInfo.F_IsSure = 0;
  13985. AssignedInfo.F_IsNext = 0;
  13986. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  13987. assignBLL.Add(AssignedInfo);
  13988. #endregion
  13989. #region 保存交办信息
  13990. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  13991. assignBLL.Update(modelT_Bus_AssignedInfo);
  13992. #endregion
  13993. #region 保存工单信息
  13994. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  13995. keyValuePairs.Add("F_MainDeptId", null);
  13996. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  13997. keyValuePairs.Add("F_IsSendBack", 1);
  13998. // modelT_Bus_WorkOrder.F_IsSendBack = 1;
  13999. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  14000. keyValuePairs.Add("F_LimitTime", null);
  14001. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  14002. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14003. #endregion
  14004. if (modelAssignedInfo_Next != null)
  14005. {
  14006. modelAssignedInfo_Next.F_State = 2;
  14007. modelAssignedInfo_Next.F_IsNotice = 2;
  14008. new BLL.T_Bus_AssignedInfo_Next().Update(modelAssignedInfo_Next);
  14009. }
  14010. if (zb == 0)
  14011. {
  14012. if (modelT_Bus_RemindRecord.F_State != 2)
  14013. {
  14014. modelT_Bus_RemindRecord.F_State = 0;
  14015. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  14016. }
  14017. }
  14018. }
  14019. else
  14020. {
  14021. #region 保存工单信息
  14022. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  14023. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_Feedback.F_CreateTime.Value);
  14024. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14025. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime
  14026. .Value.AddHours(tss));
  14027. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  14028. // .Value.AddHours(tss);
  14029. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  14030. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//待查收
  14031. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14032. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + workorderid + "' order by F_CreateTime desc");
  14033. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  14034. assignBLL.Update(modelT_Bus_AssignedInfo);
  14035. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14036. {
  14037. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14038. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14039. .AddHours(tss);
  14040. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14041. }
  14042. #endregion
  14043. #region 保存交办信息
  14044. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  14045. modelT_Bus_AssignedInfo.F_IsSure = 4;
  14046. modelT_Bus_AssignedInfo.F_SureUser = "";
  14047. modelT_Bus_AssignedInfo.F_SureTime = null;
  14048. assignBLL.Update(modelT_Bus_AssignedInfo);
  14049. #endregion
  14050. strmsg = "拒绝";
  14051. }
  14052. #region 插入操作记录
  14053. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14054. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14055. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14056. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14057. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14058. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  14059. oper.F_CreateUser = User.F_UserCode;
  14060. oper.F_CreateTime = DateTime.Now;
  14061. oper.F_IsDelete = 0;
  14062. operBLL.Add(oper);
  14063. //推送消息表
  14064. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14065. #endregion
  14066. //if (modelT_Bus_AssignedInfo.F_MainDeptId == 304)
  14067. //{
  14068. // rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(), reason, User.F_UserCode).ToString();
  14069. //}
  14070. if (isjb > 0)
  14071. {
  14072. if (modelT_Bus_Feedback.F_IsAudit == 1)
  14073. {
  14074. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  14075. {
  14076. string maindeptid = RequestString.GetFormString("maindeptid");
  14077. string otherdeptids = RequestString.GetFormString("otherdeptids");
  14078. int limittime = RequestString.GetInt("limittime", 0);
  14079. string limittimes = RequestString.GetString("limittimes");
  14080. string resdatetime = "";
  14081. if (limittime > 0)
  14082. {
  14083. resdatetime = GetLimittime(limittime);
  14084. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  14085. // DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14086. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  14087. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  14088. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  14089. // var datatime = DateTime.Now.AddDays(limittime);
  14090. // if (Convert.ToDateTime(resdatetime) > datatime)
  14091. // {
  14092. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  14093. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  14094. // " with(nolock) where F_OffState = 1 and " +
  14095. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  14096. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  14097. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  14098. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  14099. // {
  14100. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  14101. // }
  14102. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  14103. // }
  14104. }
  14105. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  14106. string assignedopinion = RequestString.GetFormString("assignedopinion");
  14107. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  14108. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  14109. {
  14110. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  14111. {
  14112. return Error("操作失败");
  14113. }
  14114. }
  14115. if (!string.IsNullOrEmpty(otherdeptids))
  14116. {
  14117. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  14118. if (both.Count() > 0)
  14119. {
  14120. return Error("主办单位不能出现在协办单位");
  14121. }
  14122. }
  14123. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14124. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  14125. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  14126. {
  14127. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  14128. {
  14129. int aid = 0;
  14130. if (deptlist.Count == 1)
  14131. {
  14132. var deptinfo = deptlist.FirstOrDefault();
  14133. #region 插入交办记录
  14134. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14135. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  14136. if (modelT_Bus_WorkOrder.F_Level == 2)
  14137. {
  14138. try
  14139. {
  14140. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  14141. }
  14142. catch
  14143. {
  14144. return Error("请选择正确的时间");
  14145. }
  14146. }
  14147. else
  14148. {
  14149. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  14150. }
  14151. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  14152. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14153. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14154. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  14155. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  14156. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  14157. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  14158. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  14159. modelT_Bus_AssignedInfo.F_IsSure = 0;
  14160. modelT_Bus_AssignedInfo.F_IsReload = 0;
  14161. modelT_Bus_AssignedInfo.F_IsNext = 0;
  14162. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  14163. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  14164. #endregion
  14165. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  14166. {
  14167. #region 保存工单信息
  14168. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  14169. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  14170. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  14171. if (modelT_Bus_WorkOrder.F_Level == 2)
  14172. {
  14173. try
  14174. {
  14175. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  14176. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  14177. }
  14178. catch
  14179. {
  14180. return Error("请选择正确的时间");
  14181. }
  14182. }
  14183. else
  14184. {
  14185. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  14186. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  14187. }
  14188. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  14189. // modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  14190. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  14191. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  14192. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  14193. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  14194. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  14195. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14196. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14197. #endregion
  14198. #region 删除草稿信息
  14199. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14200. foreach (var cg in cglist)
  14201. {
  14202. cg.F_IsDelete = 1;
  14203. cg.F_DeleteUser = User.F_UserCode;
  14204. cg.F_DeleteTime = DateTime.Now;
  14205. assignBLL.Update(cg);
  14206. }
  14207. #endregion
  14208. #region 插入操作记录
  14209. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  14210. if (!string.IsNullOrEmpty(otherdeptids))
  14211. {
  14212. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  14213. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  14214. msgss += ",协办单位:" + deptname1;
  14215. }
  14216. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  14217. //推送消息表
  14218. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  14219. //foreach (var u in users)
  14220. //{
  14221. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  14222. //}
  14223. #endregion
  14224. }
  14225. }
  14226. else
  14227. {
  14228. string newids = ""; string errdeptid = ""; string deptname = "";
  14229. foreach (var deptinfo in deptlist)
  14230. {
  14231. deptname += deptinfo.F_DeptName + ",";
  14232. #region 新增工单
  14233. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  14234. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  14235. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  14236. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  14237. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  14238. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  14239. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  14240. {
  14241. errdeptid += deptinfo.F_DeptName + ",";
  14242. continue;
  14243. }
  14244. #endregion
  14245. #region 交办
  14246. #region 插入交办记录
  14247. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  14248. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  14249. if (modelT_Bus_WorkOrder.F_Level == 2)
  14250. {
  14251. try
  14252. {
  14253. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  14254. }
  14255. catch
  14256. {
  14257. return Error("请选择正确的时间");
  14258. }
  14259. }
  14260. else
  14261. {
  14262. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  14263. }
  14264. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  14265. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14266. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14267. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  14268. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  14269. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  14270. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  14271. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  14272. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  14273. modelT_Bus_AssignedInfo.F_IsSure = 0;
  14274. modelT_Bus_AssignedInfo.F_IsReload = 0;
  14275. modelT_Bus_AssignedInfo.F_IsNext = 0;
  14276. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  14277. #endregion
  14278. #endregion
  14279. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  14280. {
  14281. #region 保存工单信息
  14282. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  14283. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.receive);
  14284. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  14285. if (modelT_Bus_WorkOrder.F_Level == 2)
  14286. {
  14287. try
  14288. {
  14289. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  14290. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  14291. }
  14292. catch
  14293. {
  14294. return Error("请选择正确的时间");
  14295. }
  14296. }
  14297. else
  14298. {
  14299. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  14300. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  14301. }
  14302. keyValuePairs1.Add("F_MainDeptId", Convert.ToDateTime(deptinfo.F_DeptId));
  14303. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  14304. keyValuePairs1.Add("F_OtherDeptIds", otherdeptids);
  14305. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  14306. keyValuePairs1.Add("F_AssignUser", User.F_UserCode);
  14307. // modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  14308. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  14309. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  14310. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  14311. #endregion
  14312. #region 删除草稿信息
  14313. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  14314. foreach (var cg in cglist)
  14315. {
  14316. cg.F_IsDelete = 1;
  14317. cg.F_DeleteUser = User.F_UserCode;
  14318. cg.F_DeleteTime = DateTime.Now;
  14319. assignBLL.Update(cg);
  14320. }
  14321. #endregion
  14322. #region 插入操作记录
  14323. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  14324. if (!string.IsNullOrEmpty(otherdeptids))
  14325. {
  14326. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  14327. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  14328. msgss += ",协办单位:" + deptname1;
  14329. }
  14330. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  14331. //推送消息表
  14332. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  14333. //foreach (var u in users)
  14334. //{
  14335. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  14336. //}
  14337. #endregion
  14338. }
  14339. Task.Run(() =>
  14340. {
  14341. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  14342. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  14343. {
  14344. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  14345. }
  14346. }).ContinueWith(p =>
  14347. {
  14348. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  14349. });
  14350. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  14351. }
  14352. newids = newids.Trim(',');
  14353. var msgs = "";
  14354. if (errdeptid == "")
  14355. {
  14356. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  14357. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.finish);
  14358. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  14359. keyValuePairs2.Add("F_CloseTime", DateTime.Now);
  14360. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14361. keyValuePairs2.Add("F_CloseUser", User.F_UserCode);
  14362. //modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  14363. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  14364. msgs = userinfo + " 交办多单位:" + deptname + "关闭此工单并生成新工单,新工单编号为:" + newids;
  14365. }
  14366. else
  14367. {
  14368. errdeptid = errdeptid.Trim(',');
  14369. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  14370. }
  14371. #region 插入操作记录
  14372. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  14373. #endregion
  14374. }
  14375. #region
  14376. #endregion
  14377. }
  14378. else
  14379. {
  14380. return Error("已经交办过了");
  14381. }
  14382. }
  14383. else
  14384. {
  14385. return Error("操作失败");
  14386. }
  14387. }
  14388. else
  14389. {
  14390. return Error("权限不足");
  14391. }
  14392. }
  14393. }
  14394. trans.Complete();
  14395. }
  14396. return Success("操作成功");
  14397. }
  14398. else
  14399. {
  14400. return Error("此审核已经处理");
  14401. }
  14402. }
  14403. else
  14404. {
  14405. return Error("操作失败");
  14406. }
  14407. }
  14408. else
  14409. {
  14410. return Error("权限不足");
  14411. }
  14412. }
  14413. public ActionResult GetDelayCount()
  14414. {
  14415. var sql = "select count(1) from T_Bus_DelayTime where DATEDIFF (MONTH ,F_CreateTime ,GETDATE ())=0 " +
  14416. $"and F_CreateUser ='{User.F_DeptId }'and F_IsDelete = 0 ";
  14417. var count = int.Parse(DbHelperSQL.GetSingle(sql).ToString());
  14418. string message = "";
  14419. if (count >= 5)
  14420. {
  14421. message = "本月已申请五次延时,不允许再次申请!";
  14422. }
  14423. else
  14424. {
  14425. message = $"本月已申请{count}次延时。";
  14426. }
  14427. var obj = new
  14428. {
  14429. message,
  14430. count
  14431. };
  14432. return Success("获取成功", obj);
  14433. }
  14434. /// <summary>
  14435. /// 申请延时
  14436. /// </summary>
  14437. /// <returns></returns>
  14438. //[Authority]
  14439. public ActionResult DelayWorkOrder()
  14440. {
  14441. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14442. {
  14443. string workorderid = RequestString.GetFormString("workorderid");
  14444. int newlimittime = 7;
  14445. string resdatetime = "";
  14446. string reason = RequestString.GetFormString("reason");
  14447. string files = RequestString.GetFormString("files");
  14448. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14449. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14450. if (modelT_Bus_WorkOrder.F_LimitTime != null)
  14451. {
  14452. if (DateTime.Now > modelT_Bus_WorkOrder.F_LimitTime.Value)
  14453. {
  14454. return Error("该工单已超时,不能申请延时");
  14455. }
  14456. }
  14457. var Delay = new BLL.T_Bus_DelayTime().GetModelList("F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit in (0,1) and F_CreateUser='" + User.F_DeptId + "'and F_AssignedId='" + modelT_Bus_AssignedInfo.F_Id + "'");
  14458. if (Delay != null && Delay.Count > 0)
  14459. {
  14460. return Error("当前工单只能申请一次延时");
  14461. }
  14462. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14463. {
  14464. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14465. {
  14466. #region 保存工单信息
  14467. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=5 where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  14468. #endregion
  14469. #region 插入申请延时信息
  14470. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  14471. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14472. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  14473. if (newlimittime > 0)
  14474. {
  14475. resdatetime = GetLimittime(newlimittime);
  14476. // DataTable dt = DbHelperSQL.Query("select top " + newlimittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14477. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + modelT_Bus_AssignedInfo .F_LimitTime + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  14478. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  14479. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  14480. // var datatime = DateTime.Now.AddDays(newlimittime);
  14481. // if (Convert.ToDateTime(resdatetime) > datatime)
  14482. // {
  14483. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  14484. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  14485. // " with(nolock) where F_OffState = 1 and " +
  14486. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  14487. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  14488. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  14489. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  14490. // {
  14491. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  14492. // }
  14493. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  14494. // }
  14495. }
  14496. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  14497. // delay.F_NewTime =DateTime .Now .AddDays ( newlimittime);
  14498. delay.F_NewTime = Convert.ToDateTime(resdatetime);
  14499. delay.F_Reason = reason;
  14500. delay.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14501. delay.F_IsAudit = 0;
  14502. delay.F_IsDelete = 0;
  14503. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14504. delay.F_CreateUser = User.F_DeptId.ToString();
  14505. delay.F_CreateTime = DateTime.Now;
  14506. delay.F_File = files;
  14507. new BLL.T_Bus_DelayTime().Add(delay);
  14508. #endregion
  14509. #region 插入操作记录
  14510. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14511. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14512. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14513. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14514. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14515. oper.F_Message = userinfo + " 申请了延时处理";
  14516. oper.F_CreateUser = User.F_UserCode;
  14517. oper.F_CreateTime = DateTime.Now;
  14518. oper.F_IsDelete = 0;
  14519. operBLL.Add(oper);
  14520. //推送消息表
  14521. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14522. #endregion
  14523. trans.Complete();
  14524. }
  14525. return Success("操作成功");
  14526. }
  14527. else
  14528. {
  14529. return Error("操作失败");
  14530. }
  14531. }
  14532. else
  14533. {
  14534. return Error("权限不足");
  14535. }
  14536. }
  14537. public class bendiack
  14538. {
  14539. public string state;
  14540. public string message;
  14541. }
  14542. public class receive_case_delay_apply
  14543. {/// <summary>
  14544. /// 任务单唯一标识
  14545. /// </summary>
  14546. public string TROWGUID { set; get; }
  14547. /// <summary>
  14548. /// 申请人姓名
  14549. /// </summary>
  14550. public string APPLY_NAME { set; get; }
  14551. /// <summary>
  14552. /// 申请延期天数
  14553. /// </summary>
  14554. public int APPLY_DELAYNUM { set; get; }
  14555. /// <summary>
  14556. /// 申请延期原因
  14557. /// </summary>
  14558. public string APPLY_REASON { set; get; }
  14559. /// <summary>
  14560. /// 申请延期类型
  14561. /// 代码项名称
  14562. /// 办结延时 10
  14563. /// 退回延时 20
  14564. /// </summary>
  14565. public string APPLY_TYPE { set; get; }
  14566. }
  14567. private BLL.T_Sys_Affairs affairsBll = new BLL.T_Sys_Affairs();
  14568. /// <summary>
  14569. /// 审核延时工单
  14570. /// </summary>
  14571. /// <returns></returns>
  14572. //[Authority]
  14573. public ActionResult AuditDelayWorkOrder()
  14574. {
  14575. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  14576. {
  14577. string workorderid = RequestString.GetFormString("workorderid");
  14578. int state = RequestString.GetInt("state", 0);
  14579. string reason = RequestString.GetFormString("reason");
  14580. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  14581. int delayid = RequestString.GetInt("delayid", 0);
  14582. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14583. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  14584. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + workorderid + "' order by F_CreateTime desc");
  14585. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14586. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  14587. {
  14588. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  14589. {
  14590. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14591. {
  14592. #region 保存工单信息
  14593. int workstate = 4;
  14594. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  14595. {
  14596. workstate = modelT_Bus_DelayTime.F_State.Value;
  14597. }
  14598. #endregion
  14599. #region 保存审核信息
  14600. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  14601. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  14602. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  14603. modelT_Bus_DelayTime.F_RefuseReason = reason;
  14604. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  14605. #endregion
  14606. string type = "同意"; string des = "";
  14607. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  14608. {
  14609. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  14610. {
  14611. modelT_Bus_DelayTime.F_IsAudit = 3;
  14612. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  14613. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  14614. {
  14615. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  14616. }
  14617. var affairs = affairsBll.GetModel(workordercode);
  14618. if (affairs != null)
  14619. {
  14620. var day = int.Parse
  14621. (DbHelperSQL.GetSingle(" select count(1) from " +
  14622. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14623. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  14624. $"and F_OffDate <= '{newlimittime.ToString("yyyy-MM-dd")}' ").ToString());
  14625. receive_case_delay_apply paras = new receive_case_delay_apply();
  14626. paras.TROWGUID = affairs.TROWGUID;
  14627. paras.APPLY_NAME = User.F_UserName;
  14628. paras.APPLY_DELAYNUM = day;
  14629. paras.APPLY_TYPE = "10";
  14630. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  14631. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  14632. else
  14633. paras.APPLY_REASON = reason;
  14634. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  14635. workstate + " where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  14636. try
  14637. {
  14638. string jsonParam = "paras=" + paras.ToJson() +
  14639. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  14640. modelT_Bus_WorkOrder.F_WorkOrderId;
  14641. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  14642. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  14643. if (jo.state != "success")
  14644. return Error(jo.message );
  14645. }
  14646. catch
  14647. {
  14648. return Error("推送省平台延时审核失败");
  14649. }
  14650. des = ",推送省平台延时审核";
  14651. }
  14652. else
  14653. {
  14654. #region 修改交办记录
  14655. modelT_Bus_AssignedInfo.F_IsSure = 1;
  14656. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14657. assignBLL.Update(modelT_Bus_AssignedInfo);
  14658. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14659. {
  14660. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  14661. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14662. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14663. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14664. .AddHours(tss);
  14665. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14666. }
  14667. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  14668. workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  14669. #endregion
  14670. #region 处理协办单位
  14671. #endregion
  14672. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  14673. }
  14674. }
  14675. else
  14676. {
  14677. #region 保存审核信息
  14678. #endregion
  14679. #region 修改交办记录
  14680. modelT_Bus_AssignedInfo.F_IsSure = 1;
  14681. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14682. assignBLL.Update(modelT_Bus_AssignedInfo);
  14683. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14684. {
  14685. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  14686. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14687. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14688. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14689. .AddHours(tss);
  14690. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14691. }
  14692. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" + workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  14693. #endregion
  14694. #region 处理协办单位
  14695. #endregion
  14696. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  14697. }
  14698. }
  14699. else
  14700. {
  14701. if(modelT_Bus_WorkOrder.F_InfoSource ==2580)
  14702. {
  14703. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14704. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  14705. keyValuePairs.Add("F_WorkState", workstate);
  14706. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14707. modelT_Bus_AssignedInfo.F_IsSure = 5;
  14708. assignBLL.Update(modelT_Bus_AssignedInfo);
  14709. }
  14710. else
  14711. {
  14712. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  14713. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14714. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14715. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  14716. .Value.AddHours(tss);
  14717. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  14718. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  14719. // .Value.AddHours(tss);
  14720. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14721. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  14722. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14723. {
  14724. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14725. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14726. .AddHours(tss);
  14727. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14728. }
  14729. modelT_Bus_AssignedInfo.F_IsSure = 5;
  14730. assignBLL.Update(modelT_Bus_AssignedInfo);
  14731. }
  14732. type = "拒绝";
  14733. }
  14734. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  14735. #region 插入操作记录
  14736. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14737. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14738. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14739. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14740. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14741. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  14742. oper.F_CreateUser = User.F_UserCode;
  14743. oper.F_CreateTime = DateTime.Now;
  14744. oper.F_IsDelete = 0;
  14745. operBLL.Add(oper);
  14746. //推送消息表
  14747. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14748. #endregion
  14749. trans.Complete();
  14750. }
  14751. return Success("操作成功");
  14752. }
  14753. else
  14754. {
  14755. return Error("此审核已经处理");
  14756. }
  14757. }
  14758. else
  14759. {
  14760. return Error("操作失败");
  14761. }
  14762. }
  14763. else
  14764. {
  14765. return Error("权限不足");
  14766. }
  14767. }
  14768. /// <summary>
  14769. /// 批量审核延时
  14770. /// </summary>
  14771. /// <param name="ids"></param>
  14772. /// <returns></returns>
  14773. //[Authority]
  14774. public ActionResult AuditDelayWorkOrderBatch(string ids)
  14775. {
  14776. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  14777. {
  14778. int state = RequestString.GetInt("state", 0);
  14779. string reason = RequestString.GetFormString("reason");
  14780. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  14781. string errids = ""; string errids1 = "";
  14782. if (!string.IsNullOrEmpty(ids))
  14783. {
  14784. string[] strids = ids.Split(',');
  14785. foreach (string str in strids)
  14786. {
  14787. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14788. {
  14789. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  14790. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModelList(" F_WorkOrderId = '" + str + "' and F_IsDelete = 0 and F_IsAudit = 0 order by F_CreateTime desc").FirstOrDefault();
  14791. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  14792. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + str + "' order by F_CreateTime desc");
  14793. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  14794. {
  14795. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  14796. {
  14797. #region 保存工单信息
  14798. int workstate = 4;
  14799. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  14800. workstate = modelT_Bus_DelayTime.F_State.Value;
  14801. #endregion
  14802. #region 保存审核信息
  14803. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  14804. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  14805. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  14806. modelT_Bus_DelayTime.F_RefuseReason = reason;
  14807. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  14808. #endregion
  14809. string type = "同意"; string des = "";
  14810. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  14811. {
  14812. #region 修改交办记录
  14813. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  14814. {
  14815. modelT_Bus_DelayTime.F_IsAudit = 3;
  14816. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  14817. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  14818. {
  14819. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  14820. }
  14821. var affairs = affairsBll.GetModel(workordercode);
  14822. if (affairs != null)
  14823. {
  14824. modelT_Bus_DelayTime.F_IsAudit = 3;
  14825. var day = int.Parse
  14826. (DbHelperSQL.GetSingle(" select count(1) from " +
  14827. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14828. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  14829. $"and F_OffDate <= '{modelT_Bus_DelayTime.F_NewTime.Value .ToString("yyyy-MM-dd")}' ").ToString());
  14830. receive_case_delay_apply paras = new receive_case_delay_apply();
  14831. paras.TROWGUID = affairs.TROWGUID;
  14832. paras.APPLY_NAME = User.F_UserName;
  14833. paras.APPLY_DELAYNUM = day;
  14834. paras.APPLY_TYPE = "10";
  14835. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  14836. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  14837. else
  14838. paras.APPLY_REASON = reason;
  14839. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14840. keyValuePairs.Add("F_WorkState", workstate);
  14841. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14842. try
  14843. {
  14844. string jsonParam = "paras=" + paras.ToJson() +
  14845. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  14846. modelT_Bus_WorkOrder.F_WorkOrderId;
  14847. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  14848. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  14849. if (jo.state != "success")
  14850. return Error(jo.message);
  14851. }
  14852. catch
  14853. {
  14854. return Error("推送省平台延时审核失败");
  14855. }
  14856. des = ",推送省平台延时审核";
  14857. }
  14858. else
  14859. {
  14860. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14861. keyValuePairs.Add("F_WorkState", workstate);
  14862. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  14863. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  14864. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  14865. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14866. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14867. assignBLL.Update(modelT_Bus_AssignedInfo);
  14868. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14869. {
  14870. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  14871. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14872. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14873. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14874. .AddHours(tss);
  14875. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14876. }
  14877. #endregion
  14878. #region 处理协办单位
  14879. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14880. foreach (var xb in xblist)
  14881. {
  14882. //xb.F_LimitTime = DateTime.Now;
  14883. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14884. assignItemBLL.Update(xb);
  14885. }
  14886. #endregion
  14887. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  14888. }
  14889. }
  14890. else
  14891. {
  14892. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14893. keyValuePairs.Add("F_WorkState", workstate);
  14894. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  14895. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  14896. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  14897. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14898. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14899. assignBLL.Update(modelT_Bus_AssignedInfo);
  14900. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14901. {
  14902. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  14903. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14904. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14905. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14906. .AddHours(tss);
  14907. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14908. }
  14909. #region 处理协办单位
  14910. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14911. foreach (var xb in xblist)
  14912. {
  14913. //xb.F_LimitTime = DateTime.Now;
  14914. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  14915. assignItemBLL.Update(xb);
  14916. }
  14917. #endregion
  14918. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  14919. }
  14920. }
  14921. else
  14922. {
  14923. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  14924. {
  14925. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  14926. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  14927. keyValuePairs1.Add("F_WorkState", workstate);
  14928. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  14929. modelT_Bus_AssignedInfo.F_IsSure = 5;
  14930. assignBLL.Update(modelT_Bus_AssignedInfo);
  14931. }
  14932. else
  14933. {
  14934. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  14935. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14936. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  14937. keyValuePairs1.Add("F_WorkState", workstate);
  14938. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  14939. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  14940. .Value.AddHours(tss);
  14941. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  14942. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  14943. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14944. {
  14945. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14946. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14947. .AddHours(tss);
  14948. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14949. }
  14950. modelT_Bus_AssignedInfo.F_IsSure = 5;
  14951. assignBLL.Update(modelT_Bus_AssignedInfo);
  14952. }
  14953. type = "拒绝";
  14954. }
  14955. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  14956. #region 插入操作记录
  14957. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14958. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14959. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14960. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14961. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14962. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  14963. oper.F_CreateUser = User.F_UserCode;
  14964. oper.F_CreateTime = DateTime.Now;
  14965. oper.F_IsDelete = 0;
  14966. operBLL.Add(oper);
  14967. //推送消息表
  14968. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14969. #endregion
  14970. }
  14971. else
  14972. errids1 += str + ",";
  14973. }
  14974. trans.Complete();
  14975. }
  14976. }
  14977. if (errids1 == "" && errids == "")
  14978. return Success("操作成功");
  14979. else
  14980. {
  14981. string msg = "";
  14982. if (errids1 != "")
  14983. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  14984. if (errids != "")
  14985. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  14986. return Error("部分工单操作失败" + msg);
  14987. }
  14988. }
  14989. else
  14990. {
  14991. return Error("参数获取失败");
  14992. }
  14993. }
  14994. else
  14995. {
  14996. return Error("权限不足");
  14997. }
  14998. }
  14999. /// <summary>
  15000. /// 办理工单
  15001. /// </summary>
  15002. /// <returns></returns>
  15003. //[Authority]
  15004. public ActionResult FeedBackWorkOrder()
  15005. {
  15006. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15007. {
  15008. string workorderid = RequestString.GetFormString("workorderid");
  15009. string dealman = RequestString.GetFormString("dealman");
  15010. string result = RequestString.GetFormString("result");
  15011. string files = RequestString.GetFormString("files");
  15012. int state = RequestString.GetInt("state", 0);
  15013. int feedbackid = RequestString.GetInt("feedbackid", 0);
  15014. int isproresult = RequestString.GetInt("isproresult", 0);//是否向当事人反馈
  15015. string prosituation = RequestString.GetFormString("prosituation");
  15016. string dealcontact = RequestString.GetFormString("dealcontact");
  15017. string connecttime = RequestString.GetFormString("connecttime");
  15018. string connectmode = RequestString.GetFormString("connectmode");
  15019. string replycontent = RequestString.GetFormString("replycontent");
  15020. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  15021. string duties = RequestString.GetFormString("duties");
  15022. string situation = RequestString.GetFormString("situation");
  15023. string IsProResultState = RequestString.GetFormString("IsProResultState ");
  15024. string Unsuccessful = RequestString.GetFormString("Unsuccessful");
  15025. string AuditUser = RequestString.GetFormString("AuditUser");//审核领导
  15026. string post = RequestString.GetFormString("post");//审核领导职务
  15027. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  15028. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里 是否向当事人反馈,选择否的时候,有个输入框,可以填原因,
  15029. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15030. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15031. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  15032. int type = 0;
  15033. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  15034. {
  15035. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  15036. if (type > 0)
  15037. {
  15038. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  15039. if (modelT_Bus_WorkOrder.F_WorkState >= (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_IsProResult == 0)
  15040. {
  15041. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15042. {
  15043. if (feedbackid == 0)
  15044. {
  15045. #region 插入反馈记录
  15046. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  15047. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  15048. modelT_Bus_Feedback.F_AuditPost = post;
  15049. modelT_Bus_Feedback.F_AuditContact = auditContact;
  15050. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  15051. modelT_Bus_Feedback.F_DealUser = dealman;
  15052. modelT_Bus_Feedback.F_Result = result;//反馈内容
  15053. #region 20200114新增字段 zhengbingbing
  15054. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  15055. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  15056. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  15057. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  15058. DateTime contime = DateTime.Now;
  15059. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  15060. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  15061. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  15062. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  15063. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  15064. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  15065. modelT_Bus_Feedback.F_Duties = duties;//职务
  15066. modelT_Bus_Feedback.F_Situation = situation;
  15067. modelT_Bus_Feedback.F_IsProResult = isproresult;
  15068. #endregion
  15069. modelT_Bus_Feedback.F_File = files;
  15070. modelT_Bus_Feedback.F_IsAudit = 0;
  15071. modelT_Bus_Feedback.F_IsDelete = 0;
  15072. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  15073. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  15074. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  15075. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  15076. modelT_Bus_Feedback.F_State = state;
  15077. modelT_Bus_Feedback.F_Type = type;
  15078. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  15079. #endregion
  15080. }
  15081. else
  15082. {
  15083. #region 修改反馈记录
  15084. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  15085. if (modelT_Bus_Feedback != null)
  15086. {
  15087. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  15088. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  15089. modelT_Bus_Feedback.F_DealUser = dealman;
  15090. modelT_Bus_Feedback.F_Result = result;//反馈内容
  15091. modelT_Bus_Feedback.F_File = files;
  15092. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  15093. #region 20200114新增字段 zhengbingbing
  15094. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  15095. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  15096. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  15097. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  15098. DateTime contime = DateTime.Now;
  15099. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  15100. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  15101. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  15102. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  15103. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  15104. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  15105. modelT_Bus_Feedback.F_Duties = duties;//职务
  15106. modelT_Bus_Feedback.F_Situation = situation;
  15107. #endregion
  15108. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  15109. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  15110. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  15111. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  15112. modelT_Bus_Feedback.F_State = state;
  15113. modelT_Bus_Feedback.F_IsProResult = isproresult;
  15114. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  15115. {
  15116. modelT_Bus_Feedback.F_Type = 1;
  15117. }
  15118. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  15119. {
  15120. modelT_Bus_Feedback.F_Type = 2;
  15121. }
  15122. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  15123. }
  15124. #endregion
  15125. }
  15126. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  15127. {
  15128. string typemsg = "办理";
  15129. if (type == 1)
  15130. {
  15131. int iscs = 0;
  15132. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  15133. {
  15134. iscs = 1;
  15135. }
  15136. #region 保存工单信息
  15137. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  15138. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15139. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealed);
  15140. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  15141. keyValuePairs.Add("F_Result", result);
  15142. // modelT_Bus_WorkOrder.F_Result = result;
  15143. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  15144. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  15145. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  15146. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  15147. keyValuePairs.Add("F_DealTime", DateTime.Now);
  15148. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  15149. keyValuePairs.Add("F_ToBereply", 1);
  15150. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  15151. keyValuePairs.Add("F_IsOverdue", iscs);
  15152. //modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  15153. keyValuePairs.Add("F_IsProResult", isproresult);
  15154. // modelT_Bus_WorkOrder.F_IsProResult = isproresult;
  15155. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15156. #endregion
  15157. #region 保存交办信息
  15158. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  15159. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  15160. {
  15161. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  15162. }
  15163. assignBLL.Update(modelT_Bus_AssignedInfo);
  15164. #endregion
  15165. #region 删除草稿信息
  15166. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  15167. foreach (var cg in cglist)
  15168. {
  15169. cg.F_IsDelete = 1;
  15170. cg.F_DeleteUser = User.F_UserCode;
  15171. cg.F_DeleteTime = DateTime.Now;
  15172. new BLL.T_Bus_Feedback().Update(cg);
  15173. }
  15174. #endregion
  15175. #region 删除二级单位未办理信息
  15176. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  15177. foreach (var ej in ejlist)
  15178. {
  15179. ej.F_IsDelete = 1;
  15180. ej.F_DeleteUser = User.F_UserCode;
  15181. ej.F_DeleteTime = DateTime.Now;
  15182. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  15183. }
  15184. #endregion
  15185. #region 二级单位未办理改为办理
  15186. var ejbllist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit=0");
  15187. foreach (var ej in ejbllist)
  15188. {
  15189. ej.F_IsAudit = 1;
  15190. ej.F_AuditUser = User.F_UserCode;
  15191. ej.F_AuditTime = DateTime.Now;
  15192. new BLL.T_Bus_Feedback_Next().Update(ej);
  15193. }
  15194. #endregion
  15195. #region 处理协办单位
  15196. var xblist = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  15197. foreach (var xb in xblist)
  15198. {
  15199. xb.F_State = 2;
  15200. xb.F_SureUser = User.F_UserCode;
  15201. xb.F_SureTime = DateTime.Now;
  15202. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  15203. }
  15204. #endregion
  15205. typemsg = "主办";
  15206. }
  15207. else if (type == 2)
  15208. {
  15209. #region 保存明细信息
  15210. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_DeptId='" + User.F_DeptId + "'").FirstOrDefault();
  15211. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  15212. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  15213. {
  15214. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  15215. }
  15216. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  15217. #endregion
  15218. #region 删除草稿信息
  15219. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  15220. foreach (var cg in cglist)
  15221. {
  15222. cg.F_IsDelete = 1;
  15223. cg.F_DeleteUser = User.F_UserCode;
  15224. cg.F_DeleteTime = DateTime.Now;
  15225. new BLL.T_Bus_Feedback().Update(cg);
  15226. }
  15227. #endregion
  15228. typemsg = "协办";
  15229. }
  15230. #region 插入操作记录
  15231. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15232. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15233. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15234. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15235. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15236. oper.F_Message = userinfo + " " + typemsg + "了工单";
  15237. oper.F_CreateUser = User.F_UserCode;
  15238. oper.F_CreateTime = DateTime.Now;
  15239. oper.F_IsDelete = 0;
  15240. operBLL.Add(oper);
  15241. //推送消息表
  15242. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15243. #endregion
  15244. }
  15245. trans.Complete();
  15246. }
  15247. Task.Run(() =>
  15248. {
  15249. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  15250. if (!string.IsNullOrEmpty(files))
  15251. {
  15252. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  15253. }
  15254. }).ContinueWith(p =>
  15255. {
  15256. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15257. });
  15258. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  15259. }
  15260. else
  15261. {
  15262. return Error("已经办理过了");
  15263. }
  15264. }
  15265. else
  15266. {
  15267. return Error("权限不足");
  15268. }
  15269. }
  15270. else
  15271. {
  15272. return Error("操作失败");
  15273. }
  15274. }
  15275. else
  15276. {
  15277. return Error("权限不足");
  15278. }
  15279. }
  15280. /// <summary>
  15281. ///追问回复
  15282. /// </summary>
  15283. /// <returns></returns>
  15284. //[Authority]
  15285. public ActionResult ReplyWorkOrder()
  15286. {
  15287. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  15288. {
  15289. string workorderid = RequestString.GetFormString("workorderid");
  15290. string files = RequestString.GetFormString("files");
  15291. string replycount = RequestString.GetFormString("replycount");
  15292. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15293. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15294. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL
  15295. .GetNewModelByWorkOrderID(workorderid);
  15296. int type = 0;
  15297. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  15298. && modelT_Bus_Feedback != null)
  15299. {
  15300. // type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  15301. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  15302. if (modelT_Bus_WorkOrder.F_IsProResult == 2)
  15303. {
  15304. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15305. {
  15306. var deptinfo = "";
  15307. var dept = new BLL.T_Sys_Department().GetModel(User.F_DeptId);
  15308. if (dept != null)
  15309. deptinfo = dept.F_DeptName;
  15310. else
  15311. deptinfo = User.F_UserName;
  15312. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15313. string message = deptinfo + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + replycount; ;
  15314. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_AdditionalReply))
  15315. {
  15316. keyValuePairs.Add("F_AdditionalReply", message);
  15317. }
  15318. else
  15319. {
  15320. keyValuePairs.Add("F_AdditionalReply", modelT_Bus_WorkOrder.F_AdditionalReply + "<br/>" + message);
  15321. }
  15322. keyValuePairs.Add("F_IsProResult", 3);
  15323. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15324. if (!string.IsNullOrEmpty(files))
  15325. {
  15326. if (!string.IsNullOrEmpty(modelT_Bus_Feedback.F_Files))
  15327. modelT_Bus_Feedback.F_Files += "," + files;
  15328. else
  15329. modelT_Bus_Feedback.F_Files = files;
  15330. bool f = feedbackBLL.Update(modelT_Bus_Feedback);
  15331. }
  15332. #region 插入操作记录
  15333. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15334. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15335. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15336. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15337. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15338. oper.F_Message = userinfo + " " + "回复" + "了工单";
  15339. oper.F_CreateUser = User.F_UserCode;
  15340. oper.F_CreateTime = DateTime.Now;
  15341. oper.F_IsDelete = 0;
  15342. operBLL.Add(oper);
  15343. #endregion
  15344. trans.Complete();
  15345. }
  15346. return Success("操作成功");
  15347. }
  15348. else
  15349. {
  15350. return Error("已经办理过了");
  15351. }
  15352. }
  15353. else
  15354. {
  15355. return Error("操作失败");
  15356. }
  15357. }
  15358. else
  15359. {
  15360. return Error("权限不足");
  15361. }
  15362. }
  15363. /// <summary>
  15364. /// 转办回访
  15365. /// </summary>
  15366. /// <returns></returns>
  15367. //[Authority]
  15368. public ActionResult Transfer(int limittime = 5)
  15369. {
  15370. string workorderid = RequestString.GetFormString("workorderid");
  15371. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15372. {
  15373. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15374. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new BLL.T_Bus_AssignedInfo().GetNewModelByWorkOrderID(workorderid);
  15375. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  15376. if (modelT_Bus_WorkOrder != null)
  15377. {
  15378. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15379. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  15380. keyValuePairs.Add("F_ToBereply", 0);
  15381. keyValuePairs.Add("F_IsSms", 0);
  15382. keyValuePairs.Add("F_IsProResult", 2);
  15383. keyValuePairs.Add("F_Note", "");
  15384. string resdatetime = "";
  15385. if (limittime > 0)
  15386. {
  15387. resdatetime = GetLimittime(limittime);
  15388. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  15389. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  15390. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  15391. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  15392. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  15393. //var datatime = DateTime.Now.AddDays(limittime);
  15394. //if (Convert.ToDateTime(resdatetime) > datatime)
  15395. //{
  15396. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  15397. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  15398. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  15399. // " with(nolock) where F_OffState = 1 and " +
  15400. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  15401. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  15402. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  15403. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  15404. // {
  15405. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  15406. // }
  15407. //}
  15408. }
  15409. keyValuePairs.Add("F_UnsuccessfulTime", resdatetime);
  15410. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  15411. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new Model.T_Bus_ToExamine();
  15412. modelT_Bus_ToExamine.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15413. modelT_Bus_ToExamine.F_IsDelete = 0;
  15414. modelT_Bus_ToExamine.F_Type = 0;
  15415. modelT_Bus_ToExamine.F_CreatUser = User.F_UserCode;
  15416. modelT_Bus_ToExamine.F_CreateTime = DateTime.Now;
  15417. modelT_Bus_ToExamine.F_Result = "";
  15418. if (modelT_Bus_AssignedInfo != null)
  15419. {
  15420. modelT_Bus_ToExamine.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15421. }
  15422. int id = new BLL.T_Bus_ToExamine().Add(modelT_Bus_ToExamine);
  15423. if (modelT_Bus_ToExamine != null)
  15424. {
  15425. keyValuePairs.Add("F_WorkState", 7);
  15426. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  15427. }
  15428. #region 插入操作记录
  15429. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15430. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15431. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  15432. {
  15433. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  15434. if (user != null && user.Count > 0)
  15435. {
  15436. foreach (var it in user)
  15437. {
  15438. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  15439. // string msg = workorderid;
  15440. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  15441. string mag = "[\"" + workorderid + "\"]";
  15442. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  15443. workorderid);
  15444. }
  15445. }
  15446. if (modelT_Bus_AssignedInfo_Next != null)
  15447. {
  15448. var modelT_Bus_Feedback_Next
  15449. = new BLL.T_Bus_Feedback_Next().GetModelList
  15450. ("F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "' and F_WorkOrderId='" +
  15451. workorderid + "' ORDER BY F_CreateTime DESC ");
  15452. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next
  15453. .Count > 0)
  15454. {
  15455. if (modelT_Bus_Feedback_Next[0].F_CreateDeptId > 0)
  15456. {
  15457. var users = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_Feedback_Next[0].F_CreateDeptId + " ");
  15458. if (users != null && users.Count > 0)
  15459. {
  15460. foreach (var it in users)
  15461. {
  15462. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  15463. // string msg = workorderid;
  15464. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  15465. string mag = "[\"" + workorderid + "\"]";
  15466. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  15467. workorderid);
  15468. }
  15469. }
  15470. }
  15471. }
  15472. }
  15473. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15474. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15475. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15476. oper.F_Message = userinfo + " " + "提交了已办未果";
  15477. oper.F_CreateUser = User.F_UserCode;
  15478. oper.F_CreateTime = DateTime.Now;
  15479. oper.F_IsDelete = 0;
  15480. operBLL.Add(oper);
  15481. #endregion
  15482. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15483. return Success("转办成功");
  15484. else
  15485. return Error("转办失败");
  15486. }
  15487. else
  15488. return Error("该工单没有承办单位");
  15489. }
  15490. else
  15491. {
  15492. return Error("工单不存在");
  15493. }
  15494. }
  15495. return Error("权限不足");
  15496. }
  15497. public ActionResult AssignTransfer()
  15498. {
  15499. string workorderid = RequestString.GetFormString("workorderid");
  15500. string deptid = RequestString.GetFormString("deptid");
  15501. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15502. {
  15503. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15504. if (modelT_Bus_WorkOrder != null)
  15505. {
  15506. string depement = "";
  15507. if (!string.IsNullOrEmpty(deptid))
  15508. {
  15509. var depementlist = new BLL.T_Sys_Department().GetModelList($"F_DeptId in ({deptid})");
  15510. if (depementlist != null && depementlist.Count > 0)
  15511. {
  15512. foreach (var it in depementlist)
  15513. {
  15514. depement += "," + it.F_DeptName;
  15515. }
  15516. }
  15517. }
  15518. else
  15519. {
  15520. return Error("请选择转派单位");
  15521. }
  15522. if (depement != "")
  15523. {
  15524. depement = "给" + depement.TrimStart(',');
  15525. }
  15526. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15527. keyValuePairs.Add("F_NoResult", deptid);
  15528. #region 插入操作记录
  15529. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15530. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15531. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15532. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15533. oper.F_Message = userinfo + " " + "转派了已办未果" + depement;
  15534. oper.F_CreateUser = User.F_UserCode;
  15535. oper.F_CreateTime = DateTime.Now;
  15536. oper.F_IsDelete = 0;
  15537. operBLL.Add(oper);
  15538. #endregion
  15539. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15540. return Success("成功");
  15541. else
  15542. return Error("失败");
  15543. }
  15544. else
  15545. {
  15546. return Error("工单不存在");
  15547. }
  15548. }
  15549. return Error("权限不足");
  15550. }
  15551. /// <summary>
  15552. /// 已办未果通过
  15553. /// </summary>
  15554. /// <returns></returns>
  15555. //[Authority]
  15556. public ActionResult PassTransfer()
  15557. {
  15558. string workorderid = RequestString.GetFormString("workorderid");
  15559. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15560. {
  15561. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15562. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new BLL.T_Bus_AssignedInfo().GetNewModelByWorkOrderID(workorderid);
  15563. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  15564. if (modelT_Bus_WorkOrder != null)
  15565. {
  15566. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15567. keyValuePairs.Add("F_ToBereply", 1);
  15568. keyValuePairs.Add("F_IsProResult", 1);
  15569. #region 插入操作记录
  15570. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15571. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15572. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15573. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15574. oper.F_Message = userinfo + " " + "通过了已办未果";
  15575. oper.F_CreateUser = User.F_UserCode;
  15576. oper.F_CreateTime = DateTime.Now;
  15577. oper.F_IsDelete = 0;
  15578. operBLL.Add(oper);
  15579. #endregion
  15580. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15581. return Success("成功");
  15582. else
  15583. return Error("失败");
  15584. }
  15585. else
  15586. {
  15587. return Error("工单不存在");
  15588. }
  15589. }
  15590. return Error("权限不足");
  15591. }
  15592. /// <summary>
  15593. /// 抽查工单
  15594. /// </summary>
  15595. /// <returns></returns>
  15596. //[Authority]
  15597. public ActionResult SpotCheck(string workorderid, int spotCheck = 0)
  15598. {
  15599. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15600. {
  15601. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15602. if (modelT_Bus_WorkOrder != null)
  15603. {
  15604. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15605. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  15606. keyValuePairs.Add("F_SpotCheck", spotCheck);
  15607. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15608. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15609. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15610. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15611. if (spotCheck > 0)
  15612. oper.F_Message = userinfo + " " + "抽查了工单";
  15613. else
  15614. oper.F_Message = userinfo + " " + "取消抽查了工单";
  15615. oper.F_CreateUser = User.F_UserCode;
  15616. oper.F_CreateTime = DateTime.Now;
  15617. oper.F_IsDelete = 0;
  15618. operBLL.Add(oper);
  15619. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15620. return Success("抽查成功");
  15621. else
  15622. return Error("抽查失败");
  15623. }
  15624. else
  15625. {
  15626. return Error("工单不存在");
  15627. }
  15628. }
  15629. return Error("权限不足");
  15630. }
  15631. /// <summary>
  15632. ///注解
  15633. /// </summary>
  15634. /// <returns></returns>
  15635. //[Authority]
  15636. public ActionResult NoteWorkOrder()
  15637. {
  15638. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15639. {
  15640. string workorderid = RequestString.GetFormString("workorderid");
  15641. string note = RequestString.GetFormString("note");
  15642. if (string.IsNullOrEmpty(workorderid.Trim()) || string.IsNullOrEmpty(note.Trim()))
  15643. {
  15644. return Error("操作失败");
  15645. }
  15646. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15647. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit))
  15648. {
  15649. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15650. keyValuePairs.Add("F_Note", modelT_Bus_WorkOrder.F_Note + "|||" + note);
  15651. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15652. return Success("注解成功");
  15653. else
  15654. return Error("注解失败");
  15655. }
  15656. else
  15657. {
  15658. return Error("操作失败");
  15659. }
  15660. }
  15661. else
  15662. {
  15663. return Error("权限不足");
  15664. }
  15665. }
  15666. /// <summary>
  15667. ///修改注解
  15668. /// </summary>
  15669. /// <returns></returns>
  15670. //[Authority]
  15671. public ActionResult UpdateNoteWorkOrder()
  15672. {
  15673. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15674. {
  15675. string workorderid = RequestString.GetFormString("workorderid");
  15676. string note = RequestString.GetFormString("note");
  15677. if (string.IsNullOrEmpty(workorderid.Trim()))
  15678. {
  15679. return Error("操作失败");
  15680. }
  15681. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15682. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit))
  15683. {
  15684. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15685. keyValuePairs.Add("F_Note", note);
  15686. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  15687. return Success("保存成功");
  15688. else
  15689. return Error("保存失败");
  15690. }
  15691. else
  15692. {
  15693. return Error("操作失败");
  15694. }
  15695. }
  15696. else
  15697. {
  15698. return Error("权限不足");
  15699. }
  15700. }
  15701. #region 网格化对接
  15702. /// <summary>
  15703. /// 对接网格化
  15704. /// 工单查收操作
  15705. /// </summary>
  15706. /// <param name="usercode"></param>
  15707. /// <param name="workorderid"></param>
  15708. /// <returns></returns>
  15709. public string ReceiveWorkOrderByDock(string usercode, string workorderid, string content)
  15710. {
  15711. var returns = "";
  15712. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15713. {
  15714. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  15715. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  15716. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15717. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15718. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  15719. if (User != null)
  15720. {
  15721. if (modelT_Bus_WorkOrder == null)
  15722. msgss = "要办理的工单已不存在";
  15723. else if (modelT_Bus_AssignedInfo == null)
  15724. {
  15725. msgss = "工单无法处理或已被处理";
  15726. }
  15727. else
  15728. {
  15729. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  15730. {
  15731. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  15732. {
  15733. #region 保存工单信息
  15734. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  15735. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15736. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  15737. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  15738. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15739. #endregion
  15740. #region 保存查收信息
  15741. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  15742. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  15743. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  15744. assignBLL.Update(modelT_Bus_AssignedInfo);
  15745. #endregion
  15746. #region 保存明细信息
  15747. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  15748. {
  15749. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  15750. foreach (string strid in strids)
  15751. {
  15752. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  15753. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15754. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  15755. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  15756. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  15757. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  15758. modelT_Bus_AssignedItemInfo.F_State = 1;
  15759. modelT_Bus_AssignedItemInfo.F_Type = 2;
  15760. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  15761. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  15762. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  15763. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  15764. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  15765. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  15766. }
  15767. }
  15768. #endregion
  15769. retbool = "true";
  15770. optmsg = " 查收了工单";
  15771. msgss = optmsg;
  15772. }
  15773. else
  15774. msgss = "工单已被查收";
  15775. assid = modelT_Bus_AssignedInfo.F_Id;
  15776. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  15777. }
  15778. else
  15779. msgss = "工单已办理或已被重新指派";
  15780. }
  15781. userinfo = User.depname + "(" + User.F_UserCode + ")";
  15782. }
  15783. else
  15784. {
  15785. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  15786. msgss = "无法获取工号信息";
  15787. }
  15788. #region 插入操作记录
  15789. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15790. oper.F_WorkOrderId = workorderid;
  15791. oper.F_AssignedId = assid;
  15792. oper.F_State = state;
  15793. oper.F_Message = userinfo + " " + msgss + msgend;
  15794. oper.F_CreateUser = usercode;
  15795. oper.F_CreateTime = DateTime.Now;
  15796. oper.F_IsDelete = 0;
  15797. oper.F_Type = 1;
  15798. optid = operBLL.Add(oper).ToString();
  15799. #endregion
  15800. trans.Complete();
  15801. returns = retbool + "|" + optid + "|" + msgss;
  15802. }
  15803. return returns;
  15804. }
  15805. /// <summary>
  15806. /// 对接网格化 工单退回操作
  15807. /// </summary>
  15808. /// <returns></returns>
  15809. public string RebackWorkOrderByDock(string usercode, string workorderid, string backreason, string content)
  15810. {
  15811. var returns = "";
  15812. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15813. {
  15814. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  15815. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  15816. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  15817. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15818. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15819. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  15820. if (User != null)
  15821. {
  15822. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  15823. if (modelT_Bus_WorkOrder == null)
  15824. msgss = "要办理的工单已不存在";
  15825. else if (modelT_Bus_AssignedInfo == null)
  15826. {
  15827. msgss = "工单无法处理或已被处理";
  15828. }
  15829. else
  15830. {
  15831. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  15832. {
  15833. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  15834. {
  15835. #region 保存工单信息
  15836. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  15837. workorderBLL.Update(modelT_Bus_WorkOrder);
  15838. #endregion
  15839. #region 插入退回申请信息
  15840. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  15841. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  15842. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  15843. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  15844. model_T_Bus_Feedback.F_IsAudit = 0;
  15845. model_T_Bus_Feedback.F_IsDelete = 0;
  15846. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  15847. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  15848. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  15849. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  15850. model_T_Bus_Feedback.F_State = 1;
  15851. model_T_Bus_Feedback.F_Type = 3;
  15852. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  15853. #endregion
  15854. #region 保存交办信息
  15855. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  15856. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  15857. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  15858. assignBLL.Update(modelT_Bus_AssignedInfo);
  15859. #endregion
  15860. #region 推送消息
  15861. retbool = "true";
  15862. optmsg = " 申请退回了工单";
  15863. //推送消息表
  15864. //msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15865. #endregion
  15866. msgss = optmsg;
  15867. }
  15868. else
  15869. msgss = "工单已被查收,不能退回";
  15870. assid = modelT_Bus_AssignedInfo.F_Id;
  15871. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  15872. }
  15873. else
  15874. msgss = "工单已办理或已被重新指派";
  15875. }
  15876. }
  15877. else
  15878. {
  15879. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  15880. msgss = "无法获取工号信息";
  15881. }
  15882. #region 插入操作记录
  15883. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15884. oper.F_WorkOrderId = workorderid;
  15885. oper.F_AssignedId = assid;
  15886. oper.F_State = state;
  15887. oper.F_Message = userinfo + " " + msgss + msgend;
  15888. oper.F_CreateUser = usercode;
  15889. oper.F_CreateTime = DateTime.Now;
  15890. oper.F_IsDelete = 0;
  15891. oper.F_Type = 1;
  15892. optid = operBLL.Add(oper).ToString();
  15893. #endregion
  15894. trans.Complete();
  15895. returns = retbool + "|" + optid + "|" + msgss;
  15896. }
  15897. return returns;
  15898. }
  15899. /// <summary>
  15900. /// 对接网格化办理
  15901. /// </summary>
  15902. /// <param name="usercode">工号</param>
  15903. /// <param name="workorderid">工单编号</param>
  15904. /// <param name="dealman">承办人人</param>
  15905. /// <param name="result">反馈内容</param>
  15906. /// <param name="files">附件</param>
  15907. /// <param name="prosituation">处理情况/方案/进程</param>
  15908. /// <param name="dealcontact">承办人联系方式</param>
  15909. /// <param name="connecttime">沟通时间</param>
  15910. /// <param name="connectmode">沟通方式</param>
  15911. /// <param name="replycontent">答复内容</param>
  15912. /// <param name="duties">职务</param>
  15913. /// <param name="situation">处理情况</param>
  15914. /// <param name="state">0保存,1保存并办理</param>
  15915. /// <param name="feedbackid"></param>
  15916. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  15917. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  15918. /// <returns></returns>
  15919. public string FeedBackWorkOrderBYDock(string usercode, string workorderid, string dealman, string result, string files, string prosituation, string dealcontact, string connecttime, string connectmode, string replycontent, string duties, string situation, int state = 0, int feedbackid = 0, int isproresult = 0, int isstaisfied = 0)
  15920. {
  15921. var returns = "";
  15922. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15923. {
  15924. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  15925. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  15926. if (User != null)
  15927. {
  15928. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  15929. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15930. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15931. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  15932. msgend = ",工单编号:" + workorderid;
  15933. int type = 0; var resmsg = ""; string typemsg = "办理";
  15934. if (modelT_Bus_WorkOrder == null)
  15935. msgss = "要办理的工单已不存在";
  15936. else if (modelT_Bus_AssignedInfo == null)
  15937. {
  15938. msgss = "工单无法处理";
  15939. }
  15940. else
  15941. {
  15942. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  15943. if (type > 0)
  15944. {
  15945. #region 办理结果合成
  15946. result = "";
  15947. #region 获取部门
  15948. var deptname = "";
  15949. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  15950. {
  15951. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  15952. if (deptmodel != null)
  15953. deptname = deptmodel.F_DeptName;
  15954. }
  15955. #endregion
  15956. #region 获取来源
  15957. var sourcename = "";
  15958. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  15959. {
  15960. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  15961. if (dicmodel != null)
  15962. sourcename = dicmodel.F_Value;
  15963. }
  15964. #endregion
  15965. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  15966. var bljg = ""; var endstr = "";
  15967. if (isproresult == 1)
  15968. {
  15969. bljg = "已办理";
  15970. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  15971. {
  15972. var isStaisfiedRadioData = "未评价";
  15973. if (isstaisfied == 1)
  15974. {
  15975. isStaisfiedRadioData = "满意";
  15976. }
  15977. else if (isstaisfied == 2)
  15978. {
  15979. isStaisfiedRadioData = "基本满意";
  15980. }
  15981. else if (isstaisfied == 3)
  15982. {
  15983. isStaisfiedRadioData = "不满意";
  15984. }
  15985. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  15986. }
  15987. }
  15988. else if (isproresult == 2)
  15989. {
  15990. bljg = "未办理";
  15991. endstr = "; 处理方案/进程:" + prosituation;
  15992. }
  15993. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  15994. #endregion
  15995. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  15996. {
  15997. #region 处理办理
  15998. if (feedbackid == 0)
  15999. {
  16000. #region 插入反馈记录
  16001. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16002. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  16003. modelT_Bus_Feedback.F_DealUser = dealman;
  16004. modelT_Bus_Feedback.F_Result = result;//反馈内容
  16005. #region 20200114新增字段 zhengbingbing
  16006. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16007. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  16008. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16009. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  16010. DateTime contime = DateTime.Now;
  16011. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16012. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16013. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  16014. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  16015. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16016. modelT_Bus_Feedback.F_Duties = duties;//职务
  16017. modelT_Bus_Feedback.F_Situation = situation;
  16018. #endregion
  16019. modelT_Bus_Feedback.F_File = files;
  16020. modelT_Bus_Feedback.F_IsAudit = 0;
  16021. modelT_Bus_Feedback.F_IsDelete = 0;
  16022. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  16023. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  16024. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  16025. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  16026. modelT_Bus_Feedback.F_State = state;
  16027. modelT_Bus_Feedback.F_Type = type;
  16028. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  16029. #endregion
  16030. }
  16031. else
  16032. {
  16033. #region 修改反馈记录
  16034. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  16035. if (modelT_Bus_Feedback != null)
  16036. {
  16037. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16038. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  16039. modelT_Bus_Feedback.F_DealUser = dealman;
  16040. modelT_Bus_Feedback.F_Result = result;//反馈内容
  16041. modelT_Bus_Feedback.F_File = files;
  16042. #region 20200114新增字段 zhengbingbing
  16043. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16044. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  16045. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16046. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  16047. DateTime contime = DateTime.Now;
  16048. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16049. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16050. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  16051. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  16052. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16053. modelT_Bus_Feedback.F_Duties = duties;//职务
  16054. modelT_Bus_Feedback.F_Situation = situation;
  16055. #endregion
  16056. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  16057. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  16058. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  16059. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  16060. modelT_Bus_Feedback.F_State = state;
  16061. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16062. {
  16063. modelT_Bus_Feedback.F_Type = 1;
  16064. }
  16065. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  16066. {
  16067. modelT_Bus_Feedback.F_Type = 2;
  16068. }
  16069. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  16070. }
  16071. #endregion
  16072. }
  16073. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  16074. {
  16075. if (type == 1)
  16076. {
  16077. int iscs = 0;
  16078. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  16079. {
  16080. iscs = 1;
  16081. }
  16082. #region 保存工单信息
  16083. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  16084. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  16085. modelT_Bus_WorkOrder.F_Result = result;
  16086. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  16087. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  16088. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  16089. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  16090. workorderBLL.Update(modelT_Bus_WorkOrder);
  16091. #endregion
  16092. #region 保存交办信息
  16093. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  16094. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  16095. {
  16096. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  16097. }
  16098. assignBLL.Update(modelT_Bus_AssignedInfo);
  16099. #endregion
  16100. #region 删除草稿信息
  16101. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  16102. foreach (var cg in cglist)
  16103. {
  16104. cg.F_IsDelete = 1;
  16105. cg.F_DeleteUser = User.F_UserCode;
  16106. cg.F_DeleteTime = DateTime.Now;
  16107. new BLL.T_Bus_Feedback().Update(cg);
  16108. }
  16109. #endregion
  16110. #region 删除二级单位未办理信息
  16111. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  16112. foreach (var ej in ejlist)
  16113. {
  16114. ej.F_IsDelete = 1;
  16115. ej.F_DeleteUser = User.F_UserCode;
  16116. ej.F_DeleteTime = DateTime.Now;
  16117. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  16118. }
  16119. #endregion
  16120. #region 处理协办单位
  16121. var xblist = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  16122. foreach (var xb in xblist)
  16123. {
  16124. xb.F_State = 2;
  16125. xb.F_SureUser = User.F_UserCode;
  16126. xb.F_SureTime = DateTime.Now;
  16127. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  16128. }
  16129. #endregion
  16130. typemsg = "主办";
  16131. }
  16132. else if (type == 2)
  16133. {
  16134. #region 保存明细信息
  16135. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_DeptId='" + User.F_DeptId + "'").FirstOrDefault();
  16136. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  16137. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  16138. {
  16139. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  16140. }
  16141. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  16142. #endregion
  16143. #region 删除草稿信息
  16144. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  16145. foreach (var cg in cglist)
  16146. {
  16147. cg.F_IsDelete = 1;
  16148. cg.F_DeleteUser = User.F_UserCode;
  16149. cg.F_DeleteTime = DateTime.Now;
  16150. new BLL.T_Bus_Feedback().Update(cg);
  16151. }
  16152. #endregion
  16153. typemsg = "协办";
  16154. }
  16155. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  16156. //推送消息表
  16157. // msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16158. }
  16159. #endregion
  16160. retbool = "true";
  16161. }
  16162. else
  16163. msgss = "工单已办理";
  16164. backid = modelT_Bus_Feedback.F_Id.ToString();
  16165. }
  16166. else
  16167. msgss = "工单已办理或已被重新指派";
  16168. assid = modelT_Bus_AssignedInfo.F_Id;
  16169. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  16170. }
  16171. msgend = resmsg + " " + typemsg + "了工单";
  16172. }
  16173. else
  16174. {
  16175. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  16176. msgss = "无法获取工号信息";
  16177. }
  16178. #region 插入操作记录
  16179. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16180. oper.F_WorkOrderId = workorderid;
  16181. oper.F_AssignedId = assid;
  16182. oper.F_State = wostate;
  16183. oper.F_Message = userinfo + msgend;
  16184. oper.F_CreateUser = usercode;
  16185. oper.F_CreateTime = DateTime.Now;
  16186. oper.F_IsDelete = 0;
  16187. oper.F_Type = 1;
  16188. oper.F_File = files;
  16189. operBLL.Add(oper);
  16190. #endregion
  16191. trans.Complete();
  16192. returns = retbool + "|" + backid + "|" + msgss;
  16193. }
  16194. return returns;
  16195. }
  16196. /// <summary>
  16197. /// 对接网格化,记录办理过程
  16198. /// </summary>
  16199. /// <param name="usercode"></param>
  16200. /// <param name="workorderid"></param>
  16201. /// <param name="content"></param>
  16202. /// <returns></returns>
  16203. public string DealProcessWorkOrderByDock(string usercode, string workorderid, string content)
  16204. {
  16205. var returns = "";
  16206. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16207. {
  16208. var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  16209. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  16210. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16211. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16212. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  16213. if (User != null)
  16214. {
  16215. if (modelT_Bus_WorkOrder == null)
  16216. msgss = "要办理的工单已不存在";
  16217. else if (modelT_Bus_AssignedInfo == null)
  16218. {
  16219. msgss = "工单无法处理或已被处理";
  16220. }
  16221. else
  16222. {
  16223. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16224. {
  16225. msgss = "办理工单";
  16226. retbool = "true";
  16227. assid = modelT_Bus_AssignedInfo.F_Id;
  16228. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  16229. }
  16230. else
  16231. {
  16232. msgss = "工单无法处理";
  16233. }
  16234. }
  16235. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  16236. }
  16237. else
  16238. {
  16239. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  16240. msgss = "无法获取工号信息";
  16241. }
  16242. #region 插入操作记录
  16243. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16244. oper.F_WorkOrderId = workorderid;
  16245. oper.F_AssignedId = assid;
  16246. oper.F_State = state;
  16247. oper.F_Message = userinfo + msgend;
  16248. oper.F_CreateUser = usercode;
  16249. oper.F_CreateTime = DateTime.Now;
  16250. oper.F_IsDelete = 0;
  16251. oper.F_Type = 1;
  16252. optid = operBLL.Add(oper).ToString();
  16253. #endregion
  16254. trans.Complete();
  16255. returns = retbool + "|" + optid + "|" + msgss;
  16256. }
  16257. return returns;
  16258. }
  16259. #endregion
  16260. /// <summary>
  16261. /// 撤回工单
  16262. /// </summary>
  16263. /// <returns></returns>
  16264. //[Authority]
  16265. public ActionResult WithdrawWorkOrder()
  16266. {
  16267. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16268. {
  16269. string workorderid = RequestString.GetFormString("workorderid");
  16270. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16271. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16272. // Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16273. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  16274. " and F_IsDelete=0 and F_State=1 " +
  16275. "and F_IsSure in (0,1) order by F_Id desc ");
  16276. if (modelT_Bus_WorkOrder != null && Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16277. {
  16278. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16279. {
  16280. #region 保存撤单信息
  16281. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  16282. //modelT_Bus_AssignedInfo_Next.F_DeleteUser = User.F_UserCode;
  16283. //modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  16284. //new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16285. foreach (var cg in Bus_AssignedInfo_Next)
  16286. {
  16287. cg.F_IsDelete = 1;
  16288. cg.F_DeleteUser = User.F_UserCode;
  16289. cg.F_DeleteTime = DateTime.Now;
  16290. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  16291. }
  16292. #endregion
  16293. #region 删除处理信息
  16294. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId in(" +
  16295. string.Join(",", Bus_AssignedInfo_Next.Select(x => x.F_Id)) + ")");
  16296. foreach (var cg in cglist)
  16297. {
  16298. cg.F_IsDelete = 1;
  16299. cg.F_DeleteUser = User.F_UserCode;
  16300. cg.F_DeleteTime = DateTime.Now;
  16301. new BLL.T_Bus_Feedback_Next().Update(cg);
  16302. }
  16303. #endregion
  16304. #region 保存交办信息
  16305. modelT_Bus_AssignedInfo.F_IsNext = 0;
  16306. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16307. #endregion
  16308. #region 保存工单信息
  16309. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16310. keyValuePairs.Add("F_MainDeptID3", null);
  16311. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  16312. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16313. #endregion
  16314. #region 插入操作记录
  16315. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16316. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16317. //oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16318. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16319. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16320. oper.F_Message = userinfo + " 撤回了工单";
  16321. oper.F_CreateUser = User.F_UserCode;
  16322. oper.F_CreateTime = DateTime.Now;
  16323. oper.F_IsDelete = 0;
  16324. operBLL.Add(oper);
  16325. #endregion
  16326. trans.Complete();
  16327. }
  16328. return Success("操作成功");
  16329. }
  16330. else
  16331. {
  16332. return Error("操作失败");
  16333. }
  16334. }
  16335. else
  16336. {
  16337. return Error("权限不足");
  16338. }
  16339. }
  16340. /// <summary>
  16341. /// 签收工单
  16342. /// </summary>
  16343. /// <returns></returns>
  16344. //[Authority]
  16345. public ActionResult SignWorkOrder()
  16346. {
  16347. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16348. {
  16349. string workorderid = RequestString.GetFormString("workorderid");
  16350. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16351. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16352. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  16353. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  16354. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  16355. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  16356. {
  16357. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  16358. }
  16359. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  16360. {
  16361. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  16362. {
  16363. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16364. {
  16365. #region 保存签收信息
  16366. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  16367. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  16368. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  16369. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16370. #endregion
  16371. #region 保存交办信息
  16372. modelT_Bus_AssignedInfo.F_IsNext = 2;
  16373. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16374. #endregion
  16375. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo_Next.F_OtherDeptIds))
  16376. {
  16377. if (modelT_Bus_AssignedInfo_Next.F_OtherDeptIds != "null")
  16378. {
  16379. string[] strids = modelT_Bus_AssignedInfo_Next.F_OtherDeptIds.TrimEnd(',').Split(',');
  16380. foreach (string strid in strids)
  16381. {
  16382. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  16383. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16384. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo_Next.F_AssignedOpinion;
  16385. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  16386. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo_Next.F_LimitTime;
  16387. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo_Next.F_Remark;
  16388. modelT_Bus_AssignedItemInfo.F_State = 1;
  16389. modelT_Bus_AssignedItemInfo.F_Type = 2;
  16390. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo_Next.F_WorkOrderId;
  16391. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  16392. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  16393. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  16394. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  16395. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  16396. }
  16397. }
  16398. }
  16399. #region 插入操作记录
  16400. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16401. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16402. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16403. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16404. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16405. oper.F_Message = userinfo + " 签收了工单";
  16406. oper.F_CreateUser = User.F_UserCode;
  16407. oper.F_CreateTime = DateTime.Now;
  16408. oper.F_IsDelete = 0;
  16409. operBLL.Add(oper);
  16410. #endregion
  16411. trans.Complete();
  16412. }
  16413. return Success("操作成功");
  16414. }
  16415. else
  16416. {
  16417. return Error("单位已签收,不能再次签收");
  16418. }
  16419. }
  16420. else
  16421. {
  16422. return Error("操作失败");
  16423. }
  16424. }
  16425. else
  16426. {
  16427. return Error("权限不足");
  16428. }
  16429. }
  16430. /// <summary>
  16431. /// 拒收工单
  16432. /// </summary>
  16433. /// <returns></returns>
  16434. //[Authority]
  16435. public ActionResult RefuseWorkOrder()
  16436. {
  16437. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16438. {
  16439. string workorderid = RequestString.GetFormString("workorderid");
  16440. string reason = RequestString.GetFormString("reason");
  16441. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16442. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16443. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  16444. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  16445. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  16446. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  16447. {
  16448. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  16449. }
  16450. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  16451. {
  16452. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0
  16453. || modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  16454. {
  16455. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16456. {
  16457. #region 保存签收信息
  16458. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  16459. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  16460. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  16461. modelT_Bus_AssignedInfo_Next.F_IsNotice = 2;
  16462. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16463. #endregion
  16464. #region 保存交办信息
  16465. //三级单位退单
  16466. modelT_Bus_AssignedInfo.F_IsNext = 4;
  16467. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16468. #endregion
  16469. #region 保存工单信息
  16470. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16471. keyValuePairs.Add("F_MainDeptID3", null);
  16472. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  16473. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16474. #endregion
  16475. #region 插入操作记录
  16476. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16477. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16478. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16479. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16480. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16481. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  16482. oper.F_CreateUser = User.F_UserCode;
  16483. oper.F_CreateTime = DateTime.Now;
  16484. oper.F_IsDelete = 0;
  16485. operBLL.Add(oper);
  16486. #endregion
  16487. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  16488. if (user != null && user.Count > 0)
  16489. {
  16490. foreach (var it in user)
  16491. {
  16492. string count = "工单" + workorderid + "已被退回至本单位,请及时转派处理!";
  16493. // string msg = workorderid;
  16494. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "181769", "");
  16495. string mag = "[\"" + workorderid + "\"]";
  16496. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240428561600512", mag,
  16497. workorderid);
  16498. }
  16499. }
  16500. //三级单位退回工单给二级单位时,增加短信提醒
  16501. //三级单位退回工单给二级单位时,增加短信提醒
  16502. trans.Complete();
  16503. }
  16504. return Success("操作成功");
  16505. }
  16506. else
  16507. {
  16508. return Error("单位未拒收");
  16509. }
  16510. }
  16511. else
  16512. {
  16513. return Error("操作失败");
  16514. }
  16515. }
  16516. else
  16517. {
  16518. return Error("权限不足");
  16519. }
  16520. }
  16521. /// <summary>
  16522. /// 拒绝工单
  16523. /// </summary>
  16524. /// <returns></returns>
  16525. //[Authority]
  16526. public ActionResult RejectWorkOrder()
  16527. {
  16528. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16529. {
  16530. string workorderid = RequestString.GetFormString("workorderid");
  16531. string reason = RequestString.GetFormString("reason");
  16532. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16533. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16534. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16535. ;
  16536. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  16537. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16538. {
  16539. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 3)
  16540. {
  16541. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16542. {
  16543. #region 保存签收信息
  16544. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  16545. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  16546. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  16547. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  16548. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16549. #endregion
  16550. #region 保存交办信息
  16551. //三级单位退单
  16552. modelT_Bus_AssignedInfo.F_IsNext = 1;
  16553. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16554. #endregion
  16555. #region 保存工单信息
  16556. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16557. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  16558. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  16559. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16560. #endregion
  16561. #region 插入操作记录
  16562. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16563. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16564. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16565. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16566. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16567. oper.F_Message = userinfo + " 拒绝了工单,原因:" + reason;
  16568. oper.F_CreateUser = User.F_UserCode;
  16569. oper.F_CreateTime = DateTime.Now;
  16570. oper.F_IsDelete = 0;
  16571. operBLL.Add(oper);
  16572. #endregion
  16573. trans.Complete();
  16574. }
  16575. return Success("操作成功");
  16576. }
  16577. else
  16578. {
  16579. return Error("单位已签收,不能再次签收");
  16580. }
  16581. }
  16582. else
  16583. {
  16584. return Error("操作失败");
  16585. }
  16586. }
  16587. else
  16588. {
  16589. return Error("权限不足");
  16590. }
  16591. }
  16592. /// <summary>
  16593. /// 二级单位退回工单
  16594. /// </summary>
  16595. /// <returns></returns>
  16596. //[Authority]
  16597. public ActionResult BackWorkOrder()
  16598. {
  16599. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "EJWLDW")
  16600. {
  16601. string workorderid = RequestString.GetFormString("workorderid");
  16602. string reason = RequestString.GetFormString("reason");
  16603. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16604. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16605. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16606. ;
  16607. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  16608. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16609. {
  16610. if (modelT_Bus_AssignedInfo_Next.F_FeedbackTime != null)
  16611. {
  16612. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16613. {
  16614. #region
  16615. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = null;
  16616. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  16617. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  16618. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  16619. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  16620. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16621. #endregion
  16622. #region
  16623. //三级单位退单
  16624. modelT_Bus_AssignedInfo.F_IsNext = 1;
  16625. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16626. #endregion
  16627. #region 保存工单信息
  16628. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16629. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  16630. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  16631. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16632. #endregion
  16633. #region 插入操作记录
  16634. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16635. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16636. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16637. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16638. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16639. oper.F_Message = userinfo + " 退回了工单,原因:" + reason;
  16640. oper.F_CreateUser = User.F_UserCode;
  16641. oper.F_CreateTime = DateTime.Now;
  16642. oper.F_IsDelete = 0;
  16643. operBLL.Add(oper);
  16644. #endregion
  16645. trans.Complete();
  16646. }
  16647. return Success("操作成功");
  16648. }
  16649. else
  16650. {
  16651. return Error("单位未办理,不能退回重办");
  16652. }
  16653. }
  16654. else
  16655. {
  16656. return Error("操作失败");
  16657. }
  16658. }
  16659. else
  16660. {
  16661. return Error("权限不足");
  16662. }
  16663. }
  16664. /// <summary>
  16665. /// 处理工单
  16666. /// </summary>
  16667. /// <returns></returns>
  16668. //[Authority]
  16669. public ActionResult DealWorkOrder()
  16670. {
  16671. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16672. {
  16673. string workorderid = RequestString.GetFormString("workorderid");
  16674. string dealman = RequestString.GetFormString("dealman");
  16675. string result = RequestString.GetFormString("result");
  16676. string files = RequestString.GetFormString("files");
  16677. int state = RequestString.GetInt("state", 0);
  16678. int dealid = RequestString.GetInt("dealid", 0);
  16679. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  16680. string prosituation = RequestString.GetFormString("prosituation");
  16681. string dealcontact = RequestString.GetFormString("dealcontact");
  16682. string connecttime = RequestString.GetFormString("connecttime");
  16683. string connectmode = RequestString.GetFormString("connectmode");
  16684. string replycontent = RequestString.GetFormString("replycontent");
  16685. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  16686. string duties = RequestString.GetFormString("duties");//职务
  16687. string situation = RequestString.GetFormString("situation");
  16688. string AuditUser = RequestString.GetFormString("AuditUser");
  16689. string post = RequestString.GetFormString("post");
  16690. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  16691. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里
  16692. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16693. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16694. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16695. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  16696. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  16697. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  16698. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  16699. {
  16700. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  16701. }
  16702. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  16703. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && (modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId || modelT_Bus_AssignedInfo_Next
  16704. .F_OtherDeptIds.Contains(User.F_DeptId.ToString()))
  16705. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  16706. {
  16707. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  16708. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay
  16709. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  16710. {
  16711. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16712. {
  16713. if (dealid == 0)
  16714. {
  16715. #region 插入反馈记录
  16716. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16717. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  16718. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  16719. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  16720. #region 20200114新增字段 zhengbingbing
  16721. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16722. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  16723. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16724. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  16725. DateTime contime = DateTime.Now;
  16726. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16727. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16728. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  16729. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  16730. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16731. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  16732. modelT_Bus_Feedback_Next.F_Situation = situation;
  16733. #endregion
  16734. modelT_Bus_Feedback_Next.F_File = files;
  16735. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  16736. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  16737. modelT_Bus_Feedback_Next.F_AuditPost = post;
  16738. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  16739. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  16740. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  16741. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  16742. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  16743. modelT_Bus_Feedback_Next.F_State = state;
  16744. modelT_Bus_Feedback_Next.F_Type = 1;
  16745. modelT_Bus_Feedback_Next.F_AuditContact = auditContact;
  16746. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  16747. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  16748. #endregion
  16749. }
  16750. else
  16751. {
  16752. #region 修改反馈记录
  16753. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  16754. if (modelT_Bus_Feedback_Next != null)
  16755. {
  16756. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16757. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  16758. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  16759. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  16760. modelT_Bus_Feedback_Next.F_File = files;
  16761. #region 20200114新增字段 zhengbingbing
  16762. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16763. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  16764. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16765. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  16766. DateTime contime = DateTime.Now;
  16767. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16768. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16769. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  16770. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  16771. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16772. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  16773. modelT_Bus_Feedback_Next.F_Situation = situation;
  16774. #endregion
  16775. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  16776. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  16777. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  16778. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  16779. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  16780. modelT_Bus_Feedback_Next.F_State = state;
  16781. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  16782. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  16783. }
  16784. #endregion
  16785. }
  16786. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  16787. {
  16788. #region 保存交办信息
  16789. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  16790. modelT_Bus_AssignedInfo.F_IsNext = 3;
  16791. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  16792. #endregion
  16793. #region 保存派单信息
  16794. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  16795. modelT_Bus_AssignedInfo_Next.F_IsNotice = 1;
  16796. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  16797. {
  16798. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  16799. }
  16800. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  16801. #endregion
  16802. #region 删除草稿信息
  16803. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  16804. foreach (var cg in cglist)
  16805. {
  16806. cg.F_IsDelete = 1;
  16807. cg.F_DeleteUser = User.F_UserCode;
  16808. cg.F_DeleteTime = DateTime.Now;
  16809. new BLL.T_Bus_Feedback_Next().Update(cg);
  16810. }
  16811. #endregion
  16812. #region 插入操作记录
  16813. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16814. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16815. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  16816. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16817. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16818. oper.F_Message = userinfo + " 办理了工单";
  16819. oper.F_CreateUser = User.F_UserCode;
  16820. oper.F_CreateTime = DateTime.Now;
  16821. oper.F_IsDelete = 0;
  16822. operBLL.Add(oper);
  16823. //推送消息表
  16824. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16825. #endregion
  16826. }
  16827. Task.Run(() =>
  16828. {
  16829. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_2");
  16830. }).ContinueWith(p =>
  16831. {
  16832. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16833. });
  16834. trans.Complete();
  16835. }
  16836. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  16837. }
  16838. else
  16839. {
  16840. return Error("已经办理过了");
  16841. }
  16842. }
  16843. else
  16844. {
  16845. return Error("操作失败");
  16846. }
  16847. }
  16848. else
  16849. {
  16850. return Error("权限不足");
  16851. }
  16852. }
  16853. private BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
  16854. /// <summary>
  16855. /// 保存客户档案
  16856. /// </summary>
  16857. /// <param name="telphone"></param>
  16858. /// <param name="name"></param>
  16859. /// <param name="phone"></param>
  16860. /// <param name="countryid"></param>
  16861. /// <param name="address"></param>
  16862. /// <returns></returns>
  16863. private void saveCus(string name, string phone, string address)
  16864. {
  16865. int res = 0;
  16866. Model.T_Cus_CustomerBase cusmodel = new Model.T_Cus_CustomerBase();
  16867. if (!string.IsNullOrWhiteSpace(phone))
  16868. {
  16869. cusmodel = cusBLL.GetModelBy(phone, name);
  16870. if (cusmodel == null)
  16871. {
  16872. cusmodel = new Model.T_Cus_CustomerBase();
  16873. cusmodel.F_Address = address;
  16874. cusmodel.F_CustomerName = name;
  16875. cusmodel.F_Mobile = phone;
  16876. cusmodel.F_DeleteFlag = 0;
  16877. res = cusBLL.Add(cusmodel);
  16878. }
  16879. }
  16880. }
  16881. /// <summary>
  16882. /// 审核处理工单
  16883. /// </summary>
  16884. /// <returns></returns>
  16885. //[Authority]
  16886. public ActionResult AuditSplitWorkOrder()
  16887. {
  16888. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16889. {
  16890. string workorderid = RequestString.GetFormString("workorderid");
  16891. int state = RequestString.GetInt("state", 0);
  16892. string reason = RequestString.GetFormString("reason");
  16893. int backid = RequestString.GetInt("backid", 0);
  16894. string files = RequestString.GetFormString("files");
  16895. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16896. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16897. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  16898. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  16899. {
  16900. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  16901. {
  16902. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16903. {
  16904. modelT_Bus_Feedback_Next.F_IsAudit = state;
  16905. modelT_Bus_Feedback_Next.F_AuditUser = User.F_UserCode;
  16906. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  16907. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  16908. var dept = new BLL.T_Sys_Department().GetModel(User.F_DeptId);
  16909. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  16910. string strmsg = "";
  16911. var deptinfo = "";
  16912. if (dept != null)
  16913. deptinfo = dept.F_DeptName;
  16914. else
  16915. deptinfo = User.F_UserName;
  16916. string message = deptinfo + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + modelT_Bus_Feedback_Next.F_Result; ;
  16917. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16918. if (state == 1)
  16919. {
  16920. strmsg = "同意";
  16921. #region 插入反馈记录
  16922. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  16923. modelT_Bus_AssignedInfo_Next1.F_IsNotice = 2;
  16924. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  16925. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  16926. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16927. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  16928. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  16929. modelT_Bus_Feedback.F_Result = message;//反馈内容
  16930. #region 20200114新增字段 zhengbingbing
  16931. modelT_Bus_Feedback.F_AuditPost = modelT_Bus_Feedback_Next.F_AuditPost;
  16932. modelT_Bus_Feedback.F_AuditReason = modelT_Bus_Feedback_Next.F_AuditReason;
  16933. modelT_Bus_Feedback.F_AuditUser = modelT_Bus_Feedback_Next.F_AuditUser;
  16934. modelT_Bus_Feedback.F_AuditContact = modelT_Bus_Feedback_Next.F_AuditContact;
  16935. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  16936. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  16937. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  16938. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  16939. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  16940. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  16941. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  16942. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16943. #endregion
  16944. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  16945. modelT_Bus_Feedback.F_IsAudit = 0;
  16946. modelT_Bus_Feedback.F_IsDelete = 0;
  16947. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  16948. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  16949. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  16950. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  16951. modelT_Bus_Feedback.F_State = state;
  16952. modelT_Bus_Feedback.F_Type = 1;
  16953. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  16954. #endregion
  16955. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  16956. {
  16957. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  16958. keyValuePairs.Add("F_IsOverdue", 1);
  16959. // modelT_Bus_WorkOrder.F_IsOverdue = 1;
  16960. }
  16961. #region 保存工单信息
  16962. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  16963. if (modelT_Bus_Feedback.F_IsProResult == 2)
  16964. {
  16965. keyValuePairs.Add("F_IsProResult", 2);
  16966. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  16967. // modelT_Bus_WorkOrder.F_IsProResultState = IsProResultState;
  16968. keyValuePairs.Add("F_Unsuccessful", modelT_Bus_Feedback.F_ProSituation);
  16969. // modelT_Bus_WorkOrder.F_Unsuccessful = modelT_Bus_Feedback.F_ProSituation;
  16970. }
  16971. else
  16972. {
  16973. keyValuePairs.Add("F_ToBereply", 1);
  16974. keyValuePairs.Add("F_IsProResult", 1);
  16975. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  16976. // modelT_Bus_WorkOrder.F_IsProResult = 1;
  16977. }
  16978. var modeBus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next()
  16979. .GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsDelete=0 " +
  16980. " ");
  16981. if (modeBus_AssignedInfo_Next != null && modeBus_AssignedInfo_Next.Count > 0)
  16982. {
  16983. if (modeBus_AssignedInfo_Next.Count > 0)
  16984. {
  16985. if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 1).Count() > 0)
  16986. {
  16987. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  16988. }
  16989. else if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 0).Count() > 0)
  16990. {
  16991. modelT_Bus_AssignedInfo.F_IsNext = 2;
  16992. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  16993. }
  16994. }
  16995. }
  16996. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  16997. {
  16998. keyValuePairs.Add("F_Result", message);
  16999. }
  17000. else
  17001. {
  17002. keyValuePairs.Add("F_Result", modelT_Bus_WorkOrder.F_Result + "\n" + message);
  17003. }
  17004. // modelT_Bus_WorkOrder.F_Result = message;
  17005. //keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback_Next.F_CreateDeptId);
  17006. //// modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  17007. //keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback_Next.F_CreateUser);
  17008. //// modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  17009. //keyValuePairs.Add("F_DealTime", DateTime.Now);
  17010. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  17011. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17012. #endregion
  17013. #region 保存交办信息
  17014. assignBLL.Update(modelT_Bus_AssignedInfo);
  17015. #endregion
  17016. #region 删除草稿信息
  17017. //var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  17018. //foreach (var cg in cglist)
  17019. //{
  17020. // cg.F_IsDelete = 1;
  17021. // cg.F_DeleteUser = User.F_UserCode;
  17022. // cg.F_DeleteTime = DateTime.Now;
  17023. // new BLL.T_Bus_Feedback().Update(cg);
  17024. //}
  17025. #endregion
  17026. #region 处理协办单位
  17027. //var xblist = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  17028. //foreach (var xb in xblist)
  17029. //{
  17030. // xb.F_State = 2;
  17031. // xb.F_SureUser = User.F_UserCode;
  17032. // xb.F_SureTime = DateTime.Now;
  17033. // new BLL.T_Bus_AssignedItemInfo().Update(xb);
  17034. //}
  17035. #endregion
  17036. Task.Run(() =>
  17037. {
  17038. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  17039. if (!string.IsNullOrEmpty(files))
  17040. {
  17041. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  17042. }
  17043. }).ContinueWith(p =>
  17044. {
  17045. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17046. });
  17047. }
  17048. else if (state == 2)
  17049. {
  17050. strmsg = "拒绝";
  17051. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  17052. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  17053. modelT_Bus_AssignedInfo_Next1.F_IsNotice = 0;
  17054. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  17055. var modeBus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next()
  17056. .GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsDelete=0 " +
  17057. " ");
  17058. if (modeBus_AssignedInfo_Next != null && modeBus_AssignedInfo_Next.Count > 0)
  17059. {
  17060. if (modeBus_AssignedInfo_Next.Count > 0)
  17061. {
  17062. if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 1).Count() > 0)
  17063. {
  17064. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  17065. assignBLL.Update(modelT_Bus_AssignedInfo);
  17066. }
  17067. else if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 0).Count() > 0)
  17068. {
  17069. modelT_Bus_AssignedInfo.F_IsNext = 2;
  17070. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  17071. assignBLL.Update(modelT_Bus_AssignedInfo);
  17072. }
  17073. }
  17074. }
  17075. }
  17076. #region 插入操作记录
  17077. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17078. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17079. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  17080. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17081. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17082. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  17083. if (!string.IsNullOrWhiteSpace(reason))
  17084. oper.F_Message = oper.F_Message + ",原因:" + reason;
  17085. oper.F_CreateUser = User.F_UserCode;
  17086. oper.F_CreateTime = DateTime.Now;
  17087. oper.F_IsDelete = 0;
  17088. operBLL.Add(oper);
  17089. //推送消息表
  17090. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  17091. #endregion
  17092. trans.Complete();
  17093. }
  17094. return Success("操作成功");
  17095. }
  17096. else
  17097. {
  17098. return Error("已经审核过了");
  17099. }
  17100. }
  17101. else
  17102. {
  17103. return Error("操作失败");
  17104. }
  17105. }
  17106. else
  17107. {
  17108. return Error("权限不足");
  17109. }
  17110. }
  17111. /// <summary>
  17112. /// 发送评价短信
  17113. /// </summary>
  17114. /// <param name="phone"></param>
  17115. /// <param name="WorkOrderId"></param>
  17116. /// <returns></returns>
  17117. public void SendVisits(string phone, string WorkOrderId, string deptname, string code)
  17118. {
  17119. if (!string.IsNullOrEmpty(phone))
  17120. {
  17121. if (phone.Trim().Length > 11)
  17122. phone = phone.Substring(1, 11);
  17123. }
  17124. var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  17125. if (model != null)
  17126. {
  17127. string content = ""; string temp = "680847330371186688";
  17128. if (model.F_InfoSource == 1 || model.F_InfoSource == 3 || model.F_InfoSource == 6)
  17129. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  17130. else
  17131. {
  17132. temp = "681914832337539072";
  17133. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  17134. }
  17135. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",\"]";
  17136. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, WorkOrderId);
  17137. if (n == "")
  17138. {
  17139. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17140. keyValuePairs.Add("F_IsSms", "1");
  17141. // model.F_IsSms = 1;
  17142. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  17143. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17144. oper.F_WorkOrderId = model.F_WorkOrderId;
  17145. oper.F_State = model.F_WorkState;
  17146. oper.F_CallRecordId = model.F_CallRecordId;
  17147. oper.F_File = model.F_File;
  17148. string userinfo = deptname + "(" + code + ")";
  17149. oper.F_Message = userinfo + "发送了市民评价短信";
  17150. oper.F_CreateUser = code;
  17151. oper.F_CreateTime = DateTime.Now;
  17152. oper.F_IsDelete = 0;
  17153. operBLL.Add(oper);
  17154. }
  17155. }
  17156. }
  17157. /// <summary>
  17158. /// 发送评价短信
  17159. /// </summary>
  17160. /// <param name="phone"></param>
  17161. /// <param name="WorkOrderId"></param>
  17162. /// <returns></returns>
  17163. public ActionResult SendVisit(string phone, string WorkOrderId)
  17164. {
  17165. if (!string.IsNullOrEmpty(phone))
  17166. {
  17167. if (phone.Trim().Length > 11)
  17168. phone = phone.Substring(1, 11);
  17169. }
  17170. else
  17171. {
  17172. return Error("请输入号码");
  17173. }
  17174. var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  17175. if (model != null)
  17176. {
  17177. string content = ""; string temp = "680847330371186688";
  17178. if (model.F_InfoSource == 1 || model.F_InfoSource == 3 || model.F_InfoSource == 6)
  17179. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  17180. else
  17181. {
  17182. temp = "681914832337539072";
  17183. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  17184. }
  17185. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",\"]";
  17186. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, WorkOrderId);
  17187. if (n == "")
  17188. {
  17189. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17190. keyValuePairs.Add("F_IsSms", "1");
  17191. // model.F_IsSms = 1;
  17192. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  17193. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17194. oper.F_WorkOrderId = model.F_WorkOrderId;
  17195. oper.F_State = model.F_WorkState;
  17196. oper.F_CallRecordId = model.F_CallRecordId;
  17197. oper.F_File = model.F_File;
  17198. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17199. oper.F_Message = userinfo + "发送了市民评价短信";
  17200. oper.F_CreateUser = User.F_UserCode;
  17201. oper.F_CreateTime = DateTime.Now;
  17202. oper.F_IsDelete = 0;
  17203. operBLL.Add(oper);
  17204. return Success("发送成功");
  17205. }
  17206. else
  17207. return Error(n);
  17208. // if (model.F_InfoSource == 1 || model.F_InfoSource == 2501)
  17209. // {
  17210. // //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  17211. // string content = "您提交的" + model.F_ComTitle + "事项的办理结果为:" + model.F_Result + "请于15天内回复:“$" + model.F_Id + "#”+1、满意,2、基本满意,3、不满意+#评议内容,进行评价。(不超过60字)";
  17212. // string mag = "[\"" + model.F_ComTitle + "\",\"" + model.F_Result + "\",\"" + model.F_Id + "\"]";
  17213. // string n = SmsNewController.AddSmS(0, content, phone, "660571546305982464", mag, WorkOrderId);
  17214. // if (n == "")
  17215. // {
  17216. // Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17217. // keyValuePairs.Add("F_IsSms", "1");
  17218. // // model.F_IsSms = 1;
  17219. // new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  17220. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17221. // oper.F_WorkOrderId = model.F_WorkOrderId;
  17222. // oper.F_State = model.F_WorkState;
  17223. // oper.F_CallRecordId = model.F_CallRecordId;
  17224. // oper.F_File = model.F_File;
  17225. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17226. // oper.F_Message = userinfo + "发送了市民评价短信";
  17227. // oper.F_CreateUser = User.F_UserCode;
  17228. // oper.F_CreateTime = DateTime.Now;
  17229. // oper.F_IsDelete = 0;
  17230. // operBLL.Add(oper);
  17231. // return Success("发送成功");
  17232. // }
  17233. // else
  17234. // return Error(n);
  17235. // }
  17236. // else
  17237. // {
  17238. // // if (model.F_InfoSource == 2 || model.F_InfoSource == 2458)
  17239. //// {
  17240. // //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  17241. // string content = "您诉求的诉求已完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果对执行情况进行评价,谢谢";
  17242. // string n = SmsNewController.AddSmS(0, content, phone, "614918587799461888", "", WorkOrderId);
  17243. // if (n == "")
  17244. // {
  17245. // Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17246. // keyValuePairs.Add("F_IsSms", "1");
  17247. // // model.F_IsSms = 1;
  17248. // new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  17249. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17250. // oper.F_WorkOrderId = model.F_WorkOrderId;
  17251. // oper.F_State = model.F_WorkState;
  17252. // oper.F_CallRecordId = model.F_CallRecordId;
  17253. // oper.F_File = model.F_File;
  17254. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17255. // oper.F_Message = userinfo + "发送了市民评价短信";
  17256. // oper.F_CreateUser = User.F_UserCode;
  17257. // oper.F_CreateTime = DateTime.Now;
  17258. // oper.F_IsDelete = 0;
  17259. // operBLL.Add(oper);
  17260. // return Success("发送成功");
  17261. // }
  17262. // else
  17263. // return Error(n);
  17264. // // }
  17265. // }
  17266. }
  17267. return Error("发送失败");
  17268. }
  17269. /// <summary>
  17270. /// 审核派单
  17271. /// </summary>
  17272. /// <returns></returns>
  17273. public ActionResult AuditDispatch()
  17274. {
  17275. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17276. {
  17277. string workorderid = RequestString.GetFormString("workorderid");
  17278. int nexttype = RequestString.GetInt("nexttype", 0);//0审核通过1审核不通过
  17279. string cbreason = RequestString.GetFormString("cbreason");//审核
  17280. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17281. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new BLL.T_Bus_ToExamine().GetNewModelByWorkOrderID(workorderid);
  17282. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17283. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new T_Bus_AssignedInfo();
  17284. if (modelT_Bus_WorkOrder != null)
  17285. {
  17286. if (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 11 && modelT_Bus_ToExamine != null)
  17287. {
  17288. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17289. {
  17290. modelT_Bus_ToExamine.F_IsDelete = 0;
  17291. if (nexttype == 1)
  17292. modelT_Bus_ToExamine.F_State = 1;
  17293. else
  17294. modelT_Bus_ToExamine.F_State = 0;
  17295. modelT_Bus_ToExamine.F_Type = nexttype;
  17296. modelT_Bus_ToExamine.AuditUser = User.F_UserCode;
  17297. modelT_Bus_ToExamine.F_Result = cbreason;
  17298. var n = new BLL.T_Bus_ToExamine().Update(modelT_Bus_ToExamine);
  17299. if (n)
  17300. {
  17301. var opt = "审核通过"; var cbreasons = "";
  17302. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17303. #region
  17304. if (nexttype == 1)
  17305. {
  17306. #region 保存工单信息
  17307. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  17308. keyValuePairs2.Add("F_MainDeptId", null);
  17309. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  17310. #endregion
  17311. cbreasons = ",拒绝原因:" + cbreason;
  17312. #endregion
  17313. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17314. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17315. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  17316. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17317. oper.F_Message = userinfo + " 审核拒绝了工单" + cbreasons;
  17318. oper.F_CreateUser = User.F_UserCode;
  17319. oper.F_CreateTime = DateTime.Now;
  17320. oper.F_IsDelete = 0;
  17321. operBLL.Add(oper);
  17322. }
  17323. else
  17324. {
  17325. int day = 7;
  17326. if (modelT_Bus_ToExamine.F_LimitTime != null && modelT_Bus_ToExamine.F_LimitTime > 0)
  17327. {
  17328. day = (int)modelT_Bus_ToExamine.F_LimitTime + 1;
  17329. }
  17330. var resdatetime = GetLimittime(day);
  17331. // DataTable dt = DbHelperSQL.Query("select top " + day + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  17332. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime .Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  17333. // var resdatetime = dt.Rows[day - 1]["F_OffDate"].ToString();
  17334. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  17335. // var datatime = DateTime.Now.AddDays(day );
  17336. // if (Convert.ToDateTime(resdatetime) > datatime)
  17337. // {
  17338. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  17339. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  17340. // " with(nolock) where F_OffState = 1 and " +
  17341. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  17342. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  17343. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  17344. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  17345. // {
  17346. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  17347. // }
  17348. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  17349. // }
  17350. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + modelT_Bus_ToExamine.F_MainDeptId + ")");
  17351. int t = 0;
  17352. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17353. t = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString()) + 1;
  17354. var curuser = User;
  17355. if (deptlist != null)
  17356. {
  17357. if (deptlist.Count == 1)
  17358. {
  17359. #region 交办一个单位
  17360. var maindept = deptlist.FirstOrDefault();
  17361. var premodeldept = department((int)maindept.F_PartentId);
  17362. #region 插入交办记录
  17363. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17364. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  17365. if (maindept.F_IsDept == 2)
  17366. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  17367. else
  17368. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  17369. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  17370. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  17371. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  17372. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  17373. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  17374. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  17375. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  17376. modelT_Bus_AssignedInfo.F_IsSure = 0;
  17377. modelT_Bus_AssignedInfo.F_IsReload = t;
  17378. modelT_Bus_AssignedInfo.F_IsNext = 0;
  17379. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  17380. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  17381. #endregion
  17382. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  17383. {
  17384. // Task.Run(() =>
  17385. // {
  17386. #region 保存工单信息
  17387. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  17388. if (modelT_Bus_WorkOrder.F_Level == 2)
  17389. {
  17390. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17391. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  17392. }
  17393. else
  17394. {
  17395. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17396. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  17397. }
  17398. if (maindept.F_IsDept == 2)
  17399. {
  17400. keyValuePairs1.Add("F_MainDeptId", premodeldept.F_DeptId);
  17401. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  17402. }
  17403. else
  17404. {
  17405. keyValuePairs1.Add("F_MainDeptId", maindept.F_DeptId);
  17406. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  17407. }
  17408. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  17409. {
  17410. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  17411. if (content != null && content.Length > 0)
  17412. {
  17413. string[] deptid = content[0].Split(',');
  17414. if (deptid != null && deptid.Length > 0)
  17415. {
  17416. keyValuePairs1.Add("F_Content", content[0].Remove(0, deptid[0].Length + 1));
  17417. }
  17418. }
  17419. }
  17420. keyValuePairs1.Add("F_OtherDeptIds", "");
  17421. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  17422. keyValuePairs1.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  17423. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  17424. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  17425. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  17426. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17427. {
  17428. keyValuePairs1.Add("F_IsReload", t);
  17429. keyValuePairs1.Add("F_IsOverdue", 0);
  17430. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  17431. modelT_Bus_WorkOrder.F_WorkState = 8;
  17432. }
  17433. else
  17434. {
  17435. if (maindept.F_IsDept == 2)
  17436. {
  17437. modelT_Bus_WorkOrder.F_WorkState = 4;
  17438. keyValuePairs1.Add("F_WorkState", 4);
  17439. }
  17440. else
  17441. {
  17442. modelT_Bus_WorkOrder.F_WorkState = 2;
  17443. keyValuePairs1.Add("F_WorkState", 2);
  17444. }
  17445. }
  17446. keyValuePairs1.Add("F_IsSendBack", 0);
  17447. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  17448. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  17449. #endregion
  17450. // }).ContinueWith(q =>
  17451. // {
  17452. string DeptName = "";
  17453. if (maindept.F_IsDept == 2)
  17454. {
  17455. DeptName = premodeldept.F_DeptName;
  17456. }
  17457. else
  17458. DeptName = maindept.F_DeptName;
  17459. var msgss = userinfo + " 审核通过了工单,主办单位:" + DeptName;
  17460. if (!string.IsNullOrEmpty(cbreason))
  17461. {
  17462. msgss += ",审核意见:" + cbreason;
  17463. }
  17464. if (maindept.F_IsDept == 2)
  17465. {
  17466. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  17467. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, cbreason, curuser);
  17468. }
  17469. else
  17470. {
  17471. Task.Run(() =>
  17472. {
  17473. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  17474. }).ContinueWith(p =>
  17475. {
  17476. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17477. });
  17478. }
  17479. #region 插入推送消息
  17480. if (maindept.F_IsDept == 2)
  17481. {
  17482. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  17483. foreach (var u in users)
  17484. {
  17485. if (curuser.F_RoleCode == "DBZY")
  17486. {
  17487. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  17488. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  17489. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  17490. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  17491. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  17492. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  17493. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  17494. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17495. }
  17496. else
  17497. {
  17498. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  17499. {
  17500. continue;
  17501. }
  17502. else
  17503. {
  17504. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  17505. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  17506. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  17507. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  17508. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681555443768397824", mag,
  17509. modelT_Bus_WorkOrder.F_WorkOrderId);
  17510. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17511. }
  17512. }
  17513. }
  17514. }
  17515. else
  17516. {
  17517. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  17518. foreach (var u in users)
  17519. {
  17520. if (curuser.F_RoleCode == "DBZY")
  17521. {
  17522. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  17523. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  17524. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  17525. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  17526. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  17527. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  17528. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  17529. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17530. }
  17531. else
  17532. {
  17533. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  17534. {
  17535. continue;
  17536. }
  17537. else
  17538. {
  17539. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  17540. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  17541. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  17542. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  17543. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  17544. modelT_Bus_WorkOrder.F_WorkOrderId);
  17545. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  17546. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  17547. else
  17548. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  17549. }
  17550. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17551. }
  17552. }
  17553. }
  17554. #endregion
  17555. // });
  17556. }
  17557. #endregion
  17558. }
  17559. else
  17560. {
  17561. // Task.Run(() =>
  17562. // {
  17563. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  17564. string newids = ""; string errdeptid = ""; string deptname = "";
  17565. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  17566. if (curuser.F_RoleCode == "DBZY")
  17567. {
  17568. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  17569. }
  17570. object obj = new object();
  17571. List<Task> taskList = new List<Task>();
  17572. foreach (var deptinfo in deptlist)
  17573. {
  17574. deptname += deptinfo.F_DeptName + ",";
  17575. #region 新增工单
  17576. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  17577. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  17578. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  17579. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  17580. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  17581. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  17582. string deptcontent = "";
  17583. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  17584. {
  17585. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  17586. if (content != null && content.Length > 0)
  17587. {
  17588. foreach (var it in content)
  17589. {
  17590. string[] deptid = it.Split(',');
  17591. if (deptid != null && deptid.Length > 0)
  17592. {
  17593. if (deptid[0] == deptinfo.F_DeptId.ToString())
  17594. {
  17595. deptcontent = it.Remove(0, deptid[0].Length + 1);
  17596. }
  17597. }
  17598. }
  17599. }
  17600. }
  17601. if (!string.IsNullOrEmpty(deptcontent))
  17602. {
  17603. modelT_Bus_WorkOrder1.F_Content = deptcontent;
  17604. modelT_Bus_WorkOrder1.F_ComContent = deptcontent;
  17605. }
  17606. modelT_Bus_WorkOrder1.F_IsRelease = null;
  17607. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  17608. if (curuser.F_RoleCode == "DBZY")
  17609. {
  17610. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  17611. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17612. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  17613. }
  17614. #endregion
  17615. if (modelT_Bus_WorkOrder1.F_Id > 0)
  17616. {
  17617. #region 插入交办记录
  17618. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17619. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  17620. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  17621. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  17622. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  17623. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  17624. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  17625. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  17626. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  17627. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  17628. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  17629. modelT_Bus_AssignedInfo.F_IsSure = 0;
  17630. modelT_Bus_AssignedInfo.F_IsReload = 0;
  17631. modelT_Bus_AssignedInfo.F_IsNext = 0;
  17632. int aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  17633. #endregion
  17634. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  17635. {
  17636. #region 保存工单信息
  17637. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  17638. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17639. {
  17640. keyValuePairs2.Add("F_IsReload", t);
  17641. keyValuePairs2.Add("F_IsOverdue", 0);
  17642. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.reload);
  17643. }
  17644. else
  17645. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.receive);
  17646. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  17647. if (modelT_Bus_WorkOrder1.F_Level == 2)
  17648. {
  17649. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17650. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  17651. }
  17652. else
  17653. {
  17654. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17655. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  17656. }
  17657. keyValuePairs2.Add("F_MainDeptId", deptinfo.F_DeptId);
  17658. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  17659. keyValuePairs2.Add("F_OtherDeptIds", "");
  17660. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  17661. keyValuePairs2.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  17662. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  17663. keyValuePairs2.Add("F_AssignTime", DateTime.Now);
  17664. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  17665. // keyValuePairs2.Add("F_IsSendBack", 0);
  17666. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  17667. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs2);
  17668. #endregion
  17669. var msgss = userinfo + " 审核通过了工单,主办单位:" + deptinfo.F_DeptName;
  17670. if (!string.IsNullOrEmpty(cbreason))
  17671. {
  17672. msgss += ",审核意见:" + cbreason;
  17673. }
  17674. #region 插入操作记录
  17675. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  17676. #endregion
  17677. #region 插入推送消息
  17678. //推送消息表
  17679. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  17680. //foreach (var u in users)
  17681. //{
  17682. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17683. //}
  17684. #endregion
  17685. #region 发短信
  17686. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  17687. if (user != null && user.Count > 0)
  17688. {
  17689. foreach (var it in user)
  17690. {
  17691. if (curuser.F_RoleCode == "DBZY")
  17692. {
  17693. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  17694. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17695. //bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  17696. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  17697. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  17698. "681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17699. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17700. }
  17701. else
  17702. {
  17703. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  17704. {
  17705. continue;
  17706. }
  17707. else
  17708. {
  17709. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  17710. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17711. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  17712. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  17713. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  17714. modelT_Bus_WorkOrder1.F_WorkOrderId);
  17715. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  17716. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17717. else
  17718. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17719. }
  17720. }
  17721. }
  17722. }
  17723. #endregion
  17724. }
  17725. Task.Run(() =>
  17726. {
  17727. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  17728. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  17729. {
  17730. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  17731. }
  17732. }).ContinueWith(p =>
  17733. {
  17734. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17735. });
  17736. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  17737. }
  17738. else
  17739. {
  17740. errdeptid += deptinfo.F_DeptName + ",";
  17741. }
  17742. }
  17743. newids = newids.Trim(',');
  17744. var msgs = "";
  17745. if (errdeptid == "")
  17746. {
  17747. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  17748. keyValuePairs3.Add("F_SubWorkorder1", newids);
  17749. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  17750. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3);
  17751. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  17752. }
  17753. else
  17754. {
  17755. errdeptid = errdeptid.Trim(',');
  17756. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  17757. }
  17758. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  17759. // }).ContinueWith(p =>
  17760. // {
  17761. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17762. // });
  17763. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  17764. keyValuePairs1.Add("F_IsSendBack", 0);
  17765. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  17766. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17767. {
  17768. keyValuePairs1.Add("F_IsReload", t);
  17769. keyValuePairs1.Add("F_IsOverdue", 0);
  17770. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  17771. modelT_Bus_WorkOrder.F_WorkState = 8;
  17772. }
  17773. else
  17774. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  17775. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  17776. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  17777. }
  17778. }
  17779. else
  17780. {
  17781. return Error("单位不存在");
  17782. }
  17783. }
  17784. #region 插入操作记录
  17785. //推送消息表
  17786. #endregion
  17787. }
  17788. trans.Complete();
  17789. }
  17790. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  17791. }
  17792. else
  17793. {
  17794. return Error("已经审核过了");
  17795. }
  17796. }
  17797. else
  17798. {
  17799. return Error("操作失败");
  17800. }
  17801. }
  17802. else
  17803. {
  17804. return Error("权限不足");
  17805. }
  17806. }
  17807. public ActionResult BatchOverWorkOrder(string ids)
  17808. {
  17809. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17810. {
  17811. string[] strids = ids.Split(','); string errids1 = "", errids = "";
  17812. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17813. {
  17814. foreach (string str in strids)
  17815. {
  17816. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  17817. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  17818. if (modelT_Bus_WorkOrder != null)
  17819. {
  17820. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  17821. {
  17822. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  17823. #region 新增回访结果记录
  17824. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17825. modelT_Bus_VisitResult.F_AssignedId = 0;
  17826. modelT_Bus_VisitResult.F_VisitUser = User .F_UserName;
  17827. modelT_Bus_VisitResult.F_Type = -1;
  17828. modelT_Bus_VisitResult.F_IsSatisfie = 2;
  17829. modelT_Bus_VisitResult.F_Result = "回访情况:未抽查。";
  17830. modelT_Bus_VisitResult.F_Remark = "";//重办原因
  17831. modelT_Bus_VisitResult.F_State = 1;
  17832. modelT_Bus_VisitResult.F_IsDelete = 0;
  17833. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  17834. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  17835. if (modelT_Bus_AssignedInfo != null)
  17836. {
  17837. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  17838. }
  17839. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  17840. modelT_Bus_VisitResult.F_Id = id;
  17841. //保存回访记录
  17842. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, "");
  17843. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17844. keyValuePairs.Add("F_IsClosed", 1);
  17845. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  17846. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  17847. keyValuePairs.Add("F_WorkState", 9);
  17848. keyValuePairs.Add("F_IsProResult", 1);
  17849. keyValuePairs.Add("F_Note", "");
  17850. keyValuePairs.Add("F_SpotCheck", 0);
  17851. keyValuePairs.Add("F_FinalOpinion", "");
  17852. modelT_Bus_WorkOrder.F_SpotCheck = 0;
  17853. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  17854. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17855. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17856. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17857. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  17858. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17859. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17860. string satisfie = ",结果:基本满意";
  17861. oper.F_Message = userinfo + " " + "回访" + "了工单" + satisfie ;
  17862. oper.F_CreateUser = User.F_UserCode;
  17863. oper.F_CreateTime = DateTime.Now;
  17864. oper.F_IsDelete = 0;
  17865. int o = operBLL.Add(oper);
  17866. try
  17867. {
  17868. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  17869. {
  17870. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  17871. }
  17872. }
  17873. catch (Exception ex)
  17874. {
  17875. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  17876. }
  17877. Task.Run(() =>
  17878. {
  17879. process_info(o, "case_process_info", "审核工单");
  17880. }).ContinueWith(p =>
  17881. {
  17882. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17883. });
  17884. Task.Run(() =>
  17885. {
  17886. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  17887. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  17888. {
  17889. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  17890. }
  17891. }).ContinueWith(p =>
  17892. {
  17893. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17894. });
  17895. var cureuser = User;
  17896. Task.Run(() =>
  17897. {
  17898. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  17899. }).ContinueWith(p =>
  17900. {
  17901. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17902. });
  17903. Task.Run(() =>
  17904. {
  17905. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_info");
  17906. }).ContinueWith(p =>
  17907. {
  17908. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17909. });
  17910. Task.Run(() =>
  17911. {
  17912. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_detail_info");
  17913. }).ContinueWith(p =>
  17914. {
  17915. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17916. });
  17917. #endregion
  17918. }
  17919. else
  17920. {
  17921. errids += "工单" + str + "已经回访过了。";
  17922. }
  17923. }
  17924. else
  17925. {
  17926. errids += "工单" + str + "操作失败。";
  17927. }
  17928. }
  17929. trans.Complete();
  17930. }
  17931. if(!string .IsNullOrEmpty(errids) )
  17932. {
  17933. return Error (errids);
  17934. }
  17935. else
  17936. return Success("操作成功");
  17937. }
  17938. else
  17939. {
  17940. return Error("权限不足");
  17941. }
  17942. }
  17943. /// <summary>
  17944. /// 回访工单
  17945. /// </summary>
  17946. /// <returns></returns>
  17947. public ActionResult VisitWorkOrder(int limittime=5)
  17948. {
  17949. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17950. {
  17951. string workorderid = RequestString.GetFormString("workorderid");
  17952. string visituser = RequestString.GetFormString("visituser");//回访人
  17953. int type = RequestString.GetInt("type", -1);//回访方式
  17954. int spotcheck = RequestString.GetInt("spotcheck", -1);//是否抽查0否1是
  17955. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意2基本满意
  17956. int state = RequestString.GetInt("state", 1);//0保存 1保存并下一步
  17957. int visitid = RequestString.GetInt("visitid", 0);
  17958. string result = RequestString.GetFormString("result");//回访情况
  17959. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2退回重办3仅回访4已办未果
  17960. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  17961. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  17962. string callid = RequestString.GetFormString("callid");
  17963. string guid = RequestString.GetFormString("guid");
  17964. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17965. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17966. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17967. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  17968. if (string.IsNullOrEmpty(visituser))
  17969. {
  17970. visituser = User.F_UserCode;
  17971. }
  17972. if (modelT_Bus_WorkOrder != null)
  17973. {
  17974. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  17975. {
  17976. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17977. {
  17978. if (visitid == 0)
  17979. {
  17980. #region 新增回访结果记录
  17981. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17982. modelT_Bus_VisitResult.F_AssignedId = 0;
  17983. modelT_Bus_VisitResult.F_VisitUser = visituser;
  17984. modelT_Bus_VisitResult.F_Type = type;
  17985. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  17986. modelT_Bus_VisitResult.F_Result = result;
  17987. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  17988. modelT_Bus_VisitResult.F_State = state;
  17989. if (!string.IsNullOrEmpty(callid))
  17990. {
  17991. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  17992. if (rd != null)
  17993. {
  17994. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  17995. }
  17996. }
  17997. modelT_Bus_VisitResult.F_IsDelete = 0;
  17998. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  17999. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  18000. if (modelT_Bus_AssignedInfo != null)
  18001. {
  18002. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18003. }
  18004. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  18005. modelT_Bus_VisitResult.F_Id = id;
  18006. //保存回访记录
  18007. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  18008. #endregion
  18009. }
  18010. else
  18011. {
  18012. #region 修改回访结果记录
  18013. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  18014. if (modelT_Bus_VisitResult != null)
  18015. {
  18016. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18017. modelT_Bus_VisitResult.F_AssignedId = 0;
  18018. modelT_Bus_VisitResult.F_VisitUser = visituser;
  18019. modelT_Bus_VisitResult.F_Type = type;
  18020. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  18021. modelT_Bus_VisitResult.F_Result = result;
  18022. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  18023. modelT_Bus_VisitResult.F_State = state;
  18024. if (!string.IsNullOrEmpty(callid))
  18025. {
  18026. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  18027. if (rd != null)
  18028. {
  18029. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  18030. }
  18031. }
  18032. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  18033. modelT_Bus_VisitResult.F_IsDelete = 0;
  18034. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  18035. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  18036. if (modelT_Bus_AssignedInfo != null)
  18037. {
  18038. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18039. }
  18040. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  18041. modelT_Bus_VisitResult.F_Id = id;
  18042. //保存回访记录
  18043. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  18044. }
  18045. #endregion
  18046. }
  18047. if (modelT_Bus_VisitResult != null)
  18048. {
  18049. //提交重办满意度改为满意
  18050. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  18051. assignBLL.Update(modelT_Bus_AssignedInfo);
  18052. var opt = "回访"; var cbreasons = "";
  18053. //结案
  18054. if (nexttype == 0)
  18055. {
  18056. if (issatisfie == 0)
  18057. keyValuePairs.Add("F_ToBereply", 1);
  18058. keyValuePairs.Add("F_IsClosed", 1);
  18059. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  18060. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  18061. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  18062. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  18063. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  18064. keyValuePairs.Add("F_WorkState", 9);
  18065. keyValuePairs.Add("F_IsProResult", 1);
  18066. keyValuePairs.Add("F_Note", "");
  18067. keyValuePairs.Add("F_SpotCheck", spotcheck);
  18068. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  18069. modelT_Bus_WorkOrder.F_SpotCheck = spotcheck;
  18070. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  18071. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18072. Task.Run(() =>
  18073. {
  18074. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  18075. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  18076. {
  18077. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  18078. }
  18079. }).ContinueWith(p =>
  18080. {
  18081. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18082. });
  18083. try
  18084. {
  18085. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  18086. {
  18087. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  18088. }
  18089. }
  18090. catch (Exception ex)
  18091. {
  18092. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18093. }
  18094. var cureuser = User;
  18095. Task.Run(() =>
  18096. {
  18097. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  18098. }).ContinueWith(p =>
  18099. {
  18100. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18101. });
  18102. }
  18103. #region 重办
  18104. else if (nexttype == 1)
  18105. {
  18106. #region 保存工单信息
  18107. //if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  18108. //{
  18109. // return Error("回访时,提交重办只能操作一次");
  18110. //}
  18111. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  18112. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  18113. keyValuePairs2.Add("F_RemindDay", 3);
  18114. else
  18115. keyValuePairs2.Add("F_RemindDay", 2);
  18116. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  18117. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  18118. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  18119. keyValuePairs2.Add("F_IsSms", 0);
  18120. // modelT_Bus_WorkOrder.F_IsSms = 0;
  18121. keyValuePairs2.Add("F_Identification", 0);
  18122. keyValuePairs2.Add("F_Note", "");
  18123. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  18124. // modelT_Bus_WorkOrder.F_Identification = 0;
  18125. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  18126. #endregion
  18127. opt = "于" + DateTime.Now
  18128. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  18129. cbreasons = ",重办原因:" + cbreason;
  18130. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  18131. if (t_Bus_RemindRecord != null)
  18132. {
  18133. if (t_Bus_RemindRecord.F_State != 2)
  18134. {
  18135. t_Bus_RemindRecord.F_State = 0;
  18136. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  18137. }
  18138. }
  18139. #endregion
  18140. }
  18141. else if (nexttype == 2)
  18142. {
  18143. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  18144. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  18145. {
  18146. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  18147. if (User.F_RoleCode == "ZXHWY")
  18148. {
  18149. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  18150. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  18151. keyValuePairs3.Add("F_SpotCheck", spotcheck);
  18152. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  18153. {
  18154. #region 插入操作记录
  18155. #region 20191021调整为多个主办单位时调整
  18156. #endregion
  18157. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  18158. cbreasons = ",重办原因:" + cbreason;
  18159. #endregion
  18160. }
  18161. }
  18162. else
  18163. {
  18164. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  18165. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  18166. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  18167. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  18168. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18169. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  18170. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime .Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  18171. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  18172. if (!string.IsNullOrEmpty(resdatetime))
  18173. {
  18174. resdatetime = GetLimittime(6);
  18175. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  18176. // var datatime = DateTime.Now.AddDays(6);
  18177. // if (Convert.ToDateTime(resdatetime) > datatime)
  18178. // {
  18179. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  18180. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  18181. // " with(nolock) where F_OffState = 1 and " +
  18182. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  18183. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  18184. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  18185. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  18186. // {
  18187. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  18188. // }
  18189. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  18190. // }
  18191. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  18192. }
  18193. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  18194. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  18195. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  18196. newmodelT_Bus_AssignedInfo.F_State = 1;
  18197. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  18198. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  18199. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  18200. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  18201. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  18202. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  18203. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  18204. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  18205. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  18206. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  18207. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  18208. {
  18209. #region 保存工单信息
  18210. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  18211. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18212. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  18213. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  18214. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  18215. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  18216. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  18217. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  18218. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  18219. {
  18220. keyValuePairs3.Add("F_RemindDay", 1);
  18221. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  18222. }
  18223. keyValuePairs3.Add("F_IsReload", n + 1);
  18224. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  18225. if (!string.IsNullOrEmpty(resdatetime))
  18226. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  18227. keyValuePairs3.Add("F_IsOverdue", 0);
  18228. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  18229. keyValuePairs3.Add("F_IsSms", 0);
  18230. // modelT_Bus_WorkOrder.F_IsSms = 0;
  18231. keyValuePairs3.Add("F_Identification", 1);
  18232. // modelT_Bus_WorkOrder.F_Identification = 1;
  18233. keyValuePairs3.Add("F_Result", "");
  18234. // modelT_Bus_WorkOrder.F_Result = "";
  18235. keyValuePairs3.Add("F_DealDeptId", null);
  18236. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  18237. keyValuePairs3.Add("F_DealUser", "");
  18238. // modelT_Bus_WorkOrder.F_DealUser = "";
  18239. keyValuePairs3.Add("F_DealTime", null);
  18240. // modelT_Bus_WorkOrder.F_DealTime = null;
  18241. keyValuePairs3.Add("F_Note", "");
  18242. keyValuePairs3.Add("F_SpotCheck", spotcheck);
  18243. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  18244. {
  18245. #region 插入操作记录
  18246. #region 20191021调整为多个主办单位时调整
  18247. #endregion
  18248. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  18249. cbreasons = ",重办原因:" + cbreason;
  18250. #endregion
  18251. }
  18252. #endregion
  18253. }
  18254. else
  18255. {
  18256. return Error("退回失败");
  18257. }
  18258. }
  18259. }
  18260. }
  18261. else if (nexttype == 3)
  18262. {
  18263. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  18264. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  18265. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  18266. }
  18267. else if (nexttype == 4)
  18268. {
  18269. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  18270. keyValuePairs2.Add("F_ToBereply", 0);
  18271. keyValuePairs2.Add("F_IsSms", 0);
  18272. keyValuePairs2.Add("F_IsProResult", 2);
  18273. keyValuePairs2.Add("F_Note", "");
  18274. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  18275. string resdatetime = "";
  18276. if (limittime > 0)
  18277. {
  18278. resdatetime = GetLimittime(limittime);
  18279. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  18280. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  18281. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  18282. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  18283. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  18284. //var datatime = DateTime.Now.AddDays(limittime);
  18285. //if (Convert.ToDateTime(resdatetime) > datatime)
  18286. //{
  18287. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  18288. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  18289. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  18290. // " with(nolock) where F_OffState = 1 and " +
  18291. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  18292. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  18293. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  18294. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  18295. // {
  18296. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  18297. // }
  18298. //}
  18299. }
  18300. keyValuePairs2.Add("F_UnsuccessfulTime", resdatetime);
  18301. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  18302. {
  18303. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  18304. opt = "提交已办未果";
  18305. }
  18306. else
  18307. return Error("该工单没有承办单位");
  18308. }
  18309. #region 插入操作记录
  18310. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18311. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18312. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  18313. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18314. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18315. string satisfie = "";
  18316. if (issatisfie > -1)
  18317. {
  18318. satisfie = ",结果:满意";
  18319. if (issatisfie == 0)
  18320. satisfie = ",结果:不满意";
  18321. else if (issatisfie == 2)
  18322. satisfie = ",结果:基本满意";
  18323. }
  18324. oper.F_Message = userinfo + " " + opt + "了工单" + satisfie + cbreasons;
  18325. oper.F_CreateUser = User.F_UserCode;
  18326. oper.F_CreateTime = DateTime.Now;
  18327. oper.F_IsDelete = 0;
  18328. int o = operBLL.Add(oper);
  18329. Task.Run(() =>
  18330. {
  18331. process_info(o, "case_process_info", "审核工单");
  18332. }).ContinueWith(p =>
  18333. {
  18334. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18335. });
  18336. //推送消息表
  18337. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  18338. #endregion
  18339. if (issatisfie == 1)//如果满意就进行自动语音回访
  18340. {
  18341. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  18342. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  18343. {
  18344. string AutoCallMsg = string.Empty;
  18345. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  18346. }
  18347. }
  18348. }
  18349. trans.Complete();
  18350. //////多次不满意转督办
  18351. ////if (issatisfie == 0 && nexttype > 0)
  18352. ////{
  18353. //// Remind(modelT_Bus_WorkOrder, modelT_Bus_AssignedInfo);
  18354. ////}
  18355. }
  18356. if (modelT_Bus_WorkOrder.F_WorkState == 9)
  18357. {
  18358. Task.Run(() =>
  18359. {
  18360. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_info");
  18361. }).ContinueWith(p =>
  18362. {
  18363. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18364. });
  18365. }
  18366. Task.Run(() =>
  18367. {
  18368. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_detail_info");
  18369. }).ContinueWith(p =>
  18370. {
  18371. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18372. });
  18373. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  18374. }
  18375. else
  18376. {
  18377. return Error("已经回访过了");
  18378. }
  18379. }
  18380. else
  18381. {
  18382. return Error("操作失败");
  18383. }
  18384. }
  18385. else
  18386. {
  18387. return Error("权限不足");
  18388. }
  18389. }
  18390. public void CloseWorkorder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Sys_UserAccount curruser)
  18391. {
  18392. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  18393. {
  18394. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  18395. if (model != null)
  18396. {
  18397. string Result = "";
  18398. if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  18399. {
  18400. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  18401. {
  18402. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  18403. string FinalOpinion = "";
  18404. if (modellist != null && modellist.Count > 0)
  18405. {
  18406. foreach (var it in modellist)
  18407. {
  18408. if (string.IsNullOrEmpty(Result))
  18409. Result = modelT_Bus_WorkOrder.F_Result;
  18410. else
  18411. Result += "; " + it.F_Result;
  18412. if (!string.IsNullOrEmpty(FinalOpinion))
  18413. {
  18414. if (string.IsNullOrEmpty(FinalOpinion))
  18415. FinalOpinion = it.F_FinalOpinion;
  18416. else
  18417. {
  18418. if (!string.IsNullOrEmpty(it.F_FinalOpinion))
  18419. FinalOpinion += "; " + it.F_FinalOpinion;
  18420. }
  18421. }
  18422. }
  18423. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18424. keyValuePairs1.Add("F_Result", Result);
  18425. model.F_Result = Result;
  18426. keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  18427. // model.F_FinalOpinion = FinalOpinion;
  18428. keyValuePairs1.Add("F_Note", "");
  18429. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18430. }
  18431. }
  18432. }
  18433. else
  18434. {
  18435. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18436. if (string.IsNullOrEmpty(model.F_Result))
  18437. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18438. else
  18439. keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  18440. Result = model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result;
  18441. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18442. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18443. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18444. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18445. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  18446. {
  18447. int v = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  18448. if (v <= 0)
  18449. {
  18450. keyValuePairs1.Add("F_IsClosed", 1);
  18451. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18452. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  18453. keyValuePairs1.Add("F_WorkState", 9);
  18454. keyValuePairs1.Add("F_IsProResult", 1);
  18455. keyValuePairs1.Add("F_Note", "");
  18456. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18457. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18458. }
  18459. else
  18460. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18461. Task.Run(() =>
  18462. {
  18463. case_info(model.F_WorkOrderId, "case_finish_info");
  18464. if (model.F_InfoSource == 2580)
  18465. {
  18466. case_info(model.F_WorkOrderId, "FinishWorkOrder");
  18467. }
  18468. }).ContinueWith(p =>
  18469. {
  18470. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18471. });
  18472. try
  18473. {
  18474. if (model.F_InfoSource == 4606)
  18475. {
  18476. CommonHelper.pushresult(model.F_WorkOrderId);
  18477. }
  18478. }
  18479. catch (Exception ex)
  18480. {
  18481. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18482. }
  18483. }
  18484. else
  18485. {
  18486. keyValuePairs1.Add("F_IsClosed", 1);
  18487. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18488. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  18489. keyValuePairs1.Add("F_WorkState", 9);
  18490. keyValuePairs1.Add("F_IsProResult", 1);
  18491. keyValuePairs1.Add("F_Note", "");
  18492. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18493. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18494. Task.Run(() =>
  18495. {
  18496. case_info(model.F_WorkOrderId, "case_finish_info");
  18497. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  18498. {
  18499. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  18500. }
  18501. }).ContinueWith(p =>
  18502. {
  18503. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18504. });
  18505. try
  18506. {
  18507. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  18508. {
  18509. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  18510. }
  18511. }
  18512. catch (Exception ex)
  18513. {
  18514. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18515. }
  18516. }
  18517. }
  18518. if (model .F_IsRelease ==2)
  18519. {
  18520. if (!string.IsNullOrEmpty(model.F_SubWorkorder))
  18521. {
  18522. var orderlist = model.F_SubWorkorder.Split(',');
  18523. if (orderlist.Length > 0)
  18524. {
  18525. foreach (var it in orderlist)
  18526. {
  18527. var model1 = workorderBLL.GetModel(it);
  18528. if (model1 != null)
  18529. {
  18530. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18531. keyValuePairs1.Add("F_IsClosed", 1);
  18532. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18533. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  18534. keyValuePairs1.Add("F_WorkState", 9);
  18535. keyValuePairs1.Add("F_IsProResult", 1);
  18536. model1.F_WorkState = (int)EnumWorkState.finish;//已回访
  18537. keyValuePairs1.Add("F_Result", Result);
  18538. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18539. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18540. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18541. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18542. keyValuePairs1.Add("F_Note", "");
  18543. workorderBLL.UpdateWorkOrder(model1.F_Id, keyValuePairs1);
  18544. Task.Run(() =>
  18545. {
  18546. case_info(model1.F_WorkOrderId, "case_finish_info");
  18547. if (model1.F_InfoSource == 2580)
  18548. {
  18549. case_info(model1.F_WorkOrderId, "FinishWorkOrder");
  18550. }
  18551. }).ContinueWith(p =>
  18552. {
  18553. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18554. });
  18555. try
  18556. {
  18557. if (model1.F_InfoSource == 4606)
  18558. {
  18559. CommonHelper.pushresult(model1.F_WorkOrderId);
  18560. }
  18561. }
  18562. catch (Exception ex)
  18563. {
  18564. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18565. }
  18566. }
  18567. }
  18568. }
  18569. }
  18570. }
  18571. }
  18572. }
  18573. else if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder1))
  18574. {
  18575. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from " +
  18576. "dbo.SplitToNvarchar('" + modelT_Bus_WorkOrder.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  18577. if (modellist != null && modellist.Count > 0)
  18578. {
  18579. string Result = "";
  18580. foreach (var it in modellist)
  18581. {
  18582. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18583. if (string.IsNullOrEmpty(it.F_Result))
  18584. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18585. else
  18586. keyValuePairs1.Add("F_Result", it.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  18587. Result = it.F_Result + "; " + modelT_Bus_WorkOrder.F_Result;
  18588. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18589. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18590. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18591. // keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18592. keyValuePairs1.Add("F_IsClosed", 1);
  18593. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18594. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  18595. keyValuePairs1.Add("F_WorkState", 9);
  18596. keyValuePairs1.Add("F_IsProResult", 1);
  18597. it.F_WorkState = (int)EnumWorkState.finish;//已回访
  18598. workorderBLL.UpdateWorkOrder(it.F_Id, keyValuePairs1);
  18599. Task.Run(() =>
  18600. {
  18601. case_info(it.F_WorkOrderId, "case_finish_info");
  18602. if (it.F_InfoSource == 2580)
  18603. {
  18604. case_info(it.F_WorkOrderId, "FinishWorkOrder");
  18605. }
  18606. }).ContinueWith(p => {
  18607. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18608. });
  18609. workorderBLL.UpdateWorkOrder(it.F_Id, keyValuePairs1);
  18610. try
  18611. {
  18612. if (it.F_InfoSource == 4606)
  18613. {
  18614. CommonHelper.pushresult(it.F_WorkOrderId);
  18615. }
  18616. }
  18617. catch (Exception ex)
  18618. {
  18619. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18620. }
  18621. }
  18622. }
  18623. }
  18624. if (modelT_Bus_WorkOrder .F_IsRelease ==2)
  18625. {
  18626. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  18627. {
  18628. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  18629. if (orderlist.Length > 0)
  18630. {
  18631. foreach (var it in orderlist)
  18632. {
  18633. var model = workorderBLL.GetModel(it);
  18634. if (model != null)
  18635. {
  18636. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18637. keyValuePairs1.Add("F_IsClosed", 1);
  18638. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18639. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  18640. keyValuePairs1.Add("F_WorkState", 9);
  18641. keyValuePairs1.Add("F_IsProResult", 1);
  18642. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18643. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18644. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18645. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18646. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18647. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18648. keyValuePairs1.Add("F_Note", "");
  18649. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18650. if (!string.IsNullOrEmpty(model.F_MainWorkorder1))
  18651. {
  18652. var model2 = workorderBLL.GetModel(model.F_MainWorkorder1);
  18653. if (model2 != null)
  18654. {
  18655. if (model2.F_WorkOrderId == model2.F_MainWorkorder1)
  18656. {
  18657. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  18658. {
  18659. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model2.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  18660. string Result = ""; string FinalOpinion = "";
  18661. if (modellist != null && modellist.Count > 0)
  18662. {
  18663. foreach (var iv in modellist)
  18664. {
  18665. if (string.IsNullOrEmpty(Result))
  18666. Result = modelT_Bus_WorkOrder.F_Result;
  18667. else
  18668. Result += "; " + iv.F_Result;
  18669. if (!string.IsNullOrEmpty(FinalOpinion))
  18670. {
  18671. if (string.IsNullOrEmpty(FinalOpinion))
  18672. FinalOpinion = iv.F_FinalOpinion;
  18673. else
  18674. {
  18675. if (!string.IsNullOrEmpty(iv.F_FinalOpinion))
  18676. FinalOpinion += "; " + iv.F_FinalOpinion;
  18677. }
  18678. }
  18679. }
  18680. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  18681. keyValuePairs2.Add("F_Result", Result);
  18682. model2.F_Result = Result;
  18683. keyValuePairs2.Add("F_FinalOpinion", FinalOpinion);
  18684. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs2);
  18685. }
  18686. }
  18687. }
  18688. else
  18689. {
  18690. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  18691. if (string.IsNullOrEmpty(model2.F_Result))
  18692. keyValuePairs3.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18693. else
  18694. keyValuePairs3.Add("F_Result", model2.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  18695. keyValuePairs3.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18696. // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  18697. keyValuePairs3.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18698. // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  18699. keyValuePairs3.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18700. // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  18701. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18702. // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  18703. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  18704. {
  18705. int v = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model2.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  18706. if (v <= 0)
  18707. {
  18708. keyValuePairs3.Add("F_IsClosed", 1);
  18709. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  18710. keyValuePairs3.Add("F_WorkState", 9);
  18711. keyValuePairs3.Add("F_IsProResult", 1);
  18712. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  18713. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  18714. Task.Run(() =>
  18715. {
  18716. case_info(model2.F_WorkOrderId, "case_finish_info");
  18717. if (model2.F_InfoSource == 2580)
  18718. {
  18719. case_info(model2.F_WorkOrderId, "FinishWorkOrder");
  18720. }
  18721. }).ContinueWith(p =>
  18722. {
  18723. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18724. });
  18725. try
  18726. {
  18727. if (model2.F_InfoSource == 4606)
  18728. {
  18729. CommonHelper.pushresult(model2.F_WorkOrderId);
  18730. }
  18731. }
  18732. catch (Exception ex)
  18733. {
  18734. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18735. }
  18736. }
  18737. else
  18738. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  18739. }
  18740. else
  18741. {
  18742. keyValuePairs3.Add("F_IsClosed", 1);
  18743. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  18744. keyValuePairs3.Add("F_WorkState", 9);
  18745. keyValuePairs3.Add("F_IsProResult", 1);
  18746. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  18747. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  18748. Task.Run(() =>
  18749. {
  18750. case_info(model2.F_WorkOrderId, "case_finish_info");
  18751. if (model2.F_InfoSource == 2580)
  18752. {
  18753. case_info(model2.F_WorkOrderId, "FinishWorkOrder");
  18754. }
  18755. }).ContinueWith(p =>
  18756. {
  18757. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18758. });
  18759. try
  18760. {
  18761. if (model2.F_InfoSource == 4606)
  18762. {
  18763. CommonHelper.pushresult(model2.F_WorkOrderId);
  18764. }
  18765. }
  18766. catch (Exception ex)
  18767. {
  18768. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  18769. }
  18770. }
  18771. }
  18772. }
  18773. }
  18774. }
  18775. }
  18776. }
  18777. }
  18778. }
  18779. }
  18780. /// <summary>
  18781. /// 多次不满意转督办
  18782. /// </summary>
  18783. /// <returns></returns>
  18784. public bool Remind(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo)
  18785. {
  18786. bool n = true;
  18787. int f = Int32.Parse(DbHelperSQL.GetSingle("select COUNT(1) from T_Bus_VisitResult WITH(NOLOCK) where F_IsSatisfie = 0 and F_WorkOrderId = '" + modelT_Bus_WorkOrder.F_WorkOrderId + "'").ToString());
  18788. if (f >= 2)
  18789. {
  18790. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  18791. var modelRemindlist = new BLL.T_Bus_RemindRecord().GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1 and F_WorkOrderId= '" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc");
  18792. if (modelRemindlist != null && modelRemindlist.Count > 0)
  18793. {
  18794. modelT_Bus_RemindRecord = modelRemindlist.FirstOrDefault();
  18795. if (modelT_Bus_RemindRecord != null)
  18796. {
  18797. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办";
  18798. modelT_Bus_RemindRecord.F_State = 0;
  18799. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  18800. }
  18801. }
  18802. else
  18803. {
  18804. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18805. if (modelT_Bus_AssignedInfo != null)
  18806. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18807. modelT_Bus_RemindRecord.F_Type = 1;
  18808. if (modelT_Bus_AssignedInfo != null)
  18809. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  18810. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办"; ;
  18811. modelT_Bus_RemindRecord.F_File = "";
  18812. modelT_Bus_RemindRecord.F_State = 0;//0待办 1已办 2退回
  18813. modelT_Bus_RemindRecord.F_IsDelete = 0;
  18814. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  18815. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  18816. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  18817. }
  18818. #region 插入操作记录
  18819. string typename = "督办";
  18820. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18821. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18822. if (modelT_Bus_AssignedInfo != null)
  18823. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18824. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18825. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18826. oper.F_Message = userinfo + " " + typename + "了工单";
  18827. oper.F_CreateUser = User.F_UserCode;
  18828. oper.F_CreateTime = DateTime.Now;
  18829. oper.F_IsDelete = 0;
  18830. operBLL.Add(oper);
  18831. #endregion 插入操作记录
  18832. }
  18833. return n;
  18834. }
  18835. /// <summary>
  18836. /// 督办工单
  18837. /// </summary>
  18838. /// <returns></returns>
  18839. //[Authority]
  18840. public ActionResult RemindWorkOrder()
  18841. {
  18842. string workorderid = RequestString.GetFormString("workorderid");
  18843. int type = RequestString.GetInt("type", 0);//1督办 2监察
  18844. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  18845. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  18846. string files = RequestString.GetFormString("files");
  18847. int mode = RequestString.GetInt("mode", 0);//0现场1电话
  18848. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18849. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  18850. if (modelT_Bus_WorkOrder != null)
  18851. {
  18852. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18853. {
  18854. #region 插入督办记录
  18855. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  18856. if (type == 1 && state > 0)
  18857. {
  18858. modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State !=2 and F_IsDelete=0 and F_Type =1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc").FirstOrDefault();
  18859. if (modelT_Bus_RemindRecord != null)
  18860. {
  18861. if (state == 0)
  18862. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  18863. else
  18864. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  18865. modelT_Bus_RemindRecord.F_State = state;
  18866. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  18867. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  18868. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  18869. }
  18870. }
  18871. else
  18872. {
  18873. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18874. if (modelT_Bus_AssignedInfo != null)
  18875. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18876. modelT_Bus_RemindRecord.F_Type = type;
  18877. if (modelT_Bus_AssignedInfo != null)
  18878. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  18879. if (state == 0)
  18880. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  18881. else
  18882. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  18883. modelT_Bus_RemindRecord.F_File = files;
  18884. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  18885. modelT_Bus_RemindRecord.F_IsDelete = 0;
  18886. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  18887. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  18888. modelT_Bus_RemindRecord.F_Mode = mode;
  18889. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  18890. }
  18891. #endregion
  18892. #region 插入操作记录
  18893. string typename = "督办";
  18894. if (type == 2) { typename = "监察"; }
  18895. if (type == 1 && state == 0) { typename = "提交督办"; }
  18896. if (type == 1 && state == 1) { typename = "督办"; }
  18897. if (type == 1 && state == 2) { typename = "退回督办"; }
  18898. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  18899. // bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  18900. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18901. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18902. if (modelT_Bus_AssignedInfo != null)
  18903. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18904. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18905. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18906. oper.F_Message = userinfo + " " + typename + "了工单";
  18907. oper.F_CreateUser = User.F_UserCode;
  18908. oper.F_CreateTime = DateTime.Now;
  18909. oper.F_IsDelete = 0;
  18910. operBLL.Add(oper);
  18911. #endregion
  18912. trans.Complete();
  18913. }
  18914. return Success("操作成功");
  18915. }
  18916. else
  18917. {
  18918. return Error("操作失败");
  18919. }
  18920. }
  18921. /// <summary>
  18922. /// 督办查收工单
  18923. /// </summary>
  18924. /// <returns></returns>
  18925. //[Authority]
  18926. public ActionResult RemindCheck()
  18927. {
  18928. string workorderid = RequestString.GetFormString("workorderid");
  18929. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  18930. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  18931. if (modelT_Bus_RemindRecord != null)
  18932. {
  18933. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18934. {
  18935. #region 插入督办记录
  18936. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  18937. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  18938. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  18939. #endregion
  18940. #region 插入操作记录
  18941. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18942. oper.F_WorkOrderId = modelT_Bus_RemindRecord.F_WorkOrderId;
  18943. if (modelT_Bus_AssignedInfo != null)
  18944. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18945. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18946. oper.F_Message = userinfo + " 查收了督办工单";
  18947. oper.F_CreateUser = User.F_UserCode;
  18948. oper.F_CreateTime = DateTime.Now;
  18949. oper.F_IsDelete = 0;
  18950. operBLL.Add(oper);
  18951. #endregion
  18952. trans.Complete();
  18953. }
  18954. return Success("操作成功");
  18955. }
  18956. else
  18957. {
  18958. return Error("操作失败");
  18959. }
  18960. }
  18961. /// <summary>
  18962. /// 督办审核工单
  18963. /// </summary>
  18964. /// <returns></returns>
  18965. public ActionResult RemindApproved()
  18966. {
  18967. if (User.F_RoleCode == "GLY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DBZY")
  18968. {
  18969. string workorderid = RequestString.GetFormString("workorderid");
  18970. int state = RequestString.GetInt("state", 0);//0通过1拒绝
  18971. string reason = RequestString.GetFormString("reason");//审核意见
  18972. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18973. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  18974. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  18975. if (modelT_Bus_WorkOrder != null && modelT_Bus_RemindRecord != null)
  18976. {
  18977. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  18978. {
  18979. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18980. {
  18981. var opt = ""; var cbreasons = "";
  18982. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18983. if (state == 1)
  18984. {
  18985. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  18986. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  18987. {
  18988. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  18989. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  18990. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18991. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  18992. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime .Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  18993. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  18994. if (!string.IsNullOrEmpty(resdatetime))
  18995. {
  18996. resdatetime = GetLimittime(6);
  18997. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  18998. // var datatime = DateTime.Now.AddDays(6);
  18999. // if (Convert.ToDateTime(resdatetime) > datatime)
  19000. // {
  19001. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  19002. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  19003. // " with(nolock) where F_OffState = 1 and " +
  19004. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  19005. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  19006. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  19007. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  19008. // {
  19009. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  19010. // }
  19011. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  19012. // }
  19013. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  19014. }
  19015. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  19016. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  19017. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  19018. newmodelT_Bus_AssignedInfo.F_State = 1;
  19019. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  19020. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  19021. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  19022. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  19023. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  19024. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  19025. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  19026. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  19027. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  19028. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  19029. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  19030. {
  19031. #region 保存工单信息
  19032. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  19033. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  19034. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  19035. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  19036. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  19037. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19038. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  19039. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19040. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  19041. {
  19042. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  19043. keyValuePairs.Add("F_RemindDay", 1);
  19044. }
  19045. keyValuePairs.Add("F_IsReload", n + 1);
  19046. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  19047. if (!string.IsNullOrEmpty(resdatetime))
  19048. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  19049. keyValuePairs.Add("F_IsOverdue", 0);
  19050. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19051. keyValuePairs.Add("F_IsSms", 0);
  19052. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19053. if (User.F_RoleCode == "ZXHWY")
  19054. {
  19055. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.backaudit);
  19056. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  19057. }
  19058. else
  19059. {
  19060. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  19061. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  19062. }
  19063. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  19064. keyValuePairs.Add("F_Identification", 1);
  19065. // modelT_Bus_WorkOrder.F_Identification = 1;
  19066. keyValuePairs.Add("F_Result", "");
  19067. // modelT_Bus_WorkOrder.F_Result = "";
  19068. keyValuePairs.Add("F_DealDeptId", null);
  19069. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19070. keyValuePairs.Add("F_DealUser", "");
  19071. // modelT_Bus_WorkOrder.F_DealUser = "";
  19072. keyValuePairs.Add("F_DealTime", null);
  19073. // modelT_Bus_WorkOrder.F_DealTime = null;
  19074. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  19075. {
  19076. // var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  19077. // if (user != null && user.Count > 0)
  19078. // {
  19079. // foreach (var it in user)
  19080. // {
  19081. // string count = "你有督办退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  19082. // //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  19083. // // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "255884", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  19084. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19085. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  19086. //"681240088986554368", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  19087. // }
  19088. // }
  19089. #region 插入操作记录
  19090. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了工单";
  19091. cbreasons = ",审核意见:" + reason;
  19092. #endregion
  19093. }
  19094. #endregion
  19095. }
  19096. else
  19097. {
  19098. return Error("退回失败");
  19099. }
  19100. }
  19101. }
  19102. else
  19103. {
  19104. modelT_Bus_RemindRecord.F_IsExamine = 1;
  19105. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  19106. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了工单";
  19107. }
  19108. #region 插入操作记录
  19109. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19110. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19111. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19112. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19113. oper.F_Message = userinfo + " " + opt + "" + cbreasons;
  19114. oper.F_CreateUser = User.F_UserCode;
  19115. oper.F_CreateTime = DateTime.Now;
  19116. oper.F_IsDelete = 0;
  19117. operBLL.Add(oper);
  19118. //推送消息表
  19119. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  19120. #endregion
  19121. trans.Complete();
  19122. }
  19123. return Success("操作成功");
  19124. }
  19125. else
  19126. {
  19127. return Error("督办单不存在");
  19128. }
  19129. }
  19130. else
  19131. {
  19132. return Error("操作失败");
  19133. }
  19134. }
  19135. else
  19136. {
  19137. return Error("权限不足");
  19138. }
  19139. }
  19140. /// <summary>
  19141. /// 重办工单
  19142. /// </summary>
  19143. /// <returns></returns>
  19144. //[Authority]
  19145. public ActionResult ReloadWorkOrder()
  19146. {
  19147. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  19148. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  19149. {
  19150. string workorderid = RequestString.GetFormString("workorderid");
  19151. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  19152. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  19153. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  19154. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  19155. if (modelT_Bus_WorkOrder != null)
  19156. {
  19157. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  19158. {
  19159. return Error("操作失败");
  19160. }
  19161. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  19162. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19163. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  19164. {
  19165. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19166. {
  19167. #region 插入督办记录
  19168. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  19169. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19170. modelT_Bus_RemindRecord.F_AssignedId = 0;
  19171. modelT_Bus_RemindRecord.F_Type = 1;
  19172. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19173. if (modelT_Bus_AssignedInfo != null)//转办后重办
  19174. {
  19175. #region 插入交办记录
  19176. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  19177. keyValuePairs.Add("F_IsReload", n + 1);
  19178. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  19179. keyValuePairs.Add("F_LimitTime", newlimittime);
  19180. // modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  19181. keyValuePairs.Add("F_IsOverdue", 0);
  19182. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19183. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  19184. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19185. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  19186. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  19187. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  19188. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  19189. AssignedInfo.F_State = 1;//0草稿 1正式
  19190. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  19191. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  19192. AssignedInfo.F_IsDelete = 0;
  19193. AssignedInfo.F_IsOverdue = 0;
  19194. AssignedInfo.F_IsSure = 0;
  19195. AssignedInfo.F_IsReload = n + 1;
  19196. AssignedInfo.F_ReloadUser = User.F_UserCode;
  19197. AssignedInfo.F_ReloadTime = DateTime.Now;
  19198. assignBLL.Add(AssignedInfo);
  19199. #endregion
  19200. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  19201. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  19202. }
  19203. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  19204. {
  19205. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  19206. if (cruser != null)
  19207. {
  19208. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  19209. }
  19210. }
  19211. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  19212. modelT_Bus_RemindRecord.F_State = 1;
  19213. modelT_Bus_RemindRecord.F_IsDelete = 0;
  19214. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  19215. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  19216. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  19217. #endregion
  19218. #region 保存工单信息
  19219. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  19220. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19221. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  19222. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  19223. // keyValuePairs.Add("F_IsExamine", 1);
  19224. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  19225. keyValuePairs.Add("F_Result", "");
  19226. //modelT_Bus_WorkOrder.F_Result = "";
  19227. keyValuePairs.Add("F_DealDeptId", null);
  19228. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  19229. keyValuePairs.Add("F_DealUser", "");
  19230. //modelT_Bus_WorkOrder.F_DealUser = "";
  19231. keyValuePairs.Add("F_DealTime", null);
  19232. // modelT_Bus_WorkOrder.F_DealTime = null;
  19233. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19234. #endregion
  19235. #region 插入操作记录
  19236. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19237. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19238. if (modelT_Bus_AssignedInfo != null)
  19239. {
  19240. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  19241. }
  19242. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19243. string deptname = "";
  19244. #region 20191021调整为多个主办单位时调整
  19245. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  19246. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  19247. #endregion
  19248. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19249. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  19250. oper.F_CreateUser = User.F_UserCode;
  19251. oper.F_CreateTime = DateTime.Now;
  19252. oper.F_IsDelete = 0;
  19253. operBLL.Add(oper);
  19254. //推送消息表
  19255. //var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  19256. //foreach (var u in users)
  19257. //{
  19258. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  19259. //}
  19260. #endregion
  19261. trans.Complete();
  19262. }
  19263. return Success("操作成功");
  19264. }
  19265. else
  19266. {
  19267. return Error("已经处理过了");
  19268. }
  19269. }
  19270. else
  19271. {
  19272. return Error("操作失败");
  19273. }
  19274. }
  19275. else
  19276. {
  19277. return Error("权限不足");
  19278. }
  19279. }
  19280. /// <summary>
  19281. /// 重办提交工单 提交后为重办待交办
  19282. /// </summary>
  19283. /// <returns></returns>
  19284. //[Authority]
  19285. public ActionResult SubReloadWorkOrder(string ids, string reason
  19286. , int iszb = 0)
  19287. {
  19288. int maindeptid = RequestString.GetInt("maindeptid", 0);
  19289. string otherdeptids = RequestString.GetFormString("otherdeptids");
  19290. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  19291. string assignedopinion = RequestString.GetFormString("assignedopinion");
  19292. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  19293. {
  19294. if (!string.IsNullOrEmpty(ids))
  19295. {
  19296. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(ids);
  19297. if (modelT_Bus_WorkOrder != null)
  19298. {
  19299. if (iszb == 0)
  19300. {
  19301. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  19302. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  19303. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19304. {
  19305. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19306. #region 保存工单信息
  19307. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  19308. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  19309. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  19310. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  19311. // keyValuePairs.Add("F_IsExamine", 1);
  19312. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  19313. keyValuePairs.Add("F_IsSms", 0);
  19314. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19315. keyValuePairs.Add("F_Identification", 0);
  19316. // modelT_Bus_WorkOrder.F_Identification = 0;
  19317. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  19318. keyValuePairs.Add("F_MainDeptId", null);
  19319. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  19320. keyValuePairs.Add("F_OtherDeptIds", "");
  19321. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  19322. keyValuePairs.Add("F_DealDeptId", null);
  19323. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19324. keyValuePairs.Add("F_Note", "");
  19325. #endregion
  19326. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19327. #endregion
  19328. #region 插入操作记录
  19329. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19330. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19331. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19332. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19333. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  19334. oper.F_CreateUser = User.F_UserCode;
  19335. oper.F_CreateTime = DateTime.Now;
  19336. oper.F_IsDelete = 0;
  19337. operBLL.Add(oper);
  19338. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  19339. if (t_Bus_RemindRecord != null)
  19340. {
  19341. if (t_Bus_RemindRecord.F_State != 2)
  19342. {
  19343. t_Bus_RemindRecord.F_State = 0;
  19344. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  19345. }
  19346. }
  19347. #endregion
  19348. }
  19349. else
  19350. {
  19351. return Error("此工单已处理");
  19352. }
  19353. }
  19354. else
  19355. {
  19356. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  19357. {
  19358. #region 保存工单信息
  19359. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19360. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  19361. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  19362. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  19363. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  19364. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19365. #endregion
  19366. #region 插入操作记录
  19367. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19368. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19369. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19370. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19371. if (!string.IsNullOrEmpty(reason))
  19372. {
  19373. oper.F_Message = userinfo + " 提交了驳回重办工单,原因:" + reason;
  19374. }
  19375. else
  19376. {
  19377. oper.F_Message = userinfo + " 提交了驳回重办工单";
  19378. }
  19379. oper.F_CreateUser = User.F_UserCode;
  19380. oper.F_CreateTime = DateTime.Now;
  19381. oper.F_IsDelete = 0;
  19382. operBLL.Add(oper);
  19383. #endregion 插入操作记录
  19384. //推送消息表
  19385. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  19386. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  19387. //{
  19388. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  19389. // if (role != null && role.Count() > 0)
  19390. // {
  19391. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  19392. // if (users != null && users.Count() > 0)
  19393. // {
  19394. // foreach (var u in users)
  19395. // {
  19396. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  19397. // }
  19398. // }
  19399. // }
  19400. //}
  19401. }
  19402. else
  19403. {
  19404. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3))
  19405. {
  19406. return Error("结案后工单只能提交重办一次");
  19407. }
  19408. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19409. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  19410. {
  19411. if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  19412. keyValuePairs.Add("F_RemindDay", 3);
  19413. else
  19414. keyValuePairs.Add("F_RemindDay", 1);
  19415. }
  19416. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  19417. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  19418. {
  19419. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID
  19420. (modelT_Bus_WorkOrder.F_WorkOrderId);
  19421. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  19422. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  19423. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19424. {
  19425. if (User.F_RoleCode == "ZXHWY")
  19426. {
  19427. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  19428. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  19429. keyValuePairs3.Add("F_Note", "");
  19430. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  19431. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  19432. {
  19433. #region 插入操作记录
  19434. #region 20191021调整为多个主办单位时调整
  19435. #endregion
  19436. #endregion
  19437. #region 插入操作记录
  19438. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19439. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19440. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19441. string deptname = "";
  19442. #region 20191021调整为多个主办单位时调整
  19443. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  19444. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  19445. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  19446. #endregion
  19447. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19448. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办了工单,重办原因:" + reason;
  19449. if (!string.IsNullOrEmpty(otherdeptids))
  19450. {
  19451. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  19452. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  19453. oper.F_Message += ",协办单位:" + deptname1;
  19454. }
  19455. oper.F_CreateUser = User.F_UserCode;
  19456. oper.F_CreateTime = DateTime.Now;
  19457. oper.F_IsDelete = 0;
  19458. operBLL.Add(oper);
  19459. //推送消息表
  19460. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  19461. //foreach (var u in users)
  19462. //{
  19463. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  19464. //}
  19465. #endregion
  19466. }
  19467. }
  19468. else
  19469. {
  19470. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  19471. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  19472. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19473. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  19474. "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + DateTime .Now + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate ").Tables[0];
  19475. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  19476. if (!string.IsNullOrEmpty(resdatetime))
  19477. {
  19478. resdatetime = GetLimittime(6);
  19479. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  19480. // var datatime = DateTime.Now.AddDays(6);
  19481. // if (Convert.ToDateTime(resdatetime) > datatime)
  19482. // {
  19483. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  19484. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  19485. // " with(nolock) where F_OffState = 1 and " +
  19486. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  19487. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  19488. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  19489. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  19490. // {
  19491. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  19492. // }
  19493. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  19494. // }
  19495. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  19496. }
  19497. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  19498. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  19499. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  19500. newmodelT_Bus_AssignedInfo.F_State = 1;
  19501. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  19502. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  19503. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  19504. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  19505. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  19506. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  19507. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  19508. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  19509. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  19510. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  19511. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  19512. {
  19513. #region 保存工单信息
  19514. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  19515. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  19516. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  19517. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  19518. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  19519. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19520. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  19521. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19522. keyValuePairs.Add("F_IsReload", n + 1);
  19523. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  19524. if (!string.IsNullOrEmpty(resdatetime))
  19525. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  19526. keyValuePairs.Add("F_IsOverdue", 0);
  19527. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19528. keyValuePairs.Add("F_IsSms", 0);
  19529. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19530. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  19531. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  19532. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  19533. keyValuePairs.Add("F_Identification", 1);
  19534. // modelT_Bus_WorkOrder.F_Identification = 1;
  19535. keyValuePairs.Add("F_Result", "");
  19536. // modelT_Bus_WorkOrder.F_Result = "";
  19537. keyValuePairs.Add("F_DealDeptId", null);
  19538. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19539. keyValuePairs.Add("F_DealUser", "");
  19540. // modelT_Bus_WorkOrder.F_DealUser = "";
  19541. keyValuePairs.Add("F_DealTime", null);
  19542. // modelT_Bus_WorkOrder.F_DealTime = null;
  19543. keyValuePairs.Add("F_Note", "");
  19544. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  19545. {
  19546. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  19547. if (user != null && user.Count > 0)
  19548. {
  19549. foreach (var it in user)
  19550. {
  19551. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  19552. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  19553. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  19554. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19555. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  19556. "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  19557. }
  19558. }
  19559. #region 插入操作记录
  19560. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19561. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19562. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  19563. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19564. string deptname = "";
  19565. #region 20191021调整为多个主办单位时调整
  19566. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  19567. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  19568. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  19569. #endregion
  19570. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19571. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办了工单,重办原因:" + reason;
  19572. if (!string.IsNullOrEmpty(otherdeptids))
  19573. {
  19574. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  19575. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  19576. oper.F_Message += ",协办单位:" + deptname1;
  19577. }
  19578. oper.F_CreateUser = User.F_UserCode;
  19579. oper.F_CreateTime = DateTime.Now;
  19580. oper.F_IsDelete = 0;
  19581. operBLL.Add(oper);
  19582. //推送消息表
  19583. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  19584. //foreach (var u in users)
  19585. //{
  19586. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  19587. //}
  19588. #endregion
  19589. return Success("操作成功");
  19590. }
  19591. else
  19592. {
  19593. return Error("重办失败");
  19594. }
  19595. #endregion
  19596. }
  19597. else
  19598. {
  19599. return Error("退回失败");
  19600. }
  19601. }
  19602. }
  19603. else
  19604. {
  19605. return Error("已经处理过了");
  19606. }
  19607. }
  19608. else
  19609. {
  19610. #region 保存工单信息
  19611. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  19612. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  19613. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  19614. //modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  19615. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  19616. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19617. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  19618. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19619. keyValuePairs.Add("F_IsReload", 1);
  19620. // modelT_Bus_WorkOrder.F_IsReload = 1;
  19621. keyValuePairs.Add("F_IsOverdue", 0);
  19622. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19623. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  19624. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  19625. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  19626. keyValuePairs.Add("F_Identification", 0);
  19627. // modelT_Bus_WorkOrder.F_Identification = 0;
  19628. keyValuePairs.Add("F_Result", "");
  19629. // modelT_Bus_WorkOrder.F_Result = "";
  19630. keyValuePairs.Add("F_DealDeptId", null);
  19631. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19632. keyValuePairs.Add("F_DealUser", "");
  19633. // modelT_Bus_WorkOrder.F_DealUser = "";
  19634. keyValuePairs.Add("F_DealTime", null);
  19635. // modelT_Bus_WorkOrder.F_DealTime = null;
  19636. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  19637. {
  19638. #region 插入操作记录
  19639. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19640. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19641. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19642. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19643. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  19644. if (!string.IsNullOrEmpty(otherdeptids))
  19645. {
  19646. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  19647. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  19648. oper.F_Message += ",协办单位:" + deptname1;
  19649. }
  19650. oper.F_CreateUser = User.F_UserCode;
  19651. oper.F_CreateTime = DateTime.Now;
  19652. oper.F_IsDelete = 0;
  19653. operBLL.Add(oper);
  19654. //推送消息表
  19655. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  19656. if (t_Bus_RemindRecord != null)
  19657. {
  19658. if (t_Bus_RemindRecord.F_State != 2)
  19659. {
  19660. t_Bus_RemindRecord.F_State = 0;
  19661. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  19662. }
  19663. }
  19664. #endregion
  19665. }
  19666. else
  19667. {
  19668. return Error("重办失败");
  19669. }
  19670. #endregion
  19671. }
  19672. }
  19673. }
  19674. }
  19675. else
  19676. {
  19677. return Error("操作失败");
  19678. }
  19679. return Success("操作成功");
  19680. }
  19681. else
  19682. {
  19683. return Error("操作失败");
  19684. }
  19685. }
  19686. else
  19687. {
  19688. return Error("权限不足");
  19689. }
  19690. }
  19691. /// <summary>
  19692. /// 驳回重办,驳回后状态为重办驳回状态
  19693. /// 调度员可驳回
  19694. /// </summary>
  19695. /// <param name="ids"></param>
  19696. /// <returns></returns>
  19697. //[Authority]
  19698. public ActionResult RejReloadWorkOrder(string id, string reason)
  19699. {
  19700. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  19701. {
  19702. if (!string.IsNullOrEmpty(id))
  19703. {
  19704. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19705. {
  19706. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  19707. if (modelT_Bus_WorkOrder != null)
  19708. {
  19709. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'and F_FeedbackTime is not null and F_FeedbackTime !='' order by F_CreateTime desc ").FirstOrDefault();
  19710. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  19711. {
  19712. #region 保存工单信息
  19713. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19714. // keyValuePairs.Add("F_IsExamine", 1);
  19715. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  19716. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.rejload);
  19717. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  19718. if (modelT_Bus_AssignedInfo != null)
  19719. {
  19720. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL.GetModelList(" F_AssignedId=" + modelT_Bus_AssignedInfo.F_Id + " and F_IsFeedEnd=1 and F_State=1 order by F_CreateTime desc").FirstOrDefault();
  19721. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  19722. keyValuePairs.Add("F_MainDeptId", modelT_Bus_AssignedInfo.F_MainDeptId);
  19723. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  19724. keyValuePairs.Add("F_Identification", 1);
  19725. //modelT_Bus_WorkOrder.F_Identification = 1;
  19726. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_AssignedInfo.F_OtherDeptIds);
  19727. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  19728. keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback.F_CreateDeptId);
  19729. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  19730. keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback.F_CreateUser);
  19731. //modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  19732. keyValuePairs.Add("F_DealTime", modelT_Bus_Feedback.F_CreateTime);
  19733. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  19734. #endregion
  19735. }
  19736. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19737. #endregion
  19738. #region 插入操作记录
  19739. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19740. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19741. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19742. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19743. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  19744. oper.F_CreateUser = User.F_UserCode;
  19745. oper.F_CreateTime = DateTime.Now;
  19746. oper.F_IsDelete = 0;
  19747. operBLL.Add(oper);
  19748. #endregion
  19749. }
  19750. }
  19751. trans.Complete();
  19752. }
  19753. return Success("操作成功");
  19754. }
  19755. else
  19756. {
  19757. return Error("参数异常");
  19758. }
  19759. }
  19760. else
  19761. {
  19762. return Error("权限不足");
  19763. }
  19764. }
  19765. /// <summary>
  19766. /// 重办工单
  19767. /// </summary>
  19768. /// <returns></returns>
  19769. //[Authority]
  19770. public ActionResult NewReloadWorkOrder(List<maindeptcontent> content)
  19771. {
  19772. // var User = new BLL.T_Sys_UserAccount ().GetModel("8000");
  19773. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  19774. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  19775. {
  19776. string workorderid = RequestString.GetFormString("workorderid");
  19777. string maindeptid = RequestString.GetFormString("maindeptid");
  19778. string otherdeptids = RequestString.GetFormString("otherdeptids");
  19779. // DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  19780. string limittimes = RequestString.GetFormString("limittimes");
  19781. int limittime = RequestString.GetInt("limittime", 0);
  19782. int issms = RequestString.GetInt("issms", 1);
  19783. string assignedopinion = RequestString.GetFormString("assignedopinion");
  19784. var premodeldept = new Model.T_Sys_Department();
  19785. var curuser = User;
  19786. string resdatetime = "";
  19787. if (limittime > 0)
  19788. {
  19789. resdatetime = GetLimittime(limittime);
  19790. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  19791. // DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  19792. // "F_OffDate> (select top 1 F_OffDate from T_Sys_WorkOFFDays where F_OffDate >= '" + resdate + "' and F_OffState = 1 order by F_OffDate asc) order by F_OffDate").Tables[0];
  19793. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  19794. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  19795. // var datatime = DateTime.Now.AddDays(limittime);
  19796. // if (Convert.ToDateTime(resdatetime) > datatime)
  19797. // {
  19798. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  19799. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  19800. // " with(nolock) where F_OffState = 1 and " +
  19801. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  19802. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  19803. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  19804. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  19805. // {
  19806. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  19807. // }
  19808. // // resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  19809. // }
  19810. //}
  19811. }
  19812. else
  19813. {
  19814. if (!string.IsNullOrEmpty(limittimes))
  19815. {
  19816. try
  19817. {
  19818. resdatetime = Convert.ToDateTime(limittimes).ToString("yyyy-MM-dd HH:mm:ss");
  19819. }
  19820. catch
  19821. {
  19822. return Error("请选择办理时限");
  19823. }
  19824. }
  19825. else
  19826. return Error("请选择办理时限");
  19827. }
  19828. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  19829. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  19830. if (modelT_Bus_WorkOrder != null)
  19831. {
  19832. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  19833. if (deptlist != null)
  19834. {
  19835. if (deptlist.Count == 1)
  19836. {
  19837. var deptinfo = deptlist.FirstOrDefault();
  19838. if (deptinfo.F_IsDept == 2)
  19839. {
  19840. if (deptinfo.F_PartentId > 0)
  19841. {
  19842. premodeldept = department((int)deptinfo.F_PartentId);
  19843. if (premodeldept == null)
  19844. return Error("该单位没有上级单位,派单失败");
  19845. }
  19846. else
  19847. {
  19848. return Error("该单位没有上级单位,派单失败");
  19849. }
  19850. }
  19851. }
  19852. else
  19853. {
  19854. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  19855. return Error("派单多单位不能派给三级单位");
  19856. }
  19857. }
  19858. else
  19859. {
  19860. return Error("单位不存在");
  19861. }
  19862. if (!string.IsNullOrEmpty(otherdeptids))
  19863. {
  19864. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  19865. {
  19866. return Error("主办单位不能出现在协办单位");
  19867. }
  19868. }
  19869. //if (limittime < DateTime.Now)
  19870. //{
  19871. // return Error("办理时限不能小于当前时间");
  19872. //}
  19873. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19874. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  19875. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19876. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  19877. {
  19878. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  19879. if (deptlist.Count == 1)
  19880. {
  19881. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19882. {
  19883. var maindept = deptlist.FirstOrDefault();
  19884. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  19885. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19886. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  19887. if (maindept.F_IsDept == 2)
  19888. newmodelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  19889. else
  19890. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  19891. // newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  19892. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  19893. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  19894. newmodelT_Bus_AssignedInfo.F_State = 1;
  19895. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  19896. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  19897. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  19898. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  19899. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  19900. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  19901. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  19902. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  19903. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  19904. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  19905. #region 保存工单信息
  19906. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19907. if (maindept.F_IsDept == 2)
  19908. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  19909. else
  19910. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  19911. if (content != null && content.Count > 0)
  19912. {
  19913. keyValuePairs.Add("F_Content", content[0]);
  19914. keyValuePairs.Add("F_ComContent", content[0]);
  19915. }
  19916. //modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  19917. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  19918. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  19919. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  19920. //modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19921. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  19922. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19923. keyValuePairs.Add("F_MainDeptID3", "");
  19924. //modelT_Bus_WorkOrder.F_MainDeptID3 = "";
  19925. keyValuePairs.Add("F_IsReload", n + 1);
  19926. //modelT_Bus_WorkOrder.F_IsReload = n + 1;
  19927. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  19928. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  19929. keyValuePairs.Add("F_IsOverdue", 0);
  19930. keyValuePairs.Add("F_Identification", 0);
  19931. //modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19932. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  19933. if (maindept.F_IsDept == 2)
  19934. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing );
  19935. else
  19936. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  19937. // keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive );
  19938. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  19939. // keyValuePairs.Add("F_IsExamine", 1);
  19940. // modelT_Bus_WorkOrder.F_IsExamine = 1; // modelT_Bus_WorkOrder.F_IsSms = 0;
  19941. keyValuePairs.Add("F_Result", "");
  19942. //modelT_Bus_WorkOrder.F_Result = "";
  19943. keyValuePairs.Add("F_DealDeptId", null);
  19944. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19945. keyValuePairs.Add("F_DealUser", "");
  19946. // modelT_Bus_WorkOrder.F_DealUser = "";
  19947. keyValuePairs.Add("F_DealTime", null);
  19948. //modelT_Bus_WorkOrder.F_DealTime = null;
  19949. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19950. #endregion
  19951. #region 插入操作记录
  19952. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19953. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19954. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  19955. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19956. string deptname = "";
  19957. #region 20191021调整为多个主办单位时调整
  19958. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  19959. if (maindept.F_IsDept == 2)
  19960. {
  19961. deptname = premodeldept.F_DeptName;
  19962. }
  19963. else
  19964. deptname = maindept.F_DeptName;
  19965. if (maindept.F_IsDept == 2)
  19966. {
  19967. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), newmodelT_Bus_AssignedInfo, assignedopinion, curuser);
  19968. }
  19969. #endregion
  19970. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  19971. if (!string.IsNullOrEmpty(otherdeptids))
  19972. {
  19973. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  19974. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  19975. oper.F_Message += ",协办单位:" + deptname1;
  19976. }
  19977. if (issms>0)
  19978. {
  19979. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + maindeptid + "') ");
  19980. if (user != null && user.Count > 0)
  19981. {
  19982. foreach (var it in user)
  19983. {
  19984. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  19985. {
  19986. continue;
  19987. }
  19988. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  19989. // string msg = workorderid;
  19990. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  19991. string mag = "[\"" + workorderid + "\"]";
  19992. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  19993. workorderid);
  19994. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  19995. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  19996. else
  19997. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  19998. }
  19999. }
  20000. }
  20001. oper.F_CreateUser = User.F_UserCode;
  20002. oper.F_CreateTime = DateTime.Now;
  20003. oper.F_IsDelete = 0;
  20004. operBLL.Add(oper);
  20005. #endregion
  20006. trans.Complete();
  20007. }
  20008. }
  20009. else
  20010. {
  20011. Task.Run(() =>
  20012. {
  20013. string newids = ""; string errdeptid = ""; string deptname = "";
  20014. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  20015. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  20016. if (curuser.F_RoleCode == "DBZY")
  20017. {
  20018. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  20019. }
  20020. object obj = new object();
  20021. List<Task> taskList = new List<Task>();
  20022. foreach (var deptinfo in deptlist)
  20023. {
  20024. deptname += deptinfo.F_DeptName + ",";
  20025. #region 新增工单
  20026. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  20027. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  20028. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  20029. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  20030. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  20031. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  20032. if (content != null && content.Count > 0)
  20033. {
  20034. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  20035. {
  20036. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  20037. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  20038. }
  20039. }
  20040. modelT_Bus_WorkOrder1.F_IsRelease = null;
  20041. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  20042. if (curuser.F_RoleCode == "DBZY")
  20043. {
  20044. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  20045. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  20046. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  20047. }
  20048. #endregion
  20049. if (modelT_Bus_WorkOrder1.F_Id > 0)
  20050. {
  20051. #region 插入交办记录
  20052. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  20053. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  20054. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  20055. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;
  20056. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  20057. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  20058. newmodelT_Bus_AssignedInfo.F_State = 1;
  20059. newmodelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  20060. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  20061. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  20062. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  20063. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  20064. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  20065. newmodelT_Bus_AssignedInfo.F_ReloadUser = curuser.F_UserCode;
  20066. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  20067. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  20068. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  20069. #endregion
  20070. if (newmodelT_Bus_AssignedInfo != null && newmodelT_Bus_AssignedInfo.F_State == 1)
  20071. {
  20072. #region 保存工单信息
  20073. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20074. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive );
  20075. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;
  20076. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  20077. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  20078. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  20079. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  20080. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  20081. keyValuePairs.Add("F_IsReload", n + 1);
  20082. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  20083. keyValuePairs.Add("F_IsSendBack", 0);
  20084. // keyValuePairs.Add("F_IsExamine", 1);
  20085. keyValuePairs.Add("F_Result", "");
  20086. keyValuePairs.Add("F_DealDeptId", null);
  20087. keyValuePairs.Add("F_DealUser", "");
  20088. keyValuePairs.Add("F_Identification", 0);
  20089. keyValuePairs.Add("F_DealTime", null);
  20090. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  20091. #endregion
  20092. var msgss = userinfo + " 重办了工单,主办单位:" + deptinfo.F_DeptName;
  20093. if (!string.IsNullOrEmpty(otherdeptids))
  20094. {
  20095. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  20096. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  20097. msgss += ",协办单位:" + deptname1;
  20098. }
  20099. #region 插入操作记录
  20100. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, newmodelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  20101. #endregion
  20102. #region 插入推送消息
  20103. //推送消息表
  20104. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  20105. // foreach (var u in users)
  20106. // {
  20107. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  20108. // }
  20109. #endregion
  20110. #region 发短信
  20111. if (issms >0)
  20112. {
  20113. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  20114. if (user != null && user.Count > 0)
  20115. {
  20116. foreach (var it in user)
  20117. {
  20118. if (curuser.F_RoleCode == "DBZY")
  20119. {
  20120. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  20121. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  20122. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  20123. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  20124. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  20125. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  20126. }
  20127. else
  20128. {
  20129. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  20130. {
  20131. continue;
  20132. }
  20133. else
  20134. {
  20135. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  20136. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  20137. // bool f = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  20138. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  20139. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  20140. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  20141. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  20142. else
  20143. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  20144. }
  20145. }
  20146. }
  20147. }
  20148. }
  20149. #endregion
  20150. }
  20151. Task.Run(() =>
  20152. {
  20153. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  20154. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  20155. {
  20156. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  20157. }
  20158. }).ContinueWith(p =>
  20159. {
  20160. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20161. });
  20162. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  20163. }
  20164. else
  20165. {
  20166. errdeptid += deptinfo.F_DeptName + ",";
  20167. }
  20168. }
  20169. newids = newids.Trim(',');
  20170. var msgs = "";
  20171. if (errdeptid == "")
  20172. {
  20173. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20174. keyValuePairs.Add("F_SubWorkorder1", newids);
  20175. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  20176. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20177. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  20178. }
  20179. else
  20180. {
  20181. errdeptid = errdeptid.Trim(',');
  20182. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  20183. }
  20184. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, curuser.F_UserCode, 0, 1);
  20185. }).ContinueWith(p =>
  20186. {
  20187. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20188. });
  20189. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20190. keyValuePairs1.Add("F_IsSendBack", 0);
  20191. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  20192. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  20193. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  20194. return Success("操作成功");
  20195. }
  20196. return Success("操作成功");
  20197. }
  20198. else
  20199. {
  20200. return Error("已经处理过了");
  20201. }
  20202. }
  20203. else
  20204. {
  20205. return Error("操作失败");
  20206. }
  20207. }
  20208. else
  20209. {
  20210. return Error("权限不足");
  20211. }
  20212. }
  20213. /// <summary>
  20214. /// 结案工单
  20215. /// </summary>
  20216. /// <returns></returns>
  20217. //[Authority]
  20218. public ActionResult FinishWorkOrder()
  20219. {
  20220. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20221. {
  20222. string workorderid = RequestString.GetFormString("workorderid");
  20223. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  20224. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  20225. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  20226. string deptids = RequestString.GetFormString("deptids");//通告单位
  20227. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  20228. //2020-3-4添加通告选项
  20229. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  20230. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  20231. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  20232. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  20233. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20234. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20235. if (modelT_Bus_WorkOrder != null)
  20236. {
  20237. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  20238. //{
  20239. // return Error("操作失败");
  20240. //}
  20241. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  20242. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  20243. {
  20244. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20245. {
  20246. #region 修改工单记录
  20247. //modelT_Bus_WorkOrder.F_WorkState = 9;
  20248. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20249. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.finish);
  20250. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  20251. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  20252. //modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  20253. keyValuePairs.Add("F_IsClosed", 1);
  20254. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  20255. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  20256. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  20257. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  20258. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  20259. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  20260. // modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  20261. keyValuePairs.Add("F_IsStandard", isstandard);
  20262. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  20263. keyValuePairs.Add("F_StandardIDS", standardids);
  20264. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  20265. keyValuePairs.Add("F_ToBereply", 0);
  20266. keyValuePairs.Add("F_IsProResult", 1);
  20267. //modelT_Bus_WorkOrder.F_ToBereply = 0;
  20268. keyValuePairs.Add("F_Note", "");
  20269. if (isnotice == 1)
  20270. {
  20271. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  20272. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  20273. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20274. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  20275. modelT_Bus_NoticeCriticism.F_State = 1;
  20276. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  20277. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  20278. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  20279. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  20280. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  20281. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  20282. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  20283. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  20284. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  20285. keyValuePairs.Add("F_IsNotice", 1);
  20286. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  20287. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  20288. // modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  20289. }
  20290. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  20291. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  20292. assignBLL.Update(modelT_Bus_AssignedInfo);
  20293. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20294. #endregion
  20295. #region 插入操作记录
  20296. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20297. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20298. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20299. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20300. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  20301. if (isnotice == 1)
  20302. {
  20303. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  20304. string deptname1 = departmentBLL.GetDeptNames(deptids);
  20305. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  20306. }
  20307. if (isstandard == 1)
  20308. {
  20309. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  20310. var sts = DbHelperSQL.GetSingle(sqlstand);
  20311. oper.F_Message = oper.F_Message + ";办理结果出现不规范" + sts + "情况,请及时查看";
  20312. }
  20313. oper.F_CreateUser = User.F_UserCode;
  20314. oper.F_CreateTime = DateTime.Now;
  20315. oper.F_IsDelete = 0;
  20316. operBLL.Add(oper);
  20317. //调用科大讯飞
  20318. #endregion
  20319. trans.Complete();
  20320. }
  20321. Task.Run(() =>
  20322. {
  20323. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  20324. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  20325. {
  20326. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  20327. }
  20328. }).ContinueWith(p =>
  20329. {
  20330. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20331. });
  20332. try
  20333. {
  20334. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  20335. {
  20336. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  20337. }
  20338. }
  20339. catch (Exception ex)
  20340. {
  20341. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20342. }
  20343. return Success("操作成功");
  20344. }
  20345. else
  20346. {
  20347. return Error("已经处理过了");
  20348. }
  20349. }
  20350. else
  20351. {
  20352. return Error("操作失败");
  20353. }
  20354. }
  20355. else
  20356. {
  20357. return Error("权限不足");
  20358. }
  20359. }
  20360. /// <summary>
  20361. /// 结案工单
  20362. /// </summary>
  20363. /// <returns></returns>
  20364. //[Authority]
  20365. public ActionResult ForceFinishWorkOrder()
  20366. {
  20367. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20368. {
  20369. string workorderid = RequestString.GetFormString("workorderid");
  20370. string result = RequestString.GetFormString("result");//处理结果
  20371. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  20372. int issatisfie = RequestString.GetInt("issatisfie", 1);//0不满意 1满意
  20373. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  20374. //是否发送短信0否1是
  20375. int issms = RequestString.GetInt("issms", 0);
  20376. string deptids = RequestString.GetFormString("deptids");//通告单位
  20377. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  20378. //2020-3-4添加通告选项
  20379. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  20380. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  20381. string files = RequestString.GetFormString("files");//附件
  20382. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  20383. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  20384. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20385. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20386. if (modelT_Bus_WorkOrder != null)
  20387. {
  20388. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"
  20389. && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY")
  20390. {
  20391. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  20392. {
  20393. return Error("操作失败");
  20394. }
  20395. }
  20396. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20397. {
  20398. #region 修改工单记录
  20399. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20400. if (!string.IsNullOrEmpty(result))
  20401. {
  20402. keyValuePairs.Add("F_Result", result);
  20403. modelT_Bus_WorkOrder.F_Result = result;
  20404. }
  20405. else
  20406. {
  20407. if (!string.IsNullOrEmpty(finalopinion) &&
  20408. string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  20409. {
  20410. keyValuePairs.Add("F_Result", finalopinion);
  20411. modelT_Bus_WorkOrder.F_Result = finalopinion;
  20412. }
  20413. }
  20414. if (modelT_Bus_WorkOrder.F_DealTime == null)
  20415. keyValuePairs.Add("F_DealTime", DateTime.Now);
  20416. //modelT_Bus_WorkOrder.F_WorkState = 9;
  20417. keyValuePairs.Add("F_WorkState", 9);
  20418. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  20419. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  20420. // modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  20421. keyValuePairs.Add("F_IsClosed", 1);
  20422. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  20423. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  20424. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  20425. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  20426. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  20427. if (!string.IsNullOrEmpty(finalopinion))
  20428. {
  20429. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  20430. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  20431. }
  20432. keyValuePairs.Add("F_IsStandard", isstandard);
  20433. keyValuePairs.Add("F_IsProResult", 1);
  20434. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  20435. keyValuePairs.Add("F_StandardIDS", standardids);
  20436. keyValuePairs.Add("F_HandlingFile", files);
  20437. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  20438. keyValuePairs.Add("F_Note", "");
  20439. if (isnotice == 1)
  20440. {
  20441. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  20442. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  20443. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20444. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  20445. modelT_Bus_NoticeCriticism.F_State = 1;
  20446. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  20447. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  20448. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  20449. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  20450. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  20451. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  20452. keyValuePairs.Add("F_IsNotice", 1);
  20453. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  20454. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  20455. if (modelT_Bus_AssignedInfo != null)
  20456. {
  20457. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  20458. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  20459. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  20460. }
  20461. }
  20462. if (modelT_Bus_AssignedInfo != null)
  20463. {
  20464. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  20465. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  20466. assignBLL.Update(modelT_Bus_AssignedInfo);
  20467. }
  20468. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20469. #endregion
  20470. #region 插入操作记录
  20471. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20472. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20473. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20474. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20475. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  20476. if (isnotice == 1)
  20477. {
  20478. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  20479. string deptname1 = departmentBLL.GetDeptNames(deptids);
  20480. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  20481. }
  20482. if (isstandard == 1)
  20483. {
  20484. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  20485. }
  20486. if (issms > 0)
  20487. {
  20488. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 2501)
  20489. {
  20490. if (modelT_Bus_WorkOrder.F_CusPhone.Length > 11)
  20491. modelT_Bus_WorkOrder.F_CusPhone = modelT_Bus_WorkOrder.F_CusPhone.Substring(1, 11);
  20492. string content = ""; string temp = "680847330371186688";
  20493. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 3 || modelT_Bus_WorkOrder.F_InfoSource == 6)
  20494. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  20495. else
  20496. {
  20497. temp = "681914832337539072";
  20498. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  20499. }
  20500. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",\"]";
  20501. string n = SmsNewController.AddSmS(0, content, modelT_Bus_WorkOrder.F_CusPhone, temp, mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  20502. if (n != "")
  20503. return Error(n);
  20504. //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  20505. //string mag = "";
  20506. //bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "289715", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  20507. }
  20508. }
  20509. oper.F_CreateUser = User.F_UserCode;
  20510. oper.F_CreateTime = DateTime.Now;
  20511. oper.F_IsDelete = 0;
  20512. operBLL.Add(oper);
  20513. var cureuser = User;
  20514. Task.Run(() =>
  20515. {
  20516. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  20517. }).ContinueWith(p =>
  20518. {
  20519. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20520. });
  20521. //if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  20522. //{
  20523. // var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  20524. // if (model != null)
  20525. // {
  20526. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20527. // if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  20528. // {
  20529. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  20530. // {
  20531. // var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0");
  20532. // string Result = "";string FinalOpinion = "";
  20533. // if (modellist!=null && modellist.Count >0)
  20534. // {
  20535. // foreach (var it in modellist)
  20536. // {
  20537. // if (string.IsNullOrEmpty(Result))
  20538. // Result = modelT_Bus_WorkOrder.F_Result;
  20539. // else
  20540. // Result += "; " + it .F_Result;
  20541. // if (!string.IsNullOrEmpty(FinalOpinion))
  20542. // {
  20543. // if (string.IsNullOrEmpty(FinalOpinion))
  20544. // FinalOpinion = it.F_FinalOpinion;
  20545. // else
  20546. // {
  20547. // if (!string .IsNullOrEmpty (it.F_FinalOpinion))
  20548. // FinalOpinion += "; " + it.F_FinalOpinion;
  20549. // }
  20550. // }
  20551. // }
  20552. // keyValuePairs1.Add("F_Result", Result);
  20553. // // model.F_Result = Result;
  20554. // keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  20555. // // model.F_FinalOpinion = FinalOpinion;
  20556. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  20557. // Task.Run(() =>
  20558. // {
  20559. // case_info(model.F_WorkOrderId, "case_finish_info");
  20560. // }).ContinueWith(p => {
  20561. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20562. // });
  20563. // }
  20564. // }
  20565. // }
  20566. // else
  20567. // {
  20568. // if (string.IsNullOrEmpty(model.F_Result))
  20569. // {
  20570. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  20571. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  20572. // }
  20573. // else
  20574. // {
  20575. // keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  20576. // // model.F_Result += ";" + modelT_Bus_WorkOrder.F_Result;
  20577. // }
  20578. // if (!string.IsNullOrEmpty(finalopinion))
  20579. // {
  20580. // if (string.IsNullOrEmpty(model.F_FinalOpinion))
  20581. // {
  20582. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  20583. // // model.F_FinalOpinion = finalopinion;
  20584. // }
  20585. // else
  20586. // {
  20587. // keyValuePairs1.Add("F_FinalOpinion", model.F_FinalOpinion + modelT_Bus_WorkOrder.F_FinalOpinion);
  20588. // // model.F_FinalOpinion += "; " + modelT_Bus_WorkOrder.F_FinalOpinion;
  20589. // }
  20590. // }
  20591. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  20592. // // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20593. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  20594. // {
  20595. // int n = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  20596. // if (n <= 0)
  20597. // {
  20598. // keyValuePairs1.Add("F_IsClosed", 1);
  20599. // // model.F_IsClosed = 1;
  20600. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20601. // // model.F_CloseTime = DateTime.Now;
  20602. // keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.finish);
  20603. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20604. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20605. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  20606. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20607. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  20608. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  20609. // Task.Run(() =>
  20610. // {
  20611. // case_info(model.F_WorkOrderId, "case_finish_info");
  20612. // }).ContinueWith(p => {
  20613. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20614. // });
  20615. // }
  20616. // else
  20617. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  20618. // }
  20619. // else
  20620. // {
  20621. // keyValuePairs1.Add("F_IsClosed", 1);
  20622. // // model.F_IsClosed = 1;
  20623. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20624. // // model.F_CloseTime = DateTime.Now;
  20625. // keyValuePairs1.Add("F_WorkState", 9);
  20626. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20627. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20628. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  20629. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20630. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  20631. // }
  20632. // }
  20633. // }
  20634. //}
  20635. //if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  20636. //{
  20637. // if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  20638. // {
  20639. // var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  20640. // if (orderlist.Length > 0)
  20641. // {
  20642. // foreach (var it in orderlist)
  20643. // {
  20644. // var model = workorderBLL.GetModel(it);
  20645. // if (model != null)
  20646. // {
  20647. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20648. // keyValuePairs1.Add("F_IsClosed", 1);
  20649. // //model.F_IsClosed = 1;
  20650. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20651. // //model.F_CloseTime = DateTime.Now;
  20652. // keyValuePairs1.Add("F_CloseUser", User.F_UserCode);
  20653. // // model.F_CloseUser = User.F_UserCode;
  20654. // keyValuePairs1.Add("F_WorkState", 9);
  20655. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20656. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  20657. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  20658. // if (!string.IsNullOrEmpty(finalopinion))
  20659. // {
  20660. // model.F_FinalOpinion = finalopinion;
  20661. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  20662. // }
  20663. // keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  20664. // // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  20665. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20666. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  20667. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20668. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  20669. // keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20670. // // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  20671. // Task.Run(() =>
  20672. // {
  20673. // case_info(model.F_WorkOrderId, "case_finish_info");
  20674. // }).ContinueWith(p => {
  20675. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20676. // });
  20677. // workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20678. // }
  20679. // }
  20680. // }
  20681. // }
  20682. //}
  20683. #endregion
  20684. trans.Complete();
  20685. }
  20686. Task.Run(() =>
  20687. {
  20688. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  20689. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  20690. {
  20691. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  20692. }
  20693. }).ContinueWith(p =>
  20694. {
  20695. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20696. });
  20697. try
  20698. {
  20699. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  20700. {
  20701. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  20702. }
  20703. }
  20704. catch (Exception ex)
  20705. {
  20706. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20707. }
  20708. return Success("操作成功");
  20709. }
  20710. else
  20711. {
  20712. return Error("操作失败");
  20713. }
  20714. }
  20715. else
  20716. {
  20717. return Error("权限不足");
  20718. }
  20719. }
  20720. /// <summary>
  20721. /// 删除工单
  20722. /// </summary>
  20723. /// <returns></returns>
  20724. public ActionResult DelWorkOrder(string[] ids)
  20725. {
  20726. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD" || User.F_RoleCode == "ZXLD")
  20727. {
  20728. //StringBuilder sb = new StringBuilder();
  20729. foreach (var item in ids)
  20730. {
  20731. //sb.Append("'" + item + "',");
  20732. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  20733. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  20734. {
  20735. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20736. {
  20737. #region 修改工单记录
  20738. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20739. keyValuePairs.Add("F_IsDelete", 1);
  20740. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  20741. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  20742. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  20743. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  20744. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  20745. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20746. #endregion
  20747. #region 插入操作记录
  20748. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20749. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20750. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20751. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20752. oper.F_Message = userinfo + " 删除了工单";
  20753. oper.F_CreateUser = User.F_UserCode;
  20754. oper.F_CreateTime = DateTime.Now;
  20755. oper.F_IsDelete = 0;
  20756. operBLL.Add(oper);
  20757. #endregion
  20758. trans.Complete();
  20759. }
  20760. }
  20761. }
  20762. return Success("删除成功");
  20763. }
  20764. else
  20765. {
  20766. return Error("权限不足");
  20767. }
  20768. }
  20769. /// <summary>
  20770. /// 删除工单
  20771. /// </summary>
  20772. /// <returns></returns>
  20773. public ActionResult Recovery(string[] ids)
  20774. {
  20775. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  20776. {
  20777. //StringBuilder sb = new StringBuilder();
  20778. foreach (var item in ids)
  20779. {
  20780. //sb.Append("'" + item + "',");
  20781. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  20782. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  20783. {
  20784. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20785. {
  20786. #region 修改工单记录
  20787. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20788. keyValuePairs.Add("F_IsDelete", 0);
  20789. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  20790. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  20791. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  20792. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  20793. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  20794. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20795. #endregion
  20796. #region 插入操作记录
  20797. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20798. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20799. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20800. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20801. oper.F_Message = userinfo + " 恢复了删除工单";
  20802. oper.F_CreateUser = User.F_UserCode;
  20803. oper.F_CreateTime = DateTime.Now;
  20804. oper.F_IsDelete = 0;
  20805. operBLL.Add(oper);
  20806. #endregion
  20807. trans.Complete();
  20808. }
  20809. }
  20810. }
  20811. return Success("删除成功");
  20812. }
  20813. else
  20814. {
  20815. return Error("权限不足");
  20816. }
  20817. }
  20818. /// <summary>
  20819. /// 转公开工单
  20820. /// </summary>
  20821. /// <returns></returns>
  20822. //[Authority]
  20823. public ActionResult ReleaseWorkOrder()
  20824. {
  20825. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20826. {
  20827. string workorderid = RequestString.GetFormString("workorderid");
  20828. int isrelease = RequestString.GetInt("isrelease", -1);
  20829. // int isopen = RequestString.GetInt("isopen", 0);
  20830. if (isrelease > -1)
  20831. {
  20832. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20833. if (modelT_Bus_WorkOrder != null)
  20834. {
  20835. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20836. {
  20837. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20838. #region 修改工单记录
  20839. if (isrelease > 0)
  20840. {
  20841. var configly = configBll.GetModelList(" F_ParamCode='Public' ").FirstOrDefault();
  20842. int day = 5;
  20843. if (configly != null)
  20844. {
  20845. try
  20846. {
  20847. day = int.Parse(configly.F_ParamValue);
  20848. }
  20849. catch
  20850. {
  20851. day = 5;
  20852. }
  20853. }
  20854. if (modelT_Bus_WorkOrder.F_WorkState != 6 && modelT_Bus_WorkOrder.F_WorkState != 9)
  20855. {
  20856. if (modelT_Bus_WorkOrder.F_DealTime != null && modelT_Bus_WorkOrder.F_AssignTime != null)
  20857. {
  20858. TimeSpan time = (DateTime)modelT_Bus_WorkOrder.F_DealTime - (DateTime)modelT_Bus_WorkOrder.F_AssignTime;
  20859. if (time.TotalDays > day)
  20860. {
  20861. return Error("公开件的回复时间必须在" + day + "个工作日内");
  20862. }
  20863. }
  20864. }
  20865. keyValuePairs.Add("F_IsOpen", 1);
  20866. modelT_Bus_WorkOrder.F_IsOpen = 1;
  20867. }
  20868. else
  20869. {
  20870. keyValuePairs.Add("F_IsOpen", 0);
  20871. modelT_Bus_WorkOrder.F_IsOpen = 0;
  20872. }
  20873. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20874. #endregion
  20875. #region 插入操作记录
  20876. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20877. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20878. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20879. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20880. if (modelT_Bus_WorkOrder.F_IsOpen == 1)
  20881. oper.F_Message = userinfo + "公开了工单";
  20882. else
  20883. oper.F_Message = userinfo + "撤回了公开工单";
  20884. oper.F_CreateUser = User.F_UserCode;
  20885. oper.F_CreateTime = DateTime.Now;
  20886. oper.F_IsDelete = 0;
  20887. operBLL.Add(oper);
  20888. #endregion
  20889. trans.Complete();
  20890. }
  20891. return Success("操作成功");
  20892. }
  20893. else
  20894. return Error("操作失败");
  20895. }
  20896. else
  20897. return Error("操作失败");
  20898. }
  20899. else
  20900. {
  20901. return Error("权限不足");
  20902. }
  20903. }
  20904. /// <summary>
  20905. /// 转公开媒体
  20906. /// </summary>
  20907. /// <returns></returns>
  20908. //[Authority]
  20909. public ActionResult MediaWorkOrder()
  20910. {
  20911. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20912. {
  20913. string workorderid = RequestString.GetFormString("workorderid");
  20914. int isrelease = RequestString.GetInt("isrelease", -1);
  20915. // int isopen = RequestString.GetInt("isopen", 0);
  20916. if (isrelease > -1)
  20917. {
  20918. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20919. if (modelT_Bus_WorkOrder != null)
  20920. {
  20921. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20922. {
  20923. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20924. #region 修改工单记录
  20925. if (isrelease > 0)
  20926. {
  20927. keyValuePairs.Add("F_IsMedia", 1);
  20928. modelT_Bus_WorkOrder.F_IsMedia = 1;
  20929. }
  20930. else
  20931. {
  20932. keyValuePairs.Add("F_IsMedia", 0);
  20933. modelT_Bus_WorkOrder.F_IsMedia = 0;
  20934. }
  20935. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20936. #endregion
  20937. #region 插入操作记录
  20938. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20939. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20940. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20941. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20942. if (modelT_Bus_WorkOrder.F_IsMedia == 1)
  20943. oper.F_Message = userinfo + "转媒体了工单";
  20944. else
  20945. oper.F_Message = userinfo + "撤回了媒体工单";
  20946. oper.F_CreateUser = User.F_UserCode;
  20947. oper.F_CreateTime = DateTime.Now;
  20948. oper.F_IsDelete = 0;
  20949. operBLL.Add(oper);
  20950. #endregion
  20951. trans.Complete();
  20952. }
  20953. return Success("操作成功");
  20954. }
  20955. else
  20956. return Error("操作失败");
  20957. }
  20958. else
  20959. return Error("操作失败");
  20960. }
  20961. else
  20962. {
  20963. return Error("权限不足");
  20964. }
  20965. }
  20966. /// <summary>
  20967. /// 撤销关联工单
  20968. /// </summary>
  20969. /// <returns></returns>
  20970. //[Authority]
  20971. public ActionResult DisassociateWorkOrder()
  20972. {
  20973. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20974. {
  20975. string workorderid = RequestString.GetFormString("workorderid");
  20976. // string subworkorderid = RequestString.GetFormString("subworkorderid");
  20977. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20978. if (modelT_Bus_WorkOrder == null)
  20979. return Error("工单不存在");
  20980. if (modelT_Bus_WorkOrder.F_IsRelease != 3)
  20981. return Error("只能撤销子工单");
  20982. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20983. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20984. keyValuePairs.Add("F_MainWorkorder", "");
  20985. keyValuePairs.Add("F_IsRelease", null);
  20986. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  20987. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20988. if (!n)
  20989. return Error("撤销子工单失败");
  20990. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20991. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20992. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20993. oper.F_Message = userinfo + "撤销子工单";
  20994. oper.F_CreateUser = User.F_UserCode;
  20995. oper.F_CreateTime = DateTime.Now;
  20996. oper.F_IsDelete = 0;
  20997. operBLL.Add(oper);
  20998. return Success("撤销成功!");
  20999. }
  21000. else
  21001. {
  21002. return Error("权限不足");
  21003. }
  21004. }
  21005. /// <summary>
  21006. /// 关联工单
  21007. /// </summary>
  21008. /// <returns></returns>
  21009. //[Authority]
  21010. public ActionResult RelationWorkOrder()
  21011. {
  21012. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  21013. {
  21014. string workorderid = RequestString.GetFormString("workorderid");
  21015. string subworkorderid = RequestString.GetFormString("subworkorderid");
  21016. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21017. if (string.IsNullOrEmpty(workorderid))
  21018. return Error("请选择主工单");
  21019. if (string.IsNullOrEmpty(subworkorderid))
  21020. return Error("请选择子工单");
  21021. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  21022. if (modelT_Bus_WorkOrder == null)
  21023. return Error("主工单不存在");
  21024. if (modelT_Bus_WorkOrder.F_IsRelease == 3)
  21025. return Error(modelT_Bus_WorkOrder.F_WorkOrderId + "工单已被设置为子工单不能设置为主工单");
  21026. string[] orderlist = subworkorderid.Split(',');
  21027. if (subworkorderid.Contains(workorderid))
  21028. {
  21029. return Error("主工单不能出现在子工单中");
  21030. }
  21031. if (orderlist.Length > 0)
  21032. {
  21033. foreach (var it in orderlist)
  21034. {
  21035. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = workorderBLL.GetModel(it);
  21036. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21037. if (modelT_Bus_WorkOrder1 == null)
  21038. return Error("子工单" + it + "不存在");
  21039. if (modelT_Bus_WorkOrder1.F_IsRelease == 3)
  21040. return Error("" + it + "已被设置为子工单,不能重复设置");
  21041. if (modelT_Bus_WorkOrder1.F_IsRelease == 2)
  21042. return Error("" + it + "已被设置为主工单,不能设置为子工单");
  21043. // modelT_Bus_WorkOrder1.F_MainWorkorder = modelT_Bus_WorkOrder.F_WorkOrderId;
  21044. keyValuePairs.Add("F_MainWorkorder", modelT_Bus_WorkOrder.F_WorkOrderId);
  21045. keyValuePairs.Add("F_IsRelease", 3);
  21046. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  21047. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  21048. if (!n)
  21049. return Error("设置子工单" + it + "失败");
  21050. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21051. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  21052. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  21053. oper.F_Message = userinfo + "设置该工单为子工单,主工单为:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  21054. oper.F_CreateUser = User.F_UserCode;
  21055. oper.F_CreateTime = DateTime.Now;
  21056. oper.F_IsDelete = 0;
  21057. operBLL.Add(oper);
  21058. }
  21059. }
  21060. else
  21061. {
  21062. return Error("请选择子工单");
  21063. }
  21064. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  21065. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  21066. keyValuePairs1.Add("F_SubWorkorder", modelT_Bus_WorkOrder.F_SubWorkorder + "," + subworkorderid);
  21067. else
  21068. keyValuePairs1.Add("F_SubWorkorder", subworkorderid);
  21069. keyValuePairs1.Add("F_IsRelease", 2);
  21070. // modelT_Bus_WorkOrder.F_SubWorkorder = subworkorderid;
  21071. // modelT_Bus_WorkOrder.F_IsRelease = 2;
  21072. Model.T_Bus_Operation ope = new Model.T_Bus_Operation();
  21073. ope.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21074. ope.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21075. ope.F_Message = userinfo + "设置该工单为主工单,子工单为:" + subworkorderid;
  21076. ope.F_CreateUser = User.F_UserCode;
  21077. ope.F_CreateTime = DateTime.Now;
  21078. ope.F_IsDelete = 0;
  21079. operBLL.Add(ope);
  21080. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1))
  21081. return Success("操作成功");
  21082. else
  21083. return Error("操作失败");
  21084. }
  21085. else
  21086. {
  21087. return Error("权限不足");
  21088. }
  21089. }
  21090. /// <summary>
  21091. /// 通告和撤销通告
  21092. /// </summary>
  21093. /// <returns></returns>
  21094. //[Authority]
  21095. public ActionResult NoticeWorkOrder()
  21096. {
  21097. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  21098. {
  21099. string workorderid = RequestString.GetFormString("workorderid");
  21100. int isnotice = RequestString.GetInt("isnotice", -1);
  21101. string deptids = RequestString.GetFormString("deptids");//通告单位
  21102. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  21103. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  21104. if (modelT_Bus_WorkOrder != null)
  21105. {
  21106. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  21107. {
  21108. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21109. {
  21110. #region 修改工单记录
  21111. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21112. keyValuePairs.Add("F_IsNotice", 0);
  21113. // modelT_Bus_WorkOrder.F_IsNotice = 0;
  21114. keyValuePairs.Add("F_NoticeDeptIds", "");
  21115. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  21116. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21117. #endregion
  21118. #region 修改通告记录
  21119. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  21120. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  21121. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  21122. modelT_Bus_NoticeCriticism.F_DeleteUser = User.F_UserCode;
  21123. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  21124. #endregion
  21125. #region 插入操作记录
  21126. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21127. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21128. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')").ToString();
  21129. string deptname1 = departmentBLL.GetDeptNames(modelT_Bus_NoticeCriticism.F_DeptIds.ToString());
  21130. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  21131. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21132. oper.F_Message = userinfo + " 撤销了通告交办单位:" + deptname1;
  21133. oper.F_CreateUser = User.F_UserCode;
  21134. oper.F_CreateTime = DateTime.Now;
  21135. oper.F_IsDelete = 0;
  21136. operBLL.Add(oper);
  21137. #endregion
  21138. trans.Complete();
  21139. }
  21140. return Success("操作成功");
  21141. }
  21142. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  21143. {
  21144. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21145. {
  21146. #region 修改工单记录
  21147. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21148. keyValuePairs.Add("F_IsNotice", 1);
  21149. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  21150. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  21151. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  21152. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21153. #endregion
  21154. #region 新增通告记录
  21155. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  21156. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  21157. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21158. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  21159. modelT_Bus_NoticeCriticism.F_State = 1;
  21160. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  21161. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  21162. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  21163. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  21164. #endregion
  21165. #region 插入操作记录
  21166. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21167. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21168. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  21169. string deptname1 = departmentBLL.GetDeptNames(deptids);
  21170. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21171. oper.F_Message = userinfo + " 通告了交办单位:" + deptname1;
  21172. oper.F_CreateUser = User.F_UserCode;
  21173. oper.F_CreateTime = DateTime.Now;
  21174. oper.F_IsDelete = 0;
  21175. operBLL.Add(oper);
  21176. #endregion
  21177. trans.Complete();
  21178. }
  21179. return Success("操作成功");
  21180. }
  21181. else
  21182. {
  21183. return Error("操作失败");
  21184. }
  21185. }
  21186. else
  21187. {
  21188. return Error("操作失败");
  21189. }
  21190. }
  21191. else
  21192. {
  21193. return Error("权限不足");
  21194. }
  21195. }
  21196. /// <summary>
  21197. /// 市民催单
  21198. /// </summary>
  21199. /// <returns></returns>
  21200. //[Authority]
  21201. public ActionResult AdditionalWorkOrder()
  21202. {
  21203. string workorderid = RequestString.GetFormString("workorderid");
  21204. string title = RequestString.GetFormString("title");
  21205. string content = RequestString.GetFormString("content");
  21206. string files = RequestString.GetFormString("files");
  21207. string callid = RequestString.GetFormString("callid");
  21208. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  21209. if (modelT_Bus_WorkOrder != null)
  21210. {
  21211. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21212. {
  21213. #region 插入附加记录
  21214. //批示记录
  21215. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  21216. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  21217. model_T_Bus_Additional.F_Title = title;
  21218. model_T_Bus_Additional.F_Content = content;
  21219. if (!string.IsNullOrEmpty(callid))
  21220. {
  21221. model_T_Bus_Additional.F_CallId = callid;
  21222. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  21223. if (rd != null)
  21224. {
  21225. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  21226. }
  21227. }
  21228. model_T_Bus_Additional.F_File = files;//附件
  21229. model_T_Bus_Additional.F_CreateUser = User.F_UserCode;//呈批人
  21230. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  21231. model_T_Bus_Additional.F_IsDelete = 0;
  21232. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  21233. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  21234. #endregion
  21235. #region 插入操作记录
  21236. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21237. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21238. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21239. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21240. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  21241. oper.F_CreateUser = User.F_UserCode;
  21242. oper.F_CreateTime = DateTime.Now;
  21243. oper.F_IsDelete = 0;
  21244. operBLL.Add(oper);
  21245. #endregion
  21246. #region 根据状态不同给出提醒
  21247. var sqlusers = " F_DeleteFlag=0 ";
  21248. #region 获取被提醒人
  21249. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  21250. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  21251. sqlusers += " and F_UserCode='" + modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  21252. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  21253. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  21254. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  21255. {
  21256. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  21257. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  21258. }
  21259. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  21260. {
  21261. if (modelT_Bus_AssignedInfo != null)
  21262. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  21263. }
  21264. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  21265. {
  21266. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  21267. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  21268. }
  21269. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  21270. {
  21271. if (modelT_Bus_AssignedInfo != null)
  21272. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  21273. }
  21274. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  21275. {
  21276. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  21277. }
  21278. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  21279. {
  21280. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  21281. }
  21282. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  21283. {
  21284. if (modelT_Bus_AssignedInfo != null)
  21285. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  21286. }
  21287. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  21288. {
  21289. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  21290. }
  21291. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  21292. {
  21293. if (modelT_Bus_AssignedInfo != null)
  21294. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  21295. }
  21296. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  21297. {
  21298. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  21299. }
  21300. #endregion
  21301. //var userlists = userBLL.GetModelListNoCache(sqlusers);
  21302. ////推送消息表
  21303. //foreach (var u in userlists)
  21304. //{
  21305. // msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  21306. //}
  21307. #endregion
  21308. trans.Complete();
  21309. }
  21310. return Success("操作成功");
  21311. }
  21312. else
  21313. {
  21314. return Error("操作失败");
  21315. }
  21316. }
  21317. #region 语音附件其他
  21318. /// <summary>
  21319. /// 验证当前单位是否交办单位
  21320. /// </summary>
  21321. /// <param name="modelT_Bus_AssignedInfo"></param>
  21322. /// <param name="deptid"></param>
  21323. /// <returns></returns>
  21324. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  21325. {
  21326. int type = 0;
  21327. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  21328. {
  21329. type = 1;//主办
  21330. }
  21331. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  21332. {
  21333. type = 2;//协办
  21334. }
  21335. return type;
  21336. }
  21337. /// <summary>
  21338. /// 获取留言路径
  21339. /// </summary>
  21340. /// <param name="lid">留言id</param>
  21341. /// <param name="prefix">前缀</param>
  21342. /// <returns></returns>
  21343. public string GetLeavePath(string lid, string prefix)
  21344. {
  21345. string path = string.Empty;
  21346. try
  21347. {
  21348. var liuyan = new BLL.T_Call_LeaveRecord().GetModel(int.Parse(lid));
  21349. if (liuyan != null)
  21350. {
  21351. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  21352. {
  21353. path = prefix + liuyan.F_RecFileUrl;
  21354. }
  21355. }
  21356. }
  21357. catch
  21358. {
  21359. }
  21360. return path;
  21361. }
  21362. /// <summary>
  21363. /// 获取通话录音路径
  21364. /// </summary>
  21365. /// <param name="cid">通话id</param>
  21366. /// <param name="prefix">前缀</param>
  21367. /// <returns></returns>
  21368. public string GetCallPath(string cid, string prefix)
  21369. {
  21370. string path = string.Empty;
  21371. try
  21372. {
  21373. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(cid));
  21374. if (luyin != null)
  21375. {
  21376. if (!string.IsNullOrEmpty(luyin.FilePath))
  21377. {
  21378. var ym = prefix;
  21379. ym = ym.Substring(0, ym.Length - 1);
  21380. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  21381. path = ym + lujing;
  21382. }
  21383. }
  21384. }
  21385. catch
  21386. {
  21387. }
  21388. return path;
  21389. }
  21390. public ActionResult Uploads(string ids)
  21391. {
  21392. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  21393. string prefix = configfj.F_ParamValue;
  21394. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  21395. foreach (DataRow dr in dt.Rows)
  21396. {
  21397. if (dr["F_UserCode"].ToString() == "jianhang")
  21398. {
  21399. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  21400. {
  21401. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21402. }
  21403. else
  21404. {
  21405. string url = Upload("http://172.16.0.10/" + dr["F_FileUrl"].ToString(), dr["F_FileName"].ToString(), "/" + dr["F_FileUrl"].ToString().Replace(dr["F_FileName"].ToString(), ""));
  21406. if (url == "1")
  21407. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21408. else
  21409. dr["F_FileUrl"] = url;
  21410. }
  21411. }
  21412. else
  21413. {
  21414. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21415. }
  21416. }
  21417. return Success("成功");
  21418. }
  21419. public string Upload(string pathUrl, string newFileName, string path)
  21420. {
  21421. //文件下载地址
  21422. try
  21423. {
  21424. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pathUrl);
  21425. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  21426. Stream responseStream = response.GetResponseStream();
  21427. string Currentpath = "E:/web/API" + path;
  21428. // 如果不存在就创建file文件夹
  21429. if (!Directory.Exists(Currentpath))
  21430. {
  21431. if (Currentpath != null) Directory.CreateDirectory(Currentpath);
  21432. }
  21433. Stream stream = new FileStream(Currentpath + newFileName, FileMode.Create);
  21434. byte[] bArr = new byte[1024];
  21435. int size = responseStream.Read(bArr, 0, bArr.Length);
  21436. while (size > 0)
  21437. {
  21438. stream.Write(bArr, 0, size);
  21439. size = responseStream.Read(bArr, 0, bArr.Length);
  21440. }
  21441. stream.Close();
  21442. responseStream.Close();
  21443. return "1";
  21444. }
  21445. catch (Exception e)
  21446. {
  21447. return e.Message;
  21448. }
  21449. }
  21450. /// <summary>
  21451. /// 获取附件数据
  21452. /// </summary>
  21453. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  21454. /// <param name="prefix">前缀</param>
  21455. /// <returns></returns>
  21456. public DataTable GetFileData(string ids, string prefix)
  21457. {
  21458. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  21459. foreach (DataRow dr in dt.Rows)
  21460. {
  21461. if (dr["F_UserCode"].ToString() == "省12345平台" || dr["F_UserCode"].ToString() == "shengpingtai")
  21462. {
  21463. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  21464. {
  21465. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21466. }
  21467. else
  21468. {
  21469. string url = Upload("http://119.0.11.6:8002/" + dr["F_FileUrl"].ToString(), dr["F_FileName"].ToString(), "/" + dr["F_FileUrl"].ToString().Replace(dr["F_FileName"].ToString(), ""));
  21470. if (url == "1")
  21471. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21472. else
  21473. {
  21474. WebClient web = new WebClient();
  21475. web.Encoding = Encoding.UTF8;
  21476. string Dataurl = web.DownloadString("http://119.0.11.6:8002/" + "Affairs/SetFileData" + "?ids=" + ids);
  21477. string url1 = Upload("http://119.0.11.6:8002/" + dr["F_FileUrl"].ToString(), dr["F_FileName"].ToString(), "/" + dr["F_FileUrl"].ToString().Replace(dr["F_FileName"].ToString(), ""));
  21478. if (url1 == "1")
  21479. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21480. }
  21481. }
  21482. }
  21483. else
  21484. {
  21485. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  21486. }
  21487. }
  21488. return dt;
  21489. }
  21490. /// <summary>
  21491. /// 绑定追问回复附件信息
  21492. /// </summary>
  21493. /// <param name="dt"></param>
  21494. /// <param name="prefix"></param>
  21495. /// <returns></returns>
  21496. public DataTable BindFileDatas(DataTable dt, string prefix)
  21497. {
  21498. dt.Columns.Add("File", typeof(object));
  21499. foreach (DataRow dr in dt.Rows)
  21500. {
  21501. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  21502. {
  21503. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  21504. }
  21505. }
  21506. dt.Columns.Add("Files", typeof(object));
  21507. foreach (DataRow dr in dt.Rows)
  21508. {
  21509. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  21510. {
  21511. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  21512. }
  21513. }
  21514. return dt;
  21515. }
  21516. /// <summary>
  21517. /// 绑定附件信息
  21518. /// </summary>
  21519. /// <param name="dt"></param>
  21520. /// <param name="prefix"></param>
  21521. /// <returns></returns>
  21522. public DataTable BindFileData(DataTable dt, string prefix)
  21523. {
  21524. dt.Columns.Add("File", typeof(object));
  21525. foreach (DataRow dr in dt.Rows)
  21526. {
  21527. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  21528. {
  21529. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  21530. }
  21531. }
  21532. return dt;
  21533. }
  21534. /// <summary>
  21535. /// 绑定附件信息
  21536. /// </summary>
  21537. /// <param name="dt"></param>
  21538. /// <param name="prefix"></param>
  21539. /// <returns></returns>
  21540. public DataTable BindHandlingFileFileData(DataTable dt, string prefix)
  21541. {
  21542. dt.Columns.Add("HandlingFile", typeof(object));
  21543. foreach (DataRow dr in dt.Rows)
  21544. {
  21545. if (dr["F_HandlingFile"] != null && dr["F_HandlingFile"].ToString() != "")
  21546. {
  21547. dr["HandlingFile"] = GetFileData(dr["F_HandlingFile"].ToString(), prefix);
  21548. }
  21549. }
  21550. return dt;
  21551. }
  21552. #endregion
  21553. #region 修改工单 by admin
  21554. /// <summary>
  21555. /// 获取详情
  21556. /// </summary>
  21557. /// <returns></returns>
  21558. //[Authority]
  21559. public ActionResult GetInfoByAdmin(int id, int type)
  21560. {
  21561. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21562. {
  21563. //string sql = "select * from ";
  21564. string table = string.Empty;
  21565. switch (type)
  21566. {
  21567. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  21568. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  21569. case 3: table = "T_Bus_Feedback"; break;//办理信息
  21570. case 4: table = "T_Bus_RemindRecord"; break;//督办
  21571. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  21572. case 6: table = "T_Bus_VisitResult"; break;//回访
  21573. }
  21574. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  21575. var dt = DbHelperSQL.Query(sql).Tables[0];
  21576. return Success("操作成功", dt);
  21577. }
  21578. else
  21579. {
  21580. return Error("权限不足");
  21581. }
  21582. }
  21583. /// <summary>
  21584. /// 修改工单信息
  21585. /// </summary>
  21586. /// <returns></returns>
  21587. //[Authority]
  21588. public ActionResult EditWorkOrderByAdmin()
  21589. {
  21590. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21591. {
  21592. string workorderid = RequestString.GetFormString("workorderid");
  21593. int source = RequestString.GetInt("source", 0);
  21594. string cusname = RequestString.GetFormString("cusname");
  21595. string cussex = RequestString.GetFormString("cussex");
  21596. string cusphone = RequestString.GetFormString("cusphone");
  21597. string cusaddress = RequestString.GetFormString("cusaddress");
  21598. string email = RequestString.GetFormString("email");
  21599. string zipcode = RequestString.GetFormString("zipcode");
  21600. string conname = RequestString.GetFormString("conname");
  21601. string conphone = RequestString.GetFormString("conphone");
  21602. string title = RequestString.GetFormString("title");
  21603. string content = RequestString.GetFormString("content");
  21604. string files = RequestString.GetFormString("files");
  21605. int sourcearea = RequestString.GetInt("sourcearea", 0);
  21606. string sourceaddress = RequestString.GetFormString("sourceaddress");
  21607. string keys = RequestString.GetFormString("keys");
  21608. string splituser = RequestString.GetFormString("splituser");
  21609. int type = RequestString.GetInt("type", 0);
  21610. int bigtype = RequestString.GetInt("bigtype", 0);
  21611. int smalltype = RequestString.GetInt("smalltype", 0);
  21612. int isprotect = RequestString.GetInt("isprotect", 0);
  21613. int level = RequestString.GetInt("level", 0);
  21614. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  21615. if (modelT_Bus_WorkOrder != null)
  21616. {
  21617. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21618. {
  21619. #region 保存工单信息
  21620. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21621. keyValuePairs.Add("F_InfoSource", source);
  21622. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  21623. keyValuePairs.Add("F_InfoType", type);
  21624. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  21625. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  21626. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  21627. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  21628. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  21629. keyValuePairs.Add("F_SourceArea", sourcearea);
  21630. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  21631. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  21632. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  21633. keyValuePairs.Add("F_CusName", cusname);
  21634. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  21635. keyValuePairs.Add("F_CusSex", cussex);
  21636. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  21637. keyValuePairs.Add("F_CusPhone", cusphone);
  21638. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  21639. keyValuePairs.Add("F_CusAddress", cusaddress);
  21640. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  21641. keyValuePairs.Add("F_ZipCode", zipcode);
  21642. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  21643. keyValuePairs.Add("F_ConName", conname);
  21644. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  21645. keyValuePairs.Add("F_ConPhone", conphone);
  21646. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  21647. keyValuePairs.Add("F_Email", email);
  21648. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  21649. keyValuePairs.Add("F_ComTitle", title);
  21650. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  21651. keyValuePairs.Add("F_ComContent", content);
  21652. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  21653. keyValuePairs.Add("F_File", files);
  21654. // modelT_Bus_WorkOrder.F_File = files;//附件
  21655. keyValuePairs.Add("F_File", isprotect);
  21656. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  21657. // modelT_Bus_WorkOrder.F_Content = workcontent;
  21658. keyValuePairs.Add("F_Key", keys);
  21659. // modelT_Bus_WorkOrder.F_Key = keys;
  21660. keyValuePairs.Add("F_Level", level);
  21661. // modelT_Bus_WorkOrder.F_Level = level;
  21662. keyValuePairs.Add("F_ToBereply", 0);
  21663. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  21664. //是否直办(即时答复)0:,否1: 是
  21665. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21666. #endregion
  21667. #region 插入操作记录
  21668. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21669. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21670. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21671. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  21672. oper.F_File = modelT_Bus_WorkOrder.F_File;
  21673. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21674. oper.F_Message = userinfo + " 修改了工单基本信息";
  21675. oper.F_CreateUser = User.F_UserCode;
  21676. oper.F_CreateTime = DateTime.Now;
  21677. oper.F_IsDelete = 0;
  21678. operBLL.Add(oper);
  21679. #endregion
  21680. trans.Complete();
  21681. }
  21682. return Success("操作成功");
  21683. }
  21684. else
  21685. {
  21686. return Error("操作失败");
  21687. }
  21688. }
  21689. else
  21690. {
  21691. return Success("权限不足");
  21692. }
  21693. }
  21694. /// <summary>
  21695. /// 修改批示信息
  21696. /// </summary>
  21697. /// <returns></returns>
  21698. //[Authority]
  21699. public ActionResult EditSuperInfoByAdmin()
  21700. {
  21701. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21702. {
  21703. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  21704. string superuser = RequestString.GetFormString("superuser");
  21705. string superopinion = RequestString.GetFormString("superopinion");
  21706. string files = RequestString.GetFormString("files");
  21707. int id = RequestString.GetInt("id", 0);
  21708. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  21709. if (model_T_Bus_SubmitSuper != null)
  21710. {
  21711. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21712. {
  21713. #region 保存批示信息
  21714. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  21715. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  21716. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  21717. if (!string.IsNullOrEmpty(files))
  21718. model_T_Bus_SubmitSuper.F_File = files;//附件
  21719. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  21720. #endregion
  21721. #region 插入操作记录
  21722. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21723. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  21724. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  21725. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21726. oper.F_Message = userinfo + " 修改了工单批示信息";
  21727. oper.F_CreateUser = User.F_UserCode;
  21728. oper.F_CreateTime = DateTime.Now;
  21729. oper.F_IsDelete = 0;
  21730. operBLL.Add(oper);
  21731. #endregion
  21732. trans.Complete();
  21733. }
  21734. return Success("操作成功");
  21735. }
  21736. else
  21737. {
  21738. return Error("操作失败");
  21739. }
  21740. }
  21741. else
  21742. {
  21743. return Error("权限不足");
  21744. }
  21745. }
  21746. /// <summary>
  21747. /// 修改交办信息
  21748. /// </summary>
  21749. /// <returns></returns>
  21750. //[Authority]
  21751. public ActionResult EditAssignInfoByAdmin()
  21752. {
  21753. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21754. {
  21755. int assignid = RequestString.GetInt("id", 0);
  21756. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  21757. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  21758. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  21759. string assignedopinion = RequestString.GetFormString("assignedopinion");
  21760. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  21761. if (modelT_Bus_AssignedInfo != null)
  21762. {
  21763. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21764. {
  21765. #region 保存交办信息
  21766. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  21767. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  21768. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  21769. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  21770. assignBLL.Update(modelT_Bus_AssignedInfo);
  21771. #endregion
  21772. #region 插入操作记录
  21773. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21774. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  21775. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  21776. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21777. oper.F_Message = userinfo + " 修改了工单交办信息";
  21778. oper.F_CreateUser = User.F_UserCode;
  21779. oper.F_CreateTime = DateTime.Now;
  21780. oper.F_IsDelete = 0;
  21781. operBLL.Add(oper);
  21782. #endregion
  21783. trans.Complete();
  21784. }
  21785. return Success("操作成功");
  21786. }
  21787. else
  21788. {
  21789. return Error("操作失败");
  21790. }
  21791. }
  21792. else
  21793. {
  21794. return Error("权限不足");
  21795. }
  21796. }
  21797. /// <summary>
  21798. /// 修改办理信息
  21799. /// </summary>
  21800. /// <returns></returns>
  21801. //[Authority]
  21802. public ActionResult EditFeedBackInfoByAdmin()
  21803. {
  21804. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21805. {
  21806. string dealman = RequestString.GetFormString("dealman");
  21807. string result = RequestString.GetFormString("result");
  21808. string files = RequestString.GetFormString("files");
  21809. int feedbackid = RequestString.GetInt("id", 0);
  21810. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  21811. if (model_T_Bus_Feedback != null)
  21812. {
  21813. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21814. {
  21815. #region 保存办理信息
  21816. model_T_Bus_Feedback.F_DealUser = dealman;
  21817. model_T_Bus_Feedback.F_Result = result;//反馈内容
  21818. model_T_Bus_Feedback.F_File = files;
  21819. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  21820. #endregion
  21821. #region 保存工单信息
  21822. int maxid = Int32.Parse(DbHelperSQL.GetSingle("select max(F_Id) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + model_T_Bus_Feedback.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 ").ToString());
  21823. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  21824. if (maxid == assign.F_Id)
  21825. {
  21826. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  21827. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21828. keyValuePairs.Add("F_Result", result);
  21829. workorderBLL.UpdateWorkOrder(order.F_Id, keyValuePairs);
  21830. }
  21831. #endregion
  21832. #region 插入操作记录
  21833. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21834. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  21835. oper.F_File = model_T_Bus_Feedback.F_File;
  21836. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21837. oper.F_Message = userinfo + " 修改了工单办理信息";
  21838. oper.F_CreateUser = User.F_UserCode;
  21839. oper.F_CreateTime = DateTime.Now;
  21840. oper.F_IsDelete = 0;
  21841. operBLL.Add(oper);
  21842. #endregion
  21843. trans.Complete();
  21844. }
  21845. return Success("操作成功");
  21846. }
  21847. else
  21848. {
  21849. return Error("操作失败");
  21850. }
  21851. }
  21852. else
  21853. {
  21854. return Error("权限不足");
  21855. }
  21856. }
  21857. /// <summary>
  21858. /// 修改回访信息
  21859. /// </summary>
  21860. /// <returns></returns>
  21861. //[Authority]
  21862. public ActionResult EditVisitInfoByAdmin()
  21863. {
  21864. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21865. {
  21866. string visituser = RequestString.GetFormString("visituser");//回访人
  21867. int type = RequestString.GetInt("type", 0);//回访方式
  21868. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  21869. int visitid = RequestString.GetInt("id", 0);
  21870. string result = RequestString.GetFormString("result");//回访情况
  21871. string guid = RequestString.GetFormString("guid");
  21872. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  21873. if (modelT_Bus_VisitResult != null)
  21874. {
  21875. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21876. {
  21877. #region 保存回访信息
  21878. modelT_Bus_VisitResult.F_VisitUser = visituser;
  21879. modelT_Bus_VisitResult.F_Type = type;
  21880. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  21881. modelT_Bus_VisitResult.F_Result = result;
  21882. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  21883. //保存回访记录
  21884. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  21885. #endregion
  21886. #region 插入操作记录
  21887. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21888. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  21889. oper.F_File = modelT_Bus_VisitResult.F_File;
  21890. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21891. oper.F_Message = userinfo + " 修改了工单回访信息";
  21892. oper.F_CreateUser = User.F_UserCode;
  21893. oper.F_CreateTime = DateTime.Now;
  21894. oper.F_IsDelete = 0;
  21895. operBLL.Add(oper);
  21896. #endregion
  21897. trans.Complete();
  21898. }
  21899. return Success("操作成功");
  21900. }
  21901. else
  21902. {
  21903. return Error("操作失败");
  21904. }
  21905. }
  21906. else
  21907. {
  21908. return Error("权限不足");
  21909. }
  21910. }
  21911. /// <summary>
  21912. /// 修改退回审核信息
  21913. /// </summary>
  21914. /// <returns></returns>
  21915. //[Authority]
  21916. public ActionResult EditAuditRebackByAdmin()
  21917. {
  21918. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21919. {
  21920. string reason = RequestString.GetFormString("reason");
  21921. int rebackid = RequestString.GetInt("id", 0);
  21922. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  21923. if (modelT_Bus_Feedback != null)
  21924. {
  21925. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21926. {
  21927. #region 保存反馈信息
  21928. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  21929. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  21930. #endregion
  21931. #region 插入操作记录
  21932. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21933. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  21934. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21935. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  21936. oper.F_CreateUser = User.F_UserCode;
  21937. oper.F_CreateTime = DateTime.Now;
  21938. oper.F_IsDelete = 0;
  21939. operBLL.Add(oper);
  21940. #endregion
  21941. trans.Complete();
  21942. }
  21943. return Success("操作成功");
  21944. }
  21945. else
  21946. {
  21947. return Error("操作失败");
  21948. }
  21949. }
  21950. else
  21951. {
  21952. return Error("权限不足");
  21953. }
  21954. }
  21955. /// <summary>
  21956. /// 修改延时审核信息
  21957. /// </summary>
  21958. /// <returns></returns>
  21959. //[Authority]
  21960. public ActionResult EditAuditDelayByAdmin()
  21961. {
  21962. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  21963. {
  21964. string reason = RequestString.GetFormString("reason");
  21965. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  21966. int delayid = RequestString.GetInt("id", 0);
  21967. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  21968. if (modelT_Bus_DelayTime != null)
  21969. {
  21970. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  21971. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21972. {
  21973. #region 保存延时审核信息
  21974. modelT_Bus_DelayTime.F_RefuseReason = reason;
  21975. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  21976. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  21977. #endregion
  21978. #region 插入操作记录
  21979. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21980. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  21981. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21982. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  21983. oper.F_CreateUser = User.F_UserCode;
  21984. oper.F_CreateTime = DateTime.Now;
  21985. oper.F_IsDelete = 0;
  21986. operBLL.Add(oper);
  21987. #endregion
  21988. trans.Complete();
  21989. }
  21990. return Success("操作成功");
  21991. }
  21992. else
  21993. {
  21994. return Error("操作失败");
  21995. }
  21996. }
  21997. else
  21998. {
  21999. return Error("权限不足");
  22000. }
  22001. }
  22002. #endregion
  22003. #region 县级对接
  22004. /// <summary>
  22005. /// 获取网点列表
  22006. /// </summary>
  22007. /// <param name="code"></param>
  22008. /// <param name="name"></param>
  22009. /// <returns></returns>
  22010. //[Authority]
  22011. public ActionResult GetCityList(string code, string name)
  22012. {
  22013. string signcode = Configs.GetValue("CityOutSignCode");
  22014. string url = Configs.GetValue("CityOutUrl");
  22015. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  22016. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  22017. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  22018. return Content(result);
  22019. }
  22020. /// <summary>
  22021. /// 获取网点详情
  22022. /// </summary>
  22023. /// <param name="code"></param>
  22024. /// <returns></returns>
  22025. //[Authority]
  22026. public ActionResult GetCityDetail(string code)
  22027. {
  22028. string signcode = Configs.GetValue("CityOutSignCode");
  22029. string url = Configs.GetValue("CityOutUrl");
  22030. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  22031. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  22032. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  22033. return Content(result);
  22034. }
  22035. /// <summary>
  22036. /// 转派工单到县级
  22037. /// </summary>
  22038. /// <returns></returns>
  22039. //[Authority]
  22040. public ActionResult TurnWorkOrder()
  22041. {
  22042. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  22043. {
  22044. string workorderid = RequestString.GetFormString("workorderid");
  22045. string citycode = RequestString.GetFormString("citycode");
  22046. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22047. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  22048. {
  22049. string code = Configs.GetValue("CityCode");
  22050. var branchmodel = GetCityInfo(code);
  22051. var citymodel = GetCityInfo(citycode);
  22052. if (branchmodel != null && citymodel != null)
  22053. {
  22054. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22055. {
  22056. string cityworkorderid = string.Empty;
  22057. #region 转单
  22058. string turnsigncode = citymodel["F_Sign"].ToString();
  22059. string turnurl = citymodel["F_Url"].ToString();
  22060. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  22061. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  22062. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  22063. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  22064. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  22065. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  22066. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  22067. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  22068. var turnresult = turnresultstr.ToJObject();
  22069. if (turnresult["state"].ToString() != "success")
  22070. {
  22071. return Content(turnresultstr);
  22072. }
  22073. else
  22074. {
  22075. cityworkorderid = turnresult["data"].ToString();
  22076. }
  22077. #endregion
  22078. #region 保存工单信息
  22079. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  22080. modelT_Bus_WorkOrder.F_IsClosed = 1;
  22081. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  22082. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  22083. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  22084. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  22085. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  22086. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  22087. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  22088. workorderBLL.Update(modelT_Bus_WorkOrder);
  22089. #endregion
  22090. #region 删除草稿信息
  22091. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  22092. foreach (var cg in cglist)
  22093. {
  22094. cg.F_IsDelete = 1;
  22095. cg.F_DeleteUser = User.F_UserCode;
  22096. cg.F_DeleteTime = DateTime.Now;
  22097. assignBLL.Update(cg);
  22098. }
  22099. #endregion
  22100. #region 新增转单记录
  22101. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  22102. modelT_Bus_CityTurn.F_CityCode = citycode;
  22103. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  22104. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  22105. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22106. modelT_Bus_CityTurn.F_Type = 2;
  22107. modelT_Bus_CityTurn.F_State = 1;
  22108. modelT_Bus_CityTurn.F_IsSure = 0;
  22109. modelT_Bus_CityTurn.F_IsDelete = 0;
  22110. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  22111. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  22112. #endregion
  22113. #region 插入操作记录
  22114. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22115. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22116. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22117. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22118. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  22119. oper.F_CreateUser = User.F_UserCode;
  22120. oper.F_CreateTime = DateTime.Now;
  22121. oper.F_IsDelete = 0;
  22122. operBLL.Add(oper);
  22123. #endregion
  22124. trans.Complete();
  22125. }
  22126. return Success("操作成功");
  22127. }
  22128. else
  22129. {
  22130. return Error("操作失败");
  22131. }
  22132. }
  22133. else
  22134. {
  22135. return Error("操作失败");
  22136. }
  22137. }
  22138. else
  22139. {
  22140. return Success("权限不足");
  22141. }
  22142. }
  22143. /// <summary>
  22144. /// 获取当前网点信息
  22145. /// </summary>
  22146. /// <returns></returns>
  22147. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  22148. {
  22149. string signcode = Configs.GetValue("CityOutSignCode");
  22150. string url = Configs.GetValue("CityOutUrl");
  22151. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  22152. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  22153. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  22154. if (result["state"].ToString() == "success")
  22155. {
  22156. return result["data"].ToString().ToJObject();
  22157. }
  22158. else
  22159. {
  22160. return null;
  22161. }
  22162. }
  22163. #endregion
  22164. #region 私有方法
  22165. /// <summary>
  22166. /// 添加操作日志
  22167. /// </summary>
  22168. /// <param name="workorderid"></param>
  22169. /// <param name="workstate"></param>
  22170. /// <param name="msgs"></param>
  22171. /// <param name="usercode"></param>
  22172. private void addoptlog(string workorderid, int? workstate, int assid, string msgs, string usercode, int type = 0, int isjb = 0)
  22173. {
  22174. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22175. oper.F_WorkOrderId = workorderid;
  22176. oper.F_State = workstate;
  22177. oper.F_AssignedId = assid;
  22178. oper.F_Message = msgs;
  22179. oper.F_CreateUser = usercode;
  22180. oper.F_CreateTime = DateTime.Now;
  22181. oper.F_IsDelete = 0;
  22182. oper.F_Type = type;
  22183. int n = operBLL.Add(oper);
  22184. if (isjb == 1)
  22185. {
  22186. Task.Run(() =>
  22187. {
  22188. process_info(n, "case_process_info", "交办工单");
  22189. }).ContinueWith(p =>
  22190. {
  22191. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22192. });
  22193. }
  22194. }
  22195. #endregion
  22196. /// <summary>
  22197. /// 二级单位下工单数量
  22198. /// </summary>
  22199. /// <returns></returns>
  22200. //[Authority]
  22201. public ActionResult GetDWCount()
  22202. {
  22203. Dictionary<string, string> paras = new Dictionary<string, string>();
  22204. paras.Add("@deptid", User.F_DeptId.ToString());
  22205. paras.Add("@usercode", User.F_UserCode.ToString());
  22206. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  22207. {
  22208. var obj = DbHelperSQL.RunProcedure("P_DWCount", paras, "DWCount");
  22209. return Success("成功", obj);
  22210. }
  22211. else
  22212. {
  22213. var obj = DbHelperSQL.RunProcedure("P_GLCount", paras, "DWCount");
  22214. return Success("成功", obj);
  22215. }
  22216. }
  22217. #region 省平台对接
  22218. string FrontUrl = Configs.GetValue("FrontUrl");
  22219. // string url = "http://localhost:63660/Affairs/";
  22220. int Affairs = int.Parse(Configs.GetValue("Affairs"));
  22221. public string case_info(string workorderid, string parameter)
  22222. {
  22223. if (Affairs > 0)
  22224. {
  22225. WebClient web = new WebClient();
  22226. web.Encoding = Encoding.UTF8;
  22227. string Dataurl = web.DownloadString(FrontUrl+"/Affairs/" + parameter + "?workorderid=" + workorderid);
  22228. }
  22229. return "";
  22230. }
  22231. public void process_info(int id, string parameter, string title)
  22232. {
  22233. if (Affairs > 0)
  22234. {
  22235. WebClient web = new WebClient();
  22236. web.Encoding = Encoding.UTF8;
  22237. string Dataurl = web.DownloadString(FrontUrl + "/Affairs/" + parameter + "?id=" + id + "&title=" + title);
  22238. }
  22239. }
  22240. public void material_info(string WorkOrderId, string file, int id, string type)
  22241. {
  22242. if (Affairs > 0)
  22243. {
  22244. WebClient web = new WebClient();
  22245. web.Encoding = Encoding.UTF8;
  22246. string Dataurl = web.DownloadString(FrontUrl + "/Affairs/" + "case_material_info" + "?WorkOrderId=" + WorkOrderId + "&file=" + file + "&id=" + id + "&type=" + type);
  22247. }
  22248. }
  22249. #endregion
  22250. public ActionResult ReleaseOnLineWorkOrder()
  22251. {
  22252. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  22253. {
  22254. int userId = User.F_UserId;
  22255. if (userId != 0)
  22256. {
  22257. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  22258. if (userModel != null)
  22259. {
  22260. string workorderid = RequestString.GetFormString("workorderid");
  22261. string title = RequestString.GetFormString("title");
  22262. int islimit = RequestString.GetInt("islimit", 1);
  22263. string limittime = RequestString.GetFormString("limittime");
  22264. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  22265. if (modelT_Bus_WorkOrder != null)
  22266. {
  22267. Model.T_Web_WorkRelease WorkReleaseInfo = new BLL.T_Web_WorkRelease().GetModel(workorderid);
  22268. if (WorkReleaseInfo == null)
  22269. {
  22270. WorkReleaseInfo = new Model.T_Web_WorkRelease();
  22271. WorkReleaseInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22272. WorkReleaseInfo.F_Content = modelT_Bus_WorkOrder.F_ComContent;
  22273. WorkReleaseInfo.F_Result = modelT_Bus_WorkOrder.F_Result;
  22274. WorkReleaseInfo.F_WorkSort = modelT_Bus_WorkOrder.F_InfoType;
  22275. WorkReleaseInfo.F_WorkState = modelT_Bus_WorkOrder.F_WorkState;
  22276. WorkReleaseInfo.F_AcceptTime = modelT_Bus_WorkOrder.F_CreateTime;
  22277. WorkReleaseInfo.F_Title = title;
  22278. WorkReleaseInfo.F_EffectiveState = islimit;
  22279. if (islimit == 2)
  22280. {
  22281. WorkReleaseInfo.F_EffectiveTime = DateTime.Parse(limittime);
  22282. }
  22283. WorkReleaseInfo.F_Releaser = userModel.F_UserName;
  22284. WorkReleaseInfo.F_ReleaseState = 1;
  22285. WorkReleaseInfo.F_ReleaseTime = DateTime.Now;
  22286. var dt = new BLL.T_Bus_AssignedInfo().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_Id desc").Tables[0];
  22287. if (dt != null && dt.Rows.Count > 0)
  22288. {
  22289. WorkReleaseInfo.F_Opinion = dt.Rows[0]["F_AssignedOpinion"].ToString();
  22290. if (!string.IsNullOrEmpty(dt.Rows[0]["F_MainDeptId"].ToString()))
  22291. {
  22292. WorkReleaseInfo.F_Department = Convert.ToInt32(dt.Rows[0]["F_MainDeptId"]);
  22293. }
  22294. }
  22295. dt.Dispose();
  22296. dt = new BLL.T_Bus_Feedback().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'").Tables[0];
  22297. if (dt != null && dt.Rows.Count > 0)
  22298. {
  22299. if (!string.IsNullOrEmpty(dt.Rows[0]["F_CreateTime"].ToString()))
  22300. {
  22301. WorkReleaseInfo.F_FeedbackTime = Convert.ToDateTime(dt.Rows[0]["F_CreateTime"]);
  22302. }
  22303. }
  22304. if (new BLL.T_Web_WorkRelease().Add(WorkReleaseInfo))
  22305. {
  22306. return Success("发布成功!");
  22307. }
  22308. else
  22309. {
  22310. return Error("发布失败!");
  22311. }
  22312. }
  22313. else
  22314. {
  22315. return Error("此工单已经发布过了!");
  22316. }
  22317. }
  22318. return Error("操作失败");
  22319. }
  22320. else
  22321. {
  22322. return Error("发布失败");
  22323. }
  22324. }
  22325. else
  22326. {
  22327. return Error("发布失败");
  22328. }
  22329. }
  22330. else
  22331. {
  22332. return Error("权限不足");
  22333. }
  22334. }
  22335. /// <summary>
  22336. /// 获取工单日志
  22337. /// </summary>
  22338. /// <param name="isdc"></param>
  22339. /// <returns></returns>
  22340. public ActionResult GetOperationList(int isdc=0)
  22341. {
  22342. DataTable dt = new DataTable();
  22343. string sql = " and F_IsDelete=0 ";
  22344. string workorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  22345. string starttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  22346. string endtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  22347. string usercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  22348. if (!string .IsNullOrEmpty (workorderid))
  22349. {
  22350. sql += $" and F_WorkOrderId like '%{workorderid}%'";
  22351. }
  22352. if (!string.IsNullOrEmpty(starttime))
  22353. {
  22354. sql += " and F_CreateTime>='" + starttime + "' ";
  22355. }
  22356. if (!string.IsNullOrEmpty(endtime))
  22357. {
  22358. sql += " and F_CreateTime<='" + endtime + "' ";
  22359. }
  22360. if (!string.IsNullOrEmpty(usercode))
  22361. {
  22362. sql += $" and F_CreateUser = '{usercode}'";
  22363. }
  22364. string strpageindex = RequestString.GetQueryString("page");
  22365. int pageindex = 1;
  22366. string strpagesize = RequestString.GetQueryString("pagesize");
  22367. int pagesize = 10;
  22368. if (strpageindex.Trim() != "")
  22369. {
  22370. pageindex = Convert.ToInt32(strpageindex);
  22371. }
  22372. if (strpagesize.Trim() != "")
  22373. {
  22374. pagesize = Convert.ToInt32(strpagesize);
  22375. }
  22376. int recordCount = 0;
  22377. dt = BLL.PagerBLL.GetListPager(
  22378. "T_Bus_Operation WITH(NOLOCK)",
  22379. "F_Id",
  22380. "*",
  22381. sql,
  22382. "ORDER BY F_CreateTime desc ",
  22383. pagesize,
  22384. pageindex,
  22385. true,
  22386. out recordCount);
  22387. var obj = new
  22388. {
  22389. state = "success",
  22390. message = "成功",
  22391. rows = dt,
  22392. total = recordCount
  22393. };
  22394. return Content(obj.ToJson());
  22395. }
  22396. }
  22397. }