Нет описания

WorkOrderController.cs 1.4MB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425174261742717428174291743017431174321743317434174351743617437174381743917440174411744217443174441744517446174471744817449174501745117452174531745417455174561745717458174591746017461174621746317464174651746617467174681746917470174711747217473174741747517476174771747817479174801748117482174831748417485174861748717488174891749017491174921749317494174951749617497174981749917500175011750217503175041750517506175071750817509175101751117512175131751417515175161751717518175191752017521175221752317524175251752617527175281752917530175311753217533175341753517536175371753817539175401754117542175431754417545175461754717548175491755017551175521755317554175551755617557175581755917560175611756217563175641756517566175671756817569175701757117572175731757417575175761757717578175791758017581175821758317584175851758617587175881758917590175911759217593175941759517596175971759817599176001760117602176031760417605176061760717608176091761017611176121761317614176151761617617176181761917620176211762217623176241762517626176271762817629176301763117632176331763417635176361763717638176391764017641176421764317644176451764617647176481764917650176511765217653176541765517656176571765817659176601766117662176631766417665176661766717668176691767017671176721767317674176751767617677176781767917680176811768217683176841768517686176871768817689176901769117692176931769417695176961769717698176991770017701177021770317704177051770617707177081770917710177111771217713177141771517716177171771817719177201772117722177231772417725177261772717728177291773017731177321773317734177351773617737177381773917740177411774217743177441774517746177471774817749177501775117752177531775417755177561775717758177591776017761177621776317764177651776617767177681776917770177711777217773177741777517776177771777817779177801778117782177831778417785177861778717788177891779017791177921779317794177951779617797177981779917800178011780217803178041780517806178071780817809178101781117812178131781417815178161781717818178191782017821178221782317824178251782617827178281782917830178311783217833178341783517836178371783817839178401784117842178431784417845178461784717848178491785017851178521785317854178551785617857178581785917860178611786217863178641786517866178671786817869178701787117872178731787417875178761787717878178791788017881178821788317884178851788617887178881788917890178911789217893178941789517896178971789817899179001790117902179031790417905179061790717908179091791017911179121791317914179151791617917179181791917920179211792217923179241792517926179271792817929179301793117932179331793417935179361793717938179391794017941179421794317944179451794617947179481794917950179511795217953179541795517956179571795817959179601796117962179631796417965179661796717968179691797017971179721797317974179751797617977179781797917980179811798217983179841798517986179871798817989179901799117992179931799417995179961799717998179991800018001180021800318004180051800618007180081800918010180111801218013180141801518016180171801818019180201802118022180231802418025180261802718028180291803018031180321803318034180351803618037180381803918040180411804218043180441804518046180471804818049180501805118052180531805418055180561805718058180591806018061180621806318064180651806618067180681806918070180711807218073180741807518076180771807818079180801808118082180831808418085180861808718088180891809018091180921809318094180951809618097180981809918100181011810218103181041810518106181071810818109181101811118112181131811418115181161811718118181191812018121181221812318124181251812618127181281812918130181311813218133181341813518136181371813818139181401814118142181431814418145181461814718148181491815018151181521815318154181551815618157181581815918160181611816218163181641816518166181671816818169181701817118172181731817418175181761817718178181791818018181181821818318184181851818618187181881818918190181911819218193181941819518196181971819818199182001820118202182031820418205182061820718208182091821018211182121821318214182151821618217182181821918220182211822218223182241822518226182271822818229182301823118232182331823418235182361823718238182391824018241182421824318244182451824618247182481824918250182511825218253182541825518256182571825818259182601826118262182631826418265182661826718268182691827018271182721827318274182751827618277182781827918280182811828218283182841828518286182871828818289182901829118292182931829418295182961829718298182991830018301183021830318304183051830618307183081830918310183111831218313183141831518316183171831818319183201832118322183231832418325183261832718328183291833018331183321833318334183351833618337183381833918340183411834218343183441834518346183471834818349183501835118352183531835418355183561835718358183591836018361183621836318364183651836618367183681836918370183711837218373183741837518376183771837818379183801838118382183831838418385183861838718388183891839018391183921839318394183951839618397183981839918400184011840218403184041840518406184071840818409184101841118412184131841418415184161841718418184191842018421184221842318424184251842618427184281842918430184311843218433184341843518436184371843818439184401844118442184431844418445184461844718448184491845018451184521845318454184551845618457184581845918460184611846218463184641846518466184671846818469184701847118472184731847418475184761847718478184791848018481184821848318484184851848618487184881848918490184911849218493184941849518496184971849818499185001850118502185031850418505185061850718508185091851018511185121851318514185151851618517185181851918520185211852218523185241852518526185271852818529185301853118532185331853418535185361853718538185391854018541185421854318544185451854618547185481854918550185511855218553185541855518556185571855818559185601856118562185631856418565185661856718568185691857018571185721857318574185751857618577185781857918580185811858218583185841858518586185871858818589185901859118592185931859418595185961859718598185991860018601186021860318604186051860618607186081860918610186111861218613186141861518616186171861818619186201862118622186231862418625186261862718628186291863018631186321863318634186351863618637186381863918640186411864218643186441864518646186471864818649186501865118652186531865418655186561865718658186591866018661186621866318664186651866618667186681866918670186711867218673186741867518676186771867818679186801868118682186831868418685186861868718688186891869018691186921869318694186951869618697186981869918700187011870218703187041870518706187071870818709187101871118712187131871418715187161871718718187191872018721187221872318724187251872618727187281872918730187311873218733187341873518736187371873818739187401874118742187431874418745187461874718748187491875018751187521875318754187551875618757187581875918760187611876218763187641876518766187671876818769187701877118772187731877418775187761877718778187791878018781187821878318784187851878618787187881878918790187911879218793187941879518796187971879818799188001880118802188031880418805188061880718808188091881018811188121881318814188151881618817188181881918820188211882218823188241882518826188271882818829188301883118832188331883418835188361883718838188391884018841188421884318844188451884618847188481884918850188511885218853188541885518856188571885818859188601886118862188631886418865188661886718868188691887018871188721887318874188751887618877188781887918880188811888218883188841888518886188871888818889188901889118892188931889418895188961889718898188991890018901189021890318904189051890618907189081890918910189111891218913189141891518916189171891818919189201892118922189231892418925189261892718928189291893018931189321893318934189351893618937189381893918940189411894218943189441894518946189471894818949189501895118952189531895418955189561895718958189591896018961189621896318964189651896618967189681896918970189711897218973189741897518976189771897818979189801898118982189831898418985189861898718988189891899018991189921899318994189951899618997189981899919000190011900219003190041900519006190071900819009190101901119012190131901419015190161901719018190191902019021190221902319024190251902619027190281902919030190311903219033190341903519036190371903819039190401904119042190431904419045190461904719048190491905019051190521905319054190551905619057190581905919060190611906219063190641906519066190671906819069190701907119072190731907419075190761907719078190791908019081190821908319084190851908619087190881908919090190911909219093190941909519096190971909819099191001910119102191031910419105191061910719108191091911019111191121911319114191151911619117191181911919120191211912219123191241912519126191271912819129191301913119132191331913419135191361913719138191391914019141191421914319144191451914619147191481914919150191511915219153191541915519156191571915819159191601916119162191631916419165191661916719168191691917019171191721917319174191751917619177191781917919180191811918219183191841918519186191871918819189191901919119192191931919419195191961919719198191991920019201192021920319204192051920619207192081920919210192111921219213192141921519216192171921819219192201922119222192231922419225192261922719228192291923019231192321923319234192351923619237192381923919240192411924219243192441924519246192471924819249192501925119252192531925419255192561925719258192591926019261192621926319264192651926619267192681926919270192711927219273192741927519276192771927819279192801928119282192831928419285192861928719288192891929019291192921929319294192951929619297192981929919300193011930219303193041930519306193071930819309193101931119312193131931419315193161931719318193191932019321193221932319324193251932619327193281932919330193311933219333193341933519336193371933819339193401934119342193431934419345193461934719348193491935019351193521935319354193551935619357193581935919360193611936219363193641936519366193671936819369193701937119372193731937419375193761937719378193791938019381193821938319384193851938619387193881938919390193911939219393193941939519396193971939819399194001940119402194031940419405194061940719408194091941019411194121941319414194151941619417194181941919420194211942219423194241942519426194271942819429194301943119432194331943419435194361943719438194391944019441194421944319444194451944619447194481944919450194511945219453194541945519456194571945819459194601946119462194631946419465194661946719468194691947019471194721947319474194751947619477194781947919480194811948219483194841948519486194871948819489194901949119492194931949419495194961949719498194991950019501195021950319504195051950619507195081950919510195111951219513195141951519516195171951819519195201952119522195231952419525195261952719528195291953019531195321953319534195351953619537195381953919540195411954219543195441954519546195471954819549195501955119552195531955419555195561955719558195591956019561195621956319564195651956619567195681956919570195711957219573195741957519576195771957819579195801958119582195831958419585195861958719588195891959019591195921959319594195951959619597195981959919600196011960219603196041960519606196071960819609196101961119612196131961419615196161961719618196191962019621196221962319624196251962619627196281962919630196311963219633196341963519636196371963819639196401964119642196431964419645196461964719648196491965019651196521965319654196551965619657196581965919660196611966219663196641966519666196671966819669196701967119672196731967419675196761967719678196791968019681196821968319684196851968619687196881968919690196911969219693196941969519696196971969819699197001970119702197031970419705197061970719708197091971019711197121971319714197151971619717197181971919720197211972219723197241972519726197271972819729197301973119732197331973419735197361973719738197391974019741197421974319744197451974619747197481974919750197511975219753197541975519756197571975819759197601976119762197631976419765197661976719768197691977019771197721977319774197751977619777197781977919780197811978219783197841978519786197871978819789197901979119792197931979419795197961979719798197991980019801198021980319804198051980619807198081980919810198111981219813198141981519816198171981819819198201982119822198231982419825198261982719828198291983019831198321983319834198351983619837198381983919840198411984219843198441984519846198471984819849198501985119852198531985419855198561985719858198591986019861198621986319864198651986619867198681986919870198711987219873198741987519876198771987819879198801988119882198831988419885198861988719888198891989019891198921989319894198951989619897198981989919900199011990219903199041990519906199071990819909199101991119912199131991419915199161991719918199191992019921199221992319924199251992619927199281992919930199311993219933199341993519936199371993819939199401994119942199431994419945199461994719948199491995019951199521995319954199551995619957199581995919960199611996219963199641996519966199671996819969199701997119972199731997419975199761997719978199791998019981199821998319984199851998619987199881998919990199911999219993199941999519996199971999819999200002000120002200032000420005200062000720008200092001020011200122001320014200152001620017200182001920020200212002220023200242002520026200272002820029200302003120032200332003420035200362003720038200392004020041200422004320044200452004620047200482004920050200512005220053200542005520056200572005820059200602006120062200632006420065200662006720068200692007020071200722007320074200752007620077200782007920080200812008220083200842008520086200872008820089200902009120092200932009420095200962009720098200992010020101201022010320104201052010620107201082010920110201112011220113201142011520116201172011820119201202012120122201232012420125201262012720128201292013020131201322013320134201352013620137201382013920140201412014220143201442014520146201472014820149201502015120152201532015420155201562015720158201592016020161201622016320164201652016620167201682016920170201712017220173201742017520176201772017820179201802018120182201832018420185201862018720188201892019020191201922019320194201952019620197201982019920200202012020220203202042020520206202072020820209202102021120212202132021420215202162021720218202192022020221202222022320224202252022620227202282022920230202312023220233202342023520236202372023820239202402024120242202432024420245202462024720248202492025020251202522025320254202552025620257202582025920260202612026220263202642026520266202672026820269202702027120272202732027420275202762027720278202792028020281202822028320284202852028620287202882028920290202912029220293202942029520296202972029820299203002030120302203032030420305203062030720308203092031020311203122031320314203152031620317203182031920320203212032220323203242032520326203272032820329203302033120332203332033420335203362033720338203392034020341203422034320344203452034620347203482034920350203512035220353203542035520356203572035820359203602036120362203632036420365203662036720368203692037020371203722037320374203752037620377203782037920380203812038220383203842038520386203872038820389203902039120392203932039420395203962039720398203992040020401204022040320404204052040620407204082040920410204112041220413204142041520416204172041820419204202042120422204232042420425204262042720428204292043020431204322043320434204352043620437204382043920440204412044220443204442044520446204472044820449204502045120452204532045420455204562045720458204592046020461204622046320464204652046620467204682046920470204712047220473204742047520476204772047820479204802048120482204832048420485204862048720488204892049020491204922049320494204952049620497204982049920500205012050220503205042050520506205072050820509205102051120512205132051420515205162051720518205192052020521205222052320524205252052620527205282052920530205312053220533205342053520536205372053820539205402054120542205432054420545205462054720548205492055020551205522055320554205552055620557205582055920560205612056220563205642056520566205672056820569205702057120572205732057420575205762057720578205792058020581205822058320584205852058620587205882058920590205912059220593205942059520596205972059820599206002060120602206032060420605206062060720608206092061020611206122061320614206152061620617206182061920620206212062220623206242062520626206272062820629206302063120632206332063420635206362063720638206392064020641206422064320644206452064620647206482064920650206512065220653206542065520656206572065820659206602066120662206632066420665206662066720668206692067020671206722067320674206752067620677206782067920680206812068220683206842068520686206872068820689206902069120692206932069420695206962069720698206992070020701207022070320704207052070620707207082070920710207112071220713207142071520716207172071820719207202072120722207232072420725207262072720728207292073020731207322073320734207352073620737207382073920740207412074220743207442074520746207472074820749207502075120752207532075420755207562075720758207592076020761207622076320764207652076620767207682076920770207712077220773207742077520776207772077820779207802078120782207832078420785207862078720788207892079020791207922079320794207952079620797207982079920800208012080220803208042080520806208072080820809208102081120812208132081420815208162081720818208192082020821208222082320824208252082620827208282082920830208312083220833208342083520836208372083820839208402084120842208432084420845208462084720848208492085020851208522085320854208552085620857208582085920860208612086220863208642086520866208672086820869208702087120872208732087420875208762087720878208792088020881208822088320884208852088620887208882088920890208912089220893208942089520896208972089820899209002090120902209032090420905209062090720908209092091020911209122091320914209152091620917209182091920920209212092220923209242092520926209272092820929209302093120932209332093420935209362093720938209392094020941209422094320944209452094620947209482094920950209512095220953209542095520956209572095820959209602096120962209632096420965209662096720968209692097020971209722097320974209752097620977209782097920980209812098220983209842098520986209872098820989209902099120992209932099420995209962099720998209992100021001210022100321004210052100621007210082100921010210112101221013210142101521016210172101821019210202102121022210232102421025210262102721028210292103021031210322103321034210352103621037210382103921040210412104221043210442104521046210472104821049210502105121052210532105421055210562105721058210592106021061210622106321064210652106621067210682106921070210712107221073210742107521076210772107821079210802108121082210832108421085210862108721088210892109021091210922109321094210952109621097210982109921100211012110221103211042110521106211072110821109211102111121112211132111421115211162111721118211192112021121211222112321124211252112621127211282112921130211312113221133211342113521136211372113821139211402114121142211432114421145211462114721148211492115021151211522115321154211552115621157211582115921160211612116221163211642116521166211672116821169211702117121172211732117421175211762117721178211792118021181211822118321184211852118621187211882118921190211912119221193211942119521196211972119821199212002120121202212032120421205212062120721208212092121021211212122121321214212152121621217212182121921220212212122221223212242122521226212272122821229212302123121232212332123421235212362123721238212392124021241212422124321244212452124621247212482124921250212512125221253212542125521256212572125821259212602126121262212632126421265212662126721268212692127021271212722127321274212752127621277212782127921280212812128221283212842128521286212872128821289212902129121292212932129421295212962129721298212992130021301213022130321304213052130621307213082130921310213112131221313213142131521316213172131821319213202132121322213232132421325213262132721328213292133021331213322133321334213352133621337213382133921340213412134221343213442134521346213472134821349213502135121352213532135421355213562135721358213592136021361213622136321364213652136621367213682136921370213712137221373213742137521376213772137821379213802138121382213832138421385213862138721388213892139021391213922139321394213952139621397213982139921400214012140221403214042140521406214072140821409214102141121412214132141421415214162141721418214192142021421214222142321424214252142621427214282142921430214312143221433214342143521436214372143821439214402144121442214432144421445214462144721448214492145021451214522145321454214552145621457214582145921460214612146221463214642146521466214672146821469214702147121472214732147421475214762147721478214792148021481214822148321484214852148621487214882148921490214912149221493214942149521496214972149821499215002150121502215032150421505215062150721508215092151021511215122151321514215152151621517215182151921520215212152221523215242152521526215272152821529215302153121532215332153421535215362153721538215392154021541215422154321544215452154621547215482154921550215512155221553215542155521556215572155821559215602156121562215632156421565215662156721568215692157021571215722157321574215752157621577215782157921580215812158221583215842158521586215872158821589215902159121592215932159421595215962159721598215992160021601216022160321604216052160621607216082160921610216112161221613216142161521616216172161821619216202162121622216232162421625216262162721628216292163021631216322163321634216352163621637216382163921640216412164221643216442164521646216472164821649216502165121652216532165421655216562165721658216592166021661216622166321664216652166621667216682166921670216712167221673216742167521676216772167821679216802168121682216832168421685216862168721688216892169021691216922169321694216952169621697216982169921700217012170221703217042170521706217072170821709217102171121712217132171421715217162171721718217192172021721217222172321724217252172621727217282172921730217312173221733217342173521736217372173821739217402174121742217432174421745217462174721748217492175021751217522175321754217552175621757217582175921760217612176221763217642176521766217672176821769217702177121772217732177421775217762177721778217792178021781217822178321784217852178621787217882178921790217912179221793217942179521796217972179821799218002180121802218032180421805218062180721808218092181021811218122181321814218152181621817218182181921820218212182221823218242182521826218272182821829218302183121832218332183421835218362183721838218392184021841218422184321844218452184621847218482184921850218512185221853218542185521856218572185821859218602186121862218632186421865218662186721868218692187021871218722187321874218752187621877218782187921880218812188221883218842188521886218872188821889218902189121892218932189421895218962189721898218992190021901219022190321904219052190621907219082190921910219112191221913219142191521916219172191821919219202192121922219232192421925219262192721928219292193021931219322193321934219352193621937219382193921940219412194221943219442194521946219472194821949219502195121952219532195421955219562195721958219592196021961219622196321964219652196621967219682196921970219712197221973219742197521976219772197821979219802198121982219832198421985219862198721988219892199021991219922199321994219952199621997219982199922000220012200222003220042200522006220072200822009220102201122012220132201422015220162201722018220192202022021220222202322024220252202622027220282202922030220312203222033220342203522036220372203822039220402204122042220432204422045220462204722048220492205022051220522205322054220552205622057220582205922060220612206222063220642206522066220672206822069220702207122072220732207422075220762207722078220792208022081220822208322084220852208622087220882208922090220912209222093220942209522096220972209822099221002210122102221032210422105221062210722108221092211022111221122211322114221152211622117221182211922120221212212222123221242212522126221272212822129221302213122132221332213422135221362213722138221392214022141221422214322144221452214622147221482214922150221512215222153221542215522156221572215822159221602216122162221632216422165221662216722168221692217022171221722217322174221752217622177221782217922180221812218222183221842218522186221872218822189221902219122192221932219422195221962219722198221992220022201222022220322204222052220622207222082220922210222112221222213222142221522216222172221822219222202222122222222232222422225222262222722228222292223022231222322223322234222352223622237222382223922240222412224222243222442224522246222472224822249222502225122252222532225422255222562225722258222592226022261222622226322264222652226622267222682226922270222712227222273222742227522276222772227822279222802228122282222832228422285222862228722288222892229022291222922229322294222952229622297222982229922300223012230222303223042230522306223072230822309223102231122312223132231422315223162231722318223192232022321223222232322324223252232622327223282232922330223312233222333223342233522336223372233822339223402234122342223432234422345223462234722348223492235022351223522235322354223552235622357223582235922360223612236222363223642236522366223672236822369223702237122372223732237422375223762237722378223792238022381223822238322384223852238622387223882238922390223912239222393223942239522396223972239822399224002240122402224032240422405224062240722408224092241022411224122241322414224152241622417224182241922420224212242222423224242242522426224272242822429224302243122432224332243422435224362243722438224392244022441224422244322444224452244622447224482244922450224512245222453224542245522456224572245822459224602246122462224632246422465224662246722468224692247022471224722247322474224752247622477224782247922480224812248222483224842248522486224872248822489224902249122492224932249422495224962249722498224992250022501225022250322504225052250622507225082250922510225112251222513225142251522516225172251822519225202252122522225232252422525225262252722528225292253022531225322253322534225352253622537225382253922540225412254222543225442254522546225472254822549225502255122552225532255422555225562255722558225592256022561225622256322564225652256622567225682256922570225712257222573225742257522576225772257822579225802258122582225832258422585225862258722588225892259022591225922259322594225952259622597225982259922600226012260222603226042260522606226072260822609226102261122612226132261422615226162261722618226192262022621226222262322624226252262622627226282262922630226312263222633226342263522636226372263822639226402264122642226432264422645226462264722648226492265022651226522265322654226552265622657226582265922660226612266222663226642266522666226672266822669226702267122672226732267422675226762267722678226792268022681226822268322684226852268622687226882268922690226912269222693226942269522696226972269822699227002270122702227032270422705227062270722708227092271022711227122271322714227152271622717227182271922720227212272222723227242272522726227272272822729227302273122732227332273422735227362273722738227392274022741227422274322744227452274622747227482274922750227512275222753227542275522756227572275822759227602276122762227632276422765227662276722768227692277022771227722277322774227752277622777227782277922780227812278222783227842278522786227872278822789227902279122792227932279422795227962279722798227992280022801228022280322804228052280622807228082280922810228112281222813228142281522816228172281822819228202282122822228232282422825228262282722828228292283022831228322283322834228352283622837228382283922840228412284222843228442284522846228472284822849228502285122852228532285422855228562285722858228592286022861228622286322864228652286622867228682286922870228712287222873228742287522876228772287822879228802288122882228832288422885228862288722888228892289022891228922289322894228952289622897228982289922900229012290222903229042290522906229072290822909229102291122912229132291422915229162291722918229192292022921229222292322924229252292622927229282292922930229312293222933229342293522936229372293822939229402294122942229432294422945229462294722948229492295022951229522295322954229552295622957229582295922960229612296222963229642296522966229672296822969229702297122972229732297422975229762297722978229792298022981229822298322984229852298622987229882298922990229912299222993229942299522996229972299822999230002300123002230032300423005230062300723008230092301023011230122301323014230152301623017230182301923020230212302223023230242302523026230272302823029230302303123032230332303423035230362303723038230392304023041230422304323044230452304623047230482304923050230512305223053230542305523056230572305823059230602306123062230632306423065230662306723068230692307023071230722307323074230752307623077230782307923080230812308223083230842308523086230872308823089230902309123092230932309423095230962309723098230992310023101231022310323104231052310623107231082310923110231112311223113231142311523116231172311823119231202312123122231232312423125231262312723128231292313023131231322313323134231352313623137231382313923140231412314223143231442314523146231472314823149231502315123152231532315423155231562315723158231592316023161231622316323164231652316623167231682316923170231712317223173231742317523176231772317823179231802318123182231832318423185231862318723188231892319023191231922319323194231952319623197231982319923200232012320223203232042320523206232072320823209232102321123212232132321423215232162321723218232192322023221232222322323224232252322623227232282322923230232312323223233232342323523236232372323823239232402324123242232432324423245232462324723248232492325023251232522325323254232552325623257232582325923260232612326223263232642326523266232672326823269232702327123272232732327423275232762327723278232792328023281232822328323284232852328623287232882328923290232912329223293232942329523296232972329823299233002330123302233032330423305233062330723308233092331023311233122331323314233152331623317233182331923320233212332223323233242332523326233272332823329233302333123332233332333423335233362333723338233392334023341233422334323344233452334623347233482334923350233512335223353233542335523356233572335823359233602336123362233632336423365233662336723368233692337023371233722337323374233752337623377233782337923380233812338223383233842338523386233872338823389233902339123392233932339423395233962339723398233992340023401234022340323404234052340623407234082340923410234112341223413234142341523416234172341823419234202342123422234232342423425234262342723428234292343023431234322343323434234352343623437234382343923440234412344223443234442344523446234472344823449234502345123452234532345423455234562345723458234592346023461234622346323464234652346623467234682346923470234712347223473234742347523476234772347823479234802348123482234832348423485234862348723488234892349023491234922349323494234952349623497234982349923500235012350223503235042350523506235072350823509235102351123512235132351423515235162351723518235192352023521235222352323524235252352623527235282352923530235312353223533235342353523536235372353823539235402354123542235432354423545235462354723548235492355023551235522355323554235552355623557235582355923560235612356223563235642356523566235672356823569235702357123572235732357423575235762357723578235792358023581235822358323584235852358623587235882358923590235912359223593235942359523596235972359823599236002360123602236032360423605236062360723608236092361023611236122361323614236152361623617236182361923620236212362223623236242362523626236272362823629236302363123632236332363423635236362363723638236392364023641236422364323644236452364623647236482364923650236512365223653236542365523656236572365823659236602366123662236632366423665236662366723668236692367023671236722367323674236752367623677236782367923680236812368223683236842368523686236872368823689236902369123692236932369423695236962369723698236992370023701237022370323704237052370623707237082370923710237112371223713237142371523716237172371823719237202372123722237232372423725237262372723728237292373023731237322373323734237352373623737237382373923740237412374223743237442374523746237472374823749237502375123752237532375423755237562375723758237592376023761237622376323764237652376623767237682376923770237712377223773237742377523776237772377823779237802378123782237832378423785237862378723788237892379023791237922379323794237952379623797237982379923800238012380223803238042380523806238072380823809238102381123812238132381423815238162381723818238192382023821238222382323824238252382623827238282382923830238312383223833238342383523836238372383823839238402384123842238432384423845238462384723848238492385023851238522385323854238552385623857238582385923860238612386223863238642386523866238672386823869238702387123872238732387423875238762387723878238792388023881238822388323884238852388623887238882388923890238912389223893238942389523896238972389823899239002390123902239032390423905239062390723908239092391023911239122391323914239152391623917239182391923920239212392223923239242392523926239272392823929239302393123932239332393423935239362393723938239392394023941239422394323944239452394623947239482394923950239512395223953239542395523956239572395823959239602396123962239632396423965239662396723968239692397023971239722397323974239752397623977239782397923980239812398223983239842398523986239872398823989239902399123992239932399423995239962399723998239992400024001240022400324004240052400624007240082400924010240112401224013240142401524016240172401824019240202402124022240232402424025240262402724028240292403024031240322403324034240352403624037240382403924040240412404224043240442404524046240472404824049240502405124052240532405424055240562405724058240592406024061240622406324064240652406624067240682406924070240712407224073240742407524076240772407824079240802408124082240832408424085240862408724088240892409024091240922409324094240952409624097240982409924100241012410224103241042410524106241072410824109241102411124112241132411424115241162411724118241192412024121241222412324124241252412624127241282412924130241312413224133241342413524136241372413824139241402414124142241432414424145241462414724148241492415024151241522415324154241552415624157241582415924160241612416224163241642416524166241672416824169241702417124172241732417424175241762417724178241792418024181241822418324184241852418624187241882418924190241912419224193241942419524196241972419824199242002420124202242032420424205242062420724208242092421024211242122421324214242152421624217242182421924220242212422224223242242422524226242272422824229242302423124232242332423424235242362423724238242392424024241242422424324244242452424624247242482424924250242512425224253242542425524256242572425824259242602426124262242632426424265242662426724268242692427024271242722427324274242752427624277242782427924280242812428224283242842428524286242872428824289242902429124292242932429424295242962429724298242992430024301243022430324304243052430624307243082430924310243112431224313243142431524316243172431824319243202432124322243232432424325243262432724328243292433024331243322433324334243352433624337243382433924340243412434224343243442434524346243472434824349243502435124352243532435424355243562435724358243592436024361243622436324364243652436624367243682436924370243712437224373243742437524376243772437824379243802438124382243832438424385243862438724388243892439024391243922439324394243952439624397243982439924400244012440224403244042440524406244072440824409244102441124412244132441424415244162441724418244192442024421244222442324424244252442624427244282442924430244312443224433244342443524436244372443824439244402444124442244432444424445244462444724448244492445024451244522445324454244552445624457244582445924460244612446224463244642446524466244672446824469244702447124472244732447424475244762447724478244792448024481244822448324484244852448624487244882448924490244912449224493244942449524496244972449824499245002450124502245032450424505245062450724508245092451024511245122451324514245152451624517245182451924520245212452224523245242452524526245272452824529245302453124532245332453424535245362453724538245392454024541245422454324544245452454624547245482454924550245512455224553245542455524556245572455824559245602456124562245632456424565245662456724568245692457024571245722457324574245752457624577245782457924580245812458224583245842458524586245872458824589245902459124592245932459424595245962459724598245992460024601246022460324604246052460624607246082460924610246112461224613246142461524616246172461824619246202462124622246232462424625246262462724628246292463024631246322463324634246352463624637246382463924640246412464224643246442464524646246472464824649246502465124652246532465424655246562465724658246592466024661246622466324664246652466624667246682466924670246712467224673246742467524676246772467824679246802468124682246832468424685246862468724688246892469024691246922469324694246952469624697246982469924700247012470224703247042470524706247072470824709247102471124712247132471424715247162471724718247192472024721247222472324724247252472624727247282472924730247312473224733247342473524736247372473824739247402474124742247432474424745247462474724748247492475024751247522475324754247552475624757247582475924760247612476224763247642476524766247672476824769247702477124772247732477424775247762477724778247792478024781247822478324784247852478624787247882478924790247912479224793247942479524796247972479824799248002480124802248032480424805248062480724808248092481024811248122481324814248152481624817248182481924820248212482224823248242482524826248272482824829248302483124832248332483424835248362483724838248392484024841248422484324844248452484624847248482484924850248512485224853248542485524856248572485824859248602486124862248632486424865248662486724868248692487024871248722487324874248752487624877248782487924880248812488224883248842488524886248872488824889248902489124892248932489424895248962489724898248992490024901249022490324904249052490624907249082490924910249112491224913249142491524916249172491824919249202492124922249232492424925249262492724928249292493024931249322493324934249352493624937249382493924940249412494224943249442494524946249472494824949249502495124952249532495424955249562495724958249592496024961249622496324964249652496624967249682496924970249712497224973249742497524976249772497824979249802498124982249832498424985249862498724988249892499024991249922499324994249952499624997249982499925000250012500225003250042500525006250072500825009250102501125012250132501425015250162501725018250192502025021250222502325024250252502625027250282502925030250312503225033250342503525036250372503825039250402504125042250432504425045250462504725048250492505025051250522505325054250552505625057250582505925060250612506225063250642506525066250672506825069250702507125072250732507425075250762507725078250792508025081250822508325084250852508625087250882508925090250912509225093250942509525096250972509825099251002510125102251032510425105251062510725108251092511025111251122511325114251152511625117251182511925120251212512225123251242512525126251272512825129251302513125132251332513425135251362513725138251392514025141251422514325144251452514625147251482514925150251512515225153251542515525156251572515825159251602516125162251632516425165251662516725168251692517025171251722517325174251752517625177251782517925180251812518225183251842518525186251872518825189251902519125192251932519425195251962519725198251992520025201252022520325204252052520625207252082520925210252112521225213252142521525216252172521825219252202522125222252232522425225252262522725228252292523025231252322523325234252352523625237252382523925240252412524225243252442524525246252472524825249252502525125252252532525425255252562525725258252592526025261252622526325264252652526625267252682526925270252712527225273252742527525276252772527825279252802528125282252832528425285252862528725288252892529025291252922529325294252952529625297252982529925300253012530225303253042530525306253072530825309253102531125312253132531425315253162531725318253192532025321253222532325324253252532625327253282532925330253312533225333253342533525336253372533825339253402534125342253432534425345253462534725348253492535025351253522535325354253552535625357253582535925360253612536225363253642536525366253672536825369253702537125372253732537425375253762537725378253792538025381253822538325384253852538625387253882538925390253912539225393253942539525396253972539825399254002540125402254032540425405254062540725408254092541025411254122541325414254152541625417254182541925420254212542225423254242542525426254272542825429254302543125432254332543425435254362543725438254392544025441254422544325444254452544625447254482544925450254512545225453254542545525456254572545825459254602546125462254632546425465254662546725468254692547025471254722547325474254752547625477254782547925480254812548225483254842548525486254872548825489254902549125492254932549425495254962549725498254992550025501255022550325504255052550625507255082550925510255112551225513255142551525516255172551825519255202552125522255232552425525255262552725528255292553025531255322553325534255352553625537255382553925540255412554225543255442554525546255472554825549255502555125552255532555425555255562555725558255592556025561255622556325564255652556625567255682556925570255712557225573255742557525576255772557825579255802558125582255832558425585255862558725588255892559025591255922559325594255952559625597255982559925600256012560225603256042560525606256072560825609256102561125612256132561425615256162561725618256192562025621256222562325624256252562625627256282562925630256312563225633256342563525636256372563825639256402564125642256432564425645256462564725648256492565025651256522565325654256552565625657256582565925660256612566225663256642566525666256672566825669256702567125672256732567425675256762567725678256792568025681256822568325684256852568625687256882568925690256912569225693256942569525696256972569825699257002570125702257032570425705257062570725708257092571025711257122571325714257152571625717257182571925720257212572225723257242572525726257272572825729257302573125732257332573425735257362573725738257392574025741257422574325744257452574625747257482574925750257512575225753257542575525756257572575825759257602576125762257632576425765257662576725768257692577025771257722577325774257752577625777257782577925780257812578225783257842578525786257872578825789257902579125792257932579425795257962579725798257992580025801258022580325804258052580625807258082580925810258112581225813258142581525816258172581825819258202582125822258232582425825258262582725828258292583025831258322583325834258352583625837258382583925840258412584225843258442584525846258472584825849258502585125852258532585425855258562585725858258592586025861258622586325864258652586625867258682586925870258712587225873258742587525876258772587825879258802588125882258832588425885258862588725888258892589025891258922589325894258952589625897258982589925900259012590225903259042590525906259072590825909259102591125912259132591425915259162591725918259192592025921259222592325924259252592625927259282592925930259312593225933259342593525936259372593825939259402594125942259432594425945259462594725948259492595025951259522595325954259552595625957259582595925960259612596225963259642596525966259672596825969259702597125972259732597425975259762597725978259792598025981259822598325984259852598625987259882598925990259912599225993259942599525996259972599825999260002600126002260032600426005260062600726008260092601026011260122601326014260152601626017260182601926020260212602226023260242602526026260272602826029260302603126032260332603426035260362603726038260392604026041260422604326044260452604626047260482604926050260512605226053260542605526056260572605826059260602606126062260632606426065260662606726068260692607026071260722607326074260752607626077260782607926080260812608226083260842608526086260872608826089260902609126092260932609426095260962609726098260992610026101261022610326104261052610626107261082610926110261112611226113261142611526116261172611826119261202612126122261232612426125261262612726128261292613026131261322613326134261352613626137261382613926140261412614226143261442614526146261472614826149261502615126152261532615426155261562615726158261592616026161261622616326164261652616626167261682616926170261712617226173261742617526176261772617826179261802618126182261832618426185261862618726188261892619026191261922619326194261952619626197261982619926200262012620226203262042620526206262072620826209262102621126212262132621426215262162621726218262192622026221262222622326224262252622626227262282622926230262312623226233262342623526236262372623826239262402624126242262432624426245262462624726248262492625026251262522625326254262552625626257262582625926260262612626226263262642626526266262672626826269262702627126272262732627426275262762627726278262792628026281262822628326284262852628626287262882628926290262912629226293262942629526296262972629826299263002630126302263032630426305263062630726308263092631026311263122631326314263152631626317263182631926320263212632226323263242632526326263272632826329263302633126332263332633426335263362633726338263392634026341263422634326344263452634626347263482634926350263512635226353263542635526356263572635826359263602636126362263632636426365263662636726368263692637026371263722637326374263752637626377263782637926380263812638226383263842638526386263872638826389263902639126392263932639426395263962639726398263992640026401264022640326404264052640626407264082640926410264112641226413264142641526416264172641826419264202642126422264232642426425264262642726428264292643026431264322643326434264352643626437264382643926440264412644226443264442644526446264472644826449264502645126452264532645426455264562645726458264592646026461264622646326464264652646626467264682646926470264712647226473264742647526476264772647826479264802648126482264832648426485264862648726488264892649026491264922649326494264952649626497264982649926500265012650226503265042650526506265072650826509265102651126512265132651426515265162651726518265192652026521265222652326524265252652626527265282652926530265312653226533265342653526536265372653826539265402654126542265432654426545265462654726548265492655026551265522655326554265552655626557265582655926560265612656226563265642656526566265672656826569265702657126572265732657426575265762657726578265792658026581265822658326584265852658626587265882658926590265912659226593265942659526596265972659826599266002660126602266032660426605266062660726608266092661026611266122661326614266152661626617266182661926620266212662226623266242662526626266272662826629266302663126632266332663426635266362663726638266392664026641266422664326644266452664626647266482664926650266512665226653266542665526656266572665826659266602666126662266632666426665266662666726668266692667026671266722667326674266752667626677266782667926680266812668226683266842668526686266872668826689266902669126692266932669426695266962669726698266992670026701267022670326704267052670626707267082670926710267112671226713267142671526716267172671826719267202672126722267232672426725267262672726728267292673026731267322673326734267352673626737267382673926740267412674226743267442674526746267472674826749267502675126752267532675426755267562675726758267592676026761267622676326764267652676626767267682676926770267712677226773267742677526776267772677826779267802678126782267832678426785267862678726788267892679026791267922679326794267952679626797267982679926800268012680226803268042680526806268072680826809268102681126812268132681426815268162681726818268192682026821268222682326824268252682626827268282682926830268312683226833268342683526836268372683826839268402684126842268432684426845268462684726848268492685026851268522685326854268552685626857268582685926860268612686226863268642686526866268672686826869268702687126872268732687426875268762687726878268792688026881268822688326884268852688626887268882688926890268912689226893268942689526896268972689826899269002690126902269032690426905269062690726908269092691026911269122691326914269152691626917269182691926920269212692226923269242692526926269272692826929269302693126932269332693426935269362693726938269392694026941269422694326944269452694626947269482694926950269512695226953269542695526956269572695826959269602696126962269632696426965269662696726968269692697026971269722697326974269752697626977269782697926980269812698226983269842698526986269872698826989269902699126992269932699426995269962699726998269992700027001270022700327004270052700627007270082700927010270112701227013270142701527016270172701827019270202702127022270232702427025270262702727028270292703027031270322703327034270352703627037270382703927040
  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 workroder = HttpUtility.UrlDecode(RequestString.GetQueryString("workroder"));
  94. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  95. int isopen = RequestString.GetInt("isopen", -1);//是否公开
  96. int orderSign = RequestString.GetInt("orderSign", -1);//省平台工单
  97. int IsReturn = RequestString.GetInt("IsReturn", -1);
  98. if (strstate == "0")
  99. {
  100. if (IsReturn == 1)
  101. {
  102. sql += " and F_IsReturn=1";
  103. }
  104. else
  105. {
  106. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  107. }
  108. }
  109. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  110. if (jianhang==4)
  111. {
  112. sql += " and F_InfoSource = '2580'";
  113. }
  114. if (isopen > -1)
  115. sql += " and isnull(F_IsOpen,0) =" + isopen;
  116. if (orderSign > -1)
  117. sql += " and F_OrderSign =" + orderSign;
  118. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("strworkorderid"));
  119. if (strworkorderid.Trim() != "" && strworkorderid != "undefined")
  120. {
  121. sql += " and F_WorkOrderId in( select F_WorkOrderId from T_Sys_Affairs where CASE_SERIAL like'%" + strworkorderid + "%') ";
  122. }
  123. if (!string .IsNullOrEmpty (workroder))
  124. {
  125. sql += $" and F_WorkOrderId in(select col from dbo.SplitToNvarchar('{workroder}',',' )) ";
  126. }
  127. if (IsRelease > 0)
  128. {
  129. if (IsRelease == 1)
  130. sql += " and F_IsRelease = '2'";
  131. else
  132. sql += " and F_IsRelease = '3'";
  133. }
  134. if (assignUser.Trim() != "" && assignUser != "undefined")
  135. {
  136. sql += "and F_AssignUser='" + assignUser.Trim() + "'";
  137. }
  138. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  139. if (assuser.Trim() != "" && assuser != "undefined")
  140. {
  141. sql += " and F_AssignUser = '" + assuser + "' ";
  142. }
  143. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  144. {
  145. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  146. {
  147. sql += " and F_DealTime between '" + dealstarttime +
  148. "' AND '" + dealstrendtime + "'";
  149. }
  150. else
  151. {
  152. sql += " and F_DealTime>='" + dealstarttime + "' ";
  153. }
  154. }
  155. else
  156. {
  157. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  158. {
  159. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  160. }
  161. }
  162. if (issatisfie != -1)
  163. {
  164. 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 ) ) )";
  165. }
  166. if (workordertype > -1)
  167. {
  168. if (workordertype == 0)
  169. {
  170. sql += " and F_CallRecordId is not null ";
  171. }
  172. else
  173. {
  174. sql += " and F_CallRecordId is null ";
  175. }
  176. }
  177. int isbusiness = RequestString.GetInt("isbusiness", -1);
  178. #region sql 语句相关处理
  179. if (strstate.Trim() != "" && strstate != "undefined")
  180. {
  181. if (isproresult > 0)
  182. {
  183. sql += " and F_WorkState in(6,7) ";
  184. }
  185. else
  186. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  187. }
  188. if (strworkid.Trim() != "" && strworkid != "undefined")
  189. {
  190. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  191. }
  192. if (strname.Trim() != "" && strname != "undefined")
  193. {
  194. sql += " and F_CusName = '" + strname + "' ";
  195. }
  196. if (splituser.Trim() != "" && splituser != "undefined")
  197. {
  198. sql += " and F_SplitUser = '" + splituser + "' ";
  199. }
  200. if (ddstarttime.Trim() != "" && ddstarttime != "undefined")
  201. {
  202. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  203. {
  204. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  205. "F_CreateTime >= '" + ddstarttime +
  206. "' AND F_CreateTime<= '" + ddstrendtime + "')";
  207. }
  208. else
  209. {
  210. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  211. "F_CreateTime >='" + ddstarttime + "')";
  212. }
  213. }
  214. else
  215. {
  216. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  217. {
  218. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  219. "F_CreateTime <='" + ddstrendtime + "')";
  220. }
  221. }
  222. if (islike > 0)
  223. {
  224. if (strtel.Trim() != "" && strtel != "undefined")
  225. {
  226. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  227. }
  228. }
  229. else
  230. {
  231. if (strtel.Trim() != "" && strtel != "undefined")
  232. {
  233. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  234. }
  235. }
  236. int dbtype = RequestString.GetInt("dbtype", 0);
  237. string value1 = "";
  238. if (dbdata > 0)
  239. {
  240. if (deptid == 0)
  241. {
  242. return Error("请选择部门");
  243. }
  244. string sdate = ""; string etime = "";
  245. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  246. {
  247. sdate = DateTime.Now.AddMonths(-1).
  248. ToString("yyyy-MM") + "-21 00:00:01";
  249. sql += " and F_CreateTime >= '" + sdate + "' AND F_CreateTime<= '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  250. }
  251. else
  252. {
  253. sdate = strstarttime;
  254. if (strendtime.Trim() == "" || strendtime == "undefined")
  255. {
  256. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  257. }
  258. else
  259. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  260. sql += " and F_CreateTime >= '" + sdate + "' AND F_CreateTime<= '" + etime + "'";
  261. }
  262. if (dbtype != 6)
  263. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  264. else
  265. sql += "and F_WorkState not in (0, 1, 11)";
  266. if (dbtype == 1)
  267. {
  268. 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) ) ) ";
  269. }
  270. else if (dbtype == 2)
  271. {
  272. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  273. }
  274. else if (dbtype == 3)
  275. {
  276. 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 " +
  277. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  278. }
  279. else if (dbtype == 6)
  280. {
  281. 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 )";
  282. }
  283. }
  284. else if (dbdata2 > 0)
  285. {
  286. if (deptid == 0)
  287. {
  288. return Error("请选择部门");
  289. }
  290. int deptid2 = 0;
  291. if (User.F_RoleCode == "WLDW")
  292. deptid2 = User.F_DeptId;
  293. string sdate = ""; string etime = "";
  294. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  295. {
  296. sdate = DateTime.Now.AddMonths(-1).
  297. ToString("yyyy-MM") + "-21 00:00:01";
  298. sql += " and F_CreateTime >= '" + sdate + "' AND F_CreateTime<= '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  299. }
  300. else
  301. {
  302. sdate = strstarttime;
  303. if (strendtime.Trim() == "" || strendtime == "undefined")
  304. {
  305. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  306. }
  307. else
  308. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  309. sql += " and F_CreateTime >= '" + sdate + "' AND F_CreateTime<= '" + etime + "'";
  310. }
  311. if (dbtype != 6)
  312. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  313. "and F_MainDeptID3 like'%" + deptid + "%'";
  314. else
  315. sql += "and F_WorkState not in (0, 1, 11)";
  316. if (dbtype == 1)
  317. {
  318. 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) ) ) ";
  319. }
  320. else if (dbtype == 2)
  321. {
  322. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  323. }
  324. else if (dbtype == 3)
  325. {
  326. 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 " +
  327. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  328. }
  329. else if (dbtype == 6)
  330. {
  331. 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 ) " +
  332. "and F_MainDeptID3 like'%" + deptid + "%'";
  333. }
  334. }
  335. if (dbgd > 0)
  336. {
  337. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  338. }
  339. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  340. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  341. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  342. {
  343. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  344. }
  345. if (Result.Trim() != "" && Result != "undefined")
  346. {
  347. sql += " and F_Result like '%" + Result + "%' ";
  348. }
  349. if (ComContent.Trim() != "" && ComContent != "undefined")
  350. {
  351. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  352. "or F_Content like '%" + ComContent + "%' )";
  353. }
  354. if (strkey.Trim() != "" && strkey != "undefined")
  355. {
  356. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  357. " or F_Result like '%" + strkey + "%' ) ";
  358. }
  359. if (strusercode.Trim() != "" && strusercode != "undefined")
  360. {//坐席
  361. var usercode = strusercode.Trim().Split(',');
  362. var newusercode = "";
  363. foreach (var item in usercode)
  364. {
  365. if (!string.IsNullOrWhiteSpace(item.Trim()))
  366. newusercode += "'" + item + "',";
  367. }
  368. newusercode = newusercode.Trim(',');
  369. if (usercode.Length > 1)
  370. {
  371. if (newusercode.Trim() != "" && newusercode != "undefined")
  372. {
  373. sql += " and F_CreateUser in (" + newusercode + ") ";
  374. }
  375. }
  376. else
  377. {
  378. if (newusercode.Trim() != "" && newusercode != "undefined")
  379. {
  380. sql += " and F_CreateUser = " + newusercode + " ";
  381. }
  382. }
  383. }
  384. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  385. {//调度员
  386. var ddusercode = strddusercode.Trim().Split(',');
  387. var newusercode = "";
  388. foreach (var item in ddusercode)
  389. {
  390. if (!string.IsNullOrWhiteSpace(item.Trim()))
  391. newusercode += "'" + item + "',";
  392. }
  393. newusercode = newusercode.Trim(',');
  394. if (ddusercode.Length > 1)
  395. {
  396. if (newusercode.Trim() != "" && newusercode != "undefined")
  397. {
  398. sql += " and F_AssignUser in (" + newusercode + ") ";
  399. }
  400. }
  401. else
  402. {
  403. if (newusercode.Trim() != "" && newusercode != "undefined")
  404. {
  405. sql += " and F_AssignUser = " + newusercode + " ";
  406. }
  407. }
  408. }
  409. if (supervisor.Trim() != "" && supervisor != "undefined")
  410. {//督办人员
  411. var supervisorusercode = supervisor.Trim().Split(',');
  412. var newusercode = "";
  413. foreach (var item in supervisorusercode)
  414. {
  415. if (!string.IsNullOrWhiteSpace(item.Trim()))
  416. newusercode += "'" + item + "',";
  417. }
  418. newusercode = newusercode.Trim(',');
  419. if (supervisorusercode.Length > 1)
  420. {
  421. if (newusercode.Trim() != "" && newusercode != "undefined")
  422. {
  423. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  424. "where F_IsDelete = 0 and F_Type = 1 and Supervisor in (" + newusercode + ")) ";
  425. }
  426. }
  427. else
  428. {
  429. if (newusercode.Trim() != "" && newusercode != "undefined")
  430. {
  431. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  432. "where F_IsDelete = 0 and F_Type = 1 and Supervisor = " + newusercode + ") ";
  433. }
  434. }
  435. }
  436. if (source != 0)
  437. {
  438. sql += " and F_InfoSource = '" + source + "' ";
  439. }
  440. string sqlwhere = ""; string value = "";
  441. if (keyid != 0)
  442. {
  443. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  444. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  445. }
  446. else if (User.F_RoleCode == "DFZF")
  447. {
  448. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  449. }
  450. if (type != 0)
  451. {
  452. sql += " and F_InfoType = '" + type + "' ";
  453. }
  454. if (bigtype != 0)
  455. {
  456. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  457. }
  458. if (smalltype != 0)
  459. {
  460. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  461. }
  462. if (isproresult != 0)
  463. {
  464. sql += "and (a.F_IsSms =0 or a.F_IsSms is null )";
  465. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  466. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  467. {
  468. if (isproresult == 2)
  469. {
  470. isproresult = 3;
  471. sql += " and F_IsProResult = '" + 3 + "' ";
  472. }
  473. else
  474. {
  475. isproresult = 2;
  476. sql += " and F_IsProResult = '" + 2 + "' ";
  477. }
  478. }
  479. else
  480. sql += " and F_IsProResult = '" + 2 + "' ";
  481. }
  482. if (sourcearea != 0)
  483. {
  484. sql += " and F_SourceArea = '" + sourcearea + "' ";
  485. }
  486. if (deptid != 0)
  487. {
  488. sql += " and (a.F_MainDeptId = '" + deptid + "' or ','+F_MainDeptID3+ ',' like '%," + deptid + ",%')";
  489. // sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  490. }
  491. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  492. {
  493. if (strendtime.Trim() != "" && strendtime != "undefined")
  494. {
  495. sql += " and F_CreateTime >= '" + strstarttime +
  496. "' AND F_CreateTime <='" + strendtime + "'";
  497. }
  498. else
  499. {
  500. sql += " and F_CreateTime>='" + strstarttime + "' ";
  501. }
  502. }
  503. else
  504. {
  505. if (strendtime.Trim() != "" && strendtime != "undefined")
  506. {
  507. sql += " and F_CreateTime<='" + strendtime + "' ";
  508. }
  509. }
  510. if (dealtype != -1)
  511. {
  512. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  513. }
  514. if (issend != -1)
  515. {
  516. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  517. }
  518. #endregion
  519. if (strpageindex.Trim() != "")
  520. {
  521. pageindex = Convert.ToInt32(strpageindex);
  522. }
  523. if (strpagesize.Trim() != "")
  524. {
  525. pagesize = Convert.ToInt32(strpagesize);
  526. }
  527. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  528. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  529. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  530. #region 导出
  531. if (isdc > 0)
  532. {
  533. var dic = new BLL.T_Sys_DictionaryValue().GetModelList("F_State=0 and F_PrentId=4589");
  534. if (dic.Where(x => x.F_Value == User.F_RoleCode).Count() > 0)
  535. {
  536. var top = " "; var orderby = " order by F_CreateTime";
  537. //20190715调整导出字段 zhengbingbing
  538. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  539. if (User.F_RoleCode == "WLDW")
  540. {
  541. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,(case F_IsProtect when 0 then F_CusPhone else '' end ) 来电号码,F_WorkOrderId 工单号, " +
  542. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签, " +
  543. "dbo.[GetDeptNames]((case when F_MainDeptID3 IS not null and F_MainDeptID3 !='' then F_MainDeptID3 else CONVERT (varchar,F_MainDeptId)end ) ) 主办单位," +
  544. " F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  545. " (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) 是否满意 " +
  546. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  547. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  548. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  549. if (msg == "")
  550. {
  551. return Success("导出成功");
  552. }
  553. else
  554. {
  555. return Error("导出失败");
  556. }
  557. }
  558. else
  559. {
  560. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, dbo.GetUserName(a.F_CreateUser)" +
  561. " 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  562. " F_ComTitle 诉求标题, F_ComContent 工单内容, (select names from View_Keys where id = F_Key)" +
  563. " 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签," +
  564. " dbo.GetDeptName(a.F_MainDeptId) 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  565. " (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) 是否满意 " +
  566. " from T_Bus_WorkOrder a WITH(NOLOCK) " + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  567. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  568. if (msg == "")
  569. {
  570. return Success("导出成功");
  571. }
  572. else
  573. {
  574. return Error("导出失败");
  575. }
  576. }
  577. }
  578. else
  579. {
  580. return Error("暂无导出权限");
  581. }
  582. }
  583. string cols = "";
  584. if (User.F_RoleCode=="WLDW")
  585. {
  586. cols = "F_Result,F_CusName,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime," +
  587. "F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName," +
  588. "dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName, " +
  589. " dbo.[GetDeptNames]((case when F_MainDeptID3 IS not null and F_MainDeptID3 != '' " +
  590. "then F_MainDeptID3 else CONVERT(varchar, F_MainDeptId)end) ) as DeptName" +
  591. " ,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,(SELECT TOP 1 F_IsNext FROM T_Bus_AssignedInfo" +
  592. " 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) " +
  593. "as PDState,F_Contentment,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification,F_IsRelease,F_AssignUser,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  594. }
  595. else
  596. {
  597. cols = "F_Result,F_CusName,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime," +
  598. "F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName," +
  599. "dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as" +
  600. " DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,(SELECT TOP 1 F_IsNext FROM T_Bus_AssignedInfo" +
  601. " 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) " +
  602. "as PDState,F_IsProResult,F_Contentment,F_ComContent,F_DealDeptId,F_Identification,F_IsRelease,F_AssignUser,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  603. }
  604. if (jianhang==4)
  605. {
  606. cols += " ,(select top 1 TFDBACKTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId order by CreateTime desc ) as TFDBACKTIME_BF ";
  607. }
  608. #endregion
  609. int recordCount = 0;
  610. dt = BLL.PagerBLL.GetListPager(
  611. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere + value1,
  612. "F_Id",
  613. cols,
  614. sql,
  615. "ORDER BY F_CreateTime DESC",
  616. pagesize,
  617. pageindex,
  618. true,
  619. out recordCount);
  620. #region 声音文件和交办超时
  621. dt.Columns.Add("OverState", typeof(string));//超时状态
  622. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  623. dt.Columns.Add("GapTime", typeof(string));//时间差
  624. // dt.Columns.Add("PDState", typeof(string));//派单状态
  625. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  626. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  627. dt.Columns.Add("Dissatisfied", typeof(object));//不满意
  628. dt.Columns.Add("Supervise", typeof(object));
  629. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  630. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  631. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  632. foreach (DataRow dr in dt.Rows)
  633. {
  634. string iszbdw = "0";
  635. string ispd = "";
  636. int state = Int32.Parse(dr["F_WorkState"].ToString());
  637. if (state > 1)
  638. {
  639. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  640. var lt = dr["LimitTime"].ToString();//限制时间
  641. #region 超时时限
  642. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  643. {
  644. if (!string.IsNullOrWhiteSpace(lt))
  645. {
  646. var ltime = DateTime.Parse(lt);
  647. if (ltime > DateTime.Now)
  648. {
  649. //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") + "'";
  650. //var SYSJ = DbHelperSQL.GetSingle(SY);
  651. //if (SYSJ != null && SYSJ.ToString() != "")
  652. //{
  653. //try
  654. //{
  655. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  656. //}
  657. //catch
  658. //{
  659. //}
  660. //}
  661. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  662. //ltime = ltime.AddDays(-days);
  663. }
  664. else
  665. {
  666. //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") + "'";
  667. //var SYSJ = DbHelperSQL.GetSingle(SY);
  668. //if (SYSJ != null && SYSJ.ToString() != "")
  669. //{
  670. // try
  671. // {
  672. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  673. // }
  674. // catch
  675. // {
  676. // }
  677. //}
  678. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  679. ltime = ltime.AddDays(days);
  680. }
  681. TimeSpan ts = ltime.Subtract(DateTime.Now);
  682. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  683. if (tss < 0) { tss = -tss; }
  684. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  685. if (ltime > DateTime.Now)
  686. {
  687. if (configcs != null)
  688. {
  689. int cs = Int32.Parse(configcs.F_ParamValue);
  690. if (ts.TotalHours > cs)
  691. {
  692. dr["OverState"] = 1;
  693. }
  694. else
  695. {
  696. dr["OverState"] = 2;
  697. }
  698. }
  699. dr["GapTime"] = "剩余" + gshsj;
  700. }
  701. else
  702. {
  703. dr["OverState"] = 3;
  704. dr["GapTime"] = "超时" + gshsj;
  705. }
  706. }
  707. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  708. }
  709. if (state == (int)EnumWorkState.finish &&
  710. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  711. {
  712. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  713. var dttime = DateTime.Now;
  714. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  715. else
  716. {
  717. var DealTime = dr["F_CloseTime"].ToString();
  718. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  719. }
  720. if (!string.IsNullOrWhiteSpace(lt))
  721. {
  722. var ltime = DateTime.Parse(lt);
  723. if (ltime < dttime)
  724. {
  725. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  726. ltime = ltime.AddDays(days);
  727. TimeSpan ts = dttime.Subtract(ltime);
  728. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  729. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  730. dr["OverState"] = 3;
  731. dr["GapTime"] = "超时" + gshsj;
  732. }
  733. }
  734. }
  735. #endregion
  736. // }
  737. }
  738. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  739. {
  740. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  741. }
  742. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  743. {
  744. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  745. }
  746. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  747. if (dbdata > 0 && dbtype == 5)
  748. {
  749. 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";
  750. var db = DbHelperSQL.Query(dbsql).Tables[0];
  751. if (db.Rows.Count > 0)
  752. {
  753. dr["Dissatisfied"] = db.Rows[0]["strSsf_Cst_Ass_CntDsc"].ToString();
  754. }
  755. }
  756. #region 判断是否存在待督办
  757. var reminds = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(dr["F_WorkOrderId"].ToString());
  758. if (reminds != null)
  759. {
  760. dr["Supervise"] = 1;
  761. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  762. if (reminds.F_State == 0 && butt != null)
  763. buttons.Remove(butt);
  764. }
  765. else
  766. {
  767. dr["Supervise"] = 0;
  768. }
  769. #endregion
  770. //if (state == 9)
  771. //{
  772. // 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")
  773. // {
  774. // if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  775. // {
  776. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  777. // TimeSpan ts = DateTime.Now - closedttime;
  778. // if (ts.TotalDays < 20)
  779. // {
  780. // buttons.Add(ButtonGroup.subreload());
  781. // }
  782. // }
  783. // }
  784. //}
  785. // else
  786. if (strstate == "6")
  787. {
  788. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  789. {
  790. if (isproresult == 2 || isproresult == 3)
  791. buttons.Add(ButtonGroup.forceend());
  792. }
  793. }
  794. else if (state == 0 && dr["F_IsReturn"].ToString() == "1")
  795. {
  796. if (User.F_RoleCode.ToUpper() == "SPZ" || User.F_RoleCode == "SPZJZ")
  797. {
  798. buttons.Add(ButtonGroup.submit());
  799. var butt = buttons.Find(c => c.key == ButtonGroup.delete().key);
  800. if (butt == null)
  801. {
  802. buttons.Add(ButtonGroup.delete());
  803. }
  804. }
  805. }
  806. else
  807. {
  808. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  809. {
  810. buttons.Clear();
  811. // buttons.Add(ButtonGroup.submit());
  812. buttons.Add(ButtonGroup.query());
  813. }
  814. }
  815. if (jianhang == 4)
  816. {
  817. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY"
  818. || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY"
  819. || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZJZ"
  820. || User.F_RoleCode == "SPZ")
  821. {
  822. buttons.Add(ButtonGroup.ejdelay());
  823. }
  824. }
  825. if (isproresult == 3 && dr["F_IsProResult"].ToString() == "3" && strstate == "6")
  826. {
  827. buttons.Add(ButtonGroup.PassResult());
  828. buttons.Add(ButtonGroup.FailResult());
  829. var butt1 = buttons.Find(c => c.key == ButtonGroup.visits().key);
  830. if (butt1 != null)
  831. buttons.Remove(butt1);
  832. var butt2 = buttons.Find(c => c.key == ButtonGroup.visit().key);
  833. if (butt2 != null)
  834. buttons.Remove(butt2);
  835. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  836. if (butt == null)
  837. buttons.Add(ButtonGroup.turnsee());
  838. }
  839. if (User .F_RoleCode =="GLY")
  840. {
  841. var butEdit = buttons.Find(c => c.key == ButtonGroup.edit().key);
  842. if (butEdit == null)
  843. buttons.Add (ButtonGroup.edit());
  844. }
  845. if ( dr["F_IsResult"] != null
  846. && dr["F_IsResult"].ToString() == "1"&& state==9
  847. )
  848. {
  849. if (dr["F_Contentment"] == null)
  850. {
  851. buttons.Add(ButtonGroup.Contentment());
  852. }
  853. else if (dr["F_Contentment"].ToString() != "1")
  854. {
  855. buttons.Add(ButtonGroup.Contentment());
  856. }
  857. }
  858. dr["Buttons"] = buttons;
  859. }
  860. #endregion
  861. var obj = new
  862. {
  863. state = "success",
  864. message = "成功",
  865. rows = dt,
  866. total = recordCount
  867. };
  868. return Content(obj.ToJson());
  869. }
  870. /// <summary>
  871. /// 部门综合查询
  872. /// </summary>
  873. /// <param name="isdc"></param>
  874. /// <returns></returns>
  875. public ActionResult GetcComprehensiveList(int isdc = 0)
  876. {
  877. DataTable dt = new DataTable();
  878. string sql = " and F_IsDelete=0 ";
  879. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  880. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  881. int islike = RequestString.GetInt("islike", 1);
  882. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  883. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  884. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  885. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  886. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  887. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  888. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  889. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  890. string ddstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstarttime"));
  891. string ddstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("ddstrendtime"));
  892. string supervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("supervisor"));//督办人员
  893. int isproresult = RequestString.GetInt("isproresult", 0);
  894. int source = RequestString.GetInt("source", 0);
  895. int keyid = RequestString.GetInt("keyid", 0);
  896. int type = RequestString.GetInt("type", 0);
  897. int bigtype = RequestString.GetInt("bigtype", 0);
  898. int smalltype = RequestString.GetInt("smalltype", 0);
  899. int sourcearea = RequestString.GetInt("sourcearea", 0);
  900. int deptid = RequestString.GetInt("deptid", 0);
  901. string myd = HttpUtility.UrlDecode(RequestString.GetQueryString("myd"));
  902. int zdpy = RequestString.GetInt("zdpy", 0);
  903. int smpy = RequestString.GetInt("smpy", 0);
  904. int dealtype = RequestString.GetInt("dealtype", -1);
  905. int issend = RequestString.GetInt("issend", -1);
  906. int deptlevel = RequestString.GetInt("deptlevel", 0);
  907. int dbgd = RequestString.GetInt("dbgd", 0);
  908. int dbdata = RequestString.GetInt("dbdata", 0);
  909. int workordertype = RequestString.GetInt("workordertype", -1);
  910. int IsRelease = RequestString.GetInt("IsRelease", 0);
  911. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  912. int issatisfie = RequestString.GetInt("issatisfie", -1);
  913. string assignUser = HttpUtility.UrlDecode(RequestString.GetQueryString("assignUser"));
  914. string strpageindex = RequestString.GetQueryString("page");
  915. int pageindex = 1;
  916. string strpagesize = RequestString.GetQueryString("pagesize");
  917. int pagesize = 10;
  918. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  919. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  920. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  921. int isopen = RequestString.GetInt("isopen", -1);//是否公开
  922. if (isopen > -1)
  923. sql += " and isnull(F_IsOpen,0) =" + isopen;
  924. int IsReturn = RequestString.GetInt("IsReturn", -1);
  925. if (strstate == "0")
  926. {
  927. if (IsReturn == 1)
  928. {
  929. sql += " and F_IsReturn=1";
  930. }
  931. else
  932. {
  933. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  934. }
  935. }
  936. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("strworkorderid"));
  937. if (strworkorderid.Trim() != "" && strworkorderid != "undefined")
  938. {
  939. sql += " and F_WorkOrderId in( select F_WorkOrderId from T_Sys_Affairs where CASE_SERIAL like'%" + strworkorderid + "%') ";
  940. }
  941. if (IsRelease > 0)
  942. {
  943. if (IsRelease == 1)
  944. sql += " and F_IsRelease = '2'";
  945. else
  946. sql += " and F_IsRelease = '3'";
  947. }
  948. if (assignUser.Trim() != "" && assignUser != "undefined")
  949. {
  950. sql += "and F_AssignUser='" + assignUser.Trim() + "'";
  951. }
  952. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  953. if (assuser.Trim() != "" && assuser != "undefined")
  954. {
  955. sql += " and F_AssignUser = '" + assuser + "' ";
  956. }
  957. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  958. {
  959. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  960. {
  961. sql += " and F_DealTime between '" + dealstarttime +
  962. "' AND '" + dealstrendtime + "'";
  963. }
  964. else
  965. {
  966. sql += " and F_DealTime>='" + dealstarttime + "' ";
  967. }
  968. }
  969. else
  970. {
  971. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  972. {
  973. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  974. }
  975. }
  976. if (issatisfie != -1)
  977. {
  978. 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 ) ) )";
  979. }
  980. if (workordertype > -1)
  981. {
  982. if (workordertype == 0)
  983. {
  984. sql += " and F_CallRecordId is not null ";
  985. }
  986. else
  987. {
  988. sql += " and F_CallRecordId is null ";
  989. }
  990. }
  991. int isbusiness = RequestString.GetInt("isbusiness", -1);
  992. #region sql 语句相关处理
  993. if (strstate.Trim() != "" && strstate != "undefined")
  994. {
  995. if (isproresult > 0)
  996. {
  997. sql += " and F_WorkState in(6,7) ";
  998. }
  999. else
  1000. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1001. }
  1002. if (strworkid.Trim() != "" && strworkid != "undefined")
  1003. {
  1004. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1005. }
  1006. if (strname.Trim() != "" && strname != "undefined")
  1007. {
  1008. sql += " and F_CusName = '" + strname + "' ";
  1009. }
  1010. if (splituser.Trim() != "" && splituser != "undefined")
  1011. {
  1012. sql += " and F_SplitUser = '" + splituser + "' ";
  1013. }
  1014. if (ddstarttime.Trim() != "" && ddstarttime != "undefined")
  1015. {
  1016. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  1017. {
  1018. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  1019. "F_CreateTime between '" + ddstarttime +
  1020. "' AND '" + ddstrendtime + "')";
  1021. }
  1022. else
  1023. {
  1024. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  1025. "F_CreateTime >='" + ddstarttime + "')";
  1026. }
  1027. }
  1028. else
  1029. {
  1030. if (ddstrendtime.Trim() != "" && ddstrendtime != "undefined")
  1031. {
  1032. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_ToExamine where F_IsDelete = 0 and " +
  1033. "F_CreateTime <='" + ddstrendtime + "')";
  1034. }
  1035. }
  1036. if (islike > 0)
  1037. {
  1038. if (strtel.Trim() != "" && strtel != "undefined")
  1039. {
  1040. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1041. }
  1042. }
  1043. else
  1044. {
  1045. if (strtel.Trim() != "" && strtel != "undefined")
  1046. {
  1047. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1048. }
  1049. }
  1050. string value1 = "";
  1051. if (dbgd > 0)
  1052. {
  1053. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  1054. }
  1055. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1056. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1057. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1058. {
  1059. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1060. }
  1061. if (Result.Trim() != "" && Result != "undefined")
  1062. {
  1063. sql += " and F_Result like '%" + Result + "%' ";
  1064. }
  1065. if (ComContent.Trim() != "" && ComContent != "undefined")
  1066. {
  1067. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  1068. "or F_Content like '%" + ComContent + "%' )";
  1069. }
  1070. if (strkey.Trim() != "" && strkey != "undefined")
  1071. {
  1072. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1073. " or F_Result like '%" + strkey + "%' ) ";
  1074. }
  1075. if (strusercode.Trim() != "" && strusercode != "undefined")
  1076. {//坐席
  1077. var usercode = strusercode.Trim().Split(',');
  1078. var newusercode = "";
  1079. foreach (var item in usercode)
  1080. {
  1081. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1082. newusercode += "'" + item + "',";
  1083. }
  1084. newusercode = newusercode.Trim(',');
  1085. if (usercode.Length > 1)
  1086. {
  1087. if (newusercode.Trim() != "" && newusercode != "undefined")
  1088. {
  1089. sql += " and F_CreateUser in (" + newusercode + ") ";
  1090. }
  1091. }
  1092. else
  1093. {
  1094. if (newusercode.Trim() != "" && newusercode != "undefined")
  1095. {
  1096. sql += " and F_CreateUser = " + newusercode + " ";
  1097. }
  1098. }
  1099. }
  1100. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1101. {//调度员
  1102. var ddusercode = strddusercode.Trim().Split(',');
  1103. var newusercode = "";
  1104. foreach (var item in ddusercode)
  1105. {
  1106. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1107. newusercode += "'" + item + "',";
  1108. }
  1109. newusercode = newusercode.Trim(',');
  1110. if (ddusercode.Length > 1)
  1111. {
  1112. if (newusercode.Trim() != "" && newusercode != "undefined")
  1113. {
  1114. sql += " and F_AssignUser in (" + newusercode + ") ";
  1115. }
  1116. }
  1117. else
  1118. {
  1119. if (newusercode.Trim() != "" && newusercode != "undefined")
  1120. {
  1121. sql += " and F_AssignUser = " + newusercode + " ";
  1122. }
  1123. }
  1124. }
  1125. if (supervisor.Trim() != "" && supervisor != "undefined")
  1126. {//督办人员
  1127. var supervisorusercode = supervisor.Trim().Split(',');
  1128. var newusercode = "";
  1129. foreach (var item in supervisorusercode)
  1130. {
  1131. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1132. newusercode += "'" + item + "',";
  1133. }
  1134. newusercode = newusercode.Trim(',');
  1135. if (supervisorusercode.Length > 1)
  1136. {
  1137. if (newusercode.Trim() != "" && newusercode != "undefined")
  1138. {
  1139. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  1140. "where F_IsDelete = 0 and F_Type = 1 and Supervisor in (" + newusercode + ")) ";
  1141. }
  1142. }
  1143. else
  1144. {
  1145. if (newusercode.Trim() != "" && newusercode != "undefined")
  1146. {
  1147. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_RemindRecord " +
  1148. "where F_IsDelete = 0 and F_Type = 1 and Supervisor = " + newusercode + ") ";
  1149. }
  1150. }
  1151. }
  1152. if (source != 0)
  1153. {
  1154. sql += " and F_InfoSource = '" + source + "' ";
  1155. }
  1156. string sqlwhere = ""; string value = "";
  1157. if (keyid != 0)
  1158. {
  1159. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1160. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1161. }
  1162. else if (User.F_RoleCode == "DFZF")
  1163. {
  1164. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  1165. }
  1166. if (type != 0)
  1167. {
  1168. sql += " and F_InfoType = '" + type + "' ";
  1169. }
  1170. if (bigtype != 0)
  1171. {
  1172. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1173. }
  1174. if (smalltype != 0)
  1175. {
  1176. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1177. }
  1178. if (isproresult != 0)
  1179. {
  1180. sql += "and (F_IsSms =0 or F_IsSms is null )";
  1181. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  1182. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  1183. {
  1184. if (isproresult == 2)
  1185. {
  1186. isproresult = 3;
  1187. sql += " and F_IsProResult = '" + 3 + "' ";
  1188. }
  1189. else
  1190. {
  1191. isproresult = 2;
  1192. sql += " and F_IsProResult = '" + 2 + "' ";
  1193. }
  1194. }
  1195. else
  1196. sql += " and F_IsProResult = '" + 2 + "' ";
  1197. }
  1198. if (sourcearea != 0)
  1199. {
  1200. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1201. }
  1202. if (deptid != 0)
  1203. {
  1204. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  1205. }
  1206. if (User.F_RoleCode == "WLDW")
  1207. {
  1208. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as a " +
  1209. "WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " " +
  1210. "and F_IsSure in (0,1,2))";
  1211. }
  1212. else if (User.F_RoleCode == "EJWLDW")
  1213. {
  1214. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  1215. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1,2))";
  1216. }
  1217. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1218. {
  1219. if (strendtime.Trim() != "" && strendtime != "undefined")
  1220. {
  1221. sql += " and F_CreateTime between '" + strstarttime +
  1222. "' AND '" + strendtime + "'";
  1223. }
  1224. else
  1225. {
  1226. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1227. }
  1228. }
  1229. else
  1230. {
  1231. if (strendtime.Trim() != "" && strendtime != "undefined")
  1232. {
  1233. sql += " and F_CreateTime<='" + strendtime + "' ";
  1234. }
  1235. }
  1236. if (dealtype != -1)
  1237. {
  1238. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1239. }
  1240. if (issend != -1)
  1241. {
  1242. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  1243. }
  1244. #endregion
  1245. if (strpageindex.Trim() != "")
  1246. {
  1247. pageindex = Convert.ToInt32(strpageindex);
  1248. }
  1249. if (strpagesize.Trim() != "")
  1250. {
  1251. pagesize = Convert.ToInt32(strpagesize);
  1252. }
  1253. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1254. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1255. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1256. #region 导出
  1257. if (isdc > 0)
  1258. {
  1259. var top = " "; var orderby = " order by F_CreateTime";
  1260. //20190715调整导出字段 zhengbingbing
  1261. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1262. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  1263. " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  1264. " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  1265. " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  1266. " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  1267. " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  1268. " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  1269. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1270. if (msg == "")
  1271. {
  1272. return Success("导出成功");
  1273. }
  1274. else
  1275. {
  1276. return Error("导出失败");
  1277. }
  1278. }
  1279. string cols = "";
  1280. 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,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  1281. #endregion
  1282. int recordCount = 0;
  1283. dt = BLL.PagerBLL.GetListPager(
  1284. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere + value1,
  1285. "F_Id",
  1286. cols,
  1287. sql,
  1288. "ORDER BY F_CreateTime DESC",
  1289. pagesize,
  1290. pageindex,
  1291. true,
  1292. out recordCount);
  1293. #region 声音文件和交办超时
  1294. dt.Columns.Add("OverState", typeof(string));//超时状态
  1295. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1296. dt.Columns.Add("GapTime", typeof(string));//时间差
  1297. // dt.Columns.Add("PDState", typeof(string));//派单状态
  1298. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1299. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1300. dt.Columns.Add("Supervise", typeof(object));
  1301. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1302. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1303. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1304. foreach (DataRow dr in dt.Rows)
  1305. {
  1306. string iszbdw = "0";
  1307. string ispd = "";
  1308. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1309. if (state > 1)
  1310. {
  1311. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  1312. var lt = dr["LimitTime"].ToString();//限制时间
  1313. #region 超时时限
  1314. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1315. {
  1316. if (!string.IsNullOrWhiteSpace(lt))
  1317. {
  1318. var ltime = DateTime.Parse(lt);
  1319. if (ltime > DateTime.Now)
  1320. {
  1321. }
  1322. else
  1323. {
  1324. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  1325. ltime = ltime.AddDays(days);
  1326. }
  1327. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1328. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1329. if (tss < 0) { tss = -tss; }
  1330. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1331. if (ltime > DateTime.Now)
  1332. {
  1333. if (configcs != null)
  1334. {
  1335. int cs = Int32.Parse(configcs.F_ParamValue);
  1336. if (ts.TotalHours > cs)
  1337. {
  1338. dr["OverState"] = 1;
  1339. }
  1340. else
  1341. {
  1342. dr["OverState"] = 2;
  1343. }
  1344. }
  1345. dr["GapTime"] = "剩余" + gshsj;
  1346. }
  1347. else
  1348. {
  1349. dr["OverState"] = 3;
  1350. dr["GapTime"] = "超时" + gshsj;
  1351. }
  1352. }
  1353. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  1354. }
  1355. if (state == (int)EnumWorkState.finish &&
  1356. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  1357. {
  1358. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1359. var dttime = DateTime.Now;
  1360. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1361. else
  1362. {
  1363. var DealTime = dr["F_CloseTime"].ToString();
  1364. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  1365. }
  1366. if (!string.IsNullOrWhiteSpace(lt))
  1367. {
  1368. var ltime = DateTime.Parse(lt);
  1369. if (ltime < dttime)
  1370. {
  1371. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  1372. ltime = ltime.AddDays(days);
  1373. TimeSpan ts = dttime.Subtract(ltime);
  1374. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1375. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1376. dr["OverState"] = 3;
  1377. dr["GapTime"] = "超时" + gshsj;
  1378. }
  1379. }
  1380. }
  1381. #endregion
  1382. // }
  1383. }
  1384. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1385. {
  1386. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  1387. }
  1388. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1389. {
  1390. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1391. }
  1392. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  1393. if (User.F_RoleCode == "WLDW" && dr["F_MainDeptId"].ToString() != User.F_DeptId.ToString())
  1394. {
  1395. buttons.Clear();
  1396. }
  1397. else if (User.F_RoleCode == "EJWLDW" && !dr["F_MainDeptId3"].ToString().Contains(User.F_DeptId.ToString()))
  1398. {
  1399. buttons.Clear();
  1400. }
  1401. #region 判断是否存在待督办
  1402. //var reminds = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(dr["F_WorkOrderId"].ToString());
  1403. //if (reminds != null)
  1404. //{
  1405. // dr["Supervise"] = 1;
  1406. // var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  1407. // if (reminds.F_State == 0 && butt != null)
  1408. // buttons.Remove(butt);
  1409. //}
  1410. //else
  1411. //{
  1412. // dr["Supervise"] = 0;
  1413. //}
  1414. #endregion
  1415. //if (strstate == "6")
  1416. //{
  1417. // if (User.F_RoleCode.ToUpper() == "ZXHWY")
  1418. // {
  1419. // if (isproresult == 2 || isproresult == 3)
  1420. // buttons.Add(ButtonGroup.forceend());
  1421. // }
  1422. //}
  1423. //else if (state == 0 && dr["F_IsReturn"].ToString() == "1")
  1424. //{
  1425. // if (User.F_RoleCode.ToUpper() == "SPZ" || User.F_RoleCode == "SPZJZ")
  1426. // {
  1427. // buttons.Add(ButtonGroup.submit());
  1428. // var butt = buttons.Find(c => c.key == ButtonGroup.delete().key);
  1429. // if (butt == null)
  1430. // {
  1431. // buttons.Add(ButtonGroup.delete());
  1432. // }
  1433. // }
  1434. //}
  1435. //else
  1436. //{
  1437. // if (User.F_RoleCode.ToUpper() == "ZXHWY")
  1438. // {
  1439. // buttons.Clear();
  1440. // // buttons.Add(ButtonGroup.submit());
  1441. // buttons.Add(ButtonGroup.query());
  1442. // }
  1443. //}
  1444. dr["Buttons"] = buttons;
  1445. }
  1446. #endregion
  1447. var obj = new
  1448. {
  1449. state = "success",
  1450. message = "成功",
  1451. rows = dt,
  1452. total = recordCount
  1453. };
  1454. return Content(obj.ToJson());
  1455. }
  1456. /// <summary>
  1457. /// 获取工单列表
  1458. /// </summary>
  1459. /// <returns></returns>
  1460. public ActionResult GetModelList(int isdc = 0)
  1461. {
  1462. DataTable dt = new DataTable();
  1463. string sql = " and F_IsDelete=0 ";
  1464. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1465. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1466. int source = RequestString.GetInt("source", 0);
  1467. int deptid = RequestString.GetInt("deptid", 0);
  1468. int dbdata = RequestString.GetInt("dbdata", 0);
  1469. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  1470. string strpageindex = RequestString.GetQueryString("page");
  1471. int pageindex = 1;
  1472. string strpagesize = RequestString.GetQueryString("pagesize");
  1473. int pagesize = 10;
  1474. #region sql 语句相关处理
  1475. int dbtype = RequestString.GetInt("dbtype", 0);
  1476. if (dbdata > 0)
  1477. {
  1478. if (deptid == 0)
  1479. {
  1480. return Error("请选择部门");
  1481. }
  1482. string sdate = ""; string etime = "";
  1483. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1484. {
  1485. sdate = DateTime.Now.AddMonths(-1).
  1486. ToString("yyyy-MM") + "-21 00:00:01";
  1487. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1488. }
  1489. else
  1490. {
  1491. sdate = strstarttime;
  1492. if (strendtime.Trim() == "" || strendtime == "undefined")
  1493. {
  1494. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1495. }
  1496. else
  1497. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1498. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1499. }
  1500. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  1501. if (dbtype == 1)
  1502. {
  1503. 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) ) ) ";
  1504. }
  1505. else if (dbtype == 2)
  1506. {
  1507. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1508. }
  1509. else if (dbtype == 3)
  1510. {
  1511. 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 " +
  1512. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1513. }
  1514. }
  1515. else if (dbdata2 > 0)
  1516. {
  1517. if (deptid == 0)
  1518. {
  1519. return Error("请选择部门");
  1520. }
  1521. int deptid2 = 0;
  1522. if (User.F_RoleCode == "WLDW")
  1523. deptid2 = User.F_DeptId;
  1524. string sdate = ""; string etime = "";
  1525. if (string.IsNullOrEmpty(strstarttime))
  1526. {
  1527. sdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-21 00:00:00";
  1528. }
  1529. else
  1530. {
  1531. sdate = DateTime.Parse(strstarttime).ToString("yyyy-MM-dd") + " 00:00:00";
  1532. }
  1533. if (string.IsNullOrEmpty(strendtime))
  1534. {
  1535. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1536. }
  1537. else
  1538. {
  1539. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1540. }
  1541. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1542. if (dbtype != 6)
  1543. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  1544. "and F_MainDeptID3 like'%" + deptid + "%'";
  1545. else
  1546. sql += "and F_WorkState not in (0, 1, 11)";
  1547. if (dbtype == 1)
  1548. {
  1549. 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) ) ) ";
  1550. }
  1551. else if (dbtype == 2)
  1552. {
  1553. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1554. }
  1555. else if (dbtype == 3)
  1556. {
  1557. 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 " +
  1558. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1559. }
  1560. else if (dbtype == 6)
  1561. {
  1562. 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 ) " +
  1563. "and F_MainDeptID3 like'%" + deptid + "%'";
  1564. }
  1565. }
  1566. if (source != 0)
  1567. {
  1568. sql += " and F_InfoSource = '" + source + "' ";
  1569. }
  1570. #endregion
  1571. if (strpageindex.Trim() != "")
  1572. {
  1573. pageindex = Convert.ToInt32(strpageindex);
  1574. }
  1575. if (strpagesize.Trim() != "")
  1576. {
  1577. pagesize = Convert.ToInt32(strpagesize);
  1578. }
  1579. string cols = "";
  1580. 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," +
  1581. "(select top 1 strSsf_Cst_Ass_CntDsc from PublicComment where WorkOrderId =a.F_WorkOrderId order by CreateTime desc) as Oncedissatisfied,F_IsRelease,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  1582. #region 导出
  1583. if (isdc > 0)
  1584. {
  1585. var top = " "; var orderby = " order by F_CreateTime";
  1586. if (sql == " and F_IsDelete=0 ")
  1587. {
  1588. top = " top 1000 "; orderby += " desc ";
  1589. }
  1590. //20190715调整导出字段 zhengbingbing
  1591. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1592. 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) 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签, "
  1593. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1594. + " F_Result 办理结果, "
  1595. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  1596. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  1597. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1598. if (msg == "")
  1599. {
  1600. return Success("导出成功");
  1601. }
  1602. else
  1603. {
  1604. return Error("导出失败");
  1605. }
  1606. }
  1607. #endregion
  1608. int recordCount = 0;
  1609. dt = BLL.PagerBLL.GetListPager(
  1610. "T_Bus_WorkOrder a WITH(NOLOCK)",
  1611. "F_Id",
  1612. cols,
  1613. sql,
  1614. "ORDER BY F_CreateTime DESC",
  1615. pagesize,
  1616. pageindex,
  1617. true,
  1618. out recordCount);
  1619. #region 声音文件和交办超时
  1620. #endregion
  1621. dt.Columns.Add("GapTime", typeof(object));//
  1622. foreach (DataRow dr in dt.Rows)
  1623. {
  1624. if (dbtype == 1)
  1625. {
  1626. var lt = dr["LimitTime"].ToString();//限制时间
  1627. int state = Int32.Parse(dr["F_WorkState"].ToString()); //
  1628. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1629. {
  1630. if (!string.IsNullOrWhiteSpace(lt))
  1631. {
  1632. var ltime = DateTime.Parse(lt);
  1633. if (ltime > DateTime.Now)
  1634. {
  1635. //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") + "'";
  1636. //var SYSJ = DbHelperSQL.GetSingle(SY);
  1637. //if (SYSJ != null && SYSJ.ToString() != "")
  1638. //{
  1639. // try
  1640. // {
  1641. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1642. // }
  1643. // catch
  1644. // {
  1645. // }
  1646. //}
  1647. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  1648. //ltime = ltime.AddDays(-days);
  1649. }
  1650. else
  1651. {
  1652. //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") + "'";
  1653. //var SYSJ = DbHelperSQL.GetSingle(SY);
  1654. //if (SYSJ != null && SYSJ.ToString() != "")
  1655. //{
  1656. // try
  1657. // {
  1658. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  1659. // }
  1660. // catch
  1661. // {
  1662. // }
  1663. //}
  1664. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  1665. ltime = ltime.AddDays(days);
  1666. }
  1667. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1668. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1669. if (tss < 0) { tss = -tss; }
  1670. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1671. if (ltime > DateTime.Now)
  1672. {
  1673. dr["GapTime"] = "剩余" + gshsj;
  1674. }
  1675. else
  1676. {
  1677. dr["GapTime"] = "超时" + gshsj;
  1678. }
  1679. }
  1680. }
  1681. else
  1682. {
  1683. if (!string.IsNullOrWhiteSpace(lt))
  1684. {
  1685. var det = dr["F_DealTime"].ToString();
  1686. var ct = dr["F_CloseTime"].ToString();
  1687. var dttime = DateTime.Now;
  1688. if (!string.IsNullOrWhiteSpace(det)) { dttime = DateTime.Parse(det); }
  1689. else if (!string.IsNullOrWhiteSpace(ct)) { dttime = DateTime.Parse(ct); }
  1690. var ltime = DateTime.Parse(lt);
  1691. if (ltime < dttime)
  1692. {
  1693. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  1694. ltime = ltime.AddDays(days);
  1695. TimeSpan ts = dttime.Subtract(ltime);
  1696. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1697. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1698. dr["OverState"] = 3;
  1699. dr["GapTime"] = "超时" + gshsj;
  1700. }
  1701. }
  1702. }
  1703. }
  1704. }
  1705. var obj = new
  1706. {
  1707. state = "success",
  1708. message = "成功",
  1709. rows = dt,
  1710. total = recordCount
  1711. };
  1712. return Content(obj.ToJson());
  1713. }
  1714. /// <summary>
  1715. /// 获取回收站工单列表
  1716. /// </summary>
  1717. /// <returns></returns>
  1718. public ActionResult GetDeleteList(int isdc = 0)
  1719. {
  1720. DataTable dt = new DataTable();
  1721. string sql = " and F_IsDelete=1 ";
  1722. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1723. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1724. int islike = RequestString.GetInt("islike", 1);
  1725. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1726. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1727. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  1728. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1729. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1730. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1731. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1732. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1733. int isproresult = RequestString.GetInt("isproresult", 0);
  1734. int source = RequestString.GetInt("source", 0);
  1735. int keyid = RequestString.GetInt("keyid", 0);
  1736. int type = RequestString.GetInt("type", 0);
  1737. int bigtype = RequestString.GetInt("bigtype", 0);
  1738. int smalltype = RequestString.GetInt("smalltype", 0);
  1739. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1740. int deptid = RequestString.GetInt("deptid", 0);
  1741. int dealtype = RequestString.GetInt("dealtype", -1);
  1742. int issend = RequestString.GetInt("issend", -1);
  1743. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1744. int dbdata = RequestString.GetInt("dbdata", 0);
  1745. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  1746. string strpageindex = RequestString.GetQueryString("page");
  1747. int pageindex = 1;
  1748. string strpagesize = RequestString.GetQueryString("pagesize");
  1749. int pagesize = 10;
  1750. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1751. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1752. int isopen = RequestString.GetInt("isopen", -1);
  1753. if (isopen > -1)
  1754. sql += " and isnull(F_IsOpen,0) =" + isopen;
  1755. int IsReturn = RequestString.GetInt("IsReturn", -1);
  1756. if (strstate == "0")
  1757. {
  1758. if (IsReturn == 1)
  1759. {
  1760. sql += " and F_IsReturn=1";
  1761. }
  1762. else
  1763. {
  1764. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  1765. }
  1766. }
  1767. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1768. {
  1769. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1770. {
  1771. sql += " and F_DealTime between '" + dealstarttime +
  1772. "' AND '" + dealstrendtime + "'";
  1773. }
  1774. else
  1775. {
  1776. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1777. }
  1778. }
  1779. else
  1780. {
  1781. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1782. {
  1783. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  1784. }
  1785. }
  1786. #region sql 语句相关处理
  1787. if (strstate.Trim() != "" && strstate != "undefined")
  1788. {
  1789. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1790. }
  1791. if (strworkid.Trim() != "" && strworkid != "undefined")
  1792. {
  1793. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1794. }
  1795. if (strname.Trim() != "" && strname != "undefined")
  1796. {
  1797. sql += " and F_CusName = '" + strname + "' ";
  1798. }
  1799. if (splituser.Trim() != "" && splituser != "undefined")
  1800. {
  1801. sql += " and F_SplitUser = '" + splituser + "' ";
  1802. }
  1803. if (islike > 0)
  1804. {
  1805. if (strtel.Trim() != "" && strtel != "undefined")
  1806. {
  1807. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1808. }
  1809. }
  1810. else
  1811. {
  1812. if (strtel.Trim() != "" && strtel != "undefined")
  1813. {
  1814. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1815. }
  1816. }
  1817. int dbtype = RequestString.GetInt("dbtype", 0);
  1818. if (dbdata > 0)
  1819. {
  1820. if (deptid == 0)
  1821. {
  1822. return Error("请选择部门");
  1823. }
  1824. string sdate = ""; string etime = "";
  1825. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1826. {
  1827. sdate = DateTime.Now.AddMonths(-1).
  1828. ToString("yyyy-MM") + "-21 00:00:01";
  1829. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1830. }
  1831. else
  1832. {
  1833. sdate = strstarttime;
  1834. if (strendtime.Trim() == "" || strendtime == "undefined")
  1835. {
  1836. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1837. }
  1838. else
  1839. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1840. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1841. }
  1842. if (dbtype != 6)
  1843. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  1844. else
  1845. sql += "and F_WorkState not in (0, 1, 11)";
  1846. if (dbtype == 1)
  1847. {
  1848. 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) ) ) ";
  1849. }
  1850. else if (dbtype == 2)
  1851. {
  1852. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1853. }
  1854. else if (dbtype == 3)
  1855. {
  1856. 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 " +
  1857. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1858. }
  1859. else if (dbtype == 6)
  1860. {
  1861. 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 )";
  1862. }
  1863. }
  1864. else if (dbdata2 > 0)
  1865. {
  1866. if (deptid == 0)
  1867. {
  1868. return Error("请选择部门");
  1869. }
  1870. int deptid2 = 0;
  1871. if (User.F_RoleCode == "WLDW")
  1872. deptid2 = User.F_DeptId;
  1873. string sdate = ""; string etime = "";
  1874. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1875. {
  1876. sdate = DateTime.Now.AddMonths(-1).
  1877. ToString("yyyy-MM") + "-21 00:00:01";
  1878. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1879. }
  1880. else
  1881. {
  1882. sdate = strstarttime;
  1883. if (strendtime.Trim() == "" || strendtime == "undefined")
  1884. {
  1885. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1886. }
  1887. else
  1888. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1889. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1890. }
  1891. if (dbtype != 6)
  1892. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  1893. "and F_MainDeptID3 like'%" + deptid + "%'";
  1894. else
  1895. sql += "and F_WorkState not in (0, 1, 11)";
  1896. if (dbtype == 1)
  1897. {
  1898. 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) ) ) ";
  1899. }
  1900. else if (dbtype == 2)
  1901. {
  1902. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1903. }
  1904. else if (dbtype == 3)
  1905. {
  1906. 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 " +
  1907. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1908. }
  1909. else if (dbtype == 6)
  1910. {
  1911. 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 ) " +
  1912. "and F_MainDeptID3 like'%" + deptid + "%'";
  1913. }
  1914. }
  1915. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1916. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1917. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1918. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1919. {
  1920. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1921. }
  1922. if (Result.Trim() != "" && Result != "undefined")
  1923. {
  1924. sql += " and F_Result like '%" + Result + "%' ";
  1925. }
  1926. if (ComContent.Trim() != "" && ComContent != "undefined")
  1927. {
  1928. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  1929. "or F_Content like '%" + ComContent + "%' )";
  1930. }
  1931. if (strkey.Trim() != "" && strkey != "undefined")
  1932. {
  1933. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1934. " or F_Result like '%" + strkey + "%' ) ";
  1935. }
  1936. if (strusercode.Trim() != "" && strusercode != "undefined")
  1937. {//坐席
  1938. var usercode = strusercode.Trim().Split(',');
  1939. var newusercode = "";
  1940. foreach (var item in usercode)
  1941. {
  1942. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1943. newusercode += "'" + item + "',";
  1944. }
  1945. newusercode = newusercode.Trim(',');
  1946. if (usercode.Length > 1)
  1947. {
  1948. if (newusercode.Trim() != "" && newusercode != "undefined")
  1949. {
  1950. sql += " and F_CreateUser in (" + newusercode + ") ";
  1951. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1952. }
  1953. }
  1954. else
  1955. {
  1956. if (newusercode.Trim() != "" && newusercode != "undefined")
  1957. {
  1958. sql += " and F_CreateUser = " + newusercode + " ";
  1959. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1960. }
  1961. }
  1962. }
  1963. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1964. {//调度员
  1965. var ddusercode = strddusercode.Trim().Split(',');
  1966. var newusercode = "";
  1967. foreach (var item in ddusercode)
  1968. {
  1969. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1970. newusercode += "'" + item + "',";
  1971. }
  1972. newusercode = newusercode.Trim(',');
  1973. if (ddusercode.Length > 1)
  1974. {
  1975. if (newusercode.Trim() != "" && newusercode != "undefined")
  1976. {
  1977. sql += " and F_AssignUser in (" + newusercode + ") ";
  1978. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1979. }
  1980. }
  1981. else
  1982. {
  1983. if (newusercode.Trim() != "" && newusercode != "undefined")
  1984. {
  1985. sql += " and F_AssignUser = " + newusercode + " ";
  1986. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1987. }
  1988. }
  1989. }
  1990. if (source != 0)
  1991. {
  1992. sql += " and F_InfoSource = '" + source + "' ";
  1993. }
  1994. string sqlwhere = ""; string value = "";
  1995. if (keyid != 0)
  1996. {
  1997. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1998. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1999. }
  2000. else if (User.F_RoleCode == "DFZF")
  2001. {
  2002. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  2003. }
  2004. if (type != 0)
  2005. {
  2006. sql += " and F_InfoType = '" + type + "' ";
  2007. }
  2008. if (bigtype != 0)
  2009. {
  2010. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2011. }
  2012. if (smalltype != 0)
  2013. {
  2014. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2015. }
  2016. if (isproresult != 0)
  2017. {
  2018. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  2019. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  2020. {
  2021. if (isproresult == 2)
  2022. {
  2023. isproresult = 3;
  2024. sql += " and F_IsProResult = '" + 3 + "' ";
  2025. }
  2026. else
  2027. {
  2028. isproresult = 2;
  2029. sql += " and F_IsProResult = '" + 2 + "' ";
  2030. }
  2031. }
  2032. else
  2033. sql += " and F_IsProResult = '" + 2 + "' ";
  2034. }
  2035. if (sourcearea != 0)
  2036. {
  2037. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2038. }
  2039. if (deptid != 0)
  2040. {
  2041. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  2042. }
  2043. else
  2044. {
  2045. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  2046. {
  2047. deptid = User.F_DeptId;
  2048. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3 like'%" + deptid + "%')";
  2049. }
  2050. }
  2051. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2052. {
  2053. if (strendtime.Trim() != "" && strendtime != "undefined")
  2054. {
  2055. sql += " and F_CreateTime between '" + strstarttime +
  2056. "' AND '" + strendtime + "'";
  2057. }
  2058. else
  2059. {
  2060. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2061. }
  2062. }
  2063. else
  2064. {
  2065. if (strendtime.Trim() != "" && strendtime != "undefined")
  2066. {
  2067. sql += " and F_CreateTime<='" + strendtime + "' ";
  2068. }
  2069. }
  2070. if (dealtype != -1)
  2071. {
  2072. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  2073. }
  2074. if (issend != -1)
  2075. {
  2076. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  2077. }
  2078. #endregion
  2079. if (strpageindex.Trim() != "")
  2080. {
  2081. pageindex = Convert.ToInt32(strpageindex);
  2082. }
  2083. if (strpagesize.Trim() != "")
  2084. {
  2085. pagesize = Convert.ToInt32(strpagesize);
  2086. }
  2087. 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";
  2088. #region 导出
  2089. if (isdc > 0)
  2090. {
  2091. var top = " "; var orderby = " order by F_CreateTime";
  2092. if (sql == " and F_IsDelete=0 ")
  2093. {
  2094. top = " top 1000 "; orderby += " desc ";
  2095. }
  2096. //20190715调整导出字段 zhengbingbing
  2097. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2098. 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) 反映类别, "
  2099. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  2100. + " F_Result 办理结果, "
  2101. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  2102. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  2103. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2104. if (msg == "")
  2105. {
  2106. return Success("导出成功");
  2107. }
  2108. else
  2109. {
  2110. return Error("导出失败");
  2111. }
  2112. }
  2113. #endregion
  2114. int recordCount = 0;
  2115. dt = BLL.PagerBLL.GetListPager(
  2116. "T_Bus_WorkOrder a WITH(NOLOCK)",
  2117. "F_Id",
  2118. cols,
  2119. sql,
  2120. "ORDER BY F_CreateTime DESC",
  2121. pagesize,
  2122. pageindex,
  2123. true,
  2124. out recordCount);
  2125. #region 声音文件和交办超时
  2126. #endregion
  2127. var obj = new
  2128. {
  2129. state = "success",
  2130. message = "成功",
  2131. rows = dt,
  2132. total = recordCount
  2133. };
  2134. return Content(obj.ToJson());
  2135. }
  2136. /// <summary>
  2137. /// 获取坐席处理列表
  2138. /// </summary>
  2139. /// <returns></returns>
  2140. //[Authority]
  2141. public ActionResult GetZXDealList(int isdc = 0)
  2142. {
  2143. DataTable dt = new DataTable();
  2144. string sql = " and a.F_IsDelete=0";
  2145. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2146. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2147. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2148. int islike = RequestString.GetInt("islike", 1);
  2149. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2150. string note = HttpUtility.UrlDecode(RequestString.GetQueryString("note"));
  2151. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2152. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2153. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2154. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2155. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2156. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2157. string visituser = HttpUtility.UrlDecode(RequestString.GetQueryString("visituser"));//回访人
  2158. string order = "ORDER BY a.F_Id DESC";
  2159. string smalltypes = HttpUtility.UrlDecode(RequestString.GetQueryString("smalltypes"));
  2160. int source = RequestString.GetInt("source", 0);
  2161. int keyid = RequestString.GetInt("keyid", 0);
  2162. int type = RequestString.GetInt("type", 0);
  2163. int bigtype = RequestString.GetInt("bigtype", 0);
  2164. int smalltype = RequestString.GetInt("smalltype", 0);
  2165. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2166. int tobereply = RequestString.GetInt("tobereply", 0);
  2167. int deptid = RequestString.GetInt("deptid", 0);
  2168. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2169. int issms = RequestString.GetInt("issms", -1);
  2170. int isresult = RequestString.GetInt("isresult", -1);
  2171. int smspy = RequestString.GetInt("smspy", -1);//0未发送短信1
  2172. int isprotect = RequestString.GetInt("isprotect", -1);//是否保密0否1是
  2173. int db = RequestString.GetInt("db", 0);
  2174. int islabel = RequestString.GetInt("islabel", 0);
  2175. int visit = RequestString.GetInt("visit", -2);//0满意1一评不满意2二评不满意
  2176. int contentment = RequestString.GetInt("contentment", -2);//0不满意1满意
  2177. string strpageindex = RequestString.GetQueryString("page");
  2178. int pageindex = 1;
  2179. string strpagesize = RequestString.GetQueryString("pagesize");
  2180. int pagesize = 10;
  2181. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  2182. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  2183. string innerjoin = "";
  2184. int visitType = RequestString.GetInt("visitType", -1);//回访方式
  2185. string visitstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstarttime"));//回访开始时间
  2186. string visitstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstrendtime"));//回访结束时间
  2187. int IsReturn = RequestString.GetInt("IsReturn", -1);
  2188. if (strstate == "0")
  2189. {
  2190. if (IsReturn == 1)
  2191. {
  2192. sql += " and a.F_IsReturn=1";
  2193. }
  2194. else
  2195. {
  2196. sql += " and (a.F_IsReturn is null or a.F_IsReturn !=1)";
  2197. }
  2198. }
  2199. if(isprotect>-1)
  2200. {
  2201. sql += " and a.F_IsProtect=" + isprotect;
  2202. }
  2203. if (isresult > -1)
  2204. {
  2205. sql += " and a.F_IsResult="+ isresult;
  2206. }
  2207. if (contentment>-2)
  2208. {
  2209. sql += " and a.F_Contentment>0 ";
  2210. if (contentment!=4)
  2211. {
  2212. sql += " and a.F_Contentment=" + contentment;
  2213. }
  2214. //else
  2215. //{
  2216. //}
  2217. }
  2218. if (note.Trim() != "" && note != "undefined")
  2219. {
  2220. sql += " and a.F_Note like '%|||" + note + "'";
  2221. }
  2222. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  2223. {
  2224. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2225. {
  2226. sql += " and a.F_DealTime between '" + dealstarttime +
  2227. "' AND '" + dealstrendtime + "'";
  2228. }
  2229. else
  2230. {
  2231. sql += " and a.F_DealTime>='" + dealstarttime + "' ";
  2232. }
  2233. }
  2234. else
  2235. {
  2236. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2237. {
  2238. sql += " and a.F_DealTime<='" + dealstrendtime + "' ";
  2239. }
  2240. }
  2241. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  2242. if (strtab!="2")
  2243. {
  2244. if (smspy==-1)
  2245. {
  2246. if (jianhang == 4)
  2247. {
  2248. sql += " and F_InfoSource = '2580'";
  2249. }
  2250. else
  2251. {
  2252. if (strtab != "5")
  2253. if (islabel != 1)
  2254. {
  2255. sql += " and F_InfoSource != '2580'";
  2256. }
  2257. }
  2258. }
  2259. }
  2260. if (smspy > -1)
  2261. {
  2262. if (smspy == 0)
  2263. {
  2264. sql += "and a.F_IsSms = 1 and F_PublicComment=-1 ";
  2265. }
  2266. else if (smspy == 1)
  2267. {//短信默认好评
  2268. sql += "and a.F_IsSms = 1 and F_PublicComment=1 ";
  2269. }
  2270. else if (smspy == 2)
  2271. {//短信人工好评
  2272. sql += "and a.F_IsSms = 1 and F_PublicComment>1";
  2273. }
  2274. else if (smspy == 3)
  2275. {//短信人工差评
  2276. sql += "and a.F_IsSms = 1 and F_PublicComment=0";
  2277. }
  2278. else if (smspy == 4)
  2279. {//短信转出人工差评
  2280. sql += "and a.F_IsSms = 1 and F_PublicComment=-2";
  2281. }
  2282. }
  2283. switch (strtab)
  2284. {
  2285. case "-1"://待处理工单(其他来源)
  2286. sql = " and a.F_IsDelete=1 and a.F_IsEnabled=0 ";
  2287. break;
  2288. case "0"://待处理工单
  2289. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2290. {
  2291. ////话务员,已办待回访菜单中可以看到所有工单并能操作
  2292. //if (User.F_RoleCode != "ZJZY" && User.F_RoleCode != "ZXHWY" )
  2293. // sql += " and a.F_CreateUser='" + User.F_UserCode + "'";
  2294. //话务员,已办待回访菜单中可以看到所有工单并能操作
  2295. }
  2296. if (strstate.Trim() != "" && strstate != "undefined")
  2297. {
  2298. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2299. {
  2300. sql += " and a.F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2301. sql += "and a.F_ToBereply=" + tobereply;
  2302. }
  2303. else if (strstate.Trim() == ((int)EnumWorkState.audit).ToString())
  2304. {
  2305. sql += " and a.F_WorkState in (" + (int)EnumWorkState.audit + "," + (int)EnumWorkState.auditreback + ") ";
  2306. sql += "and a.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)";
  2307. }
  2308. else if (strstate.Trim() == "6" || strstate.Trim() == "7")
  2309. {
  2310. sql += " and a.F_WorkState = '" + strstate.Trim() + "' ";
  2311. sql += "and a.F_ToBereply=" + tobereply;
  2312. }
  2313. else
  2314. {
  2315. if (smspy == -1)
  2316. sql += "and a.F_ToBereply=" + tobereply;
  2317. sql += " and a.F_WorkState = '" + strstate.Trim() + "' ";
  2318. }
  2319. if (strstate.Trim() == "6" || strstate.Trim() == "7")
  2320. {
  2321. // order = "order by F_DealTime desc";
  2322. if (db > -1)
  2323. {
  2324. if (db == 0)
  2325. {
  2326. sql += "and a.F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  2327. }
  2328. else
  2329. {
  2330. sql += "and a.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) )";
  2331. }
  2332. }
  2333. else
  2334. {
  2335. sql += "and a.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)";
  2336. }
  2337. if (strstate.Trim() == "7" && smspy == -1)
  2338. {
  2339. sql += "and a.F_IsSms !=1";
  2340. }
  2341. }
  2342. }
  2343. else
  2344. {
  2345. sql += "and a.F_ToBereply=" + tobereply;
  2346. sql += " and a.F_WorkState =0 ";
  2347. if (User.F_RoleCode != "GLY")
  2348. sql += " and a.F_CreateUser='" + User.F_UserCode + "'";
  2349. }
  2350. order = "order by a.F_Id desc";
  2351. break;
  2352. case "1"://已提交的工单
  2353. if (islabel != 1)
  2354. sql += " and F_WorkState >0 ";
  2355. if (strstate.Trim() != "" && strstate != "undefined")
  2356. {
  2357. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2358. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2359. else
  2360. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2361. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2362. }
  2363. //if (islabel != 1)
  2364. //{
  2365. // if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2366. // {
  2367. // sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2368. // }
  2369. //}
  2370. break;
  2371. case "2"://已回访的工单
  2372. if (strstate.Trim() != "" && strstate != "undefined")
  2373. {
  2374. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2375. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2376. else
  2377. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2378. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2379. }
  2380. sql += "and F_SpotCheck=1";
  2381. string where = "";
  2382. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  2383. {
  2384. where += " and v.F_CreateTime>='" + visitstarttime + "' ";
  2385. }
  2386. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  2387. {
  2388. where += " and v.F_CreateTime<='" + visitstrendtime + "' ";
  2389. }
  2390. if (visituser.Trim() != "" && visituser != "undefined")
  2391. {
  2392. where += " and v.F_CreateUser='" + visituser + "'";
  2393. }
  2394. if (visitType > -1)
  2395. {
  2396. where += " and v.F_Type='" + visitType + "'";
  2397. }
  2398. if (visit > -2)
  2399. {
  2400. innerjoin += " inner join T_Bus_VisitResult v" +
  2401. " on a.F_WorkOrderId = v.F_WorkOrderId and v.F_Id =" +
  2402. " (select max(F_Id) from T_Bus_VisitResult WITH(NOLOCK)" +
  2403. " where 1 = 1 AND F_WorkOrderId = a.F_WorkOrderId "+ where + " )";
  2404. innerjoin += " and v.F_IsSatisfie = '" + visit + "'";
  2405. // sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_Id in (select max(F_Id) " +
  2406. // "from T_Bus_VisitResult WITH(NOLOCK) where 1=1 "+ where + " group by F_WorkOrderId ) and F_IsSatisfie = '" + visit + "' ";
  2407. }
  2408. else
  2409. {
  2410. innerjoin += " inner join T_Bus_VisitResult v" +
  2411. " on a.F_WorkOrderId = v.F_WorkOrderId and v.F_Id =" +
  2412. " (select max(F_Id) from T_Bus_VisitResult WITH(NOLOCK)" +
  2413. " where 1 = 1 AND F_WorkOrderId = a.F_WorkOrderId "+ where + " )";
  2414. }
  2415. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  2416. {
  2417. innerjoin += " and v.F_CreateTime>='" + visitstarttime + "' ";
  2418. }
  2419. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  2420. {
  2421. innerjoin += " and v.F_CreateTime<='" + visitstrendtime + "' ";
  2422. }
  2423. if (visituser.Trim() != "" && visituser != "undefined")
  2424. {
  2425. innerjoin += " and v.F_CreateUser='" + visituser + "'";
  2426. }
  2427. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2428. {
  2429. // innerjoin += " and v.F_CreateUser='" + User.F_UserCode + "'";
  2430. }
  2431. else
  2432. {
  2433. // sql += ")";
  2434. }
  2435. break;
  2436. case "3"://已回退的工单
  2437. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  2438. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  2439. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "GNZY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2440. {
  2441. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2442. }
  2443. break;
  2444. case "4":
  2445. 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)";
  2446. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2447. {
  2448. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2449. }
  2450. break;
  2451. case "5":
  2452. sql += " and F_WorkState =0 ";
  2453. sql += " and F_InfoSource = '2580'";
  2454. break;
  2455. case "6"://已回访的工单
  2456. if (strstate.Trim() != "" && strstate != "undefined")
  2457. {
  2458. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2459. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2460. else
  2461. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2462. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2463. }
  2464. where = "";
  2465. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  2466. {
  2467. where += " and v.F_CreateTime>='" + visitstarttime + "' ";
  2468. }
  2469. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  2470. {
  2471. where += " and v.F_CreateTime<='" + visitstrendtime + "' ";
  2472. }
  2473. if (visituser.Trim() != "" && visituser != "undefined")
  2474. {
  2475. where += " and v.F_CreateUser='" + visituser + "'";
  2476. }
  2477. if (visitType > -1)
  2478. {
  2479. where += " and v.F_Type='" + visitType + "'";
  2480. }
  2481. if (visit > -2)
  2482. {
  2483. innerjoin += " inner join T_Bus_VisitResult v" +
  2484. " on a.F_WorkOrderId = v.F_WorkOrderId and v.F_Id =" +
  2485. " (select max(F_Id) from T_Bus_VisitResult WITH(NOLOCK)" +
  2486. " where 1 = 1 AND F_WorkOrderId = a.F_WorkOrderId " + where + " )";
  2487. innerjoin += " and v.F_IsSatisfie = '" + visit + "'";
  2488. // sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_Id in (select max(F_Id) " +
  2489. // "from T_Bus_VisitResult WITH(NOLOCK) where 1=1 "+ where + " group by F_WorkOrderId ) and F_IsSatisfie = '" + visit + "' ";
  2490. }
  2491. else
  2492. {
  2493. innerjoin += " inner join T_Bus_VisitResult v" +
  2494. " on a.F_WorkOrderId = v.F_WorkOrderId and v.F_Id =" +
  2495. " (select max(F_Id) from T_Bus_VisitResult WITH(NOLOCK)" +
  2496. " where 1 = 1 AND F_WorkOrderId = a.F_WorkOrderId " + where + " )";
  2497. }
  2498. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  2499. {
  2500. sql += " and F_CreateTime>='" + visitstarttime + "' ";
  2501. }
  2502. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  2503. {
  2504. sql += " and F_CreateTime<='" + visitstrendtime + "' ";
  2505. }
  2506. if (visituser.Trim() != "" && visituser != "undefined")
  2507. {
  2508. sql += " and F_CreateUser='" + visituser + "'";
  2509. }
  2510. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2511. {
  2512. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2513. }
  2514. else
  2515. {
  2516. sql += ")";
  2517. }
  2518. break;
  2519. }
  2520. if (issms > -1)
  2521. {
  2522. if (issms == 1)
  2523. sql += " and a.F_IsSms = '" + issms + "'";
  2524. else
  2525. sql += " and (a.F_IsSms = '0' or a.F_IsSms is null )";
  2526. }
  2527. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  2528. if (splituser.Trim() != "" && splituser != "undefined")
  2529. {
  2530. sql += " and F_SplitUser = '" + splituser + "' ";
  2531. }
  2532. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  2533. if (assuser.Trim() != "" && assuser != "undefined")
  2534. {
  2535. sql += " and F_AssignUser = '" + assuser + "' ";
  2536. }
  2537. if (User.F_RoleCode == "WLDW")
  2538. {
  2539. if (strtab != "5")
  2540. {
  2541. sql += " and F_InfoSource in (1,3,6) ";
  2542. }
  2543. }
  2544. if (strworkid.Trim() != "" && strworkid != "undefined")
  2545. {
  2546. sql += " and a.F_WorkOrderId like '%" + strworkid + "%' ";
  2547. }
  2548. if (strname.Trim() != "" && strname != "undefined")
  2549. {
  2550. sql += " and a.F_CusName like '%" + strname + "%' ";
  2551. }
  2552. if (islike > 0)
  2553. {
  2554. if (strtel.Trim() != "" && strtel != "undefined")
  2555. {
  2556. sql += " and (a.F_CusPhone like '%" + strtel + "%' or a.F_ConPhone like '%" + strtel + "%') ";
  2557. }
  2558. }
  2559. else
  2560. {
  2561. if (strtel.Trim() != "" && strtel != "undefined")
  2562. {
  2563. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  2564. }
  2565. }
  2566. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2567. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2568. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2569. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2570. {
  2571. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2572. }
  2573. if (Result.Trim() != "" && Result != "undefined")
  2574. {
  2575. sql += " and a.F_Result like '%" + Result + "%' ";
  2576. }
  2577. if (ComContent.Trim() != "" && ComContent != "undefined")
  2578. {
  2579. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2580. }
  2581. if (strkey.Trim() != "" && strkey != "undefined")
  2582. {
  2583. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2584. " or a.F_Result like '%" + strkey + "%' ) ";
  2585. }
  2586. #region 坐席&调度员
  2587. if (strusercode.Trim() != "" && strusercode != "undefined")
  2588. {//坐席
  2589. var usercode = strusercode.Trim().Split(',');
  2590. var newusercode = "";
  2591. foreach (var item in usercode)
  2592. {
  2593. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2594. newusercode += "'" + item + "',";
  2595. }
  2596. newusercode = newusercode.Trim(',');
  2597. if (newusercode.Trim() != "" && newusercode != "undefined")
  2598. {
  2599. sql += " and a.F_CreateUser in (" + newusercode + ") ";
  2600. }
  2601. }
  2602. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2603. {//调度员
  2604. var ddusercode = strddusercode.Trim().Split(',');
  2605. var newusercode = "";
  2606. foreach (var item in ddusercode)
  2607. {
  2608. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2609. newusercode += "'" + item + "',";
  2610. }
  2611. newusercode = newusercode.Trim(',');
  2612. if (newusercode.Trim() != "" && newusercode != "undefined")
  2613. {
  2614. sql += " and F_AssignUser in(" + newusercode + ") ";
  2615. }
  2616. }
  2617. #endregion
  2618. if (source != 0)
  2619. {
  2620. sql += " and F_InfoSource = '" + source + "' ";
  2621. }
  2622. string sqlwhere = ""; string value = "";
  2623. if (keyid != 0)
  2624. {
  2625. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2626. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2627. // " or F_Key='" + keyid + "' )";
  2628. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  2629. }
  2630. if (type != 0)
  2631. {
  2632. sql += " and F_InfoType = '" + type + "' ";
  2633. }
  2634. if (bigtype != 0)
  2635. {
  2636. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2637. }
  2638. if (smalltype != 0)
  2639. {
  2640. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2641. }
  2642. if (smalltypes.Trim() != "" && smalltypes != "undefined")
  2643. {
  2644. sql += " and a.F_InfoConSmallType in("+ smalltypes + ") ";
  2645. }
  2646. if (islabel>0)
  2647. {
  2648. sql += " and F_InfoConSmallType >0 ";
  2649. }
  2650. if (sourcearea != 0)
  2651. {
  2652. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2653. }
  2654. if (deptid != 0)
  2655. {
  2656. sql += " and (a.F_MainDeptId ='"+ deptid + "' or a.F_MainDeptID3 like'%" + deptid + "%')";
  2657. }
  2658. else
  2659. {
  2660. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  2661. {
  2662. deptid = User.F_DeptId;
  2663. sql += " and (a.F_MainDeptId = '" + deptid + "' or a.F_MainDeptID3 like'%" + deptid + "%')";
  2664. }
  2665. }
  2666. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2667. {
  2668. sql += " and a.F_CreateTime>='" + strstarttime + "' ";
  2669. }
  2670. if (strendtime.Trim() != "" && strendtime != "undefined")
  2671. {
  2672. sql += " and a.F_CreateTime<='" + strendtime + "' ";
  2673. }
  2674. if (strpageindex.Trim() != "")
  2675. {
  2676. pageindex = Convert.ToInt32(strpageindex);
  2677. }
  2678. if (strpagesize.Trim() != "")
  2679. {
  2680. pagesize = Convert.ToInt32(strpagesize);
  2681. }
  2682. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2683. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2684. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2685. string cols = "";
  2686. if (strtab == "5")
  2687. {
  2688. cols = "F_WorkOrderId,F_ComContent,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,a.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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  2689. }
  2690. else if (strtab == "6")
  2691. {
  2692. cols = "F_WorkOrderId,F_ComContent,F_CusPhone,F_ConPhone,F_InfoSource,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,a.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" +
  2693. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime,F_Identification,F_IsRelease,F_InfoSource,F_Note" +
  2694. ",(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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  2695. }
  2696. else
  2697. {
  2698. cols = "a.F_Contentment,a.F_WorkOrderId,F_ComContent,F_InfoSource,F_CusName,F_ComTitle,F_WorkState,a.F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,a.F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,a.F_CreateTime,dbo.GetUserName(a.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" +
  2699. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime,F_Identification,F_IsRelease,F_InfoSource,F_Note" +
  2700. ",(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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  2701. }
  2702. if ( jianhang== 4)
  2703. {
  2704. cols += " ,(select top 1 TFDBACKTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId order by CreateTime desc ) as TFDBACKTIME_BF ";
  2705. }
  2706. if (smspy > -1)
  2707. {
  2708. order = " order by a.F_Id desc";
  2709. }
  2710. if (isdc > 0)
  2711. {
  2712. var top = " "; var orderby = " order by a.F_CreateTime";
  2713. //20190715调整导出字段 zhengbingbing
  2714. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2715. //var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  2716. // " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  2717. // " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  2718. // " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  2719. // " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  2720. // " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  2721. // " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + " where 1=1 " + sql + orderby).Tables[0];
  2722. //var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2723. var dtdc = DbHelperSQL.Query(" select a.F_CreateTime 日期, F_CusName 姓名, dbo.GetUserName(a.F_CreateUser)" +
  2724. " 受话员姓名,F_CusPhone 手机号,a.F_WorkOrderId 工单号, " +
  2725. " F_ComTitle 诉求标题, F_ComContent 工单内容, (select names from View_Keys where id = F_Key)" +
  2726. " 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签," +
  2727. " dbo.GetDeptName(a.F_MainDeptId) 主办单位, a.F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  2728. " (case a.F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) 是否满意 " +
  2729. " from T_Bus_WorkOrder a WITH(NOLOCK) "+ innerjoin + value + " where 1=1 " + sql + orderby).Tables[0];
  2730. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2731. if (msg == "")
  2732. {
  2733. return Success("导出成功");
  2734. }
  2735. else
  2736. {
  2737. return Error("导出失败");
  2738. }
  2739. }
  2740. int recordCount = 0;
  2741. dt = BLL.PagerBLL.GetListPager(
  2742. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere+innerjoin,
  2743. "a.F_Id",
  2744. cols,
  2745. sql,
  2746. order,
  2747. pagesize,
  2748. pageindex,
  2749. true,
  2750. out recordCount);
  2751. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2752. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2753. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2754. dt.Columns.Add("OverState", typeof(string));//超时状态
  2755. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2756. dt.Columns.Add("GapTime", typeof(string));//时间差
  2757. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2758. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2759. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2760. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2761. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2762. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2763. foreach (DataRow dr in dt.Rows)
  2764. {
  2765. //获取最新交办信息
  2766. string iszbdw = "0";
  2767. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2768. if (state > 1)
  2769. {
  2770. 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";
  2771. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2772. if (dtjb.Rows.Count > 0)
  2773. {
  2774. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  2775. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2776. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2777. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2778. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  2779. {
  2780. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2781. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  2782. }
  2783. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2784. #region
  2785. #endregion
  2786. #region
  2787. //if (state < 6 || state == 8)
  2788. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2789. {
  2790. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2791. dr["LimitTime"] = lt;
  2792. if (!string.IsNullOrWhiteSpace(lt))
  2793. {
  2794. var ltime = DateTime.Parse(lt);
  2795. if (ltime > DateTime.Now)
  2796. {
  2797. //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") + "'";
  2798. //var SYSJ = DbHelperSQL.GetSingle(SY);
  2799. //if (SYSJ != null && SYSJ.ToString() != "")
  2800. //{
  2801. // try
  2802. // {
  2803. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2804. // }
  2805. // catch
  2806. // {
  2807. // }
  2808. //}
  2809. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  2810. //ltime = ltime.AddDays(-days);
  2811. }
  2812. else
  2813. {
  2814. //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") + "'";
  2815. //var SYSJ = DbHelperSQL.GetSingle(SY);
  2816. //if (SYSJ != null && SYSJ.ToString() != "")
  2817. //{
  2818. // try
  2819. // {
  2820. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  2821. // }
  2822. // catch
  2823. // {
  2824. // }
  2825. //}
  2826. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  2827. ltime = ltime.AddDays(days);
  2828. }
  2829. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2830. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2831. if (tss < 0) { tss = -tss; }
  2832. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2833. if (ltime > DateTime.Now)
  2834. {
  2835. if (configcs != null)
  2836. {
  2837. int cs = Int32.Parse(configcs.F_ParamValue);
  2838. if (ts.TotalHours > cs)
  2839. {
  2840. dr["OverState"] = 1;
  2841. }
  2842. else
  2843. {
  2844. dr["OverState"] = 2;
  2845. }
  2846. }
  2847. dr["GapTime"] = "剩余" + gshsj;
  2848. }
  2849. else
  2850. {
  2851. dr["OverState"] = 3;
  2852. dr["GapTime"] = "超时" + gshsj;
  2853. }
  2854. }
  2855. }
  2856. if (state == (int)EnumWorkState.finish)
  2857. {
  2858. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2859. var dttime = DateTime.Now;
  2860. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2861. else
  2862. {
  2863. var DealTime = dr["F_CloseTime"].ToString();
  2864. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  2865. }
  2866. //else
  2867. //{
  2868. // var DealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  2869. // if (!string.IsNullOrWhiteSpace(DealTime))
  2870. // dttime = DateTime.Parse(DealTime);
  2871. //}
  2872. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2873. dr["LimitTime"] = lt;
  2874. if (!string.IsNullOrWhiteSpace(lt))
  2875. {
  2876. var ltime = DateTime.Parse(lt);
  2877. if (ltime < dttime)
  2878. {
  2879. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  2880. ltime = ltime.AddDays(days);
  2881. TimeSpan ts = dttime.Subtract(ltime);
  2882. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2883. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2884. dr["OverState"] = 3;
  2885. dr["GapTime"] = "超时" + gshsj;
  2886. }
  2887. }
  2888. }
  2889. #endregion
  2890. }
  2891. else
  2892. {
  2893. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2894. string mid = dr["F_MainDeptId"].ToString();
  2895. if (!string.IsNullOrEmpty(mid))
  2896. {
  2897. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  2898. }
  2899. }
  2900. }
  2901. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2902. {
  2903. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  2904. }
  2905. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2906. {
  2907. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2908. }
  2909. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2910. if (Int32.Parse(strtab) == 0 || Int32.Parse(strtab) == 3)
  2911. {
  2912. btns.Clear();
  2913. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString()
  2914. );
  2915. //if (dr["F_InfoSource"].ToString()=="2580"&& dr["F_WorkState"].ToString()=="7")
  2916. //{
  2917. // 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")
  2918. // {
  2919. // var butts = btns.Find(c => c.key == ButtonGroup.visit().key);
  2920. // if (butts != null)
  2921. // {
  2922. // btns.Remove(butts);
  2923. // btns.Add(ButtonGroup.visits());
  2924. // }
  2925. // }
  2926. //}
  2927. #region 判断是否存在待督办
  2928. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2929. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2930. if (recount > 0 && butt != null)
  2931. btns.Remove(butt);
  2932. if (Int32.Parse(strtab) == 0 && state == 7)
  2933. {
  2934. // if (User.F_RoleCode.ToUpper() != "ZXHWY")
  2935. btns.Add(ButtonGroup.turnsee());
  2936. }
  2937. if (Int32.Parse(strtab) == 0 && state == 3)
  2938. {
  2939. if (butt != null)
  2940. btns.Remove(butt);
  2941. }
  2942. if (Int32.Parse(strtab) == 0 && state == 6)
  2943. {
  2944. btns.Add(ButtonGroup.modify());
  2945. }
  2946. #endregion
  2947. }
  2948. else if (Int32.Parse(strtab) == 5)
  2949. {
  2950. btns.Clear();
  2951. btns.Add(ButtonGroup.query());
  2952. btns.Add(ButtonGroup.Signfor());
  2953. btns.Add(ButtonGroup.Sendback());
  2954. btns.Add(ButtonGroup.delayback());
  2955. }
  2956. else if (Int32.Parse(strtab) == -1)
  2957. {
  2958. btns.Clear();
  2959. btns.Add(ButtonGroup.query());
  2960. btns.Add(ButtonGroup.edit());
  2961. }
  2962. else if (Int32.Parse(strtab) == 2)
  2963. {
  2964. btns.Add(ButtonGroup.SpotCheck());
  2965. }
  2966. else if (Int32.Parse(strtab) == 1&&islabel==1)
  2967. {
  2968. btns.Add(ButtonGroup.Call());
  2969. }
  2970. else
  2971. {
  2972. btns.Clear();
  2973. btns.Add(ButtonGroup.query());
  2974. }
  2975. if (smspy==2)
  2976. {
  2977. var butt = btns.Find(c => c.key == ButtonGroup.modify().key);
  2978. if (butt != null)
  2979. btns.Remove(butt);
  2980. var butt1 = btns.Find(c => c.key == ButtonGroup.statistics().key);
  2981. if (butt1 != null)
  2982. btns.Remove(butt1);
  2983. }
  2984. if (contentment>-2)
  2985. {
  2986. // btns.Add(ButtonGroup.RemoveContentment());
  2987. btns.Add(ButtonGroup.Note());
  2988. }
  2989. if (smspy == 3)
  2990. {
  2991. btns.Add(ButtonGroup.TransferOut());
  2992. }
  2993. dr["Buttons"] = btns;
  2994. }
  2995. var obj = new
  2996. {
  2997. state = "success",
  2998. message = "成功",
  2999. rows = dt,
  3000. total = recordCount
  3001. };
  3002. return Content(obj.ToJson());
  3003. }
  3004. /// <summary>
  3005. /// 获取领导处理列表
  3006. /// </summary>发
  3007. /// <returns></returns>
  3008. //[Authority]
  3009. public ActionResult GetLDDealList(int isdc = 0)
  3010. {
  3011. DataTable dt = new DataTable();
  3012. string sql = " and F_IsDelete=0";
  3013. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3014. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3015. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3016. int islike = RequestString.GetInt("islike", 1);
  3017. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3018. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3019. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3020. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3021. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3022. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3023. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3024. int source = RequestString.GetInt("source", 0);
  3025. int keyid = RequestString.GetInt("keyid", 0);
  3026. int type = RequestString.GetInt("type", 0);
  3027. int bigtype = RequestString.GetInt("bigtype", 0);
  3028. int smalltype = RequestString.GetInt("smalltype", 0);
  3029. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3030. int deptid = RequestString.GetInt("deptid", 0);
  3031. int isdb = RequestString.GetInt("isdb", -1);
  3032. int issh = RequestString.GetInt("issh", -1);
  3033. int deptlevel = RequestString.GetInt("deptlevel", 0);
  3034. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  3035. int dealtype = RequestString.GetInt("dealtype", -1);//1当即办理,0转办办理,2按时办结,3超期办结
  3036. string order = "ORDER BY F_CreateTime DESC";
  3037. string strpageindex = RequestString.GetQueryString("page");
  3038. int pageindex = 1;
  3039. string strpagesize = RequestString.GetQueryString("pagesize");
  3040. int pagesize = 10;
  3041. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  3042. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  3043. int db = RequestString.GetInt("db", 0);
  3044. int isopen = RequestString.GetInt("isopen", -1);
  3045. int identification = RequestString.GetInt("identification", -1);
  3046. int IsReturn = RequestString.GetInt("IsReturn", -1);
  3047. if (strstate == "0")
  3048. {
  3049. if (IsReturn == 1)
  3050. {
  3051. sql += " and F_IsReturn=1";
  3052. }
  3053. else
  3054. {
  3055. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  3056. }
  3057. }
  3058. int isfeedback = RequestString.GetInt("isfeedback", -1);
  3059. if (isfeedback > -1)
  3060. {
  3061. sql += $" and F_Administrative='{isfeedback}'";
  3062. }
  3063. if (identification > -1)
  3064. {
  3065. sql += "and F_Identification='" + identification + "'";
  3066. }
  3067. int cshf = RequestString.GetInt("cshf", -1);
  3068. if (cshf > -1)
  3069. {
  3070. if (cshf == 0)
  3071. sql += "and F_DealTime >F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  3072. else
  3073. sql += "and F_DealTime <F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  3074. }
  3075. if (isopen > -1)
  3076. sql += " and isnull(F_IsOpen,0) =" + isopen;
  3077. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  3078. if (splituser.Trim() != "" && splituser != "undefined")
  3079. {
  3080. sql += " and F_SplitUser = '" + splituser + "' ";
  3081. }
  3082. int jianhang = RequestString.GetInt("jianhang", -1);//省平台工单
  3083. if (jianhang == 4)
  3084. {
  3085. sql += " and F_InfoSource = '2580'";
  3086. }
  3087. else
  3088. {
  3089. if (strtab !="12")
  3090. sql += " and F_InfoSource != '2580'";
  3091. }
  3092. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  3093. if (assuser.Trim() != "" && assuser != "undefined")
  3094. {
  3095. sql += " and F_AssignUser = '" + assuser + "' ";
  3096. }
  3097. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  3098. {
  3099. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  3100. {
  3101. sql += " and F_DealTime between '" + dealstarttime +
  3102. "' AND '" + dealstrendtime + "'";
  3103. }
  3104. else
  3105. {
  3106. sql += " and F_DealTime>='" + dealstarttime + "' ";
  3107. }
  3108. }
  3109. else
  3110. {
  3111. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  3112. {
  3113. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  3114. }
  3115. }
  3116. if (isdb > -1)
  3117. {
  3118. if (isdb == 0)
  3119. {
  3120. 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)";
  3121. }
  3122. else
  3123. {
  3124. 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)";
  3125. }
  3126. }
  3127. switch (strtab)
  3128. {
  3129. case "0"://待处理工单
  3130. order = "order by a.F_Level desc, a.F_CreateTime desc";
  3131. sql += " and (F_IsRelease !='" + 3 + "' or " +
  3132. "F_IsRelease is null) ";
  3133. 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)";
  3134. if (strstate.Trim() != "" && strstate != "undefined")
  3135. {
  3136. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3137. {
  3138. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.resubmit + ") ";
  3139. }
  3140. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  3141. {
  3142. if (User.F_RoleCode == "ZXHWY")
  3143. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3144. else
  3145. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  3146. }
  3147. else
  3148. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3149. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3150. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  3151. {
  3152. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  3153. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  3154. && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ"
  3155. )
  3156. {
  3157. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3158. }
  3159. else
  3160. {
  3161. sql += ")";
  3162. }
  3163. }
  3164. else
  3165. {
  3166. 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")
  3167. {
  3168. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  3169. + "and F_CreateUser = '" + User.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  3170. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  3171. sql += " and F_WorkState != '9' ";
  3172. }
  3173. if (User.F_RoleCode == "ZXHWY"|| User.F_RoleCode == "ZXLD")
  3174. {
  3175. sql += " and F_CreateUser='" + User.F_UserCode + "' ";
  3176. }
  3177. }
  3178. }
  3179. else
  3180. {
  3181. int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.resubmit };
  3182. sql += "and F_WorkState in(1,11) ";
  3183. }
  3184. break;
  3185. case "1"://已交办的工单
  3186. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  3187. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  3188. if (strstate.Trim() != "" && strstate != "undefined")
  3189. {
  3190. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3191. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3192. else
  3193. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3194. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3195. }
  3196. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 )";
  3197. sql += " and F_WorkState in (2,3,4,5,8)";
  3198. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  3199. {
  3200. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  3201. }
  3202. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  3203. {
  3204. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  3205. }
  3206. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  3207. && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  3208. {
  3209. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3210. }
  3211. break;
  3212. case "2"://已审核退回的工单
  3213. if (strstate.Trim() != "" && strstate != "undefined")
  3214. {
  3215. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3216. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3217. else
  3218. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3219. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3220. }
  3221. 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 ";
  3222. 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")
  3223. {
  3224. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  3225. }
  3226. else
  3227. {
  3228. sql += ")";
  3229. }
  3230. break;
  3231. case "3"://已审核延时的工单
  3232. if (strstate.Trim() != "" && strstate != "undefined")
  3233. {
  3234. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3235. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3236. else
  3237. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3238. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3239. }
  3240. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit>0 ";
  3241. 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")
  3242. {
  3243. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  3244. }
  3245. else
  3246. {
  3247. sql += ")";
  3248. }
  3249. break;
  3250. case "4"://已重办的工单
  3251. if (strstate.Trim() != "" && strstate != "undefined")
  3252. {
  3253. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3254. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3255. else
  3256. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3257. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3258. }
  3259. 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 ";
  3260. sql += ")";
  3261. break;
  3262. case "5"://已结案的工单
  3263. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  3264. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  3265. if (issatisfie != -1)
  3266. {
  3267. 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 ) ) )";
  3268. }
  3269. if (dealtype > -1)
  3270. {
  3271. if (dealtype == 2)
  3272. {//按时
  3273. sql += " and F_IsResult=0 and isnull(F_DealTime,'')<>'' and F_LimitTime>=F_DealTime ";
  3274. }
  3275. else if (dealtype == 3)
  3276. {//超期
  3277. sql += " and isnull(F_DealTime,'')<>'' and F_LimitTime<F_DealTime ";
  3278. }
  3279. else
  3280. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  3281. }
  3282. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  3283. 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")
  3284. {
  3285. sql += " and F_CloseUser='" + User.F_UserCode + "'";
  3286. }
  3287. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  3288. {
  3289. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  3290. }
  3291. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  3292. {
  3293. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  3294. }
  3295. break;
  3296. case "6"://已督办的工单
  3297. if (strstate.Trim() != "" && strstate != "undefined")
  3298. {
  3299. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3300. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3301. else
  3302. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3303. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3304. }
  3305. 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 ";
  3306. 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")
  3307. {
  3308. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3309. }
  3310. else
  3311. {
  3312. sql += ")";
  3313. }
  3314. break;
  3315. case "7"://已监察的工单
  3316. if (strstate.Trim() != "" && strstate != "undefined")
  3317. {
  3318. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3319. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3320. else
  3321. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3322. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3323. }
  3324. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  3325. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  3326. 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")
  3327. {
  3328. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3329. }
  3330. else
  3331. {
  3332. sql += ")";
  3333. }
  3334. break;
  3335. case "8"://待督办列表
  3336. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  3337. if (strstate.Trim() != "" && strstate != "undefined")
  3338. {
  3339. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3340. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3341. else
  3342. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3343. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3344. }
  3345. 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 ";
  3346. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DDZG")
  3347. {
  3348. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3349. }
  3350. else
  3351. {
  3352. sql += ")";
  3353. }
  3354. break;
  3355. case "9"://重办驳回列表
  3356. sql += " and F_WorkState=" + (int)EnumWorkState.rejload;
  3357. 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)";
  3358. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3359. {
  3360. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3361. }
  3362. sql += ")";
  3363. break;
  3364. case "10"://
  3365. sql += " and (F_IsRelease !='" + 3 + "' or " +
  3366. "F_IsRelease is null) ";
  3367. sql += " and F_WorkState in(1,11)";
  3368. 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)";
  3369. // 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 ) ";
  3370. // 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 ) ";
  3371. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" )
  3372. {
  3373. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3374. }
  3375. break;
  3376. case "11"://
  3377. sql += " and F_WorkState =14";
  3378. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  3379. {
  3380. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  3381. }
  3382. if (db > -1)
  3383. {
  3384. if (db == 0)
  3385. {
  3386. 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)";
  3387. }
  3388. else
  3389. {
  3390. 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) )";
  3391. }
  3392. }
  3393. break;
  3394. case "12"://省平台待审转办
  3395. order = "order by a.F_Level desc, a.F_CreateTime desc";
  3396. sql += " and (F_IsRelease !='" + 3 + "' or " +
  3397. "F_IsRelease is null) ";
  3398. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord " +
  3399. "where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  3400. sql += "and F_WorkState in(1,11) ";
  3401. sql += " and F_InfoSource = '2580'";
  3402. break;
  3403. }
  3404. if (strworkid.Trim() != "" && strworkid != "undefined")
  3405. {
  3406. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3407. }
  3408. if (strname.Trim() != "" && strname != "undefined")
  3409. {
  3410. sql += " and F_CusName like '%" + strname + "%' ";
  3411. }
  3412. if (islike > 0)
  3413. {
  3414. if (strtel.Trim() != "" && strtel != "undefined")
  3415. {
  3416. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3417. }
  3418. }
  3419. else
  3420. {
  3421. if (strtel.Trim() != "" && strtel != "undefined")
  3422. {
  3423. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3424. }
  3425. }
  3426. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3427. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3428. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3429. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3430. {
  3431. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3432. }
  3433. if (Result.Trim() != "" && Result != "undefined")
  3434. {
  3435. sql += " and F_Result like '%" + Result + "%' ";
  3436. }
  3437. if (ComContent.Trim() != "" && ComContent != "undefined")
  3438. {
  3439. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3440. }
  3441. if (strkey.Trim() != "" && strkey != "undefined")
  3442. {
  3443. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3444. " or F_Result like '%" + strkey + "%' ) ";
  3445. }
  3446. #region 坐席&调度员
  3447. if (strusercode.Trim() != "" && strusercode != "undefined")
  3448. {//坐席
  3449. var usercode = strusercode.Trim().Split(',');
  3450. var newusercode = "";
  3451. foreach (var item in usercode)
  3452. {
  3453. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3454. newusercode += "'" + item + "',";
  3455. }
  3456. newusercode = newusercode.Trim(',');
  3457. if (newusercode.Trim() != "" && newusercode != "undefined")
  3458. {
  3459. sql += " and F_CreateUser in (" + newusercode + ") ";
  3460. }
  3461. }
  3462. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3463. {//调度员
  3464. var ddusercode = strddusercode.Trim().Split(',');
  3465. var newusercode = "";
  3466. foreach (var item in ddusercode)
  3467. {
  3468. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3469. newusercode += "'" + item + "',";
  3470. }
  3471. newusercode = newusercode.Trim(',');
  3472. if (newusercode.Trim() != "" && newusercode != "undefined")
  3473. {
  3474. sql += " and F_AssignUser in(" + newusercode + ") ";
  3475. }
  3476. }
  3477. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3478. //{
  3479. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3480. //}
  3481. #endregion
  3482. if (source != 0)
  3483. {
  3484. sql += " and F_InfoSource = '" + source + "' ";
  3485. }
  3486. string sqlwheres = ""; string value = "";
  3487. if (keyid != 0)
  3488. {
  3489. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3490. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3491. // " or F_Key='" + keyid + "' )";
  3492. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  3493. }
  3494. if (type != 0)
  3495. {
  3496. sql += " and F_InfoType = '" + type + "' ";
  3497. }
  3498. if (bigtype != 0)
  3499. {
  3500. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3501. }
  3502. if (smalltype != 0)
  3503. {
  3504. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3505. }
  3506. if (sourcearea != 0)
  3507. {
  3508. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3509. }
  3510. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3511. {
  3512. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3513. }
  3514. if (strendtime.Trim() != "" && strendtime != "undefined")
  3515. {
  3516. sql += " and F_CreateTime<='" + strendtime + "' ";
  3517. }
  3518. //if (deptid != 0 && strtab != "1")
  3519. //{
  3520. // if (deptlevel == 0)
  3521. // {
  3522. // 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 ";
  3523. // //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 ";
  3524. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3525. // }
  3526. // else
  3527. // {
  3528. // //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 ";
  3529. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where" +
  3530. // " F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  3531. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3532. // }
  3533. //}
  3534. if (deptid != 0)
  3535. {
  3536. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  3537. }
  3538. else
  3539. {
  3540. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  3541. {
  3542. deptid = User.F_DeptId;
  3543. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  3544. }
  3545. }
  3546. if (strpageindex.Trim() != "")
  3547. {
  3548. pageindex = Convert.ToInt32(strpageindex);
  3549. }
  3550. if (strpagesize.Trim() != "")
  3551. {
  3552. pagesize = Convert.ToInt32(strpagesize);
  3553. }
  3554. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3555. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3556. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3557. string cols = "";
  3558. if (strtab == "10")
  3559. {
  3560. 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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  3561. }
  3562. else if (strtab == "12")
  3563. {
  3564. 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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  3565. }
  3566. else
  3567. {
  3568. 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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType" +
  3569. ",(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";
  3570. }
  3571. if (jianhang == 4&& strtab != "12")
  3572. {
  3573. cols += " ,(select top 1 TFDBACKTIME_BF from T_Sys_Affairs where F_WorkOrderId = a.F_WorkOrderId order by CreateTime desc ) as TFDBACKTIME_BF ";
  3574. }
  3575. if (isdc > 0)
  3576. {
  3577. var top = " "; var orderby = " order by F_CreateTime";
  3578. //20190715调整导出字段 zhengbingbing
  3579. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  3580. //var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, users.F_Name 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  3581. // " F_ComTitle 诉求标题, F_ComContent 工单内容, b.names 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签, c.F_DeptName 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  3582. // " (select top 1(case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie " +
  3583. // " from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 " +
  3584. // " from T_Bus_WorkOrder a WITH(NOLOCK) left join View_Keys as b on b.id = a.F_Key " +
  3585. // " left join T_Sys_Department as c on c.F_DeptId = a.F_MainDeptId " +
  3586. // " left join T_Sys_UserAccount as users on users.F_UserCode = a.F_CreateUser" + value + " where 1=1 " + sql + orderby).Tables[0];
  3587. //var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3588. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, dbo.GetUserName(a.F_CreateUser)" +
  3589. " 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号, " +
  3590. " F_ComTitle 诉求标题, F_ComContent 工单内容, (select names from View_Keys where id = F_Key)" +
  3591. " 反映类别,dbo.GetDictionaryName(F_InfoConSmallType) as 标签," +
  3592. " dbo.GetDeptName(a.F_MainDeptId) 主办单位, F_Result 办理结果, a.F_SpotCheck as F_SpotCheck, " +
  3593. " (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) 是否满意 " +
  3594. " from T_Bus_WorkOrder a WITH(NOLOCK) " + value + " where 1=1 " + sql + orderby).Tables[0];
  3595. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3596. if (msg == "")
  3597. {
  3598. return Success("导出成功");
  3599. }
  3600. else
  3601. {
  3602. return Error("导出失败");
  3603. }
  3604. }
  3605. int recordCount = 0;
  3606. dt = BLL.PagerBLL.GetListPager(
  3607. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  3608. "F_Id",
  3609. cols,
  3610. sql,
  3611. order,
  3612. pagesize,
  3613. pageindex,
  3614. true,
  3615. out recordCount);
  3616. #region 声音文件
  3617. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3618. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3619. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3620. dt.Columns.Add("OverState", typeof(string));//超时状态
  3621. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3622. dt.Columns.Add("GapTime", typeof(string));//时间差
  3623. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3624. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3625. if (strtab == "10")
  3626. {
  3627. dt.Columns.Add("DeptNames", typeof(string));//退回部门
  3628. dt.Columns.Add("Backreason", typeof(object));//退回原因
  3629. }
  3630. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3631. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3632. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3633. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3634. foreach (DataRow dr in dt.Rows)
  3635. {
  3636. //获取最新交办信息
  3637. string iszbdw = "0";
  3638. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3639. if (state > 1 && state != 11)
  3640. {
  3641. 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";
  3642. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3643. if (dtjb.Rows.Count > 0)
  3644. {
  3645. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3646. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3647. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3648. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3649. {
  3650. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3651. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  3652. }
  3653. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3654. #region
  3655. #endregion
  3656. #region
  3657. //if (state < 6 || state == 8)
  3658. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3659. {
  3660. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3661. dr["LimitTime"] = lt;
  3662. if (!string.IsNullOrWhiteSpace(lt))
  3663. {
  3664. var ltime = DateTime.Parse(lt);
  3665. if (ltime > DateTime.Now)
  3666. {
  3667. //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") + "'";
  3668. //var SYSJ = DbHelperSQL.GetSingle(SY);
  3669. //if (SYSJ != null && SYSJ.ToString() != "")
  3670. //{
  3671. // try
  3672. // {
  3673. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3674. // }
  3675. // catch
  3676. // {
  3677. // }
  3678. //}
  3679. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  3680. //ltime = ltime.AddDays(-days);
  3681. }
  3682. else
  3683. {
  3684. //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") + "'";
  3685. //var SYSJ = DbHelperSQL.GetSingle(SY);
  3686. //if (SYSJ != null && SYSJ.ToString() != "")
  3687. //{
  3688. // try
  3689. // {
  3690. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  3691. // }
  3692. // catch
  3693. // {
  3694. // }
  3695. //}
  3696. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  3697. ltime = ltime.AddDays(days);
  3698. }
  3699. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3700. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3701. if (tss < 0) { tss = -tss; }
  3702. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3703. if (ltime > DateTime.Now)
  3704. {
  3705. if (configcs != null)
  3706. {
  3707. int cs = Int32.Parse(configcs.F_ParamValue);
  3708. if (ts.TotalHours > cs)
  3709. {
  3710. dr["OverState"] = 1;
  3711. }
  3712. else
  3713. {
  3714. dr["OverState"] = 2;
  3715. }
  3716. }
  3717. dr["GapTime"] = "剩余" + gshsj;
  3718. }
  3719. else
  3720. {
  3721. dr["OverState"] = 3;
  3722. dr["GapTime"] = "超时" + gshsj;
  3723. }
  3724. }
  3725. }
  3726. if (state == (int)EnumWorkState.finish)
  3727. {
  3728. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3729. var dttime = DateTime.Now;
  3730. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3731. else
  3732. {
  3733. var dealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  3734. if (!string.IsNullOrWhiteSpace(dealTime)) { dttime = DateTime.Parse(dealTime); }
  3735. }
  3736. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3737. dr["LimitTime"] = lt;
  3738. if (!string.IsNullOrWhiteSpace(lt))
  3739. {
  3740. var ltime = DateTime.Parse(lt);
  3741. if (ltime < dttime)
  3742. {
  3743. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  3744. ltime = ltime.AddDays(days);
  3745. TimeSpan ts = dttime.Subtract(ltime);
  3746. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3747. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3748. dr["OverState"] = 3;
  3749. dr["GapTime"] = "超时" + gshsj;
  3750. }
  3751. }
  3752. }
  3753. #endregion
  3754. }
  3755. else
  3756. {
  3757. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3758. string mid = dr["F_MainDeptId"].ToString();
  3759. if (!string.IsNullOrEmpty(mid))
  3760. {
  3761. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  3762. }
  3763. }
  3764. }
  3765. if (strtab == "10")
  3766. {
  3767. 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";
  3768. var tu = DbHelperSQL.Query(strtu).Tables[0];
  3769. if (tu.Rows.Count > 0)
  3770. {
  3771. dr["DeptNames"] = tu.Rows[0]["DeptNames"].ToString();
  3772. dr["Backreason"] = tu.Rows[0]["F_Result"].ToString();
  3773. }
  3774. }
  3775. else
  3776. {
  3777. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3778. {
  3779. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  3780. }
  3781. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3782. {
  3783. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3784. }
  3785. }
  3786. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3787. if (Int32.Parse(strtab) <= 1 || Int32.Parse(strtab) == 12 || Int32.Parse(strtab) == 11 || Int32.Parse(strtab) == 10 || Int32.Parse(strtab) == 9 )
  3788. {
  3789. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString(), issh);
  3790. #region 判断是否存在待督办
  3791. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3792. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3793. if (recount > 0 && butt != null)
  3794. btns.Remove(butt);
  3795. 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")
  3796. {
  3797. if (Int32.Parse(strtab) != 11 && Int32.Parse(strtab) != 9)
  3798. btns.Add(ButtonGroup.turnsee());
  3799. }
  3800. //if (User.F_RoleCode.ToUpper() == "ZXHWY")
  3801. //{
  3802. // if (Int32.Parse(strtab)== 0)
  3803. // {
  3804. // btns.Add(ButtonGroup.turnsee());
  3805. // if (dr["F_WorkState"].ToString()=="1")
  3806. // {
  3807. // btns.Add(ButtonGroup.edit());
  3808. // btns.Add(ButtonGroup.back());
  3809. // btns.Add(ButtonGroup.Report());
  3810. // btns.Add(ButtonGroup.trans());
  3811. // }
  3812. // else if (dr["F_WorkState"].ToString() == "11")
  3813. // {
  3814. // btns.Add(ButtonGroup.reload()); btns.Add(ButtonGroup.reject());
  3815. // }
  3816. // }
  3817. //}
  3818. if (strtab == "0" && issh == 2)
  3819. {
  3820. 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))");
  3821. }
  3822. #endregion
  3823. }
  3824. else
  3825. {
  3826. btns.Clear();
  3827. if (Int32.Parse(strtab) == 8)
  3828. btns = ButtonGroup.GetButtons("12", User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  3829. else
  3830. btns.Add(ButtonGroup.query());
  3831. if (Int32.Parse(strtab) != 4)
  3832. {
  3833. if (state == 9)
  3834. {
  3835. if (User.F_RoleCode.ToUpper() == "GNZY")
  3836. {
  3837. btns.Add(ButtonGroup.modify());
  3838. }
  3839. 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")
  3840. {
  3841. //if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  3842. //{
  3843. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  3844. // TimeSpan ts = DateTime.Now - closedttime;
  3845. // if (ts.TotalDays < 20)
  3846. // {
  3847. // btns.Add(ButtonGroup.subreload());
  3848. // }
  3849. //}
  3850. //btns.Add(ButtonGroup.Unsuccessful ());
  3851. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  3852. {
  3853. btns.Add(ButtonGroup.modify());
  3854. btns.Add(ButtonGroup.statistics());
  3855. }
  3856. btns.Add(ButtonGroup.BackVisit());
  3857. }
  3858. }
  3859. }
  3860. }
  3861. dr["Buttons"] = btns;
  3862. }
  3863. #endregion
  3864. var obj = new
  3865. {
  3866. state = "success",
  3867. message = "成功",
  3868. rows = dt,
  3869. total = recordCount
  3870. };
  3871. return Content(obj.ToJson());
  3872. }
  3873. /// <summary>
  3874. /// 获取单位处理列表
  3875. /// </summary>
  3876. /// <returns></returns>
  3877. //[Authority]
  3878. public ActionResult GetDWDealList(int isdc = 0)
  3879. {
  3880. DataTable dt = new DataTable();
  3881. string sql = " and F_IsDelete=0";
  3882. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3883. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3884. int islike = RequestString.GetInt("islike", 1);
  3885. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3886. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3887. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3888. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3889. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3890. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3891. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3892. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3893. int source = RequestString.GetInt("source", 0);
  3894. int keyid = RequestString.GetInt("keyid", 0);
  3895. int type = RequestString.GetInt("type", 0);
  3896. int bigtype = RequestString.GetInt("bigtype", 0);
  3897. int smalltype = RequestString.GetInt("smalltype", 0);
  3898. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3899. int deptid = RequestString.GetInt("deptid", 0);
  3900. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  3901. int deptlevel = RequestString.GetInt("deptlevel", 0);
  3902. int distribute = RequestString.GetInt("distribute", -1);//0未派单1已派单
  3903. int blstate = RequestString.GetInt("blstate", 0);//办理状态0办理中1已办理
  3904. int isreply = RequestString.GetInt("isreply", 0);//办理状态0办理中1已办理
  3905. int noresult = RequestString.GetInt("noresult", 0);//0未指派1已指派
  3906. int isys = RequestString.GetInt("isys", -1);
  3907. string strpageindex = RequestString.GetQueryString("page");
  3908. int pageindex = 1;
  3909. string strpagesize = RequestString.GetQueryString("pagesize");
  3910. int pagesize = 10;
  3911. string order = "ORDER BY a.F_LimitTime";
  3912. int IsReturn = RequestString.GetInt("IsReturn", -1);
  3913. if (strstate == "0")
  3914. {
  3915. if (IsReturn == 1)
  3916. {
  3917. sql += " and F_IsReturn=1";
  3918. }
  3919. else
  3920. {
  3921. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  3922. }
  3923. }
  3924. #region 模块
  3925. switch (strtab)
  3926. {
  3927. case "0"://待处理工单
  3928. order = "order by F_Level desc, F_CreateTime desc ";
  3929. int isyq = RequestString.GetInt("isyq", -1);
  3930. if (strstate.Trim() != "" && strstate != "undefined")
  3931. {
  3932. if (strstate == "4")
  3933. {
  3934. sql += " and (F_WorkState =4 or (F_Identification=0 and F_WorkState=8 ) )";
  3935. }
  3936. else
  3937. {
  3938. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3939. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3940. else
  3941. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3942. }
  3943. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3944. }
  3945. else
  3946. {
  3947. if (distribute != 0)
  3948. {
  3949. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  3950. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3951. }
  3952. }
  3953. 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)";
  3954. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  3955. {
  3956. if (distribute > -1)
  3957. {
  3958. if (distribute == 0)
  3959. {
  3960. //提交重办也包含在待办列表
  3961. 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)) ";
  3962. if (isys > -1)
  3963. {
  3964. if (isys == 0)
  3965. {
  3966. sql += "and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  3967. }
  3968. else if (isys == 1)
  3969. {
  3970. sql += "and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  3971. }
  3972. }
  3973. }
  3974. else
  3975. {
  3976. 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 )) ";
  3977. }
  3978. }
  3979. else
  3980. {
  3981. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3982. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)";
  3983. }
  3984. if (isyq != -1)
  3985. {
  3986. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3987. }
  3988. else
  3989. {
  3990. sql += ")";
  3991. }
  3992. }
  3993. break;
  3994. case "1"://已查收的工单
  3995. if (strstate.Trim() != "" && strstate != "undefined")
  3996. {
  3997. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3998. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3999. else
  4000. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4001. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4002. }
  4003. 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 ";
  4004. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4005. {
  4006. sql += " and F_SureUser='" + User.F_UserCode + "')";
  4007. }
  4008. else
  4009. {
  4010. sql += ")";
  4011. }
  4012. break;
  4013. case "2"://已申请退回的工单
  4014. if (strstate.Trim() != "" && strstate != "undefined")
  4015. {
  4016. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4017. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4018. else
  4019. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4020. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4021. }
  4022. 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 ";
  4023. 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")
  4024. {
  4025. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4026. }
  4027. else
  4028. {
  4029. sql += ")";
  4030. }
  4031. break;
  4032. case "3"://已申请延时的工单
  4033. if (strstate.Trim() != "" && strstate != "undefined")
  4034. {
  4035. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4036. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4037. else
  4038. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4039. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4040. }
  4041. else
  4042. {
  4043. if (blstate == 0)
  4044. {
  4045. sql += " and F_WorkState in (1,2,3,4,5,8,10,11,13) ";
  4046. }
  4047. else
  4048. {
  4049. sql += " and F_WorkState in (6,7,9) ";
  4050. }
  4051. }
  4052. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 ";
  4053. 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")
  4054. {
  4055. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4056. }
  4057. else
  4058. {
  4059. sql += ")";
  4060. }
  4061. break;
  4062. case "4"://已办理的工单
  4063. if (strstate.Trim() != "" && strstate != "undefined")
  4064. {
  4065. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4066. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4067. else
  4068. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4069. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4070. }
  4071. 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' ";
  4072. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4073. {
  4074. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4075. }
  4076. else
  4077. {
  4078. sql += ")";
  4079. }
  4080. break;
  4081. case "5"://被督办的工单
  4082. if (strstate.Trim() != "" && strstate != "undefined")
  4083. {
  4084. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4085. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4086. else
  4087. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4088. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4089. }
  4090. 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 ";
  4091. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4092. {
  4093. sql += " and F_DeptId='" + User.F_DeptId + "')";
  4094. }
  4095. else
  4096. {
  4097. sql += ")";
  4098. }
  4099. break;
  4100. case "6"://被监察的工单
  4101. if (strstate.Trim() != "" && strstate != "undefined")
  4102. {
  4103. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4104. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4105. else
  4106. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4107. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4108. }
  4109. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  4110. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  4111. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4112. {
  4113. sql += " and F_DeptId='" + User.F_DeptId + "')";
  4114. }
  4115. else
  4116. {
  4117. sql += ")";
  4118. }
  4119. break;
  4120. case "7"://延时审核中的工单
  4121. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  4122. 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")
  4123. {
  4124. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  4125. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4126. }
  4127. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsAudit=0)";
  4128. break;
  4129. case "8"://退回审核中的工单
  4130. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  4131. 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,'')=''";
  4132. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4133. {
  4134. sql += " and F_SureUser='" + User.F_UserCode + "')";
  4135. }
  4136. else
  4137. {
  4138. sql += ")";
  4139. }
  4140. break;
  4141. case "9"://需履职界定表
  4142. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  4143. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  4144. 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 ";
  4145. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4146. {
  4147. sql += " and F_MainDeptId='" + User.F_DeptId + "' ";
  4148. }
  4149. sql += "))";
  4150. break;
  4151. case "10"://履职界定待审核表
  4152. 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 )";
  4153. break;
  4154. case "11"://履职界定已审核表
  4155. 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 )";
  4156. break;
  4157. case "12"://退回重办(去掉提交重办)
  4158. sql += " and F_WorkState = '" + (int)EnumWorkState.reload + "' and (F_Identification=1 or F_Identification=2)";
  4159. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  4160. //{
  4161. // sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4162. // + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))";
  4163. //}
  4164. 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)";
  4165. // sql += "and (F_Identification!=0 or F_Identification is null) ";
  4166. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4167. {
  4168. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4169. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)" +
  4170. "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;
  4171. }
  4172. break;
  4173. case "13"://下级单位退回
  4174. // int[] st = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  4175. sql += " and F_WorkState in (2,4,8)";
  4176. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4177. {
  4178. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a W" +
  4179. "ITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''" +
  4180. "and F_IsNext =4 and F_MainDeptId in (" + User.F_DeptId + ") " +
  4181. "and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  4182. }
  4183. break;
  4184. case "14"://正在办理
  4185. sql += " and F_WorkState in (2,4,8)";
  4186. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4187. {
  4188. string where = "and F_IsNext<3";
  4189. if (isreply > 0)
  4190. {
  4191. where = "and F_IsNext=3";
  4192. }
  4193. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 " +
  4194. "and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext != '0' and F_IsNext !='' " +
  4195. "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 ))";
  4196. }
  4197. break;
  4198. case "15"://已办理提交
  4199. sql += " and F_WorkState in (4,8)";
  4200. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4201. {
  4202. 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 " +
  4203. "and F_MainDeptId =" + User.F_DeptId + " " +
  4204. "and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) " +
  4205. ") ";
  4206. }
  4207. else
  4208. {
  4209. 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 " +
  4210. "and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  4211. }
  4212. break;
  4213. case "16"://退回被拒绝
  4214. sql += " and F_WorkState in (4,8)";
  4215. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4216. {
  4217. 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 )) ";
  4218. }
  4219. break;
  4220. case "17"://延时被拒绝
  4221. 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")
  4222. {
  4223. sql += " and F_WorkState in (4,8)";
  4224. 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 ) )";
  4225. }
  4226. else
  4227. {
  4228. 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 ) )";
  4229. }
  4230. break;
  4231. case "18"://已办理未果
  4232. sql += " and F_WorkState in(6,7,9)";
  4233. sql += " and F_IsProResult = '2' ";
  4234. if (noresult == 0)
  4235. sql += " and (F_NoResult is null or F_NoResult ='') ";
  4236. else
  4237. sql += " and F_NoResult is not null and F_NoResult !='' ";
  4238. 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) ";
  4239. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4240. {
  4241. sql += " and F_MainDeptId='" + User.F_DeptId + "')";
  4242. }
  4243. else
  4244. {
  4245. sql += ")";
  4246. }
  4247. break;
  4248. }
  4249. #endregion
  4250. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  4251. if (splituser.Trim() != "" && splituser != "undefined")
  4252. {
  4253. sql += " and F_SplitUser = '" + splituser + "' ";
  4254. }
  4255. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  4256. if (assuser.Trim() != "" && assuser != "undefined")
  4257. {
  4258. sql += " and F_AssignUser = '" + assuser + "' ";
  4259. }
  4260. #region 条件
  4261. if (strworkid.Trim() != "" && strworkid != "undefined")
  4262. {
  4263. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4264. }
  4265. if (strname.Trim() != "" && strname != "undefined")
  4266. {
  4267. sql += " and F_CusName like '%" + strname + "%' ";
  4268. }
  4269. if (islike > 0)
  4270. {
  4271. if (strtel.Trim() != "" && strtel != "undefined")
  4272. {
  4273. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4274. }
  4275. }
  4276. else
  4277. {
  4278. if (strtel.Trim() != "" && strtel != "undefined")
  4279. {
  4280. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4281. }
  4282. }
  4283. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4284. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4285. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4286. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4287. {
  4288. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4289. }
  4290. if (Result.Trim() != "" && Result != "undefined")
  4291. {
  4292. sql += " and F_Result like '%" + Result + "%' ";
  4293. }
  4294. if (ComContent.Trim() != "" && ComContent != "undefined")
  4295. {
  4296. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4297. }
  4298. if (strkey.Trim() != "" && strkey != "undefined")
  4299. {
  4300. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4301. " or F_Result like '%" + strkey + "%' ) ";
  4302. }
  4303. #region 坐席&调度员
  4304. if (strusercode.Trim() != "" && strusercode != "undefined")
  4305. {//坐席
  4306. var usercode = strusercode.Trim().Split(',');
  4307. var newusercode = "";
  4308. foreach (var item in usercode)
  4309. {
  4310. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4311. newusercode += "'" + item + "',";
  4312. }
  4313. newusercode = newusercode.Trim(',');
  4314. if (newusercode.Trim() != "" && newusercode != "undefined")
  4315. {
  4316. sql += " and F_CreateUser in (" + newusercode + ") ";
  4317. }
  4318. }
  4319. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4320. {//调度员
  4321. var ddusercode = strddusercode.Trim().Split(',');
  4322. var newusercode = "";
  4323. foreach (var item in ddusercode)
  4324. {
  4325. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4326. newusercode += "'" + item + "',";
  4327. }
  4328. newusercode = newusercode.Trim(',');
  4329. if (newusercode.Trim() != "" && newusercode != "undefined")
  4330. {
  4331. sql += " and F_AssignUser in(" + newusercode + ") ";
  4332. }
  4333. }
  4334. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4335. //{
  4336. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4337. //}
  4338. #endregion
  4339. if (source != 0)
  4340. {
  4341. sql += " and F_InfoSource = '" + source + "' ";
  4342. }
  4343. string sqlwhere = ""; string value = "";
  4344. if (keyid != 0)
  4345. {
  4346. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4347. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4348. // " or F_Key='" + keyid + "' )";
  4349. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  4350. }
  4351. if (type != 0)
  4352. {
  4353. sql += " and F_InfoType = '" + type + "' ";
  4354. }
  4355. if (bigtype != 0)
  4356. {
  4357. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4358. }
  4359. if (smalltype != 0)
  4360. {
  4361. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4362. }
  4363. if (sourcearea != 0)
  4364. {
  4365. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4366. }
  4367. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4368. {
  4369. if (strendtime.Trim() != "" && strendtime != "undefined")
  4370. {
  4371. sql += " and F_CreateTime between '" + strstarttime + "' and '" + strendtime + "'";
  4372. }
  4373. else
  4374. {
  4375. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4376. }
  4377. }
  4378. if (deptid != 0)
  4379. {
  4380. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  4381. }
  4382. if (ejdeptid > 0)
  4383. {
  4384. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  4385. }
  4386. if (strpageindex.Trim() != "")
  4387. {
  4388. pageindex = Convert.ToInt32(strpageindex);
  4389. }
  4390. if (strpagesize.Trim() != "")
  4391. {
  4392. pagesize = Convert.ToInt32(strpagesize);
  4393. }
  4394. #endregion
  4395. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4396. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4397. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4398. string cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_IsProResultState,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 " +
  4399. " ,(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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  4400. if (isdc > 0)
  4401. {
  4402. var top = " "; var orderby = " order by F_CreateTime";
  4403. if (sql == " and F_IsDelete=0 ")
  4404. {
  4405. top = " top 1000 "; orderby += " desc ";
  4406. }
  4407. //20190715调整导出字段 zhengbingbing
  4408. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4409. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,(case F_IsProtect when 0 then F_CusPhone else '' end ) 来电号码,dbo.GetDictionaryName(F_Key) 主题词, "
  4410. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位,dbo.GetDictionaryName(F_InfoConSmallType) as 标签 , "
  4411. + " F_Result 办理结果 "
  4412. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  4413. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4414. if (msg == "")
  4415. {
  4416. return Success("导出成功");
  4417. }
  4418. else
  4419. {
  4420. return Error("导出失败");
  4421. }
  4422. }
  4423. int recordCount = 0;
  4424. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  4425. dt = BLL.PagerBLL.GetListPager(
  4426. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4427. "F_Id",
  4428. cols,
  4429. sql,
  4430. order,
  4431. pagesize,
  4432. pageindex,
  4433. true,
  4434. out recordCount);
  4435. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  4436. #region 声音文件
  4437. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4438. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4439. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4440. dt.Columns.Add("OverState", typeof(string));//超时状态
  4441. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4442. dt.Columns.Add("GapTime", typeof(string));//时间差
  4443. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4444. dt.Columns.Add("PDState", typeof(string));//派单状态
  4445. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4446. dt.Columns.Add("UnsuccessfulTime", typeof(object));//
  4447. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4448. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4449. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4450. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4451. foreach (DataRow dr in dt.Rows)
  4452. {
  4453. //获取最新交办信息
  4454. string iszbdw = "0";
  4455. string ispd = "";
  4456. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4457. if (state > 1)
  4458. {
  4459. 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";
  4460. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4461. if (dtjb.Rows.Count > 0)
  4462. {
  4463. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4464. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4465. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4466. {
  4467. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4468. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  4469. }
  4470. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4471. #region
  4472. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  4473. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  4474. //if (deptinfo != null)
  4475. //{
  4476. // if (did == User.F_DeptId) { iszbdw = "1"; }
  4477. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  4478. //}
  4479. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4480. //{
  4481. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  4482. // string dns = string.Empty;
  4483. // foreach (string strid in strids)
  4484. // {
  4485. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  4486. // if (dinfo != null)
  4487. // {
  4488. // if (string.IsNullOrEmpty(dns))
  4489. // {
  4490. // dns = dinfo.F_DeptName;//交办单位
  4491. // }
  4492. // else
  4493. // {
  4494. // dns += "," + dinfo.F_DeptName;//交办单位
  4495. // }
  4496. // }
  4497. // }
  4498. // dr["OtherDeptName"] = dns;
  4499. //}
  4500. #endregion
  4501. #region
  4502. //if (state < 6 || state == 8)
  4503. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4504. {
  4505. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4506. dr["LimitTime"] = lt;
  4507. if (!string.IsNullOrWhiteSpace(lt))
  4508. {
  4509. var ltime = DateTime.Parse(lt);
  4510. if (ltime > DateTime.Now)
  4511. {
  4512. //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") + "'";
  4513. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4514. //if (SYSJ != null && SYSJ.ToString() != "")
  4515. //{
  4516. // try
  4517. // {
  4518. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4519. // }
  4520. // catch
  4521. // {
  4522. // }
  4523. //}
  4524. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  4525. //ltime = ltime.AddDays(-days);
  4526. }
  4527. else
  4528. {
  4529. //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") + "'";
  4530. //var SYSJ = DbHelperSQL.GetSingle(SY);
  4531. //if (SYSJ != null && SYSJ.ToString() != "")
  4532. //{
  4533. // try
  4534. // {
  4535. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  4536. // }
  4537. // catch
  4538. // {
  4539. // }
  4540. //}
  4541. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  4542. ltime = ltime.AddDays(days);
  4543. }
  4544. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4545. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4546. if (tss < 0) { tss = -tss; }
  4547. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4548. if (ltime > DateTime.Now)
  4549. {
  4550. if (configcs != null)
  4551. {
  4552. int cs = Int32.Parse(configcs.F_ParamValue);
  4553. if (ts.TotalHours > cs)
  4554. {
  4555. dr["OverState"] = 1;
  4556. }
  4557. else
  4558. {
  4559. dr["OverState"] = 2;
  4560. }
  4561. }
  4562. dr["GapTime"] = "剩余" + gshsj;
  4563. }
  4564. else
  4565. {
  4566. dr["OverState"] = 3;
  4567. dr["GapTime"] = "超时" + gshsj;
  4568. }
  4569. }
  4570. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4571. dr["PDState"] = ispd;
  4572. }
  4573. if (state == (int)EnumWorkState.finish)
  4574. {
  4575. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4576. var dttime = DateTime.Now;
  4577. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4578. else
  4579. {
  4580. var DealTime = dr["F_CloseTime"].ToString();
  4581. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4582. }
  4583. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4584. dr["LimitTime"] = lt;
  4585. if (!string.IsNullOrWhiteSpace(lt))
  4586. {
  4587. var ltime = DateTime.Parse(lt);
  4588. if (ltime < dttime)
  4589. {
  4590. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  4591. ltime = ltime.AddDays(days);
  4592. TimeSpan ts = dttime.Subtract(ltime);
  4593. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4594. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4595. dr["OverState"] = 3;
  4596. dr["GapTime"] = "超时" + gshsj;
  4597. }
  4598. }
  4599. }
  4600. #endregion
  4601. }
  4602. else
  4603. {
  4604. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4605. string mid = dr["F_MainDeptId"].ToString();
  4606. if (!string.IsNullOrEmpty(mid))
  4607. {
  4608. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  4609. }
  4610. }
  4611. }
  4612. if (User.F_RoleCode.ToUpper() == "WLDW" || User.F_RoleCode.ToUpper() == "EJWLDW")
  4613. {
  4614. if (dr["EJDeptName"] != null && dr["EJDeptName"].ToString() != "")
  4615. dr["DeptName"] = dr["EJDeptName"].ToString();
  4616. }
  4617. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4618. {
  4619. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  4620. }
  4621. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4622. {
  4623. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4624. }
  4625. if (dr["F_UnsuccessfulTime"] != null && dr["F_UnsuccessfulTime"].ToString() != "")
  4626. {
  4627. var lt = dr["F_UnsuccessfulTime"].ToString();//
  4628. if (!string.IsNullOrWhiteSpace(lt))
  4629. {
  4630. var ltime = DateTime.Parse(lt);
  4631. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4632. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4633. if (tss < 0) { tss = -tss; }
  4634. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4635. if (ltime > DateTime.Now)
  4636. {
  4637. dr["UnsuccessfulTime"] = "剩余" + gshsj;
  4638. }
  4639. else
  4640. {
  4641. dr["UnsuccessfulTime"] = "超时" + gshsj;
  4642. }
  4643. }
  4644. }
  4645. //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";
  4646. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  4647. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4648. if (Int32.Parse(strtab) < 1 || Int32.Parse(strtab) == 16 || Int32.Parse(strtab) == 17)
  4649. {
  4650. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, -1, dr["F_InfoSource"].ToString());
  4651. #region 判断是否存在待督办
  4652. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4653. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4654. if (recount > 0 && butt != null)
  4655. btns.Remove(butt);
  4656. #endregion
  4657. }
  4658. else
  4659. {
  4660. if (Int32.Parse(strtab) == 9)
  4661. {//需履职界定
  4662. btns.Add(ButtonGroup.query());
  4663. btns.Add(ButtonGroup.perform());
  4664. }
  4665. else if (Int32.Parse(strtab) == 10)
  4666. {//履职界定待审核
  4667. btns.Add(ButtonGroup.query());
  4668. btns.Add(ButtonGroup.performaudit());
  4669. }
  4670. else if (Int32.Parse(strtab) == 7)
  4671. {//履职界定待审核
  4672. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4673. }
  4674. else if (Int32.Parse(strtab) == 12)
  4675. {//退回重办
  4676. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), "", "", 0, dr["F_InfoSource"].ToString());
  4677. var reback = btns.Find(c => c.key == ButtonGroup.reback().key);
  4678. if (reback != null)
  4679. btns.Remove(reback);
  4680. }
  4681. else if (Int32.Parse(strtab) == 14)
  4682. {//正在办理
  4683. btns.Add(ButtonGroup.query());
  4684. btns.Add(ButtonGroup.withdraw());
  4685. }
  4686. else if (Int32.Parse(strtab) == 13)
  4687. {//下级单位退回
  4688. btns.Add(ButtonGroup.query());
  4689. btns.Add(ButtonGroup.split());//转派
  4690. // btns.Add(ButtonGroup.reback());//
  4691. btns.Add(ButtonGroup.turndown());
  4692. }
  4693. else if (Int32.Parse(strtab) == 15)
  4694. {//已办理提交
  4695. if (ispd == "3")
  4696. {
  4697. btns.Add(ButtonGroup.auditdeal());
  4698. btns.Add(ButtonGroup.split());
  4699. }
  4700. btns.Add(ButtonGroup.feedback());//
  4701. // btns.Add(ButtonGroup.redo());//
  4702. btns.Add(ButtonGroup.query());
  4703. }
  4704. else if (Int32.Parse(strtab) == 18 && User.F_RoleCode == "WLDW")
  4705. {
  4706. btns.Add(ButtonGroup.Append());//
  4707. btns.Add(ButtonGroup.query());
  4708. if(dr["F_IsProResultState"] !=null && dr["F_IsProResultState"].ToString ()=="1")
  4709. {
  4710. btns.Add(ButtonGroup.AuditUnsuccessful());//
  4711. }
  4712. else
  4713. {
  4714. btns.Add(ButtonGroup.AssignUnsuccessful());//
  4715. }
  4716. }
  4717. else
  4718. btns.Add(ButtonGroup.query());
  4719. }
  4720. dr["Buttons"] = btns;
  4721. }
  4722. #endregion
  4723. var obj = new
  4724. {
  4725. state = "success",
  4726. message = "成功",
  4727. rows = dt,
  4728. total = recordCount
  4729. };
  4730. return Content(obj.ToJson());
  4731. }
  4732. /// <summary>
  4733. /// 添加工单信息
  4734. /// </summary>
  4735. /// <returns></returns>
  4736. //[Authority]
  4737. public ActionResult AddWorkOrderOper()
  4738. {
  4739. string workorderid = RequestString.GetFormString("workorderid");
  4740. string remarks = RequestString.GetFormString("remarks");
  4741. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  4742. if (modelT_Bus_WorkOrder != null)
  4743. {
  4744. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4745. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4746. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4747. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4748. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4749. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  4750. oper.F_Message = userinfo + " 办理了工单:" + remarks;
  4751. oper.F_CreateUser = User.F_UserCode;
  4752. oper.F_CreateTime = DateTime.Now;
  4753. oper.F_IsDelete = 0;
  4754. if (operBLL.Add(oper) > 0)
  4755. return Success("操作成功");
  4756. else
  4757. return Error("操作失败");
  4758. }
  4759. else
  4760. {
  4761. return Error("工单不存在");
  4762. }
  4763. }
  4764. /// <summary>
  4765. /// 获取单位处理列表
  4766. /// </summary>
  4767. /// <returns></returns>
  4768. //[Authority]
  4769. public ActionResult GetXBDWDealList(int isdc = 0)
  4770. {
  4771. DataTable dt = new DataTable();
  4772. string sql = " and F_IsDelete=0";
  4773. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4774. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4775. int islike = RequestString.GetInt("islike", 1);
  4776. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4777. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4778. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4779. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4780. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4781. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4782. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4783. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4784. int source = RequestString.GetInt("source", 0);
  4785. int keyid = RequestString.GetInt("keyid", 0);
  4786. int type = RequestString.GetInt("type", 0);
  4787. int bigtype = RequestString.GetInt("bigtype", 0);
  4788. int smalltype = RequestString.GetInt("smalltype", 0);
  4789. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4790. int deptid = RequestString.GetInt("deptid", 0);
  4791. string strpageindex = RequestString.GetQueryString("page");
  4792. int pageindex = 1;
  4793. string strpagesize = RequestString.GetQueryString("pagesize");
  4794. int pagesize = 10;
  4795. int IsReturn = RequestString.GetInt("IsReturn", -1);
  4796. if (strstate == "0")
  4797. {
  4798. if (IsReturn == 1)
  4799. {
  4800. sql += " and F_IsReturn=1";
  4801. }
  4802. else
  4803. {
  4804. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  4805. }
  4806. }
  4807. switch (strtab)
  4808. {
  4809. case "0"://待处理工单
  4810. int isyq = RequestString.GetInt("isyq", -1);
  4811. if (strstate.Trim() != "" && strstate != "undefined")
  4812. {
  4813. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4814. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4815. else
  4816. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4817. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4818. }
  4819. else
  4820. {
  4821. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4822. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4823. //sql += " and F_WorkState in (2,4,8)";
  4824. }
  4825. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4826. + " ISNULL(F_FeedbackTime, '')='' ";
  4827. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4828. {
  4829. sql += " and F_DeptId =" + User.F_DeptId;
  4830. }
  4831. if (isyq != -1)
  4832. {
  4833. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  4834. }
  4835. else
  4836. {
  4837. sql += ")";
  4838. }
  4839. break;
  4840. case "1"://已办理的工单
  4841. 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) ";
  4842. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4843. {
  4844. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4845. }
  4846. else
  4847. {
  4848. sql += ")";
  4849. }
  4850. break;
  4851. }
  4852. if (deptid != 0)
  4853. {
  4854. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  4855. }
  4856. if (strworkid.Trim() != "" && strworkid != "undefined")
  4857. {
  4858. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4859. }
  4860. if (strname.Trim() != "" && strname != "undefined")
  4861. {
  4862. sql += " and F_CusName like '%" + strname + "%' ";
  4863. }
  4864. if (islike > 0)
  4865. {
  4866. if (strtel.Trim() != "" && strtel != "undefined")
  4867. {
  4868. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4869. }
  4870. }
  4871. else
  4872. {
  4873. if (strtel.Trim() != "" && strtel != "undefined")
  4874. {
  4875. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4876. }
  4877. }
  4878. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4879. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4880. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4881. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4882. {
  4883. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4884. }
  4885. if (Result.Trim() != "" && Result != "undefined")
  4886. {
  4887. sql += " and F_Result like '%" + Result + "%' ";
  4888. }
  4889. if (ComContent.Trim() != "" && ComContent != "undefined")
  4890. {
  4891. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4892. }
  4893. if (strkey.Trim() != "" && strkey != "undefined")
  4894. {
  4895. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4896. " or F_Result like '%" + strkey + "%' ) ";
  4897. }
  4898. #region 坐席&调度员
  4899. if (strusercode.Trim() != "" && strusercode != "undefined")
  4900. {//坐席
  4901. var usercode = strusercode.Trim().Split(',');
  4902. var newusercode = "";
  4903. foreach (var item in usercode)
  4904. {
  4905. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4906. newusercode += "'" + item + "',";
  4907. }
  4908. newusercode = newusercode.Trim(',');
  4909. if (newusercode.Trim() != "" && newusercode != "undefined")
  4910. {
  4911. sql += " and F_CreateUser in (" + newusercode + ") ";
  4912. }
  4913. }
  4914. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4915. {//调度员
  4916. var ddusercode = strddusercode.Trim().Split(',');
  4917. var newusercode = "";
  4918. foreach (var item in ddusercode)
  4919. {
  4920. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4921. newusercode += "'" + item + "',";
  4922. }
  4923. newusercode = newusercode.Trim(',');
  4924. if (newusercode.Trim() != "" && newusercode != "undefined")
  4925. {
  4926. sql += " and F_AssignUser in(" + newusercode + ") ";
  4927. }
  4928. }
  4929. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4930. //{
  4931. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4932. //}
  4933. #endregion
  4934. if (source != 0)
  4935. {
  4936. sql += " and F_InfoSource = '" + source + "' ";
  4937. }
  4938. string sqlwhere = "";
  4939. if (keyid != 0)
  4940. {
  4941. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4942. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4943. // " or F_Key='" + keyid + "' )";
  4944. }
  4945. if (type != 0)
  4946. {
  4947. sql += " and F_InfoType = '" + type + "' ";
  4948. }
  4949. if (bigtype != 0)
  4950. {
  4951. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4952. }
  4953. if (smalltype != 0)
  4954. {
  4955. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4956. }
  4957. if (sourcearea != 0)
  4958. {
  4959. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4960. }
  4961. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4962. {
  4963. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4964. }
  4965. if (strendtime.Trim() != "" && strendtime != "undefined")
  4966. {
  4967. sql += " and F_CreateTime<='" + strendtime + "' ";
  4968. }
  4969. if (strpageindex.Trim() != "")
  4970. {
  4971. pageindex = Convert.ToInt32(strpageindex);
  4972. }
  4973. if (strpagesize.Trim() != "")
  4974. {
  4975. pagesize = Convert.ToInt32(strpagesize);
  4976. }
  4977. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4978. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4979. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4980. 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";
  4981. if (isdc > 0)
  4982. {
  4983. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4984. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4985. if (msg == "")
  4986. {
  4987. return Success("导出成功");
  4988. }
  4989. else
  4990. {
  4991. return Error("导出失败");
  4992. }
  4993. }
  4994. int recordCount = 0;
  4995. dt = BLL.PagerBLL.GetListPager(
  4996. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4997. "F_Id",
  4998. cols,
  4999. sql,
  5000. "ORDER BY F_CreateTime DESC",
  5001. pagesize,
  5002. pageindex,
  5003. true,
  5004. out recordCount);
  5005. #region 声音文件
  5006. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5007. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5008. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5009. dt.Columns.Add("OverState", typeof(string));//超时状态
  5010. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5011. dt.Columns.Add("GapTime", typeof(string));//时间差
  5012. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  5013. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  5014. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5015. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5016. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5017. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  5018. foreach (DataRow dr in dt.Rows)
  5019. {
  5020. //获取最新交办信息
  5021. string iszbdw = "0";
  5022. string ispd = "";
  5023. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5024. if (state > 1)
  5025. {
  5026. 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";
  5027. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5028. if (dtjb.Rows.Count > 0)
  5029. {
  5030. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5031. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5032. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5033. {
  5034. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5035. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  5036. }
  5037. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5038. #region
  5039. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5040. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5041. //if (deptinfo != null)
  5042. //{
  5043. // if (did == User.F_DeptId) { iszbdw = "1"; }
  5044. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5045. //}
  5046. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5047. //{
  5048. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5049. // string dns = string.Empty;
  5050. // foreach (string strid in strids)
  5051. // {
  5052. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5053. // if (dinfo != null)
  5054. // {
  5055. // if (string.IsNullOrEmpty(dns))
  5056. // {
  5057. // dns = dinfo.F_DeptName;//交办单位
  5058. // }
  5059. // else
  5060. // {
  5061. // dns += "," + dinfo.F_DeptName;//交办单位
  5062. // }
  5063. // }
  5064. // }
  5065. // dr["OtherDeptName"] = dns;
  5066. //}
  5067. #endregion
  5068. #region
  5069. //if (state < 6 || state == 8)
  5070. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5071. {
  5072. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5073. dr["LimitTime"] = lt;
  5074. if (!string.IsNullOrWhiteSpace(lt))
  5075. {
  5076. var ltime = DateTime.Parse(lt);
  5077. if (ltime > DateTime.Now)
  5078. {
  5079. //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") + "'";
  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 > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5092. //ltime = ltime.AddDays(days);
  5093. }
  5094. else
  5095. {
  5096. //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") + "'";
  5097. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5098. //if (SYSJ != null && SYSJ.ToString() != "")
  5099. //{
  5100. // try
  5101. // {
  5102. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5103. // }
  5104. // catch
  5105. // {
  5106. // }
  5107. //}
  5108. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5109. ltime = ltime.AddDays(days);
  5110. }
  5111. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5112. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5113. if (tss < 0) { tss = -tss; }
  5114. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5115. if (ltime > DateTime.Now)
  5116. {
  5117. if (configcs != null)
  5118. {
  5119. int cs = Int32.Parse(configcs.F_ParamValue);
  5120. if (ts.TotalHours > cs)
  5121. {
  5122. dr["OverState"] = 1;
  5123. }
  5124. else
  5125. {
  5126. dr["OverState"] = 2;
  5127. }
  5128. }
  5129. dr["GapTime"] = "剩余" + gshsj;
  5130. }
  5131. else
  5132. {
  5133. dr["OverState"] = 3;
  5134. dr["GapTime"] = "超时" + gshsj;
  5135. }
  5136. }
  5137. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  5138. }
  5139. if (state == (int)EnumWorkState.finish)
  5140. {
  5141. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5142. var dttime = DateTime.Now;
  5143. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5144. else
  5145. {
  5146. var DealTime = dr["F_CloseTime"].ToString();
  5147. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5148. }
  5149. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5150. dr["LimitTime"] = lt;
  5151. if (!string.IsNullOrWhiteSpace(lt))
  5152. {
  5153. var ltime = DateTime.Parse(lt);
  5154. if (ltime < dttime)
  5155. {
  5156. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  5157. ltime = ltime.AddDays(days);
  5158. TimeSpan ts = dttime.Subtract(ltime);
  5159. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5160. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5161. dr["OverState"] = 3;
  5162. dr["GapTime"] = "超时" + gshsj;
  5163. }
  5164. }
  5165. }
  5166. #endregion
  5167. }
  5168. else
  5169. {
  5170. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5171. string mid = dr["F_MainDeptId"].ToString();
  5172. if (!string.IsNullOrEmpty(mid))
  5173. {
  5174. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  5175. }
  5176. }
  5177. }
  5178. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5179. {
  5180. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5181. }
  5182. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5183. {
  5184. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5185. }
  5186. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5187. if (Int32.Parse(strtab) < 1)
  5188. {
  5189. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5190. #region 判断是否存在待督办
  5191. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  5192. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  5193. if (recount > 0 && butt != null)
  5194. btns.Remove(butt);
  5195. #endregion
  5196. }
  5197. else
  5198. {
  5199. btns.Add(ButtonGroup.query());
  5200. }
  5201. dr["Buttons"] = btns;
  5202. }
  5203. #endregion
  5204. var obj = new
  5205. {
  5206. state = "success",
  5207. message = "成功",
  5208. rows = dt,
  5209. total = recordCount
  5210. };
  5211. return Content(obj.ToJson());
  5212. }
  5213. /// <summary>
  5214. /// 获取单位主办协办未处理工单列表
  5215. /// </summary>
  5216. /// <returns></returns>
  5217. //[Authority]
  5218. public ActionResult GetDWNoDealList(int isdc = 0)
  5219. {
  5220. DataTable dt = new DataTable();
  5221. string sql = " and F_IsDelete=0";
  5222. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5223. int islike = RequestString.GetInt("islike", 1);
  5224. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5225. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5226. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5227. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5228. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5229. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5230. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5231. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5232. int source = RequestString.GetInt("source", 0);
  5233. int keyid = RequestString.GetInt("keyid", 0);
  5234. int type = RequestString.GetInt("type", 0);
  5235. int bigtype = RequestString.GetInt("bigtype", 0);
  5236. int smalltype = RequestString.GetInt("smalltype", 0);
  5237. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5238. int deptid = RequestString.GetInt("deptid", 0);
  5239. string strpageindex = RequestString.GetQueryString("page");
  5240. int pageindex = 1;
  5241. string strpagesize = RequestString.GetQueryString("pagesize");
  5242. int pagesize = 10;
  5243. if (User.F_RoleCode == "ZXHWY"||User.F_RoleCode == "ZXLD")
  5244. {
  5245. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  5246. }
  5247. #region 坐席&调度员
  5248. if (strusercode.Trim() != "" && strusercode != "undefined")
  5249. {//坐席
  5250. var usercode = strusercode.Trim().Split(',');
  5251. var newusercode = "";
  5252. foreach (var item in usercode)
  5253. {
  5254. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5255. newusercode += "'" + item + "',";
  5256. }
  5257. newusercode = newusercode.Trim(',');
  5258. if (newusercode.Trim() != "" && newusercode != "undefined")
  5259. {
  5260. sql += " and F_CreateUser in (" + newusercode + ") ";
  5261. }
  5262. }
  5263. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5264. {//调度员
  5265. var ddusercode = strddusercode.Trim().Split(',');
  5266. var newusercode = "";
  5267. foreach (var item in ddusercode)
  5268. {
  5269. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5270. newusercode += "'" + item + "',";
  5271. }
  5272. newusercode = newusercode.Trim(',');
  5273. if (newusercode.Trim() != "" && newusercode != "undefined")
  5274. {
  5275. sql += " and F_AssignUser in(" + newusercode + ") ";
  5276. }
  5277. }
  5278. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5279. //{
  5280. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5281. //}
  5282. #endregion
  5283. 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) ";
  5284. if (User.F_RoleCode == "WLDW")
  5285. {
  5286. sql += " and (F_MainDeptId = '" + User.F_DeptId + "' or F_MainDeptID3 like '%" + User.F_DeptId + "%')";
  5287. }
  5288. else if (deptid != 0)
  5289. {
  5290. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  5291. }
  5292. 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, '')='' ";
  5293. if (User.F_RoleCode == "WLDW")
  5294. {
  5295. sql += " and (F_DeptId = '" + User.F_DeptId + "' or F_MainDeptID3 like '%" + User.F_DeptId + "%')";
  5296. }
  5297. else if (deptid != 0)
  5298. {
  5299. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3 like'%" + deptid + "%')";
  5300. }
  5301. sql += "))";
  5302. if (strstate.Trim() != "" && strstate != "undefined")
  5303. {
  5304. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5305. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5306. else
  5307. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5308. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5309. }
  5310. else
  5311. {
  5312. sql += " and F_WorkState in (2,4,8)";
  5313. }
  5314. if (strworkid.Trim() != "" && strworkid != "undefined")
  5315. {
  5316. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5317. }
  5318. if (strname.Trim() != "" && strname != "undefined")
  5319. {
  5320. sql += " and F_CusName like '%" + strname + "%' ";
  5321. }
  5322. if (islike > 0)
  5323. {
  5324. if (strtel.Trim() != "" && strtel != "undefined")
  5325. {
  5326. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5327. }
  5328. }
  5329. else
  5330. {
  5331. if (strtel.Trim() != "" && strtel != "undefined")
  5332. {
  5333. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5334. }
  5335. }
  5336. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5337. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5338. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5339. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5340. {
  5341. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5342. }
  5343. if (Result.Trim() != "" && Result != "undefined")
  5344. {
  5345. sql += " and F_Result like '%" + Result + "%' ";
  5346. }
  5347. if (ComContent.Trim() != "" && ComContent != "undefined")
  5348. {
  5349. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5350. }
  5351. if (strkey.Trim() != "" && strkey != "undefined")
  5352. {
  5353. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5354. " or F_Result like '%" + strkey + "%' ) ";
  5355. }
  5356. if (source != 0)
  5357. {
  5358. sql += " and F_InfoSource = '" + source + "' ";
  5359. }
  5360. string sqlwhere = "";
  5361. if (keyid != 0)
  5362. {
  5363. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5364. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5365. // " or F_Key='" + keyid + "' )";
  5366. }
  5367. if (type != 0)
  5368. {
  5369. sql += " and F_InfoType = '" + type + "' ";
  5370. }
  5371. if (bigtype != 0)
  5372. {
  5373. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5374. }
  5375. if (smalltype != 0)
  5376. {
  5377. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5378. }
  5379. if (sourcearea != 0)
  5380. {
  5381. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5382. }
  5383. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5384. {
  5385. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5386. }
  5387. if (strendtime.Trim() != "" && strendtime != "undefined")
  5388. {
  5389. sql += " and F_CreateTime<='" + strendtime + "' ";
  5390. }
  5391. if (strpageindex.Trim() != "")
  5392. {
  5393. pageindex = Convert.ToInt32(strpageindex);
  5394. }
  5395. if (strpagesize.Trim() != "")
  5396. {
  5397. pagesize = Convert.ToInt32(strpagesize);
  5398. }
  5399. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5400. 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";
  5401. if (isdc > 0)
  5402. {
  5403. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5404. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5405. if (msg == "")
  5406. {
  5407. return Success("导出成功");
  5408. }
  5409. else
  5410. {
  5411. return Error("导出失败");
  5412. }
  5413. }
  5414. int recordCount = 0;
  5415. dt = BLL.PagerBLL.GetListPager(
  5416. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5417. "F_Id",
  5418. cols,
  5419. sql,
  5420. "ORDER BY F_CreateTime DESC",
  5421. pagesize,
  5422. pageindex,
  5423. true,
  5424. out recordCount);
  5425. #region 声音文件
  5426. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5427. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5428. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5429. dt.Columns.Add("OverState", typeof(string));//超时状态
  5430. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5431. dt.Columns.Add("GapTime", typeof(string));//时间差
  5432. dt.Columns.Add("FilePath", typeof(string));
  5433. dt.Columns.Add("Buttons", typeof(object));
  5434. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5435. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5436. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5437. foreach (DataRow dr in dt.Rows)
  5438. {
  5439. //获取最新交办信息
  5440. string iszbdw = "0";
  5441. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5442. if (state > 1)
  5443. {
  5444. 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";
  5445. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5446. if (dtjb.Rows.Count > 0)
  5447. {
  5448. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5449. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5450. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5451. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5452. {
  5453. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5454. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  5455. }
  5456. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5457. #region
  5458. //if (state < 6 || state == 8)
  5459. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5460. {
  5461. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5462. dr["LimitTime"] = lt;
  5463. if (!string.IsNullOrWhiteSpace(lt))
  5464. {
  5465. var ltime = DateTime.Parse(lt);
  5466. if (ltime > DateTime.Now)
  5467. {
  5468. //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") + "'";
  5469. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5470. //if (SYSJ != null && SYSJ.ToString() != "")
  5471. //{
  5472. // try
  5473. // {
  5474. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5475. // }
  5476. // catch
  5477. // {
  5478. // }
  5479. //}
  5480. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5481. //ltime = ltime.AddDays(-days);
  5482. }
  5483. else
  5484. {
  5485. //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") + "'";
  5486. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5487. //if (SYSJ != null && SYSJ.ToString() != "")
  5488. //{
  5489. // try
  5490. // {
  5491. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5492. // }
  5493. // catch
  5494. // {
  5495. // }
  5496. //}
  5497. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5498. ltime = ltime.AddDays(days);
  5499. }
  5500. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5501. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5502. if (tss < 0) { tss = -tss; }
  5503. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5504. if (ltime > DateTime.Now)
  5505. {
  5506. if (configcs != null)
  5507. {
  5508. int cs = Int32.Parse(configcs.F_ParamValue);
  5509. if (ts.TotalHours > cs)
  5510. {
  5511. dr["OverState"] = 1;
  5512. }
  5513. else
  5514. {
  5515. dr["OverState"] = 2;
  5516. }
  5517. }
  5518. dr["GapTime"] = "剩余" + gshsj;
  5519. }
  5520. else
  5521. {
  5522. dr["OverState"] = 3;
  5523. dr["GapTime"] = "超时" + gshsj;
  5524. }
  5525. }
  5526. }
  5527. if (state == (int)EnumWorkState.finish)
  5528. {
  5529. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5530. var dttime = DateTime.Now;
  5531. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5532. else
  5533. {
  5534. var DealTime = dr["F_CloseTime"].ToString();
  5535. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5536. }
  5537. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5538. dr["LimitTime"] = lt;
  5539. if (!string.IsNullOrWhiteSpace(lt))
  5540. {
  5541. var ltime = DateTime.Parse(lt);
  5542. if (ltime < dttime)
  5543. {
  5544. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  5545. ltime = ltime.AddDays(days);
  5546. TimeSpan ts = dttime.Subtract(ltime);
  5547. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5548. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5549. dr["OverState"] = 3;
  5550. dr["GapTime"] = "超时" + gshsj;
  5551. }
  5552. }
  5553. }
  5554. #endregion
  5555. }
  5556. else
  5557. {
  5558. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5559. string mid = dr["F_MainDeptId"].ToString();
  5560. if (!string.IsNullOrEmpty(mid))
  5561. {
  5562. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  5563. }
  5564. }
  5565. }
  5566. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5567. {
  5568. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5569. }
  5570. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5571. {
  5572. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5573. }
  5574. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5575. btns.Add(ButtonGroup.query());
  5576. dr["Buttons"] = btns;
  5577. }
  5578. #endregion
  5579. var obj = new
  5580. {
  5581. state = "success",
  5582. message = "成功",
  5583. rows = dt,
  5584. total = recordCount
  5585. };
  5586. return Content(obj.ToJson());
  5587. }
  5588. /// <summary>
  5589. /// 获取二级单位处理列表
  5590. /// </summary>
  5591. /// <returns></returns>
  5592. //[Authority]
  5593. public ActionResult GetEJDWDealList(int isdc = 0)
  5594. {
  5595. DataTable dt = new DataTable();
  5596. string sql = " and F_IsDelete=0";
  5597. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  5598. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5599. int islike = RequestString.GetInt("islike", 1);
  5600. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5601. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5602. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5603. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5604. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5605. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5606. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5607. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5608. int source = RequestString.GetInt("source", 0);
  5609. int keyid = RequestString.GetInt("keyid", 0);
  5610. int type = RequestString.GetInt("type", 0);
  5611. int bigtype = RequestString.GetInt("bigtype", 0);
  5612. int smalltype = RequestString.GetInt("smalltype", 0);
  5613. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5614. int deptid = RequestString.GetInt("deptid", 0);
  5615. int isys = RequestString.GetInt("isys", -1);
  5616. string strpageindex = RequestString.GetQueryString("page");
  5617. int pageindex = 1;
  5618. string strpagesize = RequestString.GetQueryString("pagesize");
  5619. int pagesize = 10;
  5620. int IsReturn = RequestString.GetInt("IsReturn", -1);
  5621. if (strstate == "0")
  5622. {
  5623. if (IsReturn == 1)
  5624. {
  5625. sql += " and F_IsReturn=1";
  5626. }
  5627. else
  5628. {
  5629. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  5630. }
  5631. }
  5632. #region 模块
  5633. switch (strtab)
  5634. {
  5635. case "0"://待处理工单
  5636. if (strstate.Trim() != "" && strstate != "undefined")
  5637. {
  5638. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5639. }
  5640. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay
  5641. , (int)EnumWorkState.reload};
  5642. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  5643. //sql += " and F_WorkState in (4,5) ";
  5644. if (isys > -1)
  5645. {
  5646. if (isys == 0) //未延时
  5647. {
  5648. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5649. + " 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) ) " +
  5650. "and F_MainDeptID3 like'%" + User.F_DeptId + "%'";
  5651. }
  5652. else
  5653. {
  5654. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5655. + " 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))"
  5656. + "and F_MainDeptID3 like'%" + User.F_DeptId + "%'";
  5657. }
  5658. }
  5659. else
  5660. {
  5661. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  5662. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))"
  5663. + "and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5664. }
  5665. break;
  5666. case "1"://已办理的工单
  5667. if (strstate.Trim() != "" && strstate != "undefined")
  5668. {
  5669. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5670. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5671. else
  5672. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5673. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5674. }
  5675. 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) ";
  5676. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5677. {
  5678. sql += " and F_CreateUser='" + User.F_UserCode + "') and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5679. }
  5680. else
  5681. {
  5682. sql += ")";
  5683. }
  5684. break;
  5685. case "3"://已办未果
  5686. sql += " and F_WorkState in(6,7) ";
  5687. sql += " and F_IsProResult = '" + 2 + "' ";
  5688. sql += " and F_NoResult like'%" + User.F_DeptId + "%' ";
  5689. sql += " and isnull(F_IsProResultState,0) !=1";
  5690. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5691. //{
  5692. // sql += " and F_CreateUser='" + User.F_UserCode + "')";
  5693. //}
  5694. //else
  5695. //{
  5696. // sql += ")";
  5697. //}
  5698. break;
  5699. //三级单位给已签收工单增加一个菜单
  5700. case "4"://已签收
  5701. // sql += " and F_WorkState in (4,5,8)";
  5702. 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))";
  5703. break;
  5704. case "5"://
  5705. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)" +
  5706. "and F_MainDeptID3 like '%" + User.F_DeptId + "%'";
  5707. break;
  5708. case "6"://已完结
  5709. sql += " and F_WorkState = '9' ";
  5710. 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) ";
  5711. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5712. {
  5713. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  5714. }
  5715. else
  5716. {
  5717. sql += ")";
  5718. }
  5719. break;
  5720. case "7"://二级待审回复
  5721. 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)) ";
  5722. break;
  5723. //
  5724. }
  5725. #endregion
  5726. #region 条件
  5727. if (strworkid.Trim() != "" && strworkid != "undefined")
  5728. {
  5729. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5730. }
  5731. if (strname.Trim() != "" && strname != "undefined")
  5732. {
  5733. sql += " and F_CusName like '%" + strname + "%' ";
  5734. }
  5735. if (islike > 0)
  5736. {
  5737. if (strtel.Trim() != "" && strtel != "undefined")
  5738. {
  5739. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5740. }
  5741. }
  5742. else
  5743. {
  5744. if (strtel.Trim() != "" && strtel != "undefined")
  5745. {
  5746. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5747. }
  5748. }
  5749. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5750. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5751. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5752. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5753. {
  5754. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5755. }
  5756. if (Result.Trim() != "" && Result != "undefined")
  5757. {
  5758. sql += " and F_Result like '%" + Result + "%' ";
  5759. }
  5760. if (ComContent.Trim() != "" && ComContent != "undefined")
  5761. {
  5762. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5763. }
  5764. if (strkey.Trim() != "" && strkey != "undefined")
  5765. {
  5766. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5767. " or F_Result like '%" + strkey + "%' ) ";
  5768. }
  5769. #region 坐席&调度员
  5770. if (strusercode.Trim() != "" && strusercode != "undefined")
  5771. {//坐席
  5772. var usercode = strusercode.Trim().Split(',');
  5773. var newusercode = "";
  5774. foreach (var item in usercode)
  5775. {
  5776. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5777. newusercode += "'" + item + "',";
  5778. }
  5779. newusercode = newusercode.Trim(',');
  5780. if (newusercode.Trim() != "" && newusercode != "undefined")
  5781. {
  5782. sql += " and F_CreateUser in (" + newusercode + ") ";
  5783. }
  5784. }
  5785. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5786. {//调度员
  5787. var ddusercode = strddusercode.Trim().Split(',');
  5788. var newusercode = "";
  5789. foreach (var item in ddusercode)
  5790. {
  5791. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5792. newusercode += "'" + item + "',";
  5793. }
  5794. newusercode = newusercode.Trim(',');
  5795. if (newusercode.Trim() != "" && newusercode != "undefined")
  5796. {
  5797. sql += " and F_AssignUser in(" + newusercode + ") ";
  5798. }
  5799. }
  5800. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5801. //{
  5802. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5803. //}
  5804. #endregion
  5805. if (source != 0)
  5806. {
  5807. sql += " and F_InfoSource = '" + source + "' ";
  5808. }
  5809. string sqlwhere = "";
  5810. if (keyid != 0)
  5811. {
  5812. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5813. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5814. // " or F_Key='" + keyid + "' )";
  5815. }
  5816. if (type != 0)
  5817. {
  5818. sql += " and F_InfoType = '" + type + "' ";
  5819. }
  5820. if (bigtype != 0)
  5821. {
  5822. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5823. }
  5824. if (smalltype != 0)
  5825. {
  5826. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5827. }
  5828. if (sourcearea != 0)
  5829. {
  5830. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5831. }
  5832. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5833. {
  5834. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5835. }
  5836. if (strendtime.Trim() != "" && strendtime != "undefined")
  5837. {
  5838. sql += " and F_CreateTime<='" + strendtime + "' ";
  5839. }
  5840. if (deptid != 0)
  5841. {
  5842. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  5843. }
  5844. if (strpageindex.Trim() != "")
  5845. {
  5846. pageindex = Convert.ToInt32(strpageindex);
  5847. }
  5848. if (strpagesize.Trim() != "")
  5849. {
  5850. pagesize = Convert.ToInt32(strpagesize);
  5851. }
  5852. #endregion
  5853. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  5854. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  5855. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5856. //,(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
  5857. 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)"
  5858. ;
  5859. //(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
  5860. if (isdc > 0)
  5861. {
  5862. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  5863. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  5864. + " (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) 办理结果, "
  5865. + " (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) 是否满意 ,"
  5866. + "(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) 延时状态"
  5867. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5868. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5869. if (msg == "")
  5870. {
  5871. return Success("导出成功");
  5872. }
  5873. else
  5874. {
  5875. return Error("导出失败");
  5876. }
  5877. }
  5878. int recordCount = 0;
  5879. dt = BLL.PagerBLL.GetListPager(
  5880. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5881. "F_Id",
  5882. cols,
  5883. sql,
  5884. "ORDER BY F_CreateTime DESC",
  5885. pagesize,
  5886. pageindex,
  5887. true,
  5888. out recordCount);
  5889. #region 声音文件
  5890. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5891. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5892. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5893. dt.Columns.Add("OverState", typeof(string));//超时状态
  5894. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5895. dt.Columns.Add("GapTime", typeof(string));//时间差
  5896. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  5897. dt.Columns.Add("PDState", typeof(string));//派单状态
  5898. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  5899. dt.Columns.Add("IsYS", typeof(string));//是否延时
  5900. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5901. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5902. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5903. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  5904. foreach (DataRow dr in dt.Rows)
  5905. {
  5906. string yssql = "select * from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete = 0 and F_IsAudit = 1 and F_WorkOrderID='" + dr["F_WorkOrderId"].ToString() + "'";
  5907. var dtys = DbHelperSQL.Query(yssql).Tables[0];
  5908. if (dtys.Rows.Count > 0)
  5909. {
  5910. dr["IsYS"] = 1;
  5911. }
  5912. else
  5913. {
  5914. dr["IsYS"] = 0;//未延时
  5915. }
  5916. //获取最新交办信息
  5917. string iszbdw = "0";
  5918. int ispd = 1;
  5919. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5920. if (state > 1)
  5921. {
  5922. if (User.F_RoleCode == "EJWLDW")
  5923. {
  5924. 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";
  5925. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5926. if (dtjb.Rows.Count > 0)
  5927. {
  5928. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5929. var lt = dr["F_LimitTime"].ToString();//限制时间
  5930. dr["LimitTime"] = lt;
  5931. #region
  5932. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5933. {
  5934. if (!string.IsNullOrWhiteSpace(lt))
  5935. {
  5936. var ltime = DateTime.Parse(lt);
  5937. if (ltime > DateTime.Now)
  5938. {
  5939. //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") + "'";
  5940. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5941. //if (SYSJ != null && SYSJ.ToString() != "")
  5942. //{
  5943. // try
  5944. // {
  5945. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5946. // }
  5947. // catch
  5948. // {
  5949. // }
  5950. //}
  5951. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  5952. //ltime = ltime.AddDays(-days);
  5953. }
  5954. else
  5955. {
  5956. //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") + "'";
  5957. //var SYSJ = DbHelperSQL.GetSingle(SY);
  5958. //if (SYSJ != null && SYSJ.ToString() != "")
  5959. //{
  5960. // try
  5961. // {
  5962. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  5963. // }
  5964. // catch
  5965. // {
  5966. // }
  5967. //}
  5968. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  5969. ltime = ltime.AddDays(days);
  5970. }
  5971. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5972. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5973. if (tss < 0) { tss = -tss; }
  5974. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5975. if (ltime > DateTime.Now)
  5976. {
  5977. if (configcs != null)
  5978. {
  5979. int cs = Int32.Parse(configcs.F_ParamValue);
  5980. if (ts.TotalHours > cs)
  5981. {
  5982. dr["OverState"] = 1;
  5983. }
  5984. else
  5985. {
  5986. dr["OverState"] = 2;
  5987. }
  5988. }
  5989. dr["GapTime"] = "剩余" + gshsj;
  5990. }
  5991. else
  5992. {
  5993. dr["OverState"] = 3;
  5994. dr["GapTime"] = "超时" + gshsj;
  5995. }
  5996. }
  5997. }
  5998. if (state == (int)EnumWorkState.finish)
  5999. {
  6000. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6001. var dttime = DateTime.Now;
  6002. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6003. else
  6004. {
  6005. var DealTime = dr["F_CloseTime"].ToString();
  6006. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6007. }
  6008. if (!string.IsNullOrWhiteSpace(lt))
  6009. {
  6010. var ltime = DateTime.Parse(lt);
  6011. if (ltime < dttime)
  6012. {
  6013. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6014. ltime = ltime.AddDays(days);
  6015. TimeSpan ts = dttime.Subtract(ltime);
  6016. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6017. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6018. dr["OverState"] = 3;
  6019. dr["GapTime"] = "超时" + gshsj;
  6020. }
  6021. }
  6022. }
  6023. #endregion
  6024. ispd = int.Parse(dtjb.Rows[0]["F_IsSure"].ToString()) + 1;
  6025. dr["PDState"] = ispd;
  6026. }
  6027. }
  6028. else
  6029. {
  6030. 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";
  6031. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6032. if (dtjb.Rows.Count > 0)
  6033. {
  6034. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6035. var lt = dr["F_LimitTime"].ToString();//限制时间
  6036. dr["LimitTime"] = lt;
  6037. #region
  6038. //if (state < 6 || state == 8)
  6039. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6040. {
  6041. if (!string.IsNullOrWhiteSpace(lt))
  6042. {
  6043. var ltime = DateTime.Parse(lt);
  6044. if (ltime > DateTime.Now)
  6045. {
  6046. //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") + "'";
  6047. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6048. //if (SYSJ != null && SYSJ.ToString() != "")
  6049. //{
  6050. // try
  6051. // {
  6052. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6053. // }
  6054. // catch
  6055. // {
  6056. // }
  6057. //}
  6058. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6059. //ltime = ltime.AddDays(-days);
  6060. }
  6061. else
  6062. {
  6063. //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") + "'";
  6064. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6065. //if (SYSJ != null && SYSJ.ToString() != "")
  6066. //{
  6067. // try
  6068. // {
  6069. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  6070. // }
  6071. // catch
  6072. // {
  6073. // }
  6074. //}
  6075. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6076. ltime = ltime.AddDays(days);
  6077. }
  6078. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6079. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6080. if (tss < 0) { tss = -tss; }
  6081. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6082. if (ltime > DateTime.Now)
  6083. {
  6084. if (configcs != null)
  6085. {
  6086. int cs = Int32.Parse(configcs.F_ParamValue);
  6087. if (ts.TotalHours > cs)
  6088. {
  6089. dr["OverState"] = 1;
  6090. }
  6091. else
  6092. {
  6093. dr["OverState"] = 2;
  6094. }
  6095. }
  6096. dr["GapTime"] = "剩余" + gshsj;
  6097. }
  6098. else
  6099. {
  6100. dr["OverState"] = 3;
  6101. dr["GapTime"] = "超时" + gshsj;
  6102. }
  6103. }
  6104. }
  6105. if (state == (int)EnumWorkState.finish)
  6106. {
  6107. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6108. var dttime = DateTime.Now;
  6109. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6110. else
  6111. {
  6112. var DealTime = dr["F_CloseTime"].ToString();
  6113. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6114. }
  6115. if (!string.IsNullOrWhiteSpace(lt))
  6116. {
  6117. var ltime = DateTime.Parse(lt);
  6118. if (ltime < dttime)
  6119. {
  6120. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6121. ltime = ltime.AddDays(days);
  6122. TimeSpan ts = dttime.Subtract(ltime);
  6123. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6124. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6125. dr["OverState"] = 3;
  6126. dr["GapTime"] = "超时" + gshsj;
  6127. }
  6128. }
  6129. }
  6130. #endregion
  6131. ispd = int.Parse(dtjb.Rows[0]["F_IsNext"].ToString());
  6132. dr["PDState"] = ispd;
  6133. }
  6134. }
  6135. }
  6136. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6137. {
  6138. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6139. }
  6140. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6141. {
  6142. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6143. }
  6144. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6145. if (Int32.Parse(strtab) < 1)
  6146. {
  6147. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd.ToString());
  6148. #region 判断是否存在待督办
  6149. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  6150. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6151. if (recount > 0 && butt != null)
  6152. btns.Remove(butt);
  6153. #endregion
  6154. }
  6155. else
  6156. {
  6157. btns.Add(ButtonGroup.query());
  6158. }
  6159. dr["Buttons"] = btns;
  6160. }
  6161. #endregion
  6162. var obj = new
  6163. {
  6164. state = "success",
  6165. message = "成功",
  6166. rows = dt,
  6167. total = recordCount
  6168. };
  6169. return Content(obj.ToJson());
  6170. }
  6171. /// <summary>
  6172. /// 获取三级单位处理列表
  6173. /// </summary>
  6174. /// <returns></returns>
  6175. //[Authority]
  6176. public ActionResult GetSJDWDealList(int isdc = 0)
  6177. {
  6178. DataTable dt = new DataTable();
  6179. string sql = " and F_IsDelete=0";
  6180. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  6181. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6182. int islike = RequestString.GetInt("islike", 1);
  6183. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6184. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6185. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6186. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6187. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6188. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6189. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6190. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6191. int source = RequestString.GetInt("source", 0);
  6192. int keyid = RequestString.GetInt("keyid", 0);
  6193. int type = RequestString.GetInt("type", 0);
  6194. int bigtype = RequestString.GetInt("bigtype", 0);
  6195. int smalltype = RequestString.GetInt("smalltype", 0);
  6196. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6197. int deptid = RequestString.GetInt("deptid", 0);
  6198. string strpageindex = RequestString.GetQueryString("page");
  6199. int pageindex = 1;
  6200. string strpagesize = RequestString.GetQueryString("pagesize");
  6201. int pagesize = 10;
  6202. #region 模块
  6203. switch (strtab)
  6204. {
  6205. case "0"://待处理工单
  6206. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  6207. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  6208. //if (User.F_RoleCode == "EJWLDW")
  6209. // {
  6210. // sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  6211. // }
  6212. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  6213. {
  6214. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  6215. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='" + User.F_DeptId + "' and F_IsSure in (0,1)))";
  6216. if (User.F_RoleCode == "WLDW")
  6217. {
  6218. sql += " or (F_MainDeptID3 like'%" + User.F_DeptId + "%')"
  6219. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + "))";
  6220. }
  6221. sql += ")";
  6222. }
  6223. else
  6224. {
  6225. sql += " and F_MainDeptID3 like '%" + User.F_DeptId + "%' ";
  6226. }
  6227. break;
  6228. case "1"://已办理的工单
  6229. if (strstate.Trim() != "" && strstate != "undefined")
  6230. {
  6231. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6232. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6233. else
  6234. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6235. }
  6236. 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) ";
  6237. if (User.F_RoleCode == "EJWLDW")
  6238. {
  6239. sql += " and F_MainDeptID3 like '%" + User.F_DeptId + "%' ";
  6240. }
  6241. else if (User.F_RoleCode == "WLDW")
  6242. {
  6243. sql += " and( (F_MainDeptID3 like '%" + User.F_DeptId + "%')"
  6244. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + ")) )";
  6245. }
  6246. else if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  6247. {
  6248. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  6249. }
  6250. else
  6251. {
  6252. sql += ")";
  6253. }
  6254. break;
  6255. }
  6256. #endregion
  6257. #region 条件
  6258. if (strworkid.Trim() != "" && strworkid != "undefined")
  6259. {
  6260. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6261. }
  6262. if (strname.Trim() != "" && strname != "undefined")
  6263. {
  6264. sql += " and F_CusName like '%" + strname + "%' ";
  6265. }
  6266. if (islike > 0)
  6267. {
  6268. if (strtel.Trim() != "" && strtel != "undefined")
  6269. {
  6270. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6271. }
  6272. }
  6273. else
  6274. {
  6275. if (strtel.Trim() != "" && strtel != "undefined")
  6276. {
  6277. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6278. }
  6279. }
  6280. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6281. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6282. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6283. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6284. {
  6285. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6286. }
  6287. if (Result.Trim() != "" && Result != "undefined")
  6288. {
  6289. sql += " and F_Result like '%" + Result + "%' ";
  6290. }
  6291. if (ComContent.Trim() != "" && ComContent != "undefined")
  6292. {
  6293. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6294. }
  6295. if (strkey.Trim() != "" && strkey != "undefined")
  6296. {
  6297. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6298. " or F_Result like '%" + strkey + "%' ) ";
  6299. }
  6300. #region 坐席&调度员
  6301. if (strusercode.Trim() != "" && strusercode != "undefined")
  6302. {//坐席
  6303. var usercode = strusercode.Trim().Split(',');
  6304. var newusercode = "";
  6305. foreach (var item in usercode)
  6306. {
  6307. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6308. newusercode += "'" + item + "',";
  6309. }
  6310. newusercode = newusercode.Trim(',');
  6311. if (newusercode.Trim() != "" && newusercode != "undefined")
  6312. {
  6313. sql += " and F_CreateUser in (" + newusercode + ") ";
  6314. }
  6315. }
  6316. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6317. {//调度员
  6318. var ddusercode = strddusercode.Trim().Split(',');
  6319. var newusercode = "";
  6320. foreach (var item in ddusercode)
  6321. {
  6322. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6323. newusercode += "'" + item + "',";
  6324. }
  6325. newusercode = newusercode.Trim(',');
  6326. if (newusercode.Trim() != "" && newusercode != "undefined")
  6327. {
  6328. sql += " and F_AssignUser in(" + newusercode + ") ";
  6329. }
  6330. }
  6331. #endregion
  6332. if (source != 0)
  6333. {
  6334. sql += " and F_InfoSource = '" + source + "' ";
  6335. }
  6336. string sqlwhere = "";
  6337. if (keyid != 0)
  6338. {
  6339. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6340. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6341. // " or F_Key='" + keyid + "' )";
  6342. }
  6343. if (type != 0)
  6344. {
  6345. sql += " and F_InfoType = '" + type + "' ";
  6346. }
  6347. if (bigtype != 0)
  6348. {
  6349. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6350. }
  6351. if (smalltype != 0)
  6352. {
  6353. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6354. }
  6355. if (sourcearea != 0)
  6356. {
  6357. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6358. }
  6359. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6360. {
  6361. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6362. }
  6363. if (strendtime.Trim() != "" && strendtime != "undefined")
  6364. {
  6365. sql += " and F_CreateTime<='" + strendtime + "' ";
  6366. }
  6367. if (deptid != 0)
  6368. {
  6369. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  6370. }
  6371. if (strpageindex.Trim() != "")
  6372. {
  6373. pageindex = Convert.ToInt32(strpageindex);
  6374. }
  6375. if (strpagesize.Trim() != "")
  6376. {
  6377. pagesize = Convert.ToInt32(strpagesize);
  6378. }
  6379. #endregion
  6380. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6381. 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";
  6382. if (isdc > 0)
  6383. {
  6384. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6385. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6386. if (msg == "")
  6387. {
  6388. return Success("导出成功");
  6389. }
  6390. else
  6391. {
  6392. return Error("导出失败");
  6393. }
  6394. }
  6395. int recordCount = 0;
  6396. dt = BLL.PagerBLL.GetListPager(
  6397. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  6398. "F_Id",
  6399. cols,
  6400. sql,
  6401. "ORDER BY F_CreateTime DESC",
  6402. pagesize,
  6403. pageindex,
  6404. true,
  6405. out recordCount);
  6406. #region 声音文件
  6407. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6408. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6409. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6410. dt.Columns.Add("OverState", typeof(string));//超时状态
  6411. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6412. dt.Columns.Add("GapTime", typeof(string));//时间差
  6413. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  6414. dt.Columns.Add("PDState", typeof(string));//派单状态
  6415. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  6416. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6417. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6418. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6419. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  6420. foreach (DataRow dr in dt.Rows)
  6421. {
  6422. //获取最新交办信息
  6423. string iszbdw = "0";
  6424. string ispd = "";
  6425. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6426. if (state > 1)
  6427. {
  6428. 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";
  6429. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6430. if (dtjb.Rows.Count > 0)
  6431. {
  6432. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6433. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6434. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  6435. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6436. {
  6437. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6438. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  6439. }
  6440. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6441. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6442. dr["LimitTime"] = lt;
  6443. #region
  6444. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6445. {
  6446. if (!string.IsNullOrWhiteSpace(lt))
  6447. {
  6448. var ltime = DateTime.Parse(lt);
  6449. if (ltime > DateTime.Now)
  6450. {
  6451. //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") + "'";
  6452. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6453. //if (SYSJ != null && SYSJ.ToString() != "")
  6454. //{
  6455. // try
  6456. // {
  6457. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6458. // }
  6459. // catch
  6460. // {
  6461. // }
  6462. //}
  6463. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6464. //ltime = ltime.AddDays(-days);
  6465. }
  6466. else
  6467. {
  6468. //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") + "'";
  6469. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6470. //if (SYSJ != null && SYSJ.ToString() != "")
  6471. //{
  6472. // try
  6473. // {
  6474. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  6475. // }
  6476. // catch
  6477. // {
  6478. // }
  6479. //}
  6480. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6481. ltime = ltime.AddDays(days);
  6482. }
  6483. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6484. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6485. if (tss < 0) { tss = -tss; }
  6486. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6487. if (ltime > DateTime.Now)
  6488. {
  6489. if (configcs != null)
  6490. {
  6491. int cs = Int32.Parse(configcs.F_ParamValue);
  6492. if (ts.TotalHours > cs)
  6493. {
  6494. dr["OverState"] = 1;
  6495. }
  6496. else
  6497. {
  6498. dr["OverState"] = 2;
  6499. }
  6500. }
  6501. dr["GapTime"] = "剩余" + gshsj;
  6502. }
  6503. else
  6504. {
  6505. dr["OverState"] = 3;
  6506. dr["GapTime"] = "超时" + gshsj;
  6507. }
  6508. }
  6509. }
  6510. if (state == (int)EnumWorkState.finish)
  6511. {
  6512. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6513. var dttime = DateTime.Now;
  6514. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6515. else
  6516. {
  6517. var DealTime = dr["F_CloseTime"].ToString();
  6518. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6519. }
  6520. if (!string.IsNullOrWhiteSpace(lt))
  6521. {
  6522. var ltime = DateTime.Parse(lt);
  6523. if (ltime < dttime)
  6524. {
  6525. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6526. ltime = ltime.AddDays(days);
  6527. TimeSpan ts = dttime.Subtract(ltime);
  6528. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6529. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6530. dr["OverState"] = 3;
  6531. dr["GapTime"] = "超时" + gshsj;
  6532. }
  6533. }
  6534. }
  6535. #endregion
  6536. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  6537. dr["PDState"] = ispd;
  6538. }
  6539. else
  6540. {
  6541. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6542. string mid = dr["F_MainDeptId"].ToString();
  6543. if (!string.IsNullOrEmpty(mid))
  6544. {
  6545. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  6546. }
  6547. }
  6548. }
  6549. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6550. {
  6551. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6552. }
  6553. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6554. {
  6555. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6556. }
  6557. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6558. if (Int32.Parse(strtab) < 1)
  6559. {
  6560. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6561. #region 判断是否存在待督办
  6562. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  6563. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6564. if (recount > 0 && butt != null)
  6565. btns.Remove(butt);
  6566. #endregion
  6567. }
  6568. else
  6569. {
  6570. btns.Add(ButtonGroup.query());
  6571. }
  6572. dr["Buttons"] = btns;
  6573. }
  6574. #endregion
  6575. var obj = new
  6576. {
  6577. state = "success",
  6578. message = "成功",
  6579. rows = dt,
  6580. total = recordCount
  6581. };
  6582. return Content(obj.ToJson());
  6583. }
  6584. /// <summary>
  6585. /// 获取自己提交工单
  6586. /// </summary>
  6587. /// <param name="isdc"></param>
  6588. /// <returns></returns>
  6589. //[Authority]
  6590. public ActionResult GetSelfList(int isdc = 0)
  6591. {
  6592. DataTable dt = new DataTable();
  6593. string sql = " and F_IsDelete=0 ";
  6594. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6595. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6596. int islike = RequestString.GetInt("islike", 1);
  6597. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6598. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6599. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6600. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6601. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6602. int source = RequestString.GetInt("source", 0);
  6603. int keyid = RequestString.GetInt("keyid", 0);
  6604. int type = RequestString.GetInt("type", 0);
  6605. int bigtype = RequestString.GetInt("bigtype", 0);
  6606. int smalltype = RequestString.GetInt("smalltype", 0);
  6607. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6608. int deptid = RequestString.GetInt("deptid", 0);
  6609. int dealtype = RequestString.GetInt("dealtype", -1);
  6610. int issend = RequestString.GetInt("issend", -1);
  6611. int deptlevel = RequestString.GetInt("deptlevel", 0);
  6612. string strpageindex = RequestString.GetQueryString("page");
  6613. int pageindex = 1;
  6614. string strpagesize = RequestString.GetQueryString("pagesize");
  6615. int pagesize = 10;
  6616. #region sql 语句相关处理
  6617. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  6618. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  6619. if (strstate.Trim() != "" && strstate != "undefined")
  6620. {
  6621. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6622. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6623. else
  6624. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6625. }
  6626. if (strworkid.Trim() != "" && strworkid != "undefined")
  6627. {
  6628. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6629. }
  6630. if (strname.Trim() != "" && strname != "undefined")
  6631. {
  6632. sql += " and F_CusName like '%" + strname + "%' ";
  6633. }
  6634. if (islike > 0)
  6635. {
  6636. if (strtel.Trim() != "" && strtel != "undefined")
  6637. {
  6638. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6639. }
  6640. }
  6641. else
  6642. {
  6643. if (strtel.Trim() != "" && strtel != "undefined")
  6644. {
  6645. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6646. }
  6647. }
  6648. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6649. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6650. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6651. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6652. {
  6653. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6654. }
  6655. if (Result.Trim() != "" && Result != "undefined")
  6656. {
  6657. sql += " and F_Result like '%" + Result + "%' ";
  6658. }
  6659. if (ComContent.Trim() != "" && ComContent != "undefined")
  6660. {
  6661. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6662. }
  6663. if (strkey.Trim() != "" && strkey != "undefined")
  6664. {
  6665. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6666. " or F_Result like '%" + strkey + "%' ) ";
  6667. }
  6668. if (source != 0)
  6669. {
  6670. sql += " and F_InfoSource = '" + source + "' ";
  6671. }
  6672. string sqlwhere = "";
  6673. if (keyid != 0)
  6674. {
  6675. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6676. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6677. // " or F_Key='" + keyid + "' )";
  6678. }
  6679. if (type != 0)
  6680. {
  6681. sql += " and F_InfoType = '" + type + "' ";
  6682. }
  6683. if (bigtype != 0)
  6684. {
  6685. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6686. }
  6687. if (smalltype != 0)
  6688. {
  6689. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6690. }
  6691. if (sourcearea != 0)
  6692. {
  6693. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6694. }
  6695. if (deptid != 0)
  6696. {
  6697. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  6698. }
  6699. if (dealtype != -1)
  6700. {
  6701. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  6702. }
  6703. if (issend != -1)
  6704. {
  6705. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  6706. }
  6707. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6708. {
  6709. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6710. }
  6711. if (strendtime.Trim() != "" && strendtime != "undefined")
  6712. {
  6713. sql += " and F_CreateTime<='" + strendtime + "' ";
  6714. }
  6715. #endregion
  6716. if (strpageindex.Trim() != "")
  6717. {
  6718. pageindex = Convert.ToInt32(strpageindex);
  6719. }
  6720. if (strpagesize.Trim() != "")
  6721. {
  6722. pagesize = Convert.ToInt32(strpagesize);
  6723. }
  6724. 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";
  6725. #region 导出
  6726. if (isdc > 0)
  6727. {
  6728. var top = " "; var orderby = " order by F_CreateTime";
  6729. if (sql == " and F_IsDelete=0 ")
  6730. {
  6731. top = " top 1000 "; orderby += " desc ";
  6732. }
  6733. //20190715调整导出字段 zhengbingbing
  6734. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  6735. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  6736. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  6737. + " (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) 办理结果, "
  6738. + " (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) 是否满意 "
  6739. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  6740. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6741. if (msg == "")
  6742. {
  6743. return Success("导出成功");
  6744. }
  6745. else
  6746. {
  6747. return Error("导出失败");
  6748. }
  6749. }
  6750. #endregion
  6751. int recordCount = 0;
  6752. dt = BLL.PagerBLL.GetListPager(
  6753. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  6754. "F_Id",
  6755. cols,
  6756. sql,
  6757. "ORDER BY F_CreateTime DESC",
  6758. pagesize,
  6759. pageindex,
  6760. true,
  6761. out recordCount);
  6762. #region 声音文件和交办超时
  6763. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6764. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6765. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6766. dt.Columns.Add("OverState", typeof(string));//超时状态
  6767. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6768. dt.Columns.Add("GapTime", typeof(string));//时间差
  6769. dt.Columns.Add("PDState", typeof(string));//派单状态
  6770. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  6771. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  6772. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6773. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6774. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6775. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  6776. foreach (DataRow dr in dt.Rows)
  6777. {
  6778. string iszbdw = "0";
  6779. string ispd = "";
  6780. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6781. if (state > 1)
  6782. {
  6783. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6784. string mid = dr["F_MainDeptId"].ToString();
  6785. if (!string.IsNullOrEmpty(mid))
  6786. {
  6787. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  6788. }
  6789. //获取最新交办信息
  6790. 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";
  6791. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6792. if (dtjb.Rows.Count > 0)
  6793. {
  6794. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6795. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  6796. {
  6797. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  6798. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dr["F_OtherDeptIds"].ToString());
  6799. }
  6800. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6801. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6802. dr["LimitTime"] = lt;
  6803. #region 超时时限
  6804. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6805. {
  6806. if (!string.IsNullOrWhiteSpace(lt))
  6807. {
  6808. var ltime = DateTime.Parse(lt);
  6809. if (ltime > DateTime.Now)
  6810. {
  6811. //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") + "'";
  6812. //var SYSJ = DbHelperSQL.GetSingle(SY);
  6813. //if (SYSJ != null && SYSJ.ToString() != "")
  6814. //{
  6815. // try
  6816. // {
  6817. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6818. // }
  6819. // catch
  6820. // {
  6821. // }
  6822. //}
  6823. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  6824. //ltime = ltime.AddDays(-days);
  6825. }
  6826. else
  6827. {
  6828. //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") + "'";
  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 > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  6841. ltime = ltime.AddDays(days);
  6842. }
  6843. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6844. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6845. if (tss < 0) { tss = -tss; }
  6846. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6847. if (ltime > DateTime.Now)
  6848. {
  6849. if (configcs != null)
  6850. {
  6851. int cs = Int32.Parse(configcs.F_ParamValue);
  6852. if (ts.TotalHours > cs)
  6853. {
  6854. dr["OverState"] = 1;
  6855. }
  6856. else
  6857. {
  6858. dr["OverState"] = 2;
  6859. }
  6860. }
  6861. dr["GapTime"] = "剩余" + gshsj;
  6862. }
  6863. else
  6864. {
  6865. dr["OverState"] = 3;
  6866. dr["GapTime"] = "超时" + gshsj;
  6867. }
  6868. }
  6869. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  6870. dr["PDState"] = ispd;
  6871. }
  6872. if (state == (int)EnumWorkState.finish)
  6873. {
  6874. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6875. var dttime = DateTime.Now;
  6876. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6877. else
  6878. {
  6879. var DealTime = dr["F_CloseTime"].ToString();
  6880. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6881. }
  6882. if (!string.IsNullOrWhiteSpace(lt))
  6883. {
  6884. var ltime = DateTime.Parse(lt);
  6885. if (ltime < dttime)
  6886. {
  6887. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  6888. ltime = ltime.AddDays(days);
  6889. TimeSpan ts = dttime.Subtract(ltime);
  6890. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6891. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6892. dr["OverState"] = 3;
  6893. dr["GapTime"] = "超时" + gshsj;
  6894. }
  6895. }
  6896. }
  6897. #endregion
  6898. }
  6899. }
  6900. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6901. {
  6902. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6903. }
  6904. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6905. {
  6906. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6907. }
  6908. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6909. #region 判断是否存在待督办
  6910. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  6911. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  6912. if (recount > 0 && butt != null)
  6913. buttons.Remove(butt);
  6914. #endregion
  6915. dr["Buttons"] = buttons;
  6916. }
  6917. #endregion
  6918. var obj = new
  6919. {
  6920. state = "success",
  6921. message = "成功",
  6922. rows = dt,
  6923. total = recordCount
  6924. };
  6925. return Content(obj.ToJson());
  6926. }
  6927. /// <summary>
  6928. /// 获取逾期未回复工单列表
  6929. /// </summary>
  6930. /// <returns></returns>
  6931. //[Authority]
  6932. public ActionResult GetTimeOutList(int isdc = 0)
  6933. {
  6934. DataTable dt = new DataTable();
  6935. string sql = " and F_IsDelete=0";
  6936. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6937. int islike = RequestString.GetInt("islike", 1);
  6938. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6939. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6940. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6941. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6942. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6943. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6944. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6945. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6946. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  6947. int source = RequestString.GetInt("source", 0);
  6948. int keyid = RequestString.GetInt("keyid", 0);
  6949. int type = RequestString.GetInt("type", 0);
  6950. int bigtype = RequestString.GetInt("bigtype", 0);
  6951. int smalltype = RequestString.GetInt("smalltype", 0);
  6952. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6953. int deptid = RequestString.GetInt("deptid", 0);
  6954. int soon = RequestString.GetInt("soon", 0);
  6955. string strpageindex = RequestString.GetQueryString("page");
  6956. int pageindex = 1;
  6957. string strpagesize = RequestString.GetQueryString("pagesize");
  6958. int pagesize = 10;
  6959. int IsReturn = RequestString.GetInt("IsReturn", -1);
  6960. if (strstate == "0")
  6961. {
  6962. if (IsReturn == 1)
  6963. {
  6964. sql += " and F_IsReturn=1";
  6965. }
  6966. else
  6967. {
  6968. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  6969. }
  6970. }
  6971. #region 坐席&调度员
  6972. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  6973. if (splituser.Trim() != "" && splituser != "undefined")
  6974. {
  6975. sql += " and F_SplitUser = '" + splituser + "' ";
  6976. }
  6977. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  6978. if (assuser.Trim() != "" && assuser != "undefined")
  6979. {
  6980. sql += " and F_AssignUser = '" + assuser + "' ";
  6981. }
  6982. if (strusercode.Trim() != "" && strusercode != "undefined")
  6983. {//坐席
  6984. var usercode = strusercode.Trim().Split(',');
  6985. var newusercode = "";
  6986. foreach (var item in usercode)
  6987. {
  6988. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6989. newusercode += "'" + item + "',";
  6990. }
  6991. newusercode = newusercode.Trim(',');
  6992. if (newusercode.Trim() != "" && newusercode != "undefined")
  6993. {
  6994. sql += " and F_CreateUser in (" + newusercode + ") ";
  6995. }
  6996. }
  6997. if (ejdeptid > 0)
  6998. {
  6999. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  7000. }
  7001. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7002. {//调度员
  7003. var ddusercode = strddusercode.Trim().Split(',');
  7004. var newusercode = "";
  7005. foreach (var item in ddusercode)
  7006. {
  7007. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7008. newusercode += "'" + item + "',";
  7009. }
  7010. newusercode = newusercode.Trim(',');
  7011. if (newusercode.Trim() != "" && newusercode != "undefined")
  7012. {
  7013. sql += " and F_AssignUser in(" + newusercode + ") ";
  7014. }
  7015. }
  7016. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7017. //{
  7018. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7019. //}
  7020. #endregion
  7021. string sqlwhere = ""; string sqlwhere1 = "";
  7022. if (User.F_RoleCode == "WLDW")
  7023. {
  7024. if (soon == 1)
  7025. {
  7026. sqlwhere += " and (F_LimitTime<getdate() or " +
  7027. " F_LimitTime<(dateadd(dd,-1,GETDATE()))) ";
  7028. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  7029. //+ " where F_State=1 and F_IsDelete=0 and and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  7030. }
  7031. else
  7032. {
  7033. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  7034. //+ " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  7035. sqlwhere += " and F_LimitTime<getdate() ";
  7036. }
  7037. //sqlwhere1 += " and F_MainDeptId = '" + User.F_DeptId + "'";
  7038. sql += " and F_MainDeptId = '" + User.F_DeptId + "' " +
  7039. "and F_WorkState NOT IN (6,7,9)";
  7040. // sqlwhere += "))";
  7041. }
  7042. else if (User.F_RoleCode == "EJWLDW")
  7043. {
  7044. 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) ";
  7045. 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 "
  7046. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)))";
  7047. }
  7048. else if (deptid != 0)
  7049. {
  7050. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN(6,7,9)";
  7051. sqlwhere += " and F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "'))";
  7052. sqlwhere1 += " and F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "'))";
  7053. }
  7054. else
  7055. {
  7056. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN (6,7,9) ";
  7057. }
  7058. sql += "and F_MainDeptId is not null and F_MainDeptId !='' ";
  7059. //if (User.F_RoleCode == "ZXLD")
  7060. //{
  7061. // sqlwhere += " and F_CreateUser = '" + User.F_UserCode + "' ";
  7062. // sqlwhere1 += " and F_CreateUser = '" + User.F_UserCode + "'";
  7063. //}
  7064. if (strstate.Trim() != "" && strstate != "undefined")
  7065. {
  7066. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  7067. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  7068. else
  7069. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7070. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  7071. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  7072. else
  7073. sql += sqlwhere;
  7074. }
  7075. else
  7076. {
  7077. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  7078. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  7079. sql += sqlwhere;
  7080. //sql += " and F_WorkState in (2,4,8)";
  7081. }
  7082. if (strworkid.Trim() != "" && strworkid != "undefined")
  7083. {
  7084. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7085. }
  7086. if (strname.Trim() != "" && strname != "undefined")
  7087. {
  7088. sql += " and F_CusName like '%" + strname + "%' ";
  7089. }
  7090. if (islike > 0)
  7091. {
  7092. if (strtel.Trim() != "" && strtel != "undefined")
  7093. {
  7094. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7095. }
  7096. }
  7097. else
  7098. {
  7099. if (strtel.Trim() != "" && strtel != "undefined")
  7100. {
  7101. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7102. }
  7103. }
  7104. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7105. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7106. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7107. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7108. {
  7109. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7110. }
  7111. if (Result.Trim() != "" && Result != "undefined")
  7112. {
  7113. sql += " and F_Result like '%" + Result + "%' ";
  7114. }
  7115. if (ComContent.Trim() != "" && ComContent != "undefined")
  7116. {
  7117. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7118. }
  7119. if (strkey.Trim() != "" && strkey != "undefined")
  7120. {
  7121. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7122. " or F_Result like '%" + strkey + "%' ) ";
  7123. }
  7124. if (source != 0)
  7125. {
  7126. sql += " and F_InfoSource = '" + source + "' ";
  7127. }
  7128. string sqlwheres = ""; string value = "";
  7129. if (keyid != 0)
  7130. {
  7131. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7132. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7133. // " or F_Key='" + keyid + "' )";
  7134. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  7135. }
  7136. if (type != 0)
  7137. {
  7138. sql += " and F_InfoType = '" + type + "' ";
  7139. }
  7140. if (bigtype != 0)
  7141. {
  7142. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7143. }
  7144. if (smalltype != 0)
  7145. {
  7146. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7147. }
  7148. if (sourcearea != 0)
  7149. {
  7150. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7151. }
  7152. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7153. {
  7154. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7155. }
  7156. if (strendtime.Trim() != "" && strendtime != "undefined")
  7157. {
  7158. sql += " and F_CreateTime<='" + strendtime + "' ";
  7159. }
  7160. if (strpageindex.Trim() != "")
  7161. {
  7162. pageindex = Convert.ToInt32(strpageindex);
  7163. }
  7164. if (strpagesize.Trim() != "")
  7165. {
  7166. pagesize = Convert.ToInt32(strpagesize);
  7167. }
  7168. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  7169. 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";
  7170. if (isdc > 0)
  7171. {
  7172. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7173. var top = " "; var orderby = " order by F_CreateTime";
  7174. if (sql == " and F_IsDelete=0 ")
  7175. {
  7176. top = " top 1000 "; orderby += " desc ";
  7177. }
  7178. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  7179. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  7180. + " (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) 办理结果, "
  7181. + " (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) 是否满意 "
  7182. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  7183. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7184. if (msg == "")
  7185. {
  7186. return Success("导出成功");
  7187. }
  7188. else
  7189. {
  7190. return Error("导出失败");
  7191. }
  7192. }
  7193. int recordCount = 0;
  7194. dt = BLL.PagerBLL.GetListPager(
  7195. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7196. "F_Id",
  7197. cols,
  7198. sql,
  7199. "ORDER BY F_CreateTime DESC",
  7200. pagesize,
  7201. pageindex,
  7202. true,
  7203. out recordCount);
  7204. #region 声音文件
  7205. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7206. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7207. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7208. dt.Columns.Add("OverState", typeof(string));//超时状态
  7209. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  7210. dt.Columns.Add("GapTime", typeof(string));//时间差
  7211. dt.Columns.Add("FilePath", typeof(string));
  7212. dt.Columns.Add("Buttons", typeof(object));
  7213. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7214. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7215. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  7216. foreach (DataRow dr in dt.Rows)
  7217. {
  7218. //获取最新交办信息
  7219. string iszbdw = "0";
  7220. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7221. string ispd = "";
  7222. if (state > 1)
  7223. {
  7224. 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";
  7225. string sqlej = "";
  7226. if (User.F_RoleCode == "EJWLDW")
  7227. {
  7228. 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";
  7229. }
  7230. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7231. if (dtjb.Rows.Count > 0)
  7232. {
  7233. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  7234. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7235. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7236. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7237. {
  7238. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7239. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7240. }
  7241. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7242. #region 时限
  7243. //if (state < 6 || state == 8)
  7244. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  7245. {
  7246. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7247. if (User.F_RoleCode == "EJWLDW")
  7248. {
  7249. 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";
  7250. var dtej = DbHelperSQL.Query(sqljb).Tables[0];
  7251. lt = dtej.Rows[0]["F_LimitTime"].ToString();
  7252. }
  7253. dr["LimitTime"] = lt;
  7254. if (!string.IsNullOrWhiteSpace(lt))
  7255. {
  7256. var ltime = DateTime.Parse(lt);
  7257. if (ltime > DateTime.Now)
  7258. {
  7259. //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") + "'";
  7260. //var SYSJ = DbHelperSQL.GetSingle(SY);
  7261. //if (SYSJ != null && SYSJ.ToString() != "")
  7262. //{
  7263. // try
  7264. // {
  7265. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  7266. // }
  7267. // catch
  7268. // {
  7269. // }
  7270. //}
  7271. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  7272. //ltime = ltime.AddDays(-days);
  7273. }
  7274. else
  7275. {
  7276. //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") + "'";
  7277. //var SYSJ = DbHelperSQL.GetSingle(SY);
  7278. //if (SYSJ != null && SYSJ.ToString() != "")
  7279. //{
  7280. // try
  7281. // {
  7282. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  7283. // }
  7284. // catch
  7285. // {
  7286. // }
  7287. //}
  7288. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  7289. ltime = ltime.AddDays(days);
  7290. }
  7291. TimeSpan ts = ltime.Subtract(DateTime.Now);
  7292. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7293. if (tss < 0) { tss = -tss; }
  7294. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7295. if (ltime > DateTime.Now)
  7296. {
  7297. if (configcs != null)
  7298. {
  7299. int cs = Int32.Parse(configcs.F_ParamValue);
  7300. if (ts.TotalHours > cs)
  7301. {
  7302. dr["OverState"] = 1;
  7303. }
  7304. else
  7305. {
  7306. dr["OverState"] = 2;
  7307. }
  7308. }
  7309. dr["GapTime"] = "剩余" + gshsj;
  7310. }
  7311. else
  7312. {
  7313. dr["OverState"] = 3;
  7314. dr["GapTime"] = "超时" + gshsj;
  7315. }
  7316. }
  7317. }
  7318. if (state == (int)EnumWorkState.finish)
  7319. {
  7320. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  7321. var dttime = DateTime.Now;
  7322. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  7323. else
  7324. {
  7325. var DealTime = dr["F_CloseTime"].ToString();
  7326. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  7327. }
  7328. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7329. dr["LimitTime"] = lt;
  7330. if (!string.IsNullOrWhiteSpace(lt))
  7331. {
  7332. var ltime = DateTime.Parse(lt);
  7333. if (ltime < dttime)
  7334. {
  7335. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  7336. ltime = ltime.AddDays(days);
  7337. TimeSpan ts = dttime.Subtract(ltime);
  7338. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7339. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7340. dr["OverState"] = 3;
  7341. dr["GapTime"] = "超时" + gshsj;
  7342. }
  7343. }
  7344. }
  7345. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  7346. #endregion
  7347. }
  7348. }
  7349. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7350. {
  7351. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7352. }
  7353. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7354. {
  7355. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7356. }
  7357. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7358. if (User.F_RoleCode == "EJWLDW")
  7359. {
  7360. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  7361. }
  7362. if (User.F_RoleCode == "WLDW")
  7363. {
  7364. if (ispd == "0" || ispd == "")
  7365. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  7366. }
  7367. else
  7368. {
  7369. btns.Add(ButtonGroup.query());
  7370. }
  7371. dr["Buttons"] = btns;
  7372. }
  7373. #endregion
  7374. var obj = new
  7375. {
  7376. state = "success",
  7377. message = "成功",
  7378. rows = dt,
  7379. total = recordCount
  7380. };
  7381. return Content(obj.ToJson());
  7382. }
  7383. /// <summary>
  7384. /// 获取公开工单列表
  7385. /// </summary>
  7386. /// <returns></returns>
  7387. //[Authority]
  7388. public ActionResult GetMediaList(int isdc = 0)
  7389. {
  7390. DataTable dt = new DataTable();
  7391. string sql = " and F_IsDelete=0";
  7392. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7393. int islike = RequestString.GetInt("islike", 1);
  7394. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7395. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7396. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7397. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7398. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7399. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7400. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7401. int source = RequestString.GetInt("source", 0);
  7402. int keyid = RequestString.GetInt("keyid", 0);
  7403. int type = RequestString.GetInt("type", 0);
  7404. int bigtype = RequestString.GetInt("bigtype", 0);
  7405. int smalltype = RequestString.GetInt("smalltype", 0);
  7406. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7407. int deptid = RequestString.GetInt("deptid", 0);
  7408. string strpageindex = RequestString.GetQueryString("page");
  7409. int pageindex = 1;
  7410. string strpagesize = RequestString.GetQueryString("pagesize");
  7411. int pagesize = 10;
  7412. sql += " and isnull(F_IsOpen,0) =1 ";
  7413. if (strworkid.Trim() != "" && strworkid != "undefined")
  7414. {
  7415. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7416. }
  7417. if (strname.Trim() != "" && strname != "undefined")
  7418. {
  7419. sql += " and F_CusName like '%" + strname + "%' ";
  7420. }
  7421. if (islike > 0)
  7422. {
  7423. if (strtel.Trim() != "" && strtel != "undefined")
  7424. {
  7425. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7426. }
  7427. }
  7428. else
  7429. {
  7430. if (strtel.Trim() != "" && strtel != "undefined")
  7431. {
  7432. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7433. }
  7434. }
  7435. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7436. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7437. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7438. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7439. {
  7440. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7441. }
  7442. if (Result.Trim() != "" && Result != "undefined")
  7443. {
  7444. sql += " and F_Result like '%" + Result + "%' ";
  7445. }
  7446. if (ComContent.Trim() != "" && ComContent != "undefined")
  7447. {
  7448. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7449. }
  7450. if (strkey.Trim() != "" && strkey != "undefined")
  7451. {
  7452. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7453. " or F_Result like '%" + strkey + "%' ) ";
  7454. }
  7455. #region 坐席&调度员
  7456. if (strusercode.Trim() != "" && strusercode != "undefined")
  7457. {//坐席
  7458. var usercode = strusercode.Trim().Split(',');
  7459. var newusercode = "";
  7460. foreach (var item in usercode)
  7461. {
  7462. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7463. newusercode += "'" + item + "',";
  7464. }
  7465. newusercode = newusercode.Trim(',');
  7466. if (newusercode.Trim() != "" && newusercode != "undefined")
  7467. {
  7468. sql += " and F_CreateUser in (" + newusercode + ") ";
  7469. }
  7470. }
  7471. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7472. {//调度员
  7473. var ddusercode = strddusercode.Trim().Split(',');
  7474. var newusercode = "";
  7475. foreach (var item in ddusercode)
  7476. {
  7477. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7478. newusercode += "'" + item + "',";
  7479. }
  7480. newusercode = newusercode.Trim(',');
  7481. if (newusercode.Trim() != "" && newusercode != "undefined")
  7482. {
  7483. sql += " and F_AssignUser in(" + newusercode + ") ";
  7484. }
  7485. }
  7486. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7487. //{
  7488. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7489. //}
  7490. #endregion
  7491. if (source != 0)
  7492. {
  7493. sql += " and F_InfoSource = '" + source + "' ";
  7494. }
  7495. string sqlwheres = "";
  7496. if (keyid != 0)
  7497. {
  7498. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7499. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7500. // " or F_Key='" + keyid + "' )";
  7501. }
  7502. if (type != 0)
  7503. {
  7504. sql += " and F_InfoType = '" + type + "' ";
  7505. }
  7506. if (bigtype != 0)
  7507. {
  7508. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7509. }
  7510. if (smalltype != 0)
  7511. {
  7512. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7513. }
  7514. if (sourcearea != 0)
  7515. {
  7516. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7517. }
  7518. if (deptid != 0)
  7519. {
  7520. 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 ";
  7521. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7522. }
  7523. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7524. {
  7525. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7526. }
  7527. if (strendtime.Trim() != "" && strendtime != "undefined")
  7528. {
  7529. sql += " and F_CreateTime<='" + strendtime + "' ";
  7530. }
  7531. if (strpageindex.Trim() != "")
  7532. {
  7533. pageindex = Convert.ToInt32(strpageindex);
  7534. }
  7535. if (strpagesize.Trim() != "")
  7536. {
  7537. pagesize = Convert.ToInt32(strpagesize);
  7538. }
  7539. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  7540. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  7541. 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";
  7542. if (isdc > 0)
  7543. {
  7544. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7545. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7546. if (msg == "")
  7547. {
  7548. return Success("导出成功");
  7549. }
  7550. else
  7551. {
  7552. return Error("导出失败");
  7553. }
  7554. }
  7555. int recordCount = 0;
  7556. dt = BLL.PagerBLL.GetListPager(
  7557. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7558. "F_Id",
  7559. cols,
  7560. sql,
  7561. "ORDER BY F_CreateTime DESC",
  7562. pagesize,
  7563. pageindex,
  7564. true,
  7565. out recordCount);
  7566. #region 声音文件
  7567. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7568. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7569. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7570. dt.Columns.Add("IsReturnMedia", typeof(string));
  7571. dt.Columns.Add("Buttons", typeof(object));
  7572. int IsReturnMedia = 0;
  7573. 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")
  7574. {
  7575. IsReturnMedia = 1;
  7576. }
  7577. foreach (DataRow dr in dt.Rows)
  7578. {
  7579. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7580. if (state > 1)
  7581. {
  7582. //获取最新交办信息
  7583. 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";
  7584. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7585. if (dtjb.Rows.Count > 0)
  7586. {
  7587. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7588. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7589. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7590. {
  7591. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7592. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7593. }
  7594. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7595. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7596. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  7597. //if (deptinfo != null)
  7598. //{
  7599. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  7600. //}
  7601. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7602. //{
  7603. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  7604. // string dns = string.Empty;
  7605. // foreach (string strid in strids)
  7606. // {
  7607. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  7608. // if (dinfo != null)
  7609. // {
  7610. // if (string.IsNullOrEmpty(dns))
  7611. // {
  7612. // dns = dinfo.F_DeptName;//交办单位
  7613. // }
  7614. // else
  7615. // {
  7616. // dns += "," + dinfo.F_DeptName;//交办单位
  7617. // }
  7618. // }
  7619. // }
  7620. // dr["OtherDeptName"] = dns;
  7621. //}
  7622. }
  7623. }
  7624. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7625. btns.Add(ButtonGroup.query());
  7626. dr["Buttons"] = btns;
  7627. dr["IsReturnMedia"] = IsReturnMedia;
  7628. }
  7629. #endregion
  7630. var obj = new
  7631. {
  7632. state = "success",
  7633. message = "成功",
  7634. rows = dt,
  7635. total = recordCount
  7636. };
  7637. return Content(obj.ToJson());
  7638. }
  7639. /// <summary>
  7640. /// 获取媒体工单列表
  7641. /// </summary>
  7642. /// <returns></returns>
  7643. //[Authority]
  7644. public ActionResult GetMassList(int isdc = 0)
  7645. {
  7646. DataTable dt = new DataTable();
  7647. string sql = " and F_IsDelete=0";
  7648. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7649. int islike = RequestString.GetInt("islike", 1);
  7650. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7651. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7652. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7653. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7654. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7655. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7656. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7657. int source = RequestString.GetInt("source", 0);
  7658. int keyid = RequestString.GetInt("keyid", 0);
  7659. int type = RequestString.GetInt("type", 0);
  7660. int bigtype = RequestString.GetInt("bigtype", 0);
  7661. int smalltype = RequestString.GetInt("smalltype", 0);
  7662. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7663. int deptid = RequestString.GetInt("deptid", 0);
  7664. string strpageindex = RequestString.GetQueryString("page");
  7665. int pageindex = 1;
  7666. string strpagesize = RequestString.GetQueryString("pagesize");
  7667. int pagesize = 10;
  7668. sql += " and isnull(F_IsMedia,0) =1 ";
  7669. if (strworkid.Trim() != "" && strworkid != "undefined")
  7670. {
  7671. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7672. }
  7673. if (strname.Trim() != "" && strname != "undefined")
  7674. {
  7675. sql += " and F_CusName like '%" + strname + "%' ";
  7676. }
  7677. if (islike > 0)
  7678. {
  7679. if (strtel.Trim() != "" && strtel != "undefined")
  7680. {
  7681. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7682. }
  7683. }
  7684. else
  7685. {
  7686. if (strtel.Trim() != "" && strtel != "undefined")
  7687. {
  7688. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7689. }
  7690. }
  7691. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7692. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7693. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7694. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7695. {
  7696. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7697. }
  7698. if (Result.Trim() != "" && Result != "undefined")
  7699. {
  7700. sql += " and F_Result like '%" + Result + "%' ";
  7701. }
  7702. if (ComContent.Trim() != "" && ComContent != "undefined")
  7703. {
  7704. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7705. }
  7706. if (strkey.Trim() != "" && strkey != "undefined")
  7707. {
  7708. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7709. " or F_Result like '%" + strkey + "%' ) ";
  7710. }
  7711. #region 坐席&调度员
  7712. if (strusercode.Trim() != "" && strusercode != "undefined")
  7713. {//坐席
  7714. var usercode = strusercode.Trim().Split(',');
  7715. var newusercode = "";
  7716. foreach (var item in usercode)
  7717. {
  7718. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7719. newusercode += "'" + item + "',";
  7720. }
  7721. newusercode = newusercode.Trim(',');
  7722. if (newusercode.Trim() != "" && newusercode != "undefined")
  7723. {
  7724. sql += " and F_CreateUser in (" + newusercode + ") ";
  7725. }
  7726. }
  7727. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7728. {//调度员
  7729. var ddusercode = strddusercode.Trim().Split(',');
  7730. var newusercode = "";
  7731. foreach (var item in ddusercode)
  7732. {
  7733. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7734. newusercode += "'" + item + "',";
  7735. }
  7736. newusercode = newusercode.Trim(',');
  7737. if (newusercode.Trim() != "" && newusercode != "undefined")
  7738. {
  7739. sql += " and F_AssignUser in(" + newusercode + ") ";
  7740. }
  7741. }
  7742. #endregion
  7743. if (source != 0)
  7744. {
  7745. sql += " and F_InfoSource = '" + source + "' ";
  7746. }
  7747. string sqlwheres = "";
  7748. if (keyid != 0)
  7749. {
  7750. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7751. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7752. // " or F_Key='" + keyid + "' )";
  7753. }
  7754. if (type != 0)
  7755. {
  7756. sql += " and F_InfoType = '" + type + "' ";
  7757. }
  7758. if (bigtype != 0)
  7759. {
  7760. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7761. }
  7762. if (smalltype != 0)
  7763. {
  7764. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7765. }
  7766. if (sourcearea != 0)
  7767. {
  7768. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7769. }
  7770. if (deptid != 0)
  7771. {
  7772. 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 ";
  7773. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7774. }
  7775. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7776. {
  7777. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7778. }
  7779. if (strendtime.Trim() != "" && strendtime != "undefined")
  7780. {
  7781. sql += " and F_CreateTime<='" + strendtime + "' ";
  7782. }
  7783. if (strpageindex.Trim() != "")
  7784. {
  7785. pageindex = Convert.ToInt32(strpageindex);
  7786. }
  7787. if (strpagesize.Trim() != "")
  7788. {
  7789. pagesize = Convert.ToInt32(strpagesize);
  7790. }
  7791. 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";
  7792. if (isdc > 0)
  7793. {
  7794. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7795. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7796. if (msg == "")
  7797. {
  7798. return Success("导出成功");
  7799. }
  7800. else
  7801. {
  7802. return Error("导出失败");
  7803. }
  7804. }
  7805. int recordCount = 0;
  7806. dt = BLL.PagerBLL.GetListPager(
  7807. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7808. "F_Id",
  7809. cols,
  7810. sql,
  7811. "ORDER BY F_CreateTime DESC",
  7812. pagesize,
  7813. pageindex,
  7814. true,
  7815. out recordCount);
  7816. #region 声音文件
  7817. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7818. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7819. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7820. dt.Columns.Add("IsReturnMedia", typeof(string));
  7821. dt.Columns.Add("Buttons", typeof(object));
  7822. int IsReturnMedia = 0;
  7823. 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")
  7824. {
  7825. IsReturnMedia = 1;
  7826. }
  7827. foreach (DataRow dr in dt.Rows)
  7828. {
  7829. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7830. if (state > 1)
  7831. {
  7832. //获取最新交办信息
  7833. 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";
  7834. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7835. if (dtjb.Rows.Count > 0)
  7836. {
  7837. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7838. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  7839. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7840. {
  7841. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7842. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  7843. }
  7844. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7845. }
  7846. }
  7847. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7848. btns.Add(ButtonGroup.query());
  7849. dr["Buttons"] = btns;
  7850. dr["IsReturnMedia"] = IsReturnMedia;
  7851. }
  7852. #endregion
  7853. var obj = new
  7854. {
  7855. state = "success",
  7856. message = "成功",
  7857. rows = dt,
  7858. total = recordCount
  7859. };
  7860. return Content(obj.ToJson());
  7861. }
  7862. /// <summary>
  7863. /// 获取通报工单列表
  7864. /// </summary>
  7865. /// <returns></returns>
  7866. //[Authority]
  7867. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  7868. {
  7869. DataTable dt = new DataTable();
  7870. //int userId = 8000;
  7871. string sql = " and F_IsDelete=0 ";
  7872. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7873. int islike = RequestString.GetInt("islike", 1);
  7874. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7875. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7876. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7877. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7878. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7879. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7880. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7881. int source = RequestString.GetInt("source", 0);
  7882. int keyid = RequestString.GetInt("keyid", 0);
  7883. int type = RequestString.GetInt("type", 0);
  7884. int bigtype = RequestString.GetInt("bigtype", 0);
  7885. int smalltype = RequestString.GetInt("smalltype", 0);
  7886. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7887. int deptid = RequestString.GetInt("deptid", 0);
  7888. string strpageindex = RequestString.GetQueryString("page");
  7889. int pageindex = 1;
  7890. string strpagesize = RequestString.GetQueryString("pagesize");
  7891. int pagesize = 10;
  7892. if (strworkid.Trim() != "" && strworkid != "undefined")
  7893. {
  7894. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7895. }
  7896. if (strname.Trim() != "" && strname != "undefined")
  7897. {
  7898. sql += " and F_CusName like '%" + strname + "%' ";
  7899. }
  7900. if (islike > 0)
  7901. {
  7902. if (strtel.Trim() != "" && strtel != "undefined")
  7903. {
  7904. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7905. }
  7906. }
  7907. else
  7908. {
  7909. if (strtel.Trim() != "" && strtel != "undefined")
  7910. {
  7911. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  7912. }
  7913. }
  7914. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7915. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7916. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7917. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7918. {
  7919. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7920. }
  7921. if (Result.Trim() != "" && Result != "undefined")
  7922. {
  7923. sql += " and F_Result like '%" + Result + "%' ";
  7924. }
  7925. if (ComContent.Trim() != "" && ComContent != "undefined")
  7926. {
  7927. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7928. }
  7929. if (strkey.Trim() != "" && strkey != "undefined")
  7930. {
  7931. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7932. " or F_Result like '%" + strkey + "%' ) ";
  7933. }
  7934. #region 坐席&调度员
  7935. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  7936. {//坐席
  7937. var usercode = strusercode.Trim().Split(',');
  7938. var newusercode = "";
  7939. foreach (var item in usercode)
  7940. {
  7941. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7942. newusercode += "'" + item + "',";
  7943. }
  7944. newusercode = newusercode.Trim(',');
  7945. if (newusercode.Trim() != "" && newusercode != "undefined")
  7946. {
  7947. sql += " and F_CreateUser in (" + newusercode + ") ";
  7948. }
  7949. }*/
  7950. #region
  7951. if (usercode != null && usercode.Length > 0)
  7952. {
  7953. var newusercode = "";
  7954. //string codes = "";
  7955. for (int i = 0; i < usercode.Length; i++)
  7956. {
  7957. if (usercode[i] != "")
  7958. {
  7959. newusercode += "'" + usercode[i] + "',";
  7960. }
  7961. }
  7962. newusercode = newusercode.Trim(',');
  7963. if (newusercode.Trim() != "" && newusercode != "undefined")
  7964. {
  7965. sql += " and F_CreateUser in (" + newusercode + ") ";
  7966. }
  7967. }
  7968. if (ddusercode != null && ddusercode.Length > 0)
  7969. {
  7970. var newusercode = "";
  7971. //string codes = "";
  7972. for (int i = 0; i < ddusercode.Length; i++)
  7973. {
  7974. if (ddusercode[i] != "")
  7975. {
  7976. newusercode += "'" + ddusercode[i] + "',";
  7977. }
  7978. }
  7979. newusercode = newusercode.Trim(',');
  7980. if (newusercode.Trim() != "" && newusercode != "undefined")
  7981. {
  7982. sql += " and F_AssignUser in (" + newusercode + ") ";
  7983. }
  7984. }
  7985. #endregion
  7986. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7987. {//调度员
  7988. var ddusercode = strddusercode.Trim().Split(',');
  7989. var newusercode = "";
  7990. foreach (var item in ddusercode)
  7991. {
  7992. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7993. newusercode += "'" + item + "',";
  7994. }
  7995. newusercode = newusercode.Trim(',');
  7996. if (newusercode.Trim() != "" && newusercode != "undefined")
  7997. {
  7998. sql += " and F_AssignUser in(" + newusercode + ") ";
  7999. }
  8000. }*/
  8001. //if (strusercode.Trim() != "" && strusercode != "undefined")
  8002. //{
  8003. // sql += " and F_CreateUser = '" + strusercode + "' ";
  8004. //}
  8005. #endregion
  8006. if (source != 0)
  8007. {
  8008. sql += " and F_InfoSource = '" + source + "' ";
  8009. }
  8010. string sqlwheres = "";
  8011. if (keyid != 0)
  8012. {
  8013. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  8014. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  8015. // " or F_Key='" + keyid + "' )";
  8016. }
  8017. if (type != 0)
  8018. {
  8019. sql += " and F_InfoType = '" + type + "' ";
  8020. }
  8021. if (bigtype != 0)
  8022. {
  8023. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8024. }
  8025. if (smalltype != 0)
  8026. {
  8027. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8028. }
  8029. if (sourcearea != 0)
  8030. {
  8031. sql += " and F_SourceArea = '" + sourcearea + "' ";
  8032. }
  8033. if (deptid != 0)
  8034. {
  8035. 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 ";
  8036. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8037. }
  8038. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8039. {
  8040. sql += " and F_CreateTime>='" + strstarttime + "' ";
  8041. }
  8042. if (strendtime.Trim() != "" && strendtime != "undefined")
  8043. {
  8044. sql += " and F_CreateTime<='" + strendtime + "' ";
  8045. }
  8046. if (User.F_RoleCode == "WLDW")
  8047. {
  8048. 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 ";
  8049. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8050. }
  8051. else
  8052. {
  8053. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  8054. }
  8055. if (strpageindex.Trim() != "")
  8056. {
  8057. pageindex = Convert.ToInt32(strpageindex);
  8058. }
  8059. if (strpagesize.Trim() != "")
  8060. {
  8061. pagesize = Convert.ToInt32(strpagesize);
  8062. }
  8063. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  8064. 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";
  8065. if (isdc > 0)
  8066. {
  8067. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  8068. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  8069. if (msg == "")
  8070. {
  8071. return Success("导出成功");
  8072. }
  8073. else
  8074. {
  8075. return Error("导出失败");
  8076. }
  8077. }
  8078. int recordCount = 0;
  8079. dt = BLL.PagerBLL.GetListPager(
  8080. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  8081. "F_Id",
  8082. cols,
  8083. sql,
  8084. "ORDER BY F_CreateTime DESC",
  8085. pagesize,
  8086. pageindex,
  8087. true,
  8088. out recordCount);
  8089. #region 声音文件
  8090. dt.Columns.Add("DeptName", typeof(string));//交办单位
  8091. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  8092. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  8093. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  8094. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  8095. dt.Columns.Add("IsReturnNotice", typeof(string));
  8096. dt.Columns.Add("FilePath", typeof(string));
  8097. dt.Columns.Add("Buttons", typeof(object));
  8098. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8099. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8100. int IsReturnNotice = 0;
  8101. 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")
  8102. {
  8103. IsReturnNotice = 1;
  8104. }
  8105. foreach (DataRow dr in dt.Rows)
  8106. {
  8107. //获取最新交办信息
  8108. //string iszbdw = "0";
  8109. int state = Int32.Parse(dr["F_WorkState"].ToString());
  8110. if (state > 1)
  8111. {
  8112. 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";
  8113. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8114. if (dtjb.Rows.Count > 0)
  8115. {
  8116. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  8117. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  8118. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  8119. {
  8120. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  8121. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  8122. }
  8123. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  8124. }
  8125. else
  8126. {
  8127. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  8128. string mid = dr["F_MainDeptId"].ToString();
  8129. if (!string.IsNullOrEmpty(mid))
  8130. {
  8131. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  8132. }
  8133. }
  8134. }
  8135. //获取最新通报信息
  8136. 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";
  8137. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  8138. if (dttb.Rows.Count > 0)
  8139. {
  8140. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  8141. {
  8142. //dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  8143. dr["NoticeDeptName"] = departmentBLL.GetDeptNames(dttb.Rows[0]["F_DeptIds"].ToString());
  8144. }
  8145. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  8146. }
  8147. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  8148. {
  8149. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8150. }
  8151. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  8152. {
  8153. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8154. }
  8155. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  8156. btns.Add(ButtonGroup.query());
  8157. dr["Buttons"] = btns;
  8158. dr["IsReturnNotice"] = IsReturnNotice;
  8159. }
  8160. #endregion
  8161. var obj = new
  8162. {
  8163. state = "success",
  8164. message = "成功",
  8165. rows = dt,
  8166. total = recordCount
  8167. };
  8168. return Content(obj.ToJson());
  8169. }
  8170. /// <summary>
  8171. /// 督办列表
  8172. /// </summary>
  8173. /// <param name="isdc"></param>
  8174. /// <returns></returns>
  8175. //[Authority]
  8176. public ActionResult GetSupervList(int isdc = 0)
  8177. {
  8178. DataTable dt = new DataTable();
  8179. string sql = " and F_IsDelete=0";
  8180. #region 参数
  8181. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  8182. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  8183. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  8184. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  8185. int islike = RequestString.GetInt("islike", 1);
  8186. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  8187. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  8188. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  8189. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  8190. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  8191. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  8192. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  8193. int source = RequestString.GetInt("source", 0);
  8194. int keyid = RequestString.GetInt("keyid", 0);
  8195. int type = RequestString.GetInt("type", 0);
  8196. int bigtype = RequestString.GetInt("bigtype", 0);
  8197. int smalltype = RequestString.GetInt("smalltype", 0);
  8198. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8199. int deptid = RequestString.GetInt("deptid", 0);
  8200. int deptlevel = RequestString.GetInt("deptlevel", 0);
  8201. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  8202. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  8203. int pageindex = RequestString.GetInt("page", 1);
  8204. int pagesize = RequestString.GetInt("pagesize", 10);
  8205. int business = RequestString.GetInt("business", 0);
  8206. int Supervisor = RequestString.GetInt("Supervisor", 0);
  8207. string strSupervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("strSupervisor"));//
  8208. int isExamine = RequestString.GetInt("isExamine", 0);
  8209. int dbdeptid = RequestString.GetInt("dbdeptid", 0);
  8210. string result = HttpUtility.UrlDecode(RequestString.GetQueryString("result"));//办理结果
  8211. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  8212. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  8213. string dbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstarttime"));
  8214. string dbstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstrendtime"));
  8215. string comtitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  8216. string comContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  8217. int isRelease = RequestString.GetInt("isRelease", 0);
  8218. int IsReturn = RequestString.GetInt("IsReturn", -1);
  8219. if (strstate == "0")
  8220. {
  8221. if (IsReturn == 1)
  8222. {
  8223. sql += " and F_IsReturn=1";
  8224. }
  8225. else
  8226. {
  8227. sql += " and (F_IsReturn is null or F_IsReturn !=1)";
  8228. }
  8229. }
  8230. if (keyid != 0)
  8231. {
  8232. sql += "and a.F_Key in(select F_ValueId from dbo.GetValueId(" + keyid + ")) ";
  8233. }
  8234. if (comtitle.Trim() != "" && comtitle != "undefined")
  8235. {
  8236. sql += " and F_ComTitle like '%" + comtitle + "%' ";
  8237. }
  8238. if (comContent.Trim() != "" && comContent != "undefined")
  8239. {
  8240. sql += " and (F_ComContent like '%" + comContent + "%' " +
  8241. "or F_Content like '%" + comContent + "%' )";
  8242. }
  8243. if (isRelease > 0)
  8244. {
  8245. sql += "and F_IsRelease='" + isRelease + "'";
  8246. }
  8247. if (ejdeptid > 0)
  8248. {
  8249. sql += "and F_MainDeptID3 like'%" + ejdeptid + "%'";
  8250. }
  8251. int isbusiness = RequestString.GetInt("isbusiness", -1);
  8252. if (isbusiness > -1)
  8253. {
  8254. if (isbusiness == 0)
  8255. {
  8256. sql += " and (F_IsBusiness =0 or F_IsBusiness is null) ";
  8257. }
  8258. else
  8259. {
  8260. sql += " and F_IsBusiness='1' ";
  8261. }
  8262. }
  8263. if (result.Trim() != "" && result != "undefined")
  8264. {
  8265. sql += " and F_Result like'%" + result + "%' ";
  8266. }
  8267. string Remind = "";
  8268. if (strusercode.Trim() != "" && strusercode != "undefined")
  8269. {
  8270. Remind += " and F_CreateUser ='" + strusercode + "' ";
  8271. }
  8272. if (dbdeptid > 0)
  8273. {
  8274. sql += " and F_WorkOrderId in(select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId in (select F_DeptId from GetDeptId ('" + dbdeptid + "')) )";
  8275. }
  8276. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  8277. {
  8278. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  8279. {
  8280. sql += " and F_DealTime between '" + dealstarttime +
  8281. "' AND '" + dealstrendtime + "'";
  8282. }
  8283. else
  8284. {
  8285. sql += " and F_DealTime>='" + dealstarttime + "' ";
  8286. }
  8287. }
  8288. else
  8289. {
  8290. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  8291. {
  8292. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  8293. }
  8294. }
  8295. int iscb = RequestString.GetInt("iscb", -1);
  8296. if (strSupervisor.Trim() != "" && strSupervisor != "undefined")
  8297. {
  8298. Remind += " and Supervisor ='" + strSupervisor + "' ";
  8299. }
  8300. //if (User.F_RoleCode == "DBZY")
  8301. //{
  8302. // if (Supervisor == 1)
  8303. // {
  8304. // if (strtab == "0")
  8305. // Remind += "and Supervisor='" + User.F_UserCode + "'";
  8306. // else
  8307. // Remind += "and (Supervisor ='' or Supervisor is null " +
  8308. // "or Supervisor='" + User.F_UserCode + "' )";
  8309. // }
  8310. // else if (Supervisor == 2)
  8311. // {
  8312. // Remind += "and (Supervisor ='' or Supervisor is null )";
  8313. // }
  8314. //}
  8315. //else
  8316. //{
  8317. // if (Supervisor == 1)
  8318. // {
  8319. // if (strtab == "0")
  8320. // Remind += "and Supervisor !='' and Supervisor is not null";
  8321. // }
  8322. // else if (Supervisor == 2)
  8323. // {
  8324. // Remind += "and (Supervisor ='' or Supervisor is null )";
  8325. // }
  8326. //}
  8327. if (dbstarttime.Trim() != "" && dbstarttime != "undefined")
  8328. {
  8329. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  8330. {
  8331. Remind += " and F_CreateTime between '" + dbstarttime +
  8332. "' AND '" + dbstrendtime + "'";
  8333. }
  8334. else
  8335. {
  8336. Remind += " and F_CreateTime>='" + dbstarttime + "' ";
  8337. }
  8338. }
  8339. else
  8340. {
  8341. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  8342. {
  8343. Remind += " and F_CreateTime<='" + dbstrendtime + "' ";
  8344. }
  8345. }
  8346. if (isExamine == 1)
  8347. {
  8348. Remind += "and F_IsExamine='1'";
  8349. }
  8350. else if (isExamine == 2)
  8351. {
  8352. Remind += "and (F_IsExamine !='1' or F_IsExamine is null) ";
  8353. }
  8354. #endregion
  8355. #region 筛选
  8356. //存在有督办记录的工单
  8357. var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0" + Remind;
  8358. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  8359. switch (strtab)
  8360. {
  8361. case "0"://督办-待办
  8362. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  8363. sql += "and F_WorkState !='9'";
  8364. break;
  8365. case "1"://督办-办理中
  8366. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState " +
  8367. "not in (6,9)";
  8368. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  8369. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  8370. if (strstate.Trim() != "" && strstate != "undefined")
  8371. {
  8372. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  8373. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  8374. else
  8375. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8376. }
  8377. if (iscb > -1)
  8378. {
  8379. if (iscb == 0)
  8380. {
  8381. sql += " and F_WorkState != '8' ";
  8382. }
  8383. else
  8384. {
  8385. sql += " and F_WorkState = '8' ";
  8386. }
  8387. }
  8388. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  8389. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  8390. {
  8391. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  8392. }
  8393. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  8394. {
  8395. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  8396. }
  8397. sql += ")";
  8398. if (User.F_RoleCode == "WLDW")
  8399. {
  8400. 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) )";
  8401. }
  8402. break;
  8403. case "2"://督办-超期未完结
  8404. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState IN (2,4,8) and F_LimitTime<getdate() ";
  8405. if (strstate.Trim() != "" && strstate != "undefined")
  8406. {
  8407. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  8408. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  8409. else
  8410. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8411. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8412. }
  8413. break;
  8414. case "3"://督办-已退回
  8415. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  8416. break;
  8417. case "4"://督办-已完结的工单
  8418. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State !=2 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  8419. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  8420. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  8421. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  8422. {
  8423. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  8424. }
  8425. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  8426. {
  8427. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  8428. }
  8429. break;
  8430. default:
  8431. sql += " and F_WorkOrderID in(" + sqlsup + " )";
  8432. break;
  8433. case "6"://督办-待审核回复
  8434. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_IsDelete=0 ";
  8435. if (isExamine == 1)
  8436. sql += "and F_WorkState =7";
  8437. else
  8438. sql += "and F_WorkState =6";
  8439. break;
  8440. case "7"://督办综合查询
  8441. sql += " and F_WorkOrderID in(" + sqlsup + " ) " + " and F_IsDelete=0 ";
  8442. break;
  8443. }
  8444. //int jianhang = RequestString.GetInt("jianhang", 0);
  8445. //int phoneType = RequestString.GetInt("phoneType", 0);
  8446. //if (jianhang > 0)
  8447. //{
  8448. // if (jianhang == 3)
  8449. // sql += " and F_InfoSource = '2501' ";
  8450. // else
  8451. // sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  8452. //}
  8453. //else
  8454. //{
  8455. // sql += " and F_InfoSource = '1' ";
  8456. // if (phoneType == 1)
  8457. // sql += " and F_PhoneType != '12345' ";
  8458. // else if (phoneType == 2)
  8459. // sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  8460. // "or F_PhoneType is null ) ";
  8461. //}
  8462. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  8463. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  8464. {
  8465. sql += " and F_PhoneType = '" + incomingcall + "' ";
  8466. }
  8467. if (strworkid.Trim() != "" && strworkid != "undefined")
  8468. {
  8469. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  8470. }
  8471. if (strname.Trim() != "" && strname != "undefined")
  8472. {
  8473. sql += " and F_CusName like '%" + strname + "%' ";
  8474. }
  8475. if (islike > 0)
  8476. {
  8477. if (strtel.Trim() != "" && strtel != "undefined")
  8478. {
  8479. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  8480. }
  8481. }
  8482. else
  8483. {
  8484. if (strtel.Trim() != "" && strtel != "undefined")
  8485. {
  8486. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  8487. }
  8488. }
  8489. if (User.F_RoleCode == "WLDW")
  8490. {
  8491. deptid = User.F_DeptId;
  8492. }
  8493. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  8494. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  8495. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  8496. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  8497. {
  8498. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  8499. }
  8500. if (Result.Trim() != "" && Result != "undefined")
  8501. {
  8502. sql += " and F_Result like '%" + Result + "%' ";
  8503. }
  8504. if (ComContent.Trim() != "" && ComContent != "undefined")
  8505. {
  8506. sql += " and F_ComContent like '%" + ComContent + "%' ";
  8507. }
  8508. if (strkey.Trim() != "" && strkey != "undefined")
  8509. {
  8510. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  8511. " or F_Result like '%" + strkey + "%' ) ";
  8512. }
  8513. #region 坐席&调度员
  8514. if (strtab != "0")
  8515. {
  8516. if (strusercode.Trim() != "" && strusercode != "undefined")
  8517. {//坐席
  8518. var usercode = strusercode.Trim().Split(',');
  8519. var newusercode = "";
  8520. foreach (var item in usercode)
  8521. {
  8522. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8523. newusercode += "'" + item + "',";
  8524. }
  8525. newusercode = newusercode.Trim(',');
  8526. if (newusercode.Trim() != "" && newusercode != "undefined")
  8527. {
  8528. sql += " and F_CreateUser in (" + newusercode + ") ";
  8529. }
  8530. }
  8531. }
  8532. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  8533. {//调度员
  8534. var ddusercode = strddusercode.Trim().Split(',');
  8535. var newusercode = "";
  8536. foreach (var item in ddusercode)
  8537. {
  8538. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8539. newusercode += "'" + item + "',";
  8540. }
  8541. newusercode = newusercode.Trim(',');
  8542. if (newusercode.Trim() != "" && newusercode != "undefined")
  8543. {
  8544. sql += " and F_AssignUser in(" + newusercode + ") ";
  8545. }
  8546. }
  8547. #endregion
  8548. if (source != 0)
  8549. {
  8550. sql += " and F_InfoSource = '" + source + "' ";
  8551. }
  8552. string sqlwheres = ""; string value = "";
  8553. if (keyid != 0)
  8554. {
  8555. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  8556. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  8557. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  8558. // " or F_Key='" + keyid + "' )";
  8559. }
  8560. if (type != 0)
  8561. {
  8562. sql += " and F_InfoType = '" + type + "' ";
  8563. }
  8564. if (bigtype != 0)
  8565. {
  8566. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8567. }
  8568. if (smalltype != 0)
  8569. {
  8570. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8571. }
  8572. if (sourcearea != 0)
  8573. {
  8574. sql += " and F_SourceArea = '" + sourcearea + "' ";
  8575. }
  8576. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8577. {
  8578. sql += " and F_CreateTime>='" + strstarttime + "' ";
  8579. }
  8580. if (strendtime.Trim() != "" && strendtime != "undefined")
  8581. {
  8582. sql += " and F_CreateTime<='" + strendtime + "' ";
  8583. }
  8584. if (deptid != 0)
  8585. {
  8586. if (deptlevel == 0)
  8587. {
  8588. 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 ";
  8589. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8590. }
  8591. else
  8592. {
  8593. 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 ";
  8594. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8595. }
  8596. }
  8597. if (deptid != 0)
  8598. {
  8599. sql += " and (F_MainDeptId in (select F_DeptId from GetDeptId ('" + deptid + "')) or F_MainDeptID3 like'%" + deptid + "%')";
  8600. }
  8601. #endregion
  8602. #region 导出
  8603. 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 ,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName, F_InfoConSmallType";
  8604. if (isdc > 0)
  8605. {
  8606. var top = " "; var orderby = " order by F_CreateTime";
  8607. if (sql == " and F_IsDelete=0 ")
  8608. {
  8609. top = " top 1000 "; orderby += " desc ";
  8610. }
  8611. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,(case F_IsProtect when 0 then F_CusPhone else '' end ) 来电号码,dbo.GetDictionaryName(F_Key) 主题词,dbo.GetDictionaryName(F_InfoConSmallType) as 标签 , "
  8612. + " dbo.GetDeptNames((select top 1 F_MainDeptId from T_Bus_AssignedInfo where F_WorkOrderId=wo.F_WorkOrderId order by F_Id desc )) 主办单位, "
  8613. + " (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) 办理结果, "
  8614. + " (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" +
  8615. "and F_WorkOrderId=wo.F_WorkOrderId order by F_CreateTime desc ) as 退回原因 "
  8616. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  8617. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  8618. if (msg == "")
  8619. {
  8620. return Success("导出成功");
  8621. }
  8622. else
  8623. {
  8624. return Error("导出失败");
  8625. }
  8626. }
  8627. #endregion
  8628. int recordCount = 0;
  8629. dt = BLL.PagerBLL.GetListPager(
  8630. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  8631. "F_Id",
  8632. cols,
  8633. sql,
  8634. "ORDER BY F_CreateTime DESC",
  8635. pagesize,
  8636. pageindex,
  8637. true,
  8638. out recordCount);
  8639. #region 附加展示
  8640. dt.Columns.Add("DeptName", typeof(string));//交办单位
  8641. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  8642. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  8643. dt.Columns.Add("OverState", typeof(string));//超时状态
  8644. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  8645. dt.Columns.Add("GapTime", typeof(string));//时间差
  8646. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  8647. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  8648. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8649. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8650. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  8651. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  8652. foreach (DataRow dr in dt.Rows)
  8653. {
  8654. //获取最新交办信息
  8655. string iszbdw = "0";
  8656. int state = Int32.Parse(dr["F_WorkState"].ToString());
  8657. string ispd = "";
  8658. if (state > 1 && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DBGLY")
  8659. {
  8660. 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";
  8661. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8662. if (dtjb.Rows.Count > 0)
  8663. {
  8664. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  8665. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  8666. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  8667. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  8668. {
  8669. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  8670. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  8671. }
  8672. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  8673. #region
  8674. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  8675. {
  8676. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8677. dr["LimitTime"] = lt;
  8678. if (!string.IsNullOrWhiteSpace(lt))
  8679. {
  8680. var ltime = DateTime.Parse(lt);
  8681. if (ltime > DateTime.Now)
  8682. {
  8683. //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") + "'";
  8684. //var SYSJ = DbHelperSQL.GetSingle(SY);
  8685. //if (SYSJ != null && SYSJ.ToString() != "")
  8686. //{
  8687. // try
  8688. // {
  8689. // ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  8690. // }
  8691. // catch
  8692. // {
  8693. // }
  8694. //}
  8695. //int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + ltime.ToString("yyyy-MM-dd") + "'");
  8696. //ltime = ltime.AddDays(-days);
  8697. }
  8698. else
  8699. {
  8700. //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") + "'";
  8701. //var SYSJ = DbHelperSQL.GetSingle(SY);
  8702. //if (SYSJ != null && SYSJ.ToString() != "")
  8703. //{
  8704. // try
  8705. // {
  8706. // ltime = ltime.AddDays(int.Parse(SYSJ.ToString()));
  8707. // }
  8708. // catch
  8709. // {
  8710. // }
  8711. //}
  8712. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + DateTime.Now.ToString("yyyy-MM-dd") + "'");
  8713. ltime = ltime.AddDays(days);
  8714. }
  8715. TimeSpan ts = ltime.Subtract(DateTime.Now);
  8716. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8717. if (tss < 0) { tss = -tss; }
  8718. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8719. if (ltime > DateTime.Now)
  8720. {
  8721. if (configcs != null)
  8722. {
  8723. int cs = Int32.Parse(configcs.F_ParamValue);
  8724. if (ts.TotalHours > cs)
  8725. {
  8726. dr["OverState"] = 1;
  8727. }
  8728. else
  8729. {
  8730. dr["OverState"] = 2;
  8731. }
  8732. }
  8733. dr["GapTime"] = "剩余" + gshsj;
  8734. }
  8735. else
  8736. {
  8737. dr["OverState"] = 3;
  8738. dr["GapTime"] = "超时" + gshsj;
  8739. }
  8740. }
  8741. }
  8742. if (state == (int)EnumWorkState.finish)
  8743. {
  8744. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  8745. var dttime = DateTime.Now;
  8746. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  8747. else
  8748. {
  8749. var DealTime = dr["F_CloseTime"].ToString();
  8750. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  8751. }
  8752. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8753. dr["LimitTime"] = lt;
  8754. if (!string.IsNullOrWhiteSpace(lt))
  8755. {
  8756. var ltime = DateTime.Parse(lt);
  8757. if (ltime < dttime)
  8758. {
  8759. int days = dayBLL.GetDays("F_OffState =0 AND F_OffDate > '" + ltime.ToString("yyyy-MM-dd") + "' AND F_OffDate<='" + dttime.ToString("yyyy-MM-dd") + "'");
  8760. ltime = ltime.AddDays(days);
  8761. TimeSpan ts = dttime.Subtract(ltime);
  8762. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8763. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8764. dr["OverState"] = 3;
  8765. dr["GapTime"] = "超时" + gshsj;
  8766. }
  8767. }
  8768. }
  8769. #endregion
  8770. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  8771. }
  8772. else
  8773. {
  8774. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  8775. string mid = dr["F_MainDeptId"].ToString();
  8776. if (!string.IsNullOrEmpty(mid))
  8777. {
  8778. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  8779. }
  8780. }
  8781. }
  8782. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  8783. {
  8784. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8785. }
  8786. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  8787. {
  8788. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8789. }
  8790. #region 按钮
  8791. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  8792. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  8793. btns.Clear();
  8794. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  8795. {
  8796. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  8797. #region 判断是否存在待督办
  8798. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  8799. if (butt != null)
  8800. btns.Remove(butt);
  8801. var delay = btns.Find(c => c.key == ButtonGroup.delay().key);
  8802. if (delay != null)
  8803. btns.Remove(delay);
  8804. #endregion
  8805. }
  8806. else
  8807. {
  8808. switch (strtab)
  8809. {
  8810. case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  8811. btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  8812. btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  8813. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "DBGLY")
  8814. btns.Add(ButtonGroup.forceend());
  8815. break;
  8816. case "1"://督办-办理中 操作为:查看工单、短信催办
  8817. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY")
  8818. {
  8819. if (state == 3)
  8820. {
  8821. btns.Add(ButtonGroup.auditreback());
  8822. }
  8823. else
  8824. {
  8825. btns.Add(ButtonGroup.takeback());
  8826. btns.Add(ButtonGroup.forceend());
  8827. }
  8828. }
  8829. break;
  8830. case "2"://督办-超期未完结 操作为:查看工单、短信催办
  8831. //if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY")
  8832. // btns.Add(ButtonGroup.forceend());
  8833. break;
  8834. case "3"://督办-已退回:查看
  8835. break;
  8836. case "4"://督办-已完结:查看
  8837. break;
  8838. case "6"://督办-办理中 操作为:查看工单、短信催办
  8839. if (isExamine != 1)
  8840. {
  8841. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  8842. {
  8843. btns.Add(ButtonGroup.Approved());
  8844. btns.Add(ButtonGroup.Auditreject());
  8845. }
  8846. }
  8847. else
  8848. {
  8849. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  8850. {
  8851. btns.Add(ButtonGroup.forceend());
  8852. }
  8853. }
  8854. break;
  8855. }
  8856. btns.Add(ButtonGroup.query());
  8857. }
  8858. dr["Buttons"] = btns;
  8859. #endregion
  8860. }
  8861. #endregion
  8862. var obj = new
  8863. {
  8864. state = "success",
  8865. message = "成功",
  8866. rows = dt,
  8867. total = recordCount
  8868. };
  8869. return Content(obj.ToJson());
  8870. }
  8871. public ActionResult GetNoticeListOLD(int isdc = 0)
  8872. {
  8873. DataTable dt = new DataTable();
  8874. string sql = " and F_IsDelete=0 ";
  8875. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  8876. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  8877. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  8878. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  8879. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  8880. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  8881. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  8882. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  8883. int source = RequestString.GetInt("source", 0);
  8884. int keyid = RequestString.GetInt("keyid", 0);
  8885. int type = RequestString.GetInt("type", 0);
  8886. int bigtype = RequestString.GetInt("bigtype", 0);
  8887. int smalltype = RequestString.GetInt("smalltype", 0);
  8888. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8889. int deptid = RequestString.GetInt("deptid", 0);
  8890. string strpageindex = RequestString.GetQueryString("page");
  8891. int pageindex = 1;
  8892. string strpagesize = RequestString.GetQueryString("pagesize");
  8893. int pagesize = 10;
  8894. if (strworkid.Trim() != "" && strworkid != "undefined")
  8895. {
  8896. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  8897. }
  8898. if (strname.Trim() != "" && strname != "undefined")
  8899. {
  8900. sql += " and F_CusName like '%" + strname + "%' ";
  8901. }
  8902. if (strtel.Trim() != "" && strtel != "undefined")
  8903. {
  8904. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  8905. }
  8906. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  8907. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  8908. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  8909. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  8910. {
  8911. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  8912. }
  8913. if (Result.Trim() != "" && Result != "undefined")
  8914. {
  8915. sql += " and F_Result like '%" + Result + "%' ";
  8916. }
  8917. if (ComContent.Trim() != "" && ComContent != "undefined")
  8918. {
  8919. sql += " and F_ComContent like '%" + ComContent + "%' ";
  8920. }
  8921. if (strkey.Trim() != "" && strkey != "undefined")
  8922. {
  8923. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  8924. " or F_Result like '%" + strkey + "%' ) ";
  8925. }
  8926. #region 坐席&调度员
  8927. if (strusercode.Trim() != "" && strusercode != "undefined")
  8928. {//坐席
  8929. var usercode = strusercode.Trim().Split(',');
  8930. var newusercode = "";
  8931. foreach (var item in usercode)
  8932. {
  8933. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8934. newusercode += "'" + item + "',";
  8935. }
  8936. newusercode = newusercode.Trim(',');
  8937. if (newusercode.Trim() != "" && newusercode != "undefined")
  8938. {
  8939. sql += " and F_CreateUser in (" + newusercode + ") ";
  8940. }
  8941. }
  8942. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  8943. {//调度员
  8944. var ddusercode = strddusercode.Trim().Split(',');
  8945. var newusercode = "";
  8946. foreach (var item in ddusercode)
  8947. {
  8948. if (!string.IsNullOrWhiteSpace(item.Trim()))
  8949. newusercode += "'" + item + "',";
  8950. }
  8951. newusercode = newusercode.Trim(',');
  8952. if (newusercode.Trim() != "" && newusercode != "undefined")
  8953. {
  8954. sql += " and F_AssignUser in(" + newusercode + ") ";
  8955. }
  8956. }
  8957. //if (strusercode.Trim() != "" && strusercode != "undefined")
  8958. //{
  8959. // sql += " and F_CreateUser = '" + strusercode + "' ";
  8960. //}
  8961. #endregion
  8962. if (source != 0)
  8963. {
  8964. sql += " and F_InfoSource = '" + source + "' ";
  8965. }
  8966. string sqlwheres = "";
  8967. if (keyid != 0)
  8968. {
  8969. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  8970. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  8971. // " or F_Key='" + keyid + "' )";
  8972. }
  8973. if (type != 0)
  8974. {
  8975. sql += " and F_InfoType = '" + type + "' ";
  8976. }
  8977. if (bigtype != 0)
  8978. {
  8979. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8980. }
  8981. if (smalltype != 0)
  8982. {
  8983. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8984. }
  8985. if (sourcearea != 0)
  8986. {
  8987. sql += " and F_SourceArea = '" + sourcearea + "' ";
  8988. }
  8989. if (deptid != 0)
  8990. {
  8991. 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 ";
  8992. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8993. }
  8994. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8995. {
  8996. sql += " and F_CreateTime>='" + strstarttime + "' ";
  8997. }
  8998. if (strendtime.Trim() != "" && strendtime != "undefined")
  8999. {
  9000. sql += " and F_CreateTime<='" + strendtime + "' ";
  9001. }
  9002. if (User.F_RoleCode == "WLDW")
  9003. {
  9004. 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 ";
  9005. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  9006. }
  9007. else
  9008. {
  9009. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  9010. }
  9011. if (strpageindex.Trim() != "")
  9012. {
  9013. pageindex = Convert.ToInt32(strpageindex);
  9014. }
  9015. if (strpagesize.Trim() != "")
  9016. {
  9017. pagesize = Convert.ToInt32(strpagesize);
  9018. }
  9019. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  9020. 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";
  9021. if (isdc > 0)
  9022. {
  9023. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  9024. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  9025. if (msg == "")
  9026. {
  9027. return Success("导出成功");
  9028. }
  9029. else
  9030. {
  9031. return Error("导出失败");
  9032. }
  9033. }
  9034. int recordCount = 0;
  9035. dt = BLL.PagerBLL.GetListPager(
  9036. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  9037. "F_Id",
  9038. cols,
  9039. sql,
  9040. "ORDER BY F_CreateTime DESC",
  9041. pagesize,
  9042. pageindex,
  9043. true,
  9044. out recordCount);
  9045. #region 声音文件
  9046. dt.Columns.Add("DeptName", typeof(string));//交办单位
  9047. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  9048. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  9049. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  9050. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  9051. dt.Columns.Add("IsReturnNotice", typeof(string));
  9052. dt.Columns.Add("FilePath", typeof(string));
  9053. dt.Columns.Add("Buttons", typeof(object));
  9054. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  9055. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  9056. int IsReturnNotice = 0;
  9057. 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")
  9058. {
  9059. IsReturnNotice = 1;
  9060. }
  9061. foreach (DataRow dr in dt.Rows)
  9062. {
  9063. //获取最新交办信息
  9064. //string iszbdw = "0";
  9065. int state = Int32.Parse(dr["F_WorkState"].ToString());
  9066. if (state > 1)
  9067. {
  9068. 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";
  9069. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  9070. if (dtjb.Rows.Count > 0)
  9071. {
  9072. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  9073. dr["DeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_MainDeptId"].ToString());
  9074. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  9075. {
  9076. //dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  9077. dr["OtherDeptName"] = departmentBLL.GetDeptNames(dtjb.Rows[0]["F_OtherDeptIds"].ToString());
  9078. }
  9079. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  9080. }
  9081. else
  9082. {
  9083. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  9084. string mid = dr["F_MainDeptId"].ToString();
  9085. if (!string.IsNullOrEmpty(mid))
  9086. {
  9087. dr["DeptName"] = departmentBLL.GetDeptNames(mid);
  9088. }
  9089. }
  9090. }
  9091. //获取最新通报信息
  9092. 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";
  9093. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  9094. if (dttb.Rows.Count > 0)
  9095. {
  9096. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  9097. {
  9098. //dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  9099. dr["NoticeDeptName"] = departmentBLL.GetDeptNames(dttb.Rows[0]["F_DeptIds"].ToString());
  9100. }
  9101. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  9102. }
  9103. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  9104. {
  9105. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9106. }
  9107. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  9108. {
  9109. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9110. }
  9111. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  9112. btns.Add(ButtonGroup.query());
  9113. dr["Buttons"] = btns;
  9114. dr["IsReturnNotice"] = IsReturnNotice;
  9115. }
  9116. #endregion
  9117. var obj = new
  9118. {
  9119. state = "success",
  9120. message = "成功",
  9121. rows = dt,
  9122. total = recordCount
  9123. };
  9124. return Content(obj.ToJson());
  9125. }
  9126. public ActionResult GetWorkorderSimp()
  9127. {
  9128. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9129. if (!string.IsNullOrEmpty(strworkorderid))
  9130. {
  9131. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_ComContent,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  9132. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  9133. var dt = DbHelperSQL.Query(sql).Tables[0];
  9134. if (dt.Rows.Count > 0)
  9135. {
  9136. return Success("成功", dt);
  9137. }
  9138. return Error("获取失败");
  9139. }
  9140. return Error("参数错误");
  9141. }
  9142. /// <summary>
  9143. /// 获取工单信息
  9144. /// </summary>
  9145. /// <returns></returns>
  9146. //[Authority]
  9147. public ActionResult GetWorkOrder()
  9148. {
  9149. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9150. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  9151. if (!string.IsNullOrEmpty(strworkorderid))
  9152. {
  9153. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  9154. + "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)"
  9155. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  9156. var dt = DbHelperSQL.Query(sql).Tables[0];
  9157. if (dt.Rows.Count > 0)
  9158. {
  9159. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  9160. {
  9161. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  9162. if (isp == "1")
  9163. {
  9164. dt.Rows[0]["F_CusName"] = "";
  9165. dt.Rows[0]["F_CusPhone"] = "";
  9166. dt.Rows[0]["F_ConPhone"] = "";
  9167. }
  9168. }
  9169. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  9170. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  9171. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9172. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  9173. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  9174. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  9175. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9176. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  9177. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9178. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9179. + "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";
  9180. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9181. + "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";
  9182. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9183. + "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";
  9184. 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 "
  9185. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9186. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  9187. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9188. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  9189. + "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";
  9190. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9191. + "from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9192. // string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  9193. // + "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";
  9194. //string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  9195. // + "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";
  9196. string blsql = "", ejblsql = "";
  9197. if (User.F_RoleCode == "WLDW")
  9198. {
  9199. 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";
  9200. 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";
  9201. }
  9202. else if (User.F_RoleCode == "EJWLDW")
  9203. {
  9204. 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";
  9205. 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";
  9206. }
  9207. else
  9208. {
  9209. 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";
  9210. 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";
  9211. }
  9212. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9213. + "from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  9214. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9215. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  9216. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  9217. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  9218. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  9219. #region 声音文件
  9220. dt.Columns.Add("FilePath", typeof(string));
  9221. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  9222. {
  9223. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9224. }
  9225. else if (dt.Rows[0]["F_CallRecordId"] != null)
  9226. {
  9227. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  9228. }
  9229. #endregion
  9230. #region 附件
  9231. if (configfj != null)
  9232. {
  9233. dt = BindFileData(dt, configfj.F_ParamValue);
  9234. dt = BindHandlingFileFileData(dt, configfj.F_ParamValue);
  9235. }
  9236. #endregion
  9237. #region 监察信息
  9238. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  9239. if (configfj != null)
  9240. {
  9241. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  9242. }
  9243. #endregion
  9244. #region 批示信息
  9245. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  9246. if (configfj != null)
  9247. {
  9248. psdt = BindFileData(psdt, configfj.F_ParamValue);
  9249. }
  9250. #endregion
  9251. #region 指示信息
  9252. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  9253. if (configfj != null)
  9254. {
  9255. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  9256. }
  9257. #endregion
  9258. #region 回退信息
  9259. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  9260. #endregion
  9261. #region 督办信息
  9262. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  9263. if (configfj != null)
  9264. {
  9265. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  9266. }
  9267. #endregion
  9268. #region 交办信息
  9269. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  9270. if (configfj != null)
  9271. {
  9272. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  9273. }
  9274. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  9275. if (configfj != null)
  9276. {
  9277. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  9278. }
  9279. #endregion
  9280. #region 退回信息
  9281. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  9282. #endregion
  9283. #region 延时信息
  9284. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  9285. if (configfj != null)
  9286. {
  9287. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  9288. }
  9289. #endregion
  9290. #region 办理情况
  9291. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  9292. if (configfj != null)
  9293. {
  9294. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  9295. }
  9296. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  9297. if (configfj != null)
  9298. {
  9299. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  9300. }
  9301. #endregion
  9302. #region 回访信息
  9303. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  9304. hfdt.Columns.Add("FilePath", typeof(string));
  9305. foreach (DataRow bldr in hfdt.Rows)
  9306. {
  9307. if (bldr["F_CallRecordId"] != null && config != null)
  9308. {
  9309. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9310. }
  9311. }
  9312. #endregion
  9313. #region 市民催单
  9314. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  9315. cbdt.Columns.Add("FilePath", typeof(string));
  9316. foreach (DataRow bldr in cbdt.Rows)
  9317. {
  9318. if (bldr["F_CallRecordId"] != null && config != null)
  9319. {
  9320. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9321. }
  9322. }
  9323. #endregion
  9324. #region 市民评议
  9325. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  9326. #endregion
  9327. #region 办理过程
  9328. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  9329. gcdt.Columns.Add("File", typeof(object));
  9330. gcdt.Columns.Add("FilePath", typeof(string));
  9331. if (configfj != null || configly != null || config != null)
  9332. {
  9333. foreach (DataRow bldr in gcdt.Rows)
  9334. {
  9335. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  9336. {
  9337. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  9338. }
  9339. if (bldr["F_LeaveRecordId"] != null && configly != null)
  9340. {
  9341. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9342. }
  9343. else if (bldr["F_CallRecordId"] != null && config != null)
  9344. {
  9345. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9346. }
  9347. }
  9348. }
  9349. #endregion
  9350. #region 操作按钮
  9351. var btns = new List<ButtonGroup.button>();
  9352. if (jbdt.Rows.Count > 0)
  9353. {
  9354. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  9355. string ispd = jbzx["F_IsNext"].ToString();
  9356. string iszbdw = "0";
  9357. string fmd = jbzx["F_MainDeptId"].ToString();
  9358. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  9359. if (fmd == User.F_DeptId.ToString())
  9360. { iszbdw = "1"; }
  9361. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  9362. {
  9363. iszbdw = "2";
  9364. }
  9365. if (User.F_RoleCode == "EJWLDW")
  9366. {
  9367. 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";
  9368. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  9369. if (dtjb.Rows.Count > 0)
  9370. {
  9371. ispd = (int.Parse(dtjb.Rows[0]["F_IsSure"].ToString()) + 1).ToString();
  9372. }
  9373. }
  9374. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  9375. {
  9376. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  9377. }
  9378. }
  9379. else
  9380. {
  9381. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  9382. }
  9383. #region 判断是否存在待督办
  9384. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  9385. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  9386. if (recount > 0)
  9387. {
  9388. if (butt != null)
  9389. btns.Remove(butt);
  9390. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9391. {
  9392. btns.Add(ButtonGroup.oversee());
  9393. btns.Add(ButtonGroup.turnnosee());
  9394. }
  9395. }
  9396. if (btns == null)
  9397. {
  9398. btns.Add(ButtonGroup.query());
  9399. }
  9400. else
  9401. {
  9402. if (btns.Count == 0)
  9403. btns.Add(ButtonGroup.query());
  9404. }
  9405. #endregion
  9406. #endregion
  9407. #region 其他权限
  9408. int issend = 0;
  9409. //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"))
  9410. //{
  9411. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  9412. // {
  9413. // issend = 1;
  9414. // }
  9415. //}
  9416. int isnotice = 0;
  9417. 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"))
  9418. {
  9419. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  9420. {
  9421. isnotice = 1;
  9422. }
  9423. }
  9424. int isedit = 0;
  9425. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  9426. //{
  9427. // isedit = 1;
  9428. //}
  9429. #endregion
  9430. var obj = new
  9431. {
  9432. data = dt,
  9433. jcdata = jcdt,
  9434. psdata = psdt,
  9435. zsdata = zsdt,
  9436. htdata = htdt,
  9437. dbdata = dbdt,
  9438. jbdata = jbdt,
  9439. ejjbdata = ejjbdt,
  9440. thdata = thdt,
  9441. ysdata = ysdt,
  9442. bldata = bldt,
  9443. ejbldata = ejbldt,
  9444. hfdata = hfdt,
  9445. cbdata = cbdt,
  9446. gcdata = gcdt,
  9447. issend = issend,
  9448. isedit = isedit,
  9449. isnotice = isnotice,
  9450. btndata = btns,
  9451. pydt
  9452. };
  9453. return Success("获取成功", obj);
  9454. }
  9455. else
  9456. {
  9457. return Error("获取失败");
  9458. }
  9459. }
  9460. else
  9461. {
  9462. return Error("参数传输失败");
  9463. }
  9464. }
  9465. /// <summary>
  9466. /// 导出word
  9467. /// </summary>
  9468. /// <returns></returns>
  9469. //[Authority]
  9470. public ActionResult ExportWorkOrder()
  9471. {
  9472. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9473. if (!string.IsNullOrEmpty(strworkorderid))
  9474. {
  9475. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  9476. + "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)"
  9477. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  9478. var dt = DbHelperSQL.Query(sql).Tables[0];
  9479. if (dt.Rows.Count > 0)
  9480. {
  9481. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  9482. {
  9483. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  9484. if (isp == "1")
  9485. {
  9486. dt.Rows[0]["F_CusName"] = "";
  9487. dt.Rows[0]["F_CusPhone"] = "";
  9488. dt.Rows[0]["F_ConPhone"] = "";
  9489. }
  9490. }
  9491. 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 "
  9492. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  9493. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  9494. //ExportWord np = new ExportWord();
  9495. //np.CreateWord(dt ,jbdt,User .F_UserCode );
  9496. //string url = dt.Rows[0]["F_WorkOrderId"].ToString();
  9497. //url = "http://192.168.8.9:1042//Upload/Word/工单" + url + ".doc";
  9498. //return Success(url);
  9499. var aw = new AsposeWord();
  9500. aw.OpenWithTemplate(Server.MapPath("/Upload/Word/热线工单模版.doc"));
  9501. aw.Builder();
  9502. aw.CreateAssignWord(dt, jbdt, User.F_UserCode);
  9503. var bt = aw.ExportAs();
  9504. Response.AppendHeader("Access-Control-Expose-Headers", "Content-Disposition");
  9505. return File(bt, "application/msword", "工单" + strworkorderid + ".doc");
  9506. }
  9507. else
  9508. {
  9509. return Error("获取失败");
  9510. }
  9511. }
  9512. else
  9513. {
  9514. return Error("参数传输失败");
  9515. }
  9516. }
  9517. /// <summary>
  9518. /// 获取工单信息
  9519. /// </summary>
  9520. /// <returns></returns>
  9521. //[Authority]
  9522. public ActionResult GetWorkOrderNew()
  9523. {
  9524. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9525. int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  9526. if (!string.IsNullOrEmpty(strworkorderid))
  9527. {
  9528. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  9529. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  9530. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9531. switch (type)
  9532. {
  9533. case 0:
  9534. #region 基本信息
  9535. 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 , (case F_ordersign when 2 then (select top 1 F_AllName from t_EventType where F_id=F_InfoConBigType) else '' end) " +
  9536. "as BigTypeName,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,dbo.GetDictionaryName(F_InfoConSmallType) as SmallTypeName " +
  9537. ",(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 + "'";
  9538. var dt = DbHelperSQL.Query(sql).Tables[0];
  9539. if (dt.Rows.Count > 0)
  9540. {
  9541. if (User.F_RoleCode == "WLDW" && dt.Rows[0]["F_MainDeptId"].ToString() != User.F_DeptId.ToString())
  9542. {
  9543. dt.Rows[0]["F_Result"] = "";
  9544. }
  9545. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  9546. {
  9547. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  9548. if (isp == "1")
  9549. {
  9550. dt.Rows[0]["F_CusPhone"] = "";
  9551. dt.Rows[0]["F_ConPhone"] = "";
  9552. }
  9553. }
  9554. if (dt.Rows[0]["F_See"] != null)
  9555. {
  9556. if (!dt.Rows[0]["F_See"].ToString().Contains("'" + User.F_DeptId + "'"))
  9557. {
  9558. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9559. keyValuePairs.Add("F_See", dt.Rows[0]["F_See"].ToString() + ",'" + User.F_DeptId + "'");
  9560. workorderBLL.UpdateWorkOrder(int.Parse(dt.Rows[0]["F_Id"].ToString()), keyValuePairs);
  9561. }
  9562. }
  9563. else
  9564. {
  9565. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9566. keyValuePairs.Add("F_See", "'" + User.F_DeptId + "'");
  9567. workorderBLL.UpdateWorkOrder(int.Parse(dt.Rows[0]["F_Id"].ToString()), keyValuePairs);
  9568. }
  9569. #region 声音文件
  9570. dt.Columns.Add("FilePath", typeof(string));
  9571. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  9572. {
  9573. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9574. }
  9575. else if (dt.Rows[0]["F_CallRecordId"] != null)
  9576. {
  9577. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  9578. }
  9579. if (dt.Rows[0]["F_InfoSource"].ToString() == "2580")
  9580. {
  9581. // dt.Columns.Add("TFDBACKTIME_BF", typeof(string));
  9582. dt.Columns.Add("SEND_CONTENT", typeof(string));
  9583. dt.Columns.Add("CASE_SERIAL", typeof(string));
  9584. string workorder = strworkorderid;
  9585. if (dt.Rows[0]["F_MainWorkorder1"] != null && dt.Rows[0]["F_MainWorkorder1"].ToString() != "")
  9586. {
  9587. workorder = dt.Rows[0]["F_MainWorkorder1"].ToString();
  9588. }
  9589. var TFDBACKTIME_BF = DbHelperSQL.Query("select CASE_SERIAL,SEND_CONTENT ," +
  9590. "TFDBACKTIME_BF from " +
  9591. "T_Sys_Affairs where F_WorkOrderId" +
  9592. "='" + workorder + "'").Tables[0];
  9593. if (TFDBACKTIME_BF != null && TFDBACKTIME_BF.Rows.Count > 0)
  9594. {
  9595. // dt.Rows[0]["TFDBACKTIME_BF"] = TFDBACKTIME_BF.Rows[0]["TFDBACKTIME_BF"].ToString();
  9596. dt.Rows[0]["SEND_CONTENT"] = TFDBACKTIME_BF.Rows[0]["SEND_CONTENT"].ToString();
  9597. dt.Rows[0]["CASE_SERIAL"] = TFDBACKTIME_BF.Rows[0]["CASE_SERIAL"].ToString();
  9598. }
  9599. }
  9600. #endregion
  9601. #region 附件
  9602. if (configfj != null)
  9603. {
  9604. dt = BindFileData(dt, configfj.F_ParamValue);
  9605. dt = BindHandlingFileFileData(dt, configfj.F_ParamValue);
  9606. }
  9607. #endregion
  9608. #region 操作按钮
  9609. var btns = new List<ButtonGroup.button>();
  9610. var btnpc= new List<ButtonGroup.button>();
  9611. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='"
  9612. + dt.Rows[0]["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  9613. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  9614. string ispd = "";
  9615. if (dtjb != null && dtjb.Rows.Count > 0)
  9616. {
  9617. var jbzx = dtjb.Rows[0];
  9618. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  9619. string iszbdw = "0";
  9620. string fmd = jbzx["F_MainDeptId"].ToString();
  9621. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  9622. if (fmd == User.F_DeptId.ToString())
  9623. { iszbdw = "1"; }
  9624. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  9625. {
  9626. iszbdw = "2";
  9627. }
  9628. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  9629. {
  9630. btnpc = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(),
  9631. dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd, 0, dt.Rows[0]["F_InfoSource"].ToString());
  9632. }
  9633. }
  9634. else
  9635. {
  9636. btnpc = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(),
  9637. User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0", "", 0, dt.Rows[0]["F_InfoSource"].ToString());
  9638. }
  9639. if (dt.Rows[0]["F_InfoSource"].ToString()=="2580"&& dt.Rows[0]["F_WorkState"].ToString()=="7")
  9640. {
  9641. var butt = btnpc.Find(c => c.key == ButtonGroup.forceend().key);
  9642. if (butt != null)
  9643. btnpc.Remove(butt);
  9644. }
  9645. if (User.F_RoleCode == "EJWLDW")
  9646. {
  9647. 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";
  9648. var dtejjb = DbHelperSQL.Query(sqlejjb).Tables[0];
  9649. if (dtejjb.Rows.Count > 0)
  9650. {
  9651. ispd = (int.Parse(dtejjb.Rows[0]["F_IsSure"].ToString()) + 1).ToString();
  9652. }
  9653. }
  9654. btns = ButtonGroup.GetAPPButtons
  9655. (dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsProResult"].ToString(),
  9656. dt.Rows[0]["F_InfoSource"].ToString(), ispd);
  9657. #endregion
  9658. #region 其他权限
  9659. int issend = 0;
  9660. //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"))
  9661. //{
  9662. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  9663. // {
  9664. // issend = 1;
  9665. // }
  9666. //}
  9667. int isnotice = 0;
  9668. 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"))
  9669. {
  9670. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  9671. {
  9672. isnotice = 1;
  9673. }
  9674. }
  9675. int isedit = 0;
  9676. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  9677. //{
  9678. // isedit = 1;
  9679. //}
  9680. #endregion
  9681. var obj = new
  9682. {
  9683. data = dt,
  9684. issend,
  9685. isedit,
  9686. isnotice,
  9687. btndata = btns,
  9688. btnpc
  9689. };
  9690. return Success("获取成功", obj);
  9691. }
  9692. else
  9693. {
  9694. return Error("获取失败");
  9695. }
  9696. #endregion
  9697. case 1:
  9698. #region 交办信息
  9699. 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";
  9700. 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";
  9701. 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";
  9702. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  9703. if (configfj != null)
  9704. {
  9705. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  9706. }
  9707. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  9708. if (configfj != null)
  9709. {
  9710. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  9711. }
  9712. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  9713. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  9714. {
  9715. BindFileData(thdt, configfj.F_ParamValue);
  9716. }
  9717. var obj1 = new
  9718. {
  9719. jbdata = jbdt,
  9720. ejjbdata = ejjbdt,
  9721. thdata = thdt
  9722. };
  9723. return Success("获取成功", obj1);
  9724. #endregion
  9725. case 2:
  9726. #region 指示信息
  9727. 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";
  9728. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  9729. if (configfj != null)
  9730. {
  9731. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  9732. }
  9733. return Success("获取成功", zsdt);
  9734. #endregion
  9735. case 3:
  9736. #region 回退信息
  9737. 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";
  9738. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  9739. return Success("获取成功", htdt);
  9740. #endregion
  9741. case 4:
  9742. #region 办理情况
  9743. string blsql = "", ejblsql = "";
  9744. if (User.F_RoleCode == "WLDW")
  9745. {
  9746. 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";
  9747. 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";
  9748. }
  9749. else if (User.F_RoleCode == "EJWLDW")
  9750. {
  9751. 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";
  9752. 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";
  9753. }
  9754. else
  9755. {
  9756. 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";
  9757. 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";
  9758. }
  9759. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  9760. if (bldt != null && bldt.Rows.Count > 0)
  9761. {
  9762. if (User.F_RoleCode == "WLDW" && bldt.Rows[0]["F_CreateDeptId"].ToString() != User.F_DeptId.ToString())
  9763. {
  9764. bldt.Rows[0]["F_Result"] = "";
  9765. }
  9766. }
  9767. if (configfj != null)
  9768. {
  9769. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  9770. }
  9771. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  9772. if (configfj != null)
  9773. {
  9774. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  9775. }
  9776. var obj5 = new
  9777. {
  9778. bldata = bldt,
  9779. ejbldata = ejbldt
  9780. };
  9781. return Success("获取成功", obj5);
  9782. #endregion
  9783. case 5:
  9784. #region 延时信息
  9785. 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";
  9786. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  9787. if (configfj != null)
  9788. {
  9789. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  9790. }
  9791. return Success("获取成功", ysdt);
  9792. #endregion
  9793. case 6:
  9794. #region 回访信息
  9795. 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 ";
  9796. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  9797. hfdt.Columns.Add("FilePath", typeof(string));
  9798. hfdt.Columns.Add("F_Phone", typeof(string));
  9799. foreach (DataRow bldr in hfdt.Rows)
  9800. {
  9801. if (bldr["F_File"] != null &&!string.IsNullOrEmpty(bldr["F_File"].ToString()) && config != null)
  9802. {
  9803. try
  9804. {
  9805. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_File"].ToString()));
  9806. if (luyin != null)
  9807. {
  9808. if (!string.IsNullOrEmpty(luyin.FilePath))
  9809. {
  9810. var ym = config.F_ParamValue;
  9811. ym = ym.Substring(0, ym.Length - 1);
  9812. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  9813. bldr["FilePath"] = ym + lujing;
  9814. }
  9815. bldr["F_Phone"] = luyin.CallNumber;
  9816. }
  9817. }
  9818. catch
  9819. {
  9820. }
  9821. }
  9822. else if (bldr["F_CallRecordId"] != null && config != null)
  9823. {
  9824. try
  9825. {
  9826. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_CallRecordId"].ToString()));
  9827. if (luyin != null)
  9828. {
  9829. if (!string.IsNullOrEmpty(luyin.FilePath))
  9830. {
  9831. var ym = config.F_ParamValue;
  9832. ym = ym.Substring(0, ym.Length - 1);
  9833. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  9834. bldr["FilePath"] = ym + lujing;
  9835. }
  9836. bldr["F_Phone"] = luyin.CallNumber;
  9837. }
  9838. }
  9839. catch
  9840. {
  9841. }
  9842. }
  9843. }
  9844. return Success("获取成功", hfdt);
  9845. #endregion
  9846. case 7:
  9847. #region 督办信息
  9848. 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";
  9849. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  9850. if (configfj != null)
  9851. {
  9852. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  9853. }
  9854. return Success("获取成功", dbdt);
  9855. #endregion
  9856. case 8:
  9857. #region 市民催单
  9858. 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";
  9859. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  9860. cbdt.Columns.Add("FilePath", typeof(string));
  9861. foreach (DataRow bldr in cbdt.Rows)
  9862. {
  9863. if (bldr["F_CallRecordId"] != null && config != null)
  9864. {
  9865. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9866. }
  9867. }
  9868. return Success("获取成功", cbdt);
  9869. #endregion
  9870. case 9:
  9871. #region 办理过程
  9872. 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 ";
  9873. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  9874. gcdt.Columns.Add("File", typeof(object));
  9875. gcdt.Columns.Add("FilePath", typeof(string));
  9876. if (configfj != null || configly != null || config != null)
  9877. {
  9878. foreach (DataRow bldr in gcdt.Rows)
  9879. {
  9880. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  9881. {
  9882. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  9883. }
  9884. if (bldr["F_LeaveRecordId"] != null && configly != null)
  9885. {
  9886. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  9887. }
  9888. else if (bldr["F_CallRecordId"] != null && config != null)
  9889. {
  9890. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  9891. }
  9892. }
  9893. }
  9894. return Success("获取成功", gcdt);
  9895. #endregion
  9896. case 10:
  9897. #region 市民评议
  9898. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  9899. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  9900. return Success("获取成功", pydt);
  9901. #endregion
  9902. case 11:
  9903. #region 监察信息
  9904. 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";
  9905. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  9906. if (configfj != null)
  9907. {
  9908. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  9909. }
  9910. return Success("获取成功", jcdt);
  9911. #endregion
  9912. case 12:
  9913. #region 批示信息
  9914. 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";
  9915. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  9916. if (configfj != null)
  9917. {
  9918. psdt = BindFileData(psdt, configfj.F_ParamValue);
  9919. }
  9920. return Success("获取成功", psdt);
  9921. #endregion
  9922. case 13:
  9923. #region 审核信息
  9924. 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";
  9925. var shdt = DbHelperSQL.Query(shsql).Tables[0];
  9926. return Success("获取成功", shdt);
  9927. #endregion
  9928. }
  9929. return Error("获取失败");
  9930. }
  9931. else
  9932. {
  9933. return Error("参数传输失败");
  9934. }
  9935. }
  9936. /// <summary>
  9937. /// 获取草稿信息
  9938. /// </summary>
  9939. /// <returns></returns>
  9940. //[Authority]
  9941. public ActionResult GetDraftInfo()
  9942. {
  9943. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9944. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  9945. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  9946. {
  9947. string sql = string.Empty;
  9948. switch (type)
  9949. {
  9950. case 1:
  9951. 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;
  9952. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  9953. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  9954. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  9955. }
  9956. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + User.F_UserCode + " order by F_CreateTime desc";
  9957. var dt = DbHelperSQL.Query(sql).Tables[0];
  9958. if (dt.Rows.Count > 0)
  9959. {
  9960. #region 附件
  9961. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9962. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  9963. {
  9964. BindFileData(dt, configfj.F_ParamValue);
  9965. }
  9966. #endregion
  9967. }
  9968. return Success("获取成功", dt);
  9969. }
  9970. else
  9971. {
  9972. return Error("参数传输失败");
  9973. }
  9974. }
  9975. /// <summary>
  9976. /// 获取审核信息
  9977. /// </summary>
  9978. /// <returns></returns>
  9979. //[Authority]
  9980. public ActionResult GetAuditInfo()
  9981. {
  9982. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  9983. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  9984. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  9985. {
  9986. string sql = string.Empty;
  9987. switch (type)
  9988. {
  9989. 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;
  9990. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  9991. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and "; break;
  9992. }
  9993. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  9994. var dt = DbHelperSQL.Query(sql).Tables[0];
  9995. if (dt.Rows.Count > 0)
  9996. {
  9997. #region 附件
  9998. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  9999. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  10000. {
  10001. BindFileData(dt, configfj.F_ParamValue);
  10002. }
  10003. #endregion
  10004. }
  10005. return Success("获取成功", dt);
  10006. }
  10007. else
  10008. {
  10009. return Error("参数传输失败");
  10010. }
  10011. }
  10012. /// <summary>
  10013. /// 获取所有交办单位
  10014. /// </summary>
  10015. /// <returns></returns>
  10016. //[Authority]
  10017. public ActionResult GetAllAssignDept()
  10018. {
  10019. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  10020. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  10021. if (modelT_Bus_WorkOrder != null)
  10022. {
  10023. string ids = string.Empty;
  10024. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  10025. foreach (var assign in Assigns)
  10026. {
  10027. if (string.IsNullOrEmpty(ids))
  10028. {
  10029. ids = assign.F_MainDeptId.Value.ToString();
  10030. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  10031. {
  10032. ids += "," + assign.F_OtherDeptIds;
  10033. }
  10034. }
  10035. else
  10036. {
  10037. ids += "," + assign.F_MainDeptId.Value.ToString();
  10038. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  10039. {
  10040. ids += "," + assign.F_OtherDeptIds;
  10041. }
  10042. }
  10043. }
  10044. if (string.IsNullOrEmpty(ids))
  10045. {
  10046. ids = "0";
  10047. }
  10048. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  10049. return Success("获取成功", dt);
  10050. }
  10051. else
  10052. {
  10053. return Error("操作失败");
  10054. }
  10055. }
  10056. /// <summary>
  10057. /// 获取二级单位处理信息
  10058. /// </summary>
  10059. /// <returns></returns>
  10060. //[Authority]
  10061. public ActionResult GetSecondDealInfo()
  10062. {
  10063. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  10064. if (!string.IsNullOrEmpty(strworkorderid))
  10065. {
  10066. //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, ";
  10067. //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, ";
  10068. //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, ";
  10069. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  10070. //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";
  10071. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  10072. //var dt = DbHelperSQL.Query(sql).Tables[0];
  10073. 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";
  10074. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  10075. if (User.F_RoleCode == "EJWLDW")
  10076. {
  10077. 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";
  10078. }
  10079. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  10080. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  10081. if (configfj != null)
  10082. {
  10083. bldt = BindFileData(bldt, configfj.F_ParamValue);
  10084. }
  10085. var obj = new
  10086. {
  10087. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  10088. fkinfo = bldt
  10089. };
  10090. return Success("获取成功", obj);
  10091. }
  10092. else
  10093. {
  10094. return Error("参数传输失败");
  10095. }
  10096. }
  10097. /// <summary>
  10098. /// 获取二级单位最新处理信息
  10099. /// </summary>
  10100. /// <returns></returns>
  10101. //[Authority]
  10102. public ActionResult GetNewSecondDealInfo()
  10103. {
  10104. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  10105. if (!string.IsNullOrEmpty(strworkorderid))
  10106. {
  10107. 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";
  10108. var bldt = DbHelperSQL.Query(sql).Tables[0];
  10109. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  10110. if (configfj != null)
  10111. {
  10112. bldt = BindFileData(bldt, configfj.F_ParamValue);
  10113. }
  10114. return Success("获取成功", bldt);
  10115. }
  10116. else
  10117. {
  10118. return Error("参数传输失败");
  10119. }
  10120. }
  10121. /// <summary>
  10122. /// 修改工单内容和处理结果
  10123. /// </summary>
  10124. /// <returns></returns>
  10125. //[Authority]
  10126. public ActionResult EditResult()
  10127. {
  10128. 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")
  10129. {
  10130. string workorderid = RequestString.GetFormString("workorderid");
  10131. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10132. string result = RequestString.GetFormString("result");
  10133. string content = RequestString.GetFormString("content");
  10134. string comContent = RequestString.GetFormString("comContent");
  10135. string additionalReply = RequestString.GetFormString("additionalReply");
  10136. if (modelT_Bus_WorkOrder != null)
  10137. {
  10138. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10139. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10140. if (!string.IsNullOrEmpty(content))
  10141. {
  10142. string message = "";
  10143. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Content))
  10144. message = modelT_Bus_WorkOrder.F_Content;
  10145. else
  10146. message = modelT_Bus_WorkOrder.F_ComContent;
  10147. if (content != message)
  10148. {
  10149. // modelT_Bus_WorkOrder.F_Content = content;
  10150. keyValuePairs.Add("F_Content", content);
  10151. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10152. oper.F_WorkOrderId = workorderid;
  10153. oper.F_AssignedId = 0;
  10154. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10155. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  10156. oper.F_CreateUser = User.F_UserCode;
  10157. oper.F_CreateTime = DateTime.Now;
  10158. oper.F_IsDelete = 0;
  10159. operBLL.Add(oper);
  10160. }
  10161. }
  10162. if (!string.IsNullOrEmpty(comContent))
  10163. {
  10164. string message = "";
  10165. message = modelT_Bus_WorkOrder.F_ComContent;
  10166. if (comContent != message)
  10167. {
  10168. // modelT_Bus_WorkOrder.F_Content = content;
  10169. keyValuePairs.Add("F_ComContent", comContent);
  10170. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10171. oper.F_WorkOrderId = workorderid;
  10172. oper.F_AssignedId = 0;
  10173. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10174. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  10175. oper.F_CreateUser = User.F_UserCode;
  10176. oper.F_CreateTime = DateTime.Now;
  10177. oper.F_IsDelete = 0;
  10178. operBLL.Add(oper);
  10179. }
  10180. }
  10181. if (!string.IsNullOrEmpty(additionalReply))
  10182. {
  10183. string message = "";
  10184. message = modelT_Bus_WorkOrder.F_AdditionalReply;
  10185. if (additionalReply != message)
  10186. {
  10187. // modelT_Bus_WorkOrder.F_Content = content;
  10188. keyValuePairs.Add("F_AdditionalReply", additionalReply);
  10189. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10190. oper.F_WorkOrderId = workorderid;
  10191. oper.F_AssignedId = 0;
  10192. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10193. oper.F_Message = userinfo + " 修改了追加回复内容,原内容:" + message;
  10194. oper.F_CreateUser = User.F_UserCode;
  10195. oper.F_CreateTime = DateTime.Now;
  10196. oper.F_IsDelete = 0;
  10197. operBLL.Add(oper);
  10198. }
  10199. }
  10200. if (!string.IsNullOrEmpty(result))
  10201. {
  10202. string message = "";
  10203. message = modelT_Bus_WorkOrder.F_Result;
  10204. if (result != message)
  10205. {
  10206. // modelT_Bus_WorkOrder.F_Result = result;
  10207. keyValuePairs.Add("F_Result", result);
  10208. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10209. oper.F_WorkOrderId = workorderid;
  10210. oper.F_AssignedId = 0;
  10211. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10212. oper.F_Message = userinfo + " 修改了办理结果,原结果:" + message;
  10213. oper.F_CreateUser = User.F_UserCode;
  10214. oper.F_CreateTime = DateTime.Now;
  10215. oper.F_IsDelete = 0;
  10216. operBLL.Add(oper);
  10217. }
  10218. }
  10219. if (keyValuePairs.Count > 0)
  10220. {
  10221. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10222. if (n)
  10223. return Success("操作成功");
  10224. else
  10225. return Error("修改失败");
  10226. }
  10227. else
  10228. {
  10229. return Success("操作成功");
  10230. }
  10231. }
  10232. else
  10233. {
  10234. return Error("操作失败");
  10235. }
  10236. }
  10237. else
  10238. {
  10239. return Error("权限不足");
  10240. }
  10241. }
  10242. /// <summary>
  10243. /// 修改下级单位处理内容
  10244. /// </summary>
  10245. /// <returns></returns>
  10246. //[Authority]
  10247. public ActionResult EditDealWorkOrder()
  10248. {
  10249. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10250. {
  10251. string workorderid = RequestString.GetFormString("workorderid");
  10252. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10253. string result = RequestString.GetFormString("result");
  10254. string flies = RequestString.GetFormString("flies");
  10255. int feedbackid = RequestString.GetInt("feedbackid", 0);
  10256. var modelT_Bus_Feedback_Nexts = new Model.T_Bus_Feedback_Next();
  10257. if (feedbackid > 0)
  10258. {
  10259. modelT_Bus_Feedback_Nexts = new BLL.T_Bus_Feedback_Next().GetModel(feedbackid);
  10260. }
  10261. else
  10262. {
  10263. var modelT_Bus_Feedback = new BLL.T_Bus_Feedback_Next()
  10264. .GetModelList("F_WorkOrderId='" + workorderid + "' and F_IsDelete = 0 order by F_CreateTime desc");
  10265. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.Count > 0)
  10266. {
  10267. modelT_Bus_Feedback_Nexts = modelT_Bus_Feedback[0];
  10268. }
  10269. }
  10270. if (modelT_Bus_WorkOrder != null)
  10271. {
  10272. string message = modelT_Bus_Feedback_Nexts.F_Result;
  10273. modelT_Bus_Feedback_Nexts.F_Result = result;//反馈内容
  10274. modelT_Bus_Feedback_Nexts.F_File = flies;
  10275. bool n = new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Nexts);
  10276. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10277. oper.F_WorkOrderId = workorderid;
  10278. oper.F_AssignedId = modelT_Bus_Feedback_Nexts.F_Id;
  10279. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10280. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10281. oper.F_Message = userinfo + " 修改了下级单位办理内容,原内容:" + message;
  10282. oper.F_CreateUser = User.F_UserCode;
  10283. oper.F_CreateTime = DateTime.Now;
  10284. oper.F_IsDelete = 0;
  10285. operBLL.Add(oper);
  10286. return Success("操作成功");
  10287. }
  10288. else
  10289. {
  10290. return Error("操作失败");
  10291. }
  10292. }
  10293. else
  10294. {
  10295. return Error("权限不足");
  10296. }
  10297. }
  10298. /// <summary>
  10299. /// 查看回访信息
  10300. /// </summary>
  10301. /// <returns></returns>
  10302. //[Authority]
  10303. public ActionResult GetVisitByInfo(int id)
  10304. {
  10305. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_VisitResult WITH(NOLOCK) " +
  10306. "where F_IsDelete=0 and F_Id ='" + id + "' order by F_CreateTime ";
  10307. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  10308. hfdt.Columns.Add("FilePath", typeof(string));
  10309. hfdt.Columns.Add("F_Phone", typeof(string));
  10310. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  10311. foreach (DataRow bldr in hfdt.Rows)
  10312. {
  10313. if (bldr["F_File"] != null && !string.IsNullOrEmpty(bldr["F_File"].ToString()) && config != null)
  10314. {
  10315. try
  10316. {
  10317. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_File"].ToString()));
  10318. if (luyin != null)
  10319. {
  10320. if (!string.IsNullOrEmpty(luyin.FilePath))
  10321. {
  10322. var ym = config.F_ParamValue;
  10323. ym = ym.Substring(0, ym.Length - 1);
  10324. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  10325. bldr["FilePath"] = ym + lujing;
  10326. }
  10327. bldr["F_Phone"] = luyin.CallNumber;
  10328. }
  10329. }
  10330. catch
  10331. {
  10332. }
  10333. }
  10334. else if (bldr["F_CallRecordId"] != null && config != null)
  10335. {
  10336. try
  10337. {
  10338. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_CallRecordId"].ToString()));
  10339. if (luyin != null)
  10340. {
  10341. if (!string.IsNullOrEmpty(luyin.FilePath))
  10342. {
  10343. var ym = config.F_ParamValue;
  10344. ym = ym.Substring(0, ym.Length - 1);
  10345. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  10346. bldr["FilePath"] = ym + lujing;
  10347. }
  10348. bldr["F_Phone"] = luyin.CallNumber;
  10349. }
  10350. }
  10351. catch
  10352. {
  10353. }
  10354. }
  10355. }
  10356. return Success("获取成功", hfdt);
  10357. }
  10358. /// <summary>
  10359. /// 查看回访信息
  10360. /// </summary>
  10361. /// <returns></returns>
  10362. //[Authority]
  10363. public ActionResult GetVisitInfo()
  10364. {
  10365. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  10366. if (!string.IsNullOrEmpty(strworkorderid))
  10367. {
  10368. 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";
  10369. 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";
  10370. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  10371. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  10372. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  10373. dtvisit.Columns.Add("FilePath", typeof(string));
  10374. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  10375. if (dtvisit.Rows.Count > 0)
  10376. {
  10377. foreach (DataRow bldr in dtvisit.Rows)
  10378. {
  10379. #region 是否可勾选
  10380. var IsShowCheck = 0;
  10381. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  10382. if (drass.Length > 0)
  10383. {
  10384. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  10385. if (ass > 0)
  10386. {
  10387. if (ass == User.F_DeptId)
  10388. IsShowCheck = 1;
  10389. }
  10390. }
  10391. bldr["IsShowCheck"] = IsShowCheck;
  10392. #endregion
  10393. #region 录音
  10394. if (bldr["F_CallRecordId"] != null && config != null)
  10395. {
  10396. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  10397. }
  10398. #endregion
  10399. }
  10400. }
  10401. return Success("获取成功", dtvisit);
  10402. }
  10403. else
  10404. {
  10405. return Error("参数传输失败");
  10406. }
  10407. }
  10408. #endregion
  10409. /// <summary>
  10410. /// 上传附件
  10411. /// </summary>
  10412. /// <returns></returns>
  10413. //[Authority]
  10414. public ActionResult UploadFile()
  10415. {
  10416. #region 单个上传 no use
  10417. //string path = string.Empty;
  10418. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  10419. //if (_upfile != null)
  10420. //{
  10421. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  10422. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  10423. // string name = string.Empty;
  10424. // FileUp fu = new FileUp();
  10425. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  10426. // if (model != null)
  10427. // {
  10428. // name = fu.Upload(_upfile, model.F_ParamValue);
  10429. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  10430. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  10431. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  10432. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  10433. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  10434. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  10435. // model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  10436. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  10437. // return Success("成功", model_T_Sys_Accessories);
  10438. // }
  10439. // else
  10440. // {
  10441. // return Error("上传失败");
  10442. // }
  10443. //}
  10444. //else
  10445. //{
  10446. // return Error("请选择要上传的文件");
  10447. //}
  10448. #endregion
  10449. #region 多个上传
  10450. HttpFileCollection files = RequestString.GetFiles();
  10451. if (files.Count > 0)
  10452. {
  10453. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  10454. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  10455. for (int i = 0; i < files.Count; i++)
  10456. {
  10457. HttpPostedFile file = files[i];
  10458. FileUp fu = new FileUp();
  10459. string fileExtension = Configs.GetValue("fileExtension");
  10460. if (!fileExtension.Contains((System.IO.Path.GetExtension(file.FileName).ToLower())))
  10461. {
  10462. return Error("附件格式不正确");
  10463. }
  10464. string name = fu.Upload(file, path);
  10465. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  10466. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  10467. model_T_Sys_Accessories.F_FileName = name;//附件名称
  10468. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  10469. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  10470. model_T_Sys_Accessories.F_Size = file.ContentLength;
  10471. model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  10472. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  10473. model_T_Sys_Accessories.F_FileId = id;
  10474. acs.Add(model_T_Sys_Accessories);
  10475. }
  10476. return Success("成功", acs);
  10477. }
  10478. else
  10479. {
  10480. return Error("请选择要上传的文件");
  10481. }
  10482. #endregion
  10483. }
  10484. /// <summary>
  10485. /// 添加工单信息
  10486. /// </summary>
  10487. /// <returns></returns>
  10488. //[Authority]
  10489. public ActionResult AddWorkOrder()
  10490. {
  10491. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  10492. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY"
  10493. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ"
  10494. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  10495. || User.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  10496. {
  10497. int source = RequestString.GetInt("source", 0);
  10498. string cusname = RequestString.GetFormString("cusname");
  10499. string cussex = RequestString.GetFormString("cussex");
  10500. string cusphone = RequestString.GetFormString("cusphone");
  10501. string cusaddress = RequestString.GetFormString("cusaddress");
  10502. string email = RequestString.GetFormString("email");
  10503. string zipcode = RequestString.GetFormString("zipcode");
  10504. string conname = RequestString.GetFormString("conname");
  10505. string conphone = RequestString.GetFormString("conphone");
  10506. string title = RequestString.GetFormString("title");
  10507. string content = RequestString.GetFormString("content");
  10508. string files = RequestString.GetFormString("files");
  10509. int sourcearea = RequestString.GetInt("sourcearea", 0);
  10510. string sourceaddress = RequestString.GetFormString("sourceaddress");
  10511. int isresult = RequestString.GetInt("isresult", 0);
  10512. string result = RequestString.GetFormString("result");
  10513. string keys = RequestString.GetFormString("keys");
  10514. string splituser = RequestString.GetFormString("splituser");
  10515. int type = RequestString.GetInt("type", 0);
  10516. int bigtype = RequestString.GetInt("bigtype", 0);
  10517. int smalltype = RequestString.GetInt("smalltype", 0);
  10518. int isprotect = RequestString.GetInt("isprotect", 0);
  10519. int level = RequestString.GetInt("level", 0);
  10520. int issubmit = RequestString.GetInt("issubmit", 0);
  10521. string callid = RequestString.GetFormString("callid");
  10522. string CallRecordsId = RequestString.GetFormString("CallRecordsId");
  10523. string longitude = RequestString.GetFormString("longitude");//经度
  10524. string latitude = RequestString.GetFormString("latitude");//纬度
  10525. int business = RequestString.GetInt("business", 0); ;//
  10526. int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
  10527. int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
  10528. int LeaveRecordId = RequestString.GetInt("LeaveRecordId", 0);
  10529. int township = RequestString.GetInt("township", 0);
  10530. int village = RequestString.GetInt("village", 0);
  10531. string file = RequestString.GetFormString("file");
  10532. int smsid = RequestString.GetInt("smsid", 0);
  10533. int deptid = 0;
  10534. var modeldept = new Model.T_Sys_Department();
  10535. var premodeldept = new Model.T_Sys_Department();
  10536. var isAutoSendOrder = Configs.GetValue("IsAutoSendOrder");
  10537. if (string.IsNullOrEmpty(keys))
  10538. {
  10539. return Error("请选择反映类别");
  10540. }
  10541. if(type ==0)
  10542. return Error("请选择来电类型");
  10543. if (isAutoSendOrder == "1")
  10544. {
  10545. if (!string.IsNullOrEmpty(keys))
  10546. {
  10547. try
  10548. {
  10549. var model = new BLL.T_Sys_DictionaryValue().GetModel
  10550. (int.Parse(keys));
  10551. if (model != null && model.F_Deptid != 0 && model.F_Deptid != null)
  10552. {
  10553. deptid = (int)model.F_Deptid;
  10554. modeldept = new BLL.T_Sys_Department().GetModel(deptid);
  10555. if (modeldept != null && modeldept.F_DeptId != 0)
  10556. {
  10557. if (modeldept.F_IsDept == 2)
  10558. {
  10559. if (modeldept.F_PartentId > 0)
  10560. {
  10561. premodeldept = department((int)modeldept.F_PartentId);
  10562. }
  10563. }
  10564. else
  10565. {
  10566. premodeldept = modeldept;
  10567. }
  10568. }
  10569. }
  10570. }
  10571. catch
  10572. {
  10573. }
  10574. }
  10575. }
  10576. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  10577. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10578. {
  10579. #region 保存工单信息
  10580. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  10581. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  10582. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  10583. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10584. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10585. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10586. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10587. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10588. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10589. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10590. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10591. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10592. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10593. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10594. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10595. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10596. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10597. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10598. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10599. modelT_Bus_WorkOrder.F_File = files;//附件
  10600. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10601. modelT_Bus_WorkOrder.F_Key = keys;
  10602. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  10603. modelT_Bus_WorkOrder.F_Level = level;
  10604. modelT_Bus_WorkOrder.F_VisitType = visittype;
  10605. modelT_Bus_WorkOrder.F_Township = township;
  10606. modelT_Bus_WorkOrder.F_Village = village;
  10607. if (LeaveRecordId > 0)
  10608. {
  10609. var ld = new BLL.T_Call_LeaveRecord().GetModel(LeaveRecordId);
  10610. if (ld != null)
  10611. {
  10612. ld.F_Status = 1;
  10613. ld.F_DealTime = DateTime.Now;
  10614. ld.F_UserId = User.F_UserId;
  10615. ld.F_UserCode = User.F_UserCode;
  10616. ld.F_UserName = User.F_UserName;
  10617. new BLL.T_Call_LeaveRecord().Update(ld);
  10618. modelT_Bus_WorkOrder.F_LeaveRecordId = LeaveRecordId;
  10619. }
  10620. }
  10621. Task.Run(() =>
  10622. {
  10623. if (smsid > 0)
  10624. {
  10625. var sms = new BLL.T_SMS_RecvSMS().GetModel(smsid);
  10626. if (sms != null)
  10627. {
  10628. sms.F_Name = modelT_Bus_WorkOrder.F_WorkOrderId;
  10629. new BLL.T_SMS_RecvSMS().Update(sms);
  10630. }
  10631. }
  10632. });
  10633. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  10634. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  10635. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  10636. //是否直办(即时答复)0:,否1: 是
  10637. modelT_Bus_WorkOrder.F_IsResult = isresult;
  10638. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  10639. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  10640. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  10641. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  10642. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  10643. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  10644. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  10645. modelT_Bus_WorkOrder.F_ToBereply = 0;
  10646. //如果选择即刻答复:是,即为直办,工单结束
  10647. if (isresult == 1)
  10648. {
  10649. if (string.IsNullOrEmpty(result))
  10650. return Error("请输入办结内容");
  10651. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  10652. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  10653. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  10654. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10655. modelT_Bus_WorkOrder.F_IsClosed = 1;
  10656. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10657. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  10658. if (!string.IsNullOrEmpty(file))
  10659. {
  10660. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  10661. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10662. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  10663. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10664. #region 20200114新增字段 zhengbingbing
  10665. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10666. DateTime contime = DateTime.Now;
  10667. modelT_Bus_Feedback.F_IsProResult = 1;
  10668. #endregion
  10669. modelT_Bus_Feedback.F_File = file;
  10670. modelT_Bus_Feedback.F_IsAudit = 0;
  10671. modelT_Bus_Feedback.F_IsDelete = 0;
  10672. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  10673. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10674. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  10675. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10676. modelT_Bus_Feedback.F_State = 1;
  10677. modelT_Bus_Feedback.F_Type = 1;
  10678. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10679. }
  10680. }
  10681. else if (issubmit == 1)
  10682. {
  10683. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10684. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//
  10685. }
  10686. #region
  10687. #endregion
  10688. if (!string.IsNullOrEmpty(CallRecordsId))
  10689. {
  10690. var rd = new BLL.T_Call_CallRecords().GetModelByRecordId(CallRecordsId);
  10691. if (rd != null)
  10692. {
  10693. modelT_Bus_WorkOrder.F_CallId = rd.CallId;
  10694. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10695. rd.IsExitWorkOrder = true;
  10696. new BLL.T_Call_CallRecords().Update(rd);
  10697. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  10698. }
  10699. }
  10700. else if (!string.IsNullOrEmpty(callid))
  10701. {
  10702. modelT_Bus_WorkOrder.F_CallId = callid;
  10703. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  10704. if (rd != null)
  10705. {
  10706. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10707. rd.IsExitWorkOrder = true;
  10708. new BLL.T_Call_CallRecords().Update(rd);
  10709. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  10710. }
  10711. }
  10712. modelT_Bus_WorkOrder.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder);
  10713. #endregion
  10714. trans.Complete();
  10715. }
  10716. string errorurl = Configs.GetValue("PushErrorOrder");
  10717. if (modelT_Bus_WorkOrder.F_Id <= 0)
  10718. return Error("添加失败");
  10719. else
  10720. {
  10721. //添加工单时 推送数据给mysql数据库
  10722. string inputlist = "2813,2814,2817,4375,4376,4377";
  10723. List<string> keylist = new List<string>(inputlist.Split(','));
  10724. if (!modelT_Bus_WorkOrder.F_ComTitle.Contains("重复") && keylist.Contains(modelT_Bus_WorkOrder.F_Key))
  10725. {
  10726. Task.Run( () =>
  10727. {
  10728. try
  10729. {
  10730. string strlevel = "";
  10731. if (modelT_Bus_WorkOrder.F_Level!=null )
  10732. {
  10733. if (modelT_Bus_WorkOrder.F_Level == 1)
  10734. {
  10735. strlevel = "一般";
  10736. }
  10737. else {
  10738. strlevel = "紧急";
  10739. }
  10740. }
  10741. string strsjlx = "";
  10742. var sjlx = DbHelperSQL.GetSingle($"select dbo.GetDictionaryName('{modelT_Bus_WorkOrder.F_Key}' ) ");
  10743. if (sjlx!=null)
  10744. {
  10745. strsjlx = sjlx.ToString();
  10746. }
  10747. string strsjly = "";
  10748. var sjly = DbHelperSQL.GetSingle($"select dbo .GetDictionaryName('{modelT_Bus_WorkOrder.F_InfoSource}' ) ");
  10749. if (sjly != null)
  10750. {
  10751. strsjly = sjly.ToString();
  10752. }
  10753. string strsex = "";
  10754. if (modelT_Bus_WorkOrder.F_CusSex!=null)
  10755. {
  10756. if (modelT_Bus_WorkOrder.F_CusSex=="1")
  10757. {
  10758. strsex = "女";
  10759. }
  10760. else
  10761. {
  10762. strsex = "男";
  10763. }
  10764. }
  10765. string strsjdd = "";
  10766. var sjdd= DbHelperSQL.GetSingle($"select dbo.GetAreaName('{modelT_Bus_WorkOrder.F_SourceArea}') + isnull( dbo.GetAreaChildrenCode('{modelT_Bus_WorkOrder.F_Township}'),'') + ISNULL( dbo.GetAreaChildrenCode('{modelT_Bus_WorkOrder.F_Village}') ,'')");
  10767. if (sjdd != null)
  10768. {
  10769. strsjdd = sjdd.ToString();
  10770. }
  10771. Guid guid = Guid.NewGuid();
  10772. string insertsql = $"insert into BM_hbszwf_rxyzf_001(RowGuid,sjmc,fssj,fsdd,sjjb,sjlx,sjly,dsrxm,dsrdh,dsrxb,dsrjzxz,sjjs,sjbh) values('{guid}','{modelT_Bus_WorkOrder.F_ComTitle}','{modelT_Bus_WorkOrder.F_CreateTime}','{strsjdd}','{strlevel}','{strsjlx}','{strsjly}','{modelT_Bus_WorkOrder.F_CusName}','{modelT_Bus_WorkOrder.F_CusPhone}','{strsex}','{modelT_Bus_WorkOrder.F_SourceAddress}','{modelT_Bus_WorkOrder.F_ComContent}','{modelT_Bus_WorkOrder.F_WorkOrderId}')";
  10773. Dictionary<string, object> dic = new Dictionary<string, object>();
  10774. dic.Add("sql", insertsql);
  10775. try
  10776. {
  10777. var res = Post(errorurl, dic);
  10778. if (Convert.ToInt32(res) > 0)
  10779. {
  10780. }
  10781. else
  10782. {
  10783. // 存到一个待推送的表里
  10784. string addsql = $"insert into t_PushError(F_WorkOrderCode,F_PushCount,F_UpdateTime,F_Success) values('{modelT_Bus_WorkOrder.F_WorkOrderId}',1,getdate(),0)";
  10785. DbHelperSQL.ExecuteSql(addsql);
  10786. }
  10787. }
  10788. catch (Exception e)
  10789. {
  10790. FileLog.Warn("写mysql数据异常" + e.ToString());
  10791. // 存到一个待推送的表里
  10792. string addsql = $"insert into t_PushError(F_WorkOrderCode,F_PushCount,F_UpdateTime,F_Success) values('{modelT_Bus_WorkOrder.F_WorkOrderId}',1,getdate(),0)";
  10793. DbHelperSQL.ExecuteSql(addsql);
  10794. }
  10795. }
  10796. catch (Exception e)
  10797. {
  10798. FileLog.Warn("写mysql数据异常"+e.ToString());
  10799. // 存到一个待推送的表里
  10800. string addsql = $"insert into t_PushError(F_WorkOrderCode,F_PushCount,F_UpdateTime,F_Success) values('{modelT_Bus_WorkOrder.F_WorkOrderId}',1,getdate(),0)";
  10801. DbHelperSQL.ExecuteSql(addsql);
  10802. }
  10803. }) ;
  10804. }
  10805. Task.Run(() =>
  10806. {
  10807. string case_message= pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_info");
  10808. if (case_message == "")
  10809. { //服务工单材料
  10810. if (!string.IsNullOrEmpty(files))
  10811. {
  10812. pushmaterial_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_WorkOrder.F_Id, "10");
  10813. }
  10814. //电话服务记录
  10815. if (!string.IsNullOrEmpty(callid))
  10816. {
  10817. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_record");
  10818. }
  10819. }
  10820. }).ContinueWith(p =>
  10821. {
  10822. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10823. });
  10824. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10825. string message = "";
  10826. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10827. {
  10828. message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10829. }
  10830. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10831. {
  10832. message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10833. }
  10834. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  10835. {
  10836. message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  10837. Task.Run(() =>
  10838. {
  10839. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  10840. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  10841. {
  10842. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  10843. }
  10844. }).ContinueWith(p =>
  10845. {
  10846. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10847. });
  10848. try
  10849. {
  10850. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  10851. {
  10852. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  10853. }
  10854. }
  10855. catch (Exception ex)
  10856. {
  10857. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  10858. }
  10859. }
  10860. var curuser = User;
  10861. Task.Run(() =>
  10862. {
  10863. #region 插入操作记录
  10864. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10865. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10866. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10867. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  10868. oper.F_File = modelT_Bus_WorkOrder.F_File;
  10869. oper.F_Message = message;
  10870. oper.F_CreateUser = curuser.F_UserCode;
  10871. oper.F_CreateTime = DateTime.Now;
  10872. oper.F_IsDelete = 0;
  10873. operBLL.Add(oper);
  10874. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.finish)
  10875. {
  10876. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  10877. string msg = "";
  10878. // bool n = SMSController.AddSmS(0, msg, count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  10879. string phone = modelT_Bus_WorkOrder.F_CusPhone;
  10880. if (phone.Length > 11)
  10881. phone = phone.Substring(1, 11);
  10882. // string n = SmsNewController.AddSmS(0, count, phone, "681240256766803968", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  10883. }
  10884. #endregion
  10885. }).ContinueWith(p =>
  10886. {
  10887. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10888. });
  10889. Task.Run(() =>
  10890. {
  10891. saveCus(cusname, cusphone, cusaddress);
  10892. });
  10893. if (isAutoSendOrder == "1" && premodeldept.F_DeptId != 0 && premodeldept.F_DeptId != null)
  10894. {
  10895. Task.Run(async () =>
  10896. {
  10897. #region 自动派单
  10898. //时限
  10899. string resdatetime = GetLimittime(7);
  10900. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10901. // DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  10902. // "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];
  10903. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10904. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  10905. // var datatime = DateTime.Now.AddDays(7);
  10906. // if (Convert.ToDateTime(resdatetime) > datatime)
  10907. // {
  10908. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  10909. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10910. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  10911. // " with(nolock) where F_OffState = 1 and " +
  10912. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  10913. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  10914. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  10915. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  10916. // {
  10917. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  10918. // }
  10919. // //var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  10920. // //if (datetime.DayOfWeek == DayOfWeek.Saturday || datetime.DayOfWeek == DayOfWeek.Sunday)
  10921. // //{
  10922. // // resdatetime = datetime.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss");
  10923. // //}
  10924. // //else
  10925. // //{
  10926. // // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  10927. // //}
  10928. // // 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"); ;
  10929. // }
  10930. //交办信息
  10931. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10932. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10933. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10934. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;
  10935. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  10936. modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
  10937. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  10938. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10939. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10940. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10941. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10942. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10943. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10944. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10945. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10946. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  10947. //工单信息
  10948. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10949. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  10950. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  10951. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  10952. //modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  10953. keyValuePairs.Add("F_OtherDeptIds", "");
  10954. // modelT_Bus_WorkOrder.F_OtherDeptIds = ""
  10955. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  10956. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  10957. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10958. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10959. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10960. var msgss = userinfo + " 交办了工单,主办单位:" + premodeldept.F_DeptName;
  10961. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10962. if (modeldept.F_IsDept == 2)
  10963. {
  10964. SplitOrderNew(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单", curuser);
  10965. }
  10966. else
  10967. {
  10968. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  10969. keyValuePairs1.Add("F_WorkState", 2);
  10970. modelT_Bus_WorkOrder.F_WorkState = 2;
  10971. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  10972. await Task.Run(() =>
  10973. {
  10974. //addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10975. });
  10976. }
  10977. await Task.Run(() => {
  10978. //推送消息表
  10979. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  10980. foreach (var u in users)
  10981. {
  10982. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10983. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  10984. {
  10985. continue;
  10986. }
  10987. else
  10988. {
  10989. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10990. // string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
  10991. // bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
  10992. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10993. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  10994. // modelT_Bus_WorkOrder.F_WorkOrderId);
  10995. }
  10996. }
  10997. });
  10998. #endregion
  10999. }).ContinueWith(p => {
  11000. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11001. });
  11002. }
  11003. }
  11004. return Success("操作成功");
  11005. }
  11006. else
  11007. {
  11008. return Error("权限不足");
  11009. }
  11010. }
  11011. private string GetLimittime(int limit)
  11012. {
  11013. string resdatetime = "";
  11014. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  11015. DataTable dt = DbHelperSQL.Query("select top " + limit + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  11016. "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];
  11017. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  11018. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  11019. var datatime = DateTime.Now.AddDays(limit);
  11020. if (Convert.ToDateTime(resdatetime) > datatime)
  11021. {
  11022. if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday || DateTime.Now.DayOfWeek == DayOfWeek.Sunday)
  11023. {
  11024. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  11025. //DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  11026. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  11027. // " with(nolock) where F_OffState = 1 and " +
  11028. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  11029. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  11030. resdatetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  11031. "08:00:00").ToString("yyyy-MM-dd HH:mm:ss");
  11032. }
  11033. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  11034. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  11035. // {
  11036. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  11037. // }
  11038. //var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  11039. //if (datetime.DayOfWeek == DayOfWeek.Saturday || datetime.DayOfWeek == DayOfWeek.Sunday)
  11040. //{
  11041. // resdatetime = datetime.AddDays(2).ToString("yyyy-MM-dd HH:mm:ss");
  11042. //}
  11043. //else
  11044. //{
  11045. // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  11046. //}
  11047. // 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"); ;
  11048. }
  11049. return resdatetime;
  11050. }
  11051. /// <summary>
  11052. /// 添加工单信息
  11053. /// </summary>
  11054. /// <returns></returns>
  11055. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  11056. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  11057. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  11058. {
  11059. string workorderid = string.Empty;
  11060. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11061. {
  11062. #region 保存工单信息
  11063. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  11064. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  11065. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  11066. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea
  11067. , creattime, endtime);
  11068. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  11069. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  11070. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  11071. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  11072. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  11073. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  11074. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  11075. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  11076. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  11077. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  11078. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  11079. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  11080. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  11081. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  11082. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  11083. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  11084. modelT_Bus_WorkOrder.F_File = files;//附件
  11085. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  11086. modelT_Bus_WorkOrder.F_Key = keys;
  11087. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  11088. modelT_Bus_WorkOrder.F_Level = level;
  11089. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  11090. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  11091. //modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  11092. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  11093. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  11094. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  11095. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  11096. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  11097. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  11098. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  11099. workorderBLL.Add(modelT_Bus_WorkOrder);
  11100. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  11101. #endregion
  11102. #region 插入操作记录
  11103. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11104. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11105. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11106. string userinfo = "";
  11107. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  11108. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  11109. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  11110. {
  11111. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  11112. }
  11113. //oper.F_CreateUser = User.F_UserCode;
  11114. oper.F_CreateTime = DateTime.Now;
  11115. oper.F_IsDelete = 0;
  11116. operBLL.Add(oper);
  11117. #endregion
  11118. trans.Complete();
  11119. }
  11120. return workorderid;
  11121. }
  11122. /// <summary>
  11123. /// 添加工单信息留言
  11124. /// </summary>
  11125. /// <returns></returns>
  11126. //[Authority]
  11127. public ActionResult AddWorkOrderByLY()
  11128. {
  11129. 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")
  11130. {
  11131. int source = RequestString.GetInt("source", 0);
  11132. string cusname = RequestString.GetFormString("cusname");
  11133. string cussex = RequestString.GetFormString("cussex");
  11134. string cusphone = RequestString.GetFormString("cusphone");
  11135. string cusaddress = RequestString.GetFormString("cusaddress");
  11136. string email = RequestString.GetFormString("email");
  11137. string zipcode = RequestString.GetFormString("zipcode");
  11138. string conname = RequestString.GetFormString("conname");
  11139. string conphone = RequestString.GetFormString("conphone");
  11140. string title = RequestString.GetFormString("title");
  11141. string content = RequestString.GetFormString("content");
  11142. string files = RequestString.GetFormString("files");
  11143. int sourcearea = RequestString.GetInt("sourcearea", 0);
  11144. string sourceaddress = RequestString.GetFormString("sourceaddress");
  11145. int isresult = RequestString.GetInt("isresult", 0);
  11146. string result = RequestString.GetFormString("result");
  11147. string keys = RequestString.GetFormString("keys");
  11148. string splituser = RequestString.GetFormString("splituser");
  11149. int type = RequestString.GetInt("type", 0);
  11150. int bigtype = RequestString.GetInt("bigtype", 0);
  11151. int smalltype = RequestString.GetInt("smalltype", 0);
  11152. int isprotect = RequestString.GetInt("isprotect", 0);
  11153. int level = RequestString.GetInt("level", 0);
  11154. int issubmit = RequestString.GetInt("issubmit", 0);
  11155. int lyid = RequestString.GetInt("lyid", 0);
  11156. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11157. {
  11158. #region 保存工单信息
  11159. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  11160. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  11161. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  11162. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  11163. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  11164. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  11165. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  11166. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  11167. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  11168. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  11169. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  11170. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  11171. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  11172. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  11173. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  11174. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  11175. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  11176. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  11177. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  11178. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  11179. modelT_Bus_WorkOrder.F_File = files;//附件
  11180. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  11181. modelT_Bus_WorkOrder.F_Key = keys;
  11182. modelT_Bus_WorkOrder.F_Level = level;
  11183. //是否直办(即时答复)0:,否1: 是
  11184. modelT_Bus_WorkOrder.F_IsResult = isresult;
  11185. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  11186. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  11187. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  11188. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  11189. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  11190. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  11191. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  11192. //如果选择即刻答复:是,即为直办,工单结束
  11193. if (isresult == 1)
  11194. {
  11195. if (string.IsNullOrEmpty(result))
  11196. return Error("请输入办结内容");
  11197. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  11198. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11199. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11200. modelT_Bus_WorkOrder.F_IsClosed = 1;
  11201. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  11202. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  11203. }
  11204. else if (issubmit == 1)
  11205. {
  11206. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11207. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  11208. }
  11209. #region
  11210. //20190715去掉审核环节
  11211. //else
  11212. //{
  11213. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  11214. //}
  11215. //else if (issubmit == 1)
  11216. //{
  11217. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11218. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  11219. //}
  11220. #endregion
  11221. if (lyid != 0)
  11222. {
  11223. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  11224. if (rd != null)
  11225. {
  11226. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  11227. }
  11228. }
  11229. workorderBLL.Add(modelT_Bus_WorkOrder);
  11230. #endregion
  11231. #region 插入操作记录
  11232. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11233. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11234. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11235. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  11236. oper.F_File = modelT_Bus_WorkOrder.F_File;
  11237. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11238. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  11239. {
  11240. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  11241. }
  11242. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11243. {
  11244. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  11245. }
  11246. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11247. {
  11248. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  11249. }
  11250. oper.F_CreateUser = User.F_UserCode;
  11251. oper.F_CreateTime = DateTime.Now;
  11252. oper.F_IsDelete = 0;
  11253. operBLL.Add(oper);
  11254. ////推送消息表
  11255. //if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  11256. //{
  11257. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11258. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  11259. // foreach (var u in users)
  11260. // {
  11261. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11262. // }
  11263. //}
  11264. #endregion
  11265. trans.Complete();
  11266. }
  11267. return Success("操作成功");
  11268. }
  11269. else
  11270. {
  11271. return Error("权限不足");
  11272. }
  11273. }
  11274. /// <summary>
  11275. /// 添加工单信息
  11276. /// </summary>
  11277. /// <returns></returns>
  11278. //[Authority]
  11279. public ActionResult AddWorkOrderByAPP()
  11280. {
  11281. int source = RequestString.GetInt("source", 6);
  11282. string cusname = RequestString.GetFormString("cusname");
  11283. string cussex = RequestString.GetFormString("cussex");
  11284. string cusphone = RequestString.GetFormString("cusphone");
  11285. string cusaddress = RequestString.GetFormString("cusaddress");
  11286. string email = RequestString.GetFormString("email");
  11287. string zipcode = RequestString.GetFormString("zipcode");
  11288. string conname = RequestString.GetFormString("conname");
  11289. string conphone = RequestString.GetFormString("conphone");
  11290. string title = RequestString.GetFormString("title");
  11291. string content = RequestString.GetFormString("content");
  11292. string files = RequestString.GetFormString("files");
  11293. int sourcearea = RequestString.GetInt("sourcearea", 0);
  11294. string sourceaddress = RequestString.GetFormString("sourceaddress");
  11295. int isresult = RequestString.GetInt("isresult", 0);
  11296. string result = RequestString.GetFormString("result");
  11297. string keys = RequestString.GetFormString("keys");
  11298. string splituser = RequestString.GetFormString("splituser");
  11299. int type = RequestString.GetInt("type", 0);
  11300. int bigtype = RequestString.GetInt("bigtype", 0);
  11301. int smalltype = RequestString.GetInt("smalltype", 0);
  11302. int isprotect = RequestString.GetInt("isprotect", 0);
  11303. int level = RequestString.GetInt("level", 0);
  11304. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  11305. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  11306. if (!string.IsNullOrEmpty(workorderid))
  11307. {
  11308. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11309. {
  11310. #region 保存用户工单信息
  11311. var model = new BLL.T_Sys_Users().GetModel(User.F_UserCode);
  11312. if (model == null)
  11313. {
  11314. model = new Model.T_Sys_Users();
  11315. model.F_OpenId = User.F_UserCode;
  11316. model.F_Type = (int)EnumUserType.app;//3;
  11317. model.F_CreateTime = DateTime.Now;
  11318. model.F_Id = new BLL.T_Sys_Users().Add(model);
  11319. }
  11320. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  11321. tbu.F_UserId = model.F_Id;
  11322. tbu.F_WorkOrderId = workorderid;
  11323. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  11324. #endregion
  11325. trans.Complete();
  11326. }
  11327. return Success("操作成功");
  11328. }
  11329. else
  11330. {
  11331. return Error("操作失败");
  11332. }
  11333. }
  11334. /// <summary>
  11335. /// 修改工单信息
  11336. /// </summary>
  11337. /// <returns></returns>
  11338. //[Authority]
  11339. public ActionResult EditWorkOrder(List<maindeptcontent> contsents)
  11340. {
  11341. 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"
  11342. )
  11343. {
  11344. string workorderid = RequestString.GetFormString("workorderid");
  11345. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11346. int source = RequestString.GetInt("source", 0);
  11347. string cusname = RequestString.GetFormString("cusname");
  11348. string cussex = RequestString.GetFormString("cussex");
  11349. string cusphone = RequestString.GetFormString("cusphone");
  11350. string cusaddress = RequestString.GetFormString("cusaddress");
  11351. string email = RequestString.GetFormString("email");
  11352. string zipcode = RequestString.GetFormString("zipcode");
  11353. string conname = RequestString.GetFormString("conname");
  11354. string conphone = RequestString.GetFormString("conphone");
  11355. int state = RequestString.GetInt("state", 0);
  11356. string title = RequestString.GetFormString("title");
  11357. string content = RequestString.GetFormString("content");
  11358. string files = RequestString.GetFormString("files");
  11359. int sourcearea = RequestString.GetInt("sourcearea", 0);
  11360. string sourceaddress = RequestString.GetFormString("sourceaddress");
  11361. int isresult = RequestString.GetInt("isresult", 0);
  11362. string result = RequestString.GetFormString("result");
  11363. string keys = RequestString.GetFormString("keys");
  11364. string splituser = RequestString.GetFormString("splituser");
  11365. int type = RequestString.GetInt("type", 0);
  11366. int bigtype = RequestString.GetInt("bigtype", 0);
  11367. int smalltype = RequestString.GetInt("smalltype", 0);
  11368. int isprotect = RequestString.GetInt("isprotect", 0);
  11369. int level = RequestString.GetInt("level", 0);
  11370. int issubmit = RequestString.GetInt("issubmit", 0);
  11371. int isopen = RequestString.GetInt("isopen", 0);
  11372. int business = RequestString.GetInt("business", 0);
  11373. int township = RequestString.GetInt("township", 0);
  11374. int village = RequestString.GetInt("village", 0);
  11375. string file = RequestString.GetFormString("file");
  11376. string workcontent = RequestString.GetFormString("workcontent");
  11377. string maindeptids = RequestString.GetFormString("maindeptids");
  11378. int limittimes = RequestString.GetInt("limittimes", 0);
  11379. if (type == 0)
  11380. return Error("请选择来电类型");
  11381. //领导批示
  11382. string superOpinion = RequestString.GetFormString("superOpinion");
  11383. lock (_MyLock)
  11384. {
  11385. #region 保存工单信息
  11386. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11387. keyValuePairs.Add("F_InfoSource", source);
  11388. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  11389. keyValuePairs.Add("F_Township", township);
  11390. //modelT_Bus_WorkOrder.F_Township = township;
  11391. keyValuePairs.Add("F_Village", village);
  11392. //modelT_Bus_WorkOrder.F_Village = village;
  11393. keyValuePairs.Add("F_InfoType", type);
  11394. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  11395. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  11396. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  11397. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  11398. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  11399. keyValuePairs.Add("F_SourceArea", sourcearea);
  11400. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  11401. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  11402. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  11403. keyValuePairs.Add("F_CusName", cusname);
  11404. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  11405. keyValuePairs.Add("F_CusSex", cussex);
  11406. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  11407. keyValuePairs.Add("F_CusPhone", cusphone);
  11408. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  11409. keyValuePairs.Add("F_CusAddress", cusaddress);
  11410. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  11411. keyValuePairs.Add("F_ZipCode", zipcode);
  11412. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  11413. keyValuePairs.Add("F_ConName", conname);
  11414. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  11415. keyValuePairs.Add("F_ConPhone", conphone);
  11416. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  11417. keyValuePairs.Add("F_Email", email);
  11418. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  11419. keyValuePairs.Add("F_ComTitle", title);
  11420. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  11421. keyValuePairs.Add("F_ComContent", content);
  11422. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  11423. if(!string .IsNullOrEmpty (files))
  11424. keyValuePairs.Add("F_File", files);
  11425. // modelT_Bus_WorkOrder.F_File = files;//附件
  11426. keyValuePairs.Add("F_IsProtect", isprotect);
  11427. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  11428. keyValuePairs.Add("F_Content", workcontent);
  11429. // modelT_Bus_WorkOrder.F_Content = workcontent;
  11430. keyValuePairs.Add("F_Key", keys);
  11431. // modelT_Bus_WorkOrder.F_Key = keys;
  11432. keyValuePairs.Add("F_Level", level);
  11433. // modelT_Bus_WorkOrder.F_Level = level;
  11434. // keyValuePairs.Add("F_ToBereply", 0);
  11435. keyValuePairs.Add("F_SplitUser", splituser);
  11436. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  11437. //是否直办(即时答复)0:,否1: 是
  11438. keyValuePairs.Add("F_IsResult", isresult);
  11439. //领导批示
  11440. keyValuePairs.Add("F_SuperOpinion", superOpinion);
  11441. if (source != 1 && source != 3 && source != 6 && !string.IsNullOrEmpty(maindeptids))
  11442. {
  11443. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptids + ")");
  11444. if (deptlist != null)
  11445. {
  11446. if (deptlist.Count == 1)
  11447. {
  11448. var deptinfo = deptlist.FirstOrDefault();
  11449. if (deptinfo.F_IsDept == 2)
  11450. {
  11451. if (deptinfo.F_PartentId > 0)
  11452. {
  11453. var premodeldept = department((int)deptinfo.F_PartentId);
  11454. if (premodeldept == null)
  11455. return Error("该单位没有上级单位,派单失败");
  11456. }
  11457. else
  11458. {
  11459. return Error("该单位没有上级单位,派单失败");
  11460. }
  11461. }
  11462. }
  11463. else
  11464. {
  11465. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  11466. return Error("派单多单位不能派给三级单位");
  11467. }
  11468. }
  11469. else
  11470. {
  11471. return Error("单位不存在");
  11472. }
  11473. }
  11474. modelT_Bus_WorkOrder.F_IsResult = isresult;
  11475. keyValuePairs.Add("F_Result", result);
  11476. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  11477. if (isopen > 0)
  11478. {
  11479. keyValuePairs.Add("F_IsOpen", isopen);
  11480. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  11481. }
  11482. int edit = 0;
  11483. if (isresult == 1)
  11484. {
  11485. if(modelT_Bus_WorkOrder.F_WorkState!=9)
  11486. {
  11487. edit = 1;
  11488. }
  11489. if (string.IsNullOrEmpty(result))
  11490. return Error("请输入办结内容");
  11491. keyValuePairs.Add("F_WorkState", 9);
  11492. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  11493. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  11494. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  11495. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  11496. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11497. keyValuePairs.Add("F_DealTime", DateTime.Now);
  11498. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11499. keyValuePairs.Add("F_IsClosed", 1);
  11500. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  11501. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  11502. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  11503. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  11504. var cureuser = User;
  11505. Task.Run(() =>
  11506. {
  11507. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  11508. }).ContinueWith(p =>
  11509. {
  11510. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11511. });
  11512. }
  11513. else if (issubmit == 1)
  11514. {
  11515. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  11516. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11517. keyValuePairs.Add("F_WorkState", 1);
  11518. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  11519. }
  11520. if (!string.IsNullOrEmpty(file))
  11521. {
  11522. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  11523. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11524. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  11525. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11526. #region 20200114新增字段 zhengbingbing
  11527. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11528. DateTime contime = DateTime.Now;
  11529. modelT_Bus_Feedback.F_IsProResult = 1;
  11530. #endregion
  11531. modelT_Bus_Feedback.F_File = file;
  11532. modelT_Bus_Feedback.F_IsAudit = 0;
  11533. modelT_Bus_Feedback.F_IsDelete = 0;
  11534. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  11535. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11536. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  11537. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11538. modelT_Bus_Feedback.F_State = 1;
  11539. modelT_Bus_Feedback.F_Type = 1;
  11540. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11541. }
  11542. #region
  11543. #endregion
  11544. if (state > 0)
  11545. {
  11546. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11547. {
  11548. int assignid = RequestString.GetInt("assignid", 0);
  11549. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11550. //string maindeptid = RequestString.GetFormString("maindeptid");
  11551. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11552. DateTime limittime = DateTime.Now;
  11553. try
  11554. {
  11555. limittime = DateTime.Now.AddDays(int.Parse(RequestString.GetFormString("limittime")));
  11556. }
  11557. catch
  11558. {
  11559. limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11560. }
  11561. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11562. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11563. if (!string.IsNullOrEmpty(otherdeptids))
  11564. {
  11565. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  11566. {
  11567. return Error("主办单位不能出现在协办单位");
  11568. }
  11569. }
  11570. if (limittime < DateTime.Now)
  11571. {
  11572. return Error("办理时限不能小于当前时间");
  11573. }
  11574. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11575. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11576. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  11577. {
  11578. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  11579. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11580. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11581. {
  11582. int aid = 0;
  11583. using (TransactionScope tran = new TransactionScope())
  11584. {
  11585. if (assignid == 0)
  11586. {
  11587. #region 插入交办记录
  11588. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11589. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11590. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11591. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11592. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11593. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11594. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11595. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11596. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11597. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11598. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11599. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11600. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11601. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11602. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11603. #endregion
  11604. }
  11605. else
  11606. {
  11607. #region 修改交办记录
  11608. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  11609. if (modelT_Bus_AssignedInfo != null)
  11610. {
  11611. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11612. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11613. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11614. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11615. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11616. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11617. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11618. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11619. assignBLL.Update(modelT_Bus_AssignedInfo);
  11620. aid = modelT_Bus_AssignedInfo.F_Id;
  11621. }
  11622. #endregion
  11623. }
  11624. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11625. {
  11626. #region 保存工单信息
  11627. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  11628. keyValuePairs.Add("F_WorkState", 2);
  11629. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  11630. keyValuePairs.Add("F_LimitTime", limittime);
  11631. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  11632. keyValuePairs.Add("F_MainDeptId", maindeptid);
  11633. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  11634. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  11635. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  11636. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  11637. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11638. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  11639. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11640. #endregion
  11641. #region 删除草稿信息
  11642. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11643. foreach (var cg in cglist)
  11644. {
  11645. cg.F_IsDelete = 1;
  11646. cg.F_DeleteUser = User.F_UserCode;
  11647. cg.F_DeleteTime = DateTime.Now;
  11648. assignBLL.Update(cg);
  11649. }
  11650. #endregion
  11651. #region 插入操作记录
  11652. Model.T_Bus_Operation opers = new Model.T_Bus_Operation();
  11653. opers.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11654. opers.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11655. opers.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11656. string userinfos = User.depname + "(" + User.F_UserCode + ")";
  11657. opers.F_Message = userinfos + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  11658. if (!string.IsNullOrEmpty(otherdeptids))
  11659. {
  11660. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  11661. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  11662. opers.F_Message += ",协办单位:" + deptname;
  11663. }
  11664. opers.F_CreateUser = User.F_UserCode;
  11665. opers.F_CreateTime = DateTime.Now;
  11666. opers.F_IsDelete = 0;
  11667. operBLL.Add(opers);
  11668. ////推送消息表
  11669. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11670. //foreach (var u in users)
  11671. //{
  11672. // msg.AddInternalMessagesInfo("工单消息", opers.F_Message + ",工单编号:" + opers.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11673. //}
  11674. #endregion
  11675. }
  11676. tran.Complete();
  11677. }
  11678. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  11679. }
  11680. else
  11681. {
  11682. return Error("已经交办过了");
  11683. }
  11684. }
  11685. else
  11686. {
  11687. return Error("操作失败");
  11688. }
  11689. }
  11690. else
  11691. {
  11692. return Error("权限不足");
  11693. }
  11694. }
  11695. bool n= workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11696. #endregion
  11697. #region 插入操作记录
  11698. if (modelT_Bus_WorkOrder.F_ComTitle != title || modelT_Bus_WorkOrder.F_ComContent != content
  11699. || modelT_Bus_WorkOrder.F_Content != workcontent
  11700. || modelT_Bus_WorkOrder.F_CusPhone != cusphone
  11701. || modelT_Bus_WorkOrder.F_ConPhone != conphone)
  11702. {
  11703. edit = 1;
  11704. }
  11705. if (issubmit ==1)
  11706. {
  11707. edit = 1;
  11708. }
  11709. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11710. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11711. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11712. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  11713. oper.F_File = modelT_Bus_WorkOrder.F_File;
  11714. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11715. oper.F_Message = userinfo + " 修改了工单";
  11716. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11717. {
  11718. oper.F_Message = userinfo + " 修改并提交了工单";
  11719. }
  11720. else if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)//1)
  11721. {
  11722. oper.F_Message = userinfo + " 修改了重办工单";
  11723. }
  11724. else if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11725. {
  11726. // edit = 1;
  11727. oper.F_Message = userinfo + " 修改并结案了工单";
  11728. if (n )
  11729. {
  11730. Task.Run(() =>
  11731. {
  11732. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  11733. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  11734. {
  11735. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  11736. }
  11737. }).ContinueWith(p =>
  11738. {
  11739. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11740. });
  11741. }
  11742. try
  11743. {
  11744. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  11745. {
  11746. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  11747. }
  11748. }
  11749. catch (Exception ex)
  11750. {
  11751. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  11752. }
  11753. }
  11754. oper.F_CreateUser = User.F_UserCode;
  11755. oper.F_CreateTime = DateTime.Now;
  11756. oper.F_IsDelete = 0;
  11757. if (edit ==1)
  11758. operBLL.Add(oper);
  11759. else
  11760. LogFactory.GetLogger("修改了信息").Warn(User.F_UserCode
  11761. + modelT_Bus_WorkOrder .F_WorkOrderId+ " 修改工单信息");
  11762. //Task.Run(() =>
  11763. //{//推送消息表
  11764. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11765. // {
  11766. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY'or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11767. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  11768. // foreach (var u in users)
  11769. // {
  11770. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11771. // }
  11772. // }
  11773. //});
  11774. //调用科大讯飞
  11775. #endregion
  11776. }
  11777. return Success("操作成功");
  11778. }
  11779. else
  11780. {
  11781. return Success("权限不足");
  11782. }
  11783. }
  11784. /// <summary>
  11785. /// 修改工单信息
  11786. /// </summary>
  11787. /// <returns></returns>
  11788. //[Authority]
  11789. public ActionResult EditWorkOrderBySource()
  11790. {
  11791. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11792. {
  11793. string workorderid = RequestString.GetFormString("workorderid");
  11794. int source = RequestString.GetInt("source", 0);
  11795. string cusname = RequestString.GetFormString("cusname");
  11796. string cussex = RequestString.GetFormString("cussex");
  11797. string cusphone = RequestString.GetFormString("cusphone");
  11798. string cusaddress = RequestString.GetFormString("cusaddress");
  11799. string email = RequestString.GetFormString("email");
  11800. string zipcode = RequestString.GetFormString("zipcode");
  11801. string conname = RequestString.GetFormString("conname");
  11802. string conphone = RequestString.GetFormString("conphone");
  11803. string title = RequestString.GetFormString("title");
  11804. string content = RequestString.GetFormString("content");
  11805. string files = RequestString.GetFormString("files");
  11806. int sourcearea = RequestString.GetInt("sourcearea", 0);
  11807. string sourceaddress = RequestString.GetFormString("sourceaddress");
  11808. string workcontent = RequestString.GetFormString("workcontent");
  11809. int isresult = RequestString.GetInt("isresult", 0);
  11810. string result = RequestString.GetFormString("result");
  11811. string keys = RequestString.GetFormString("keys");
  11812. string splituser = RequestString.GetFormString("splituser");
  11813. int type = RequestString.GetInt("type", 0);
  11814. int bigtype = RequestString.GetInt("bigtype", 0);
  11815. int smalltype = RequestString.GetInt("smalltype", 0);
  11816. int isprotect = RequestString.GetInt("isprotect", 0);
  11817. int level = RequestString.GetInt("level", 0);
  11818. int issubmit = RequestString.GetInt("issubmit", 0);
  11819. if (type == 0)
  11820. return Error("请选择来电类型");
  11821. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11822. if (modelT_Bus_WorkOrder != null)
  11823. {
  11824. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  11825. {
  11826. //using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11827. //{
  11828. #region 保存工单信息
  11829. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11830. keyValuePairs.Add("F_InfoSource", source);
  11831. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  11832. keyValuePairs.Add("F_InfoType", type);
  11833. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  11834. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  11835. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  11836. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  11837. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  11838. keyValuePairs.Add("F_SourceArea", sourcearea);
  11839. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  11840. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  11841. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  11842. keyValuePairs.Add("F_CusName", cusname);
  11843. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  11844. keyValuePairs.Add("F_CusSex", cussex);
  11845. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  11846. keyValuePairs.Add("F_CusPhone", cusphone);
  11847. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  11848. keyValuePairs.Add("F_CusAddress", cusaddress);
  11849. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  11850. keyValuePairs.Add("F_ZipCode", zipcode);
  11851. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  11852. keyValuePairs.Add("F_ConName", conname);
  11853. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  11854. keyValuePairs.Add("F_ConPhone", conphone);
  11855. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  11856. keyValuePairs.Add("F_Email", email);
  11857. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  11858. keyValuePairs.Add("F_ComTitle", title);
  11859. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  11860. keyValuePairs.Add("F_ComContent", content);
  11861. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  11862. if (!string.IsNullOrEmpty(files))
  11863. keyValuePairs.Add("F_File", files);
  11864. // modelT_Bus_WorkOrder.F_File = files;//附件
  11865. keyValuePairs.Add("F_IsProtect", isprotect);
  11866. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  11867. keyValuePairs.Add("F_Content", workcontent);
  11868. // modelT_Bus_WorkOrder.F_Content = workcontent;
  11869. keyValuePairs.Add("F_Key", keys);
  11870. // modelT_Bus_WorkOrder.F_Key = keys;
  11871. keyValuePairs.Add("F_Level", level);
  11872. // modelT_Bus_WorkOrder.F_Level = level;
  11873. keyValuePairs.Add("F_ToBereply", 0);
  11874. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  11875. //是否直办(即时答复)0:,否1: 是
  11876. keyValuePairs.Add("F_IsResult", isresult);
  11877. modelT_Bus_WorkOrder.F_IsResult = isresult;
  11878. keyValuePairs.Add("F_Result", result);
  11879. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  11880. // modelT_Bus_WorkOrder.F_Business = business;
  11881. //如果选择即刻答复:是,即为直办,工单结束
  11882. if (isresult == 1)
  11883. {
  11884. if (string.IsNullOrEmpty(result))
  11885. return Error("请输入办结内容");
  11886. keyValuePairs.Add("F_WorkState", 9);
  11887. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  11888. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  11889. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  11890. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  11891. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11892. keyValuePairs.Add("F_DealTime", DateTime.Now);
  11893. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11894. keyValuePairs.Add("F_IsClosed", 1);
  11895. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  11896. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  11897. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  11898. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  11899. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  11900. keyValuePairs.Add("F_IsDelete", 0);
  11901. keyValuePairs.Add("F_IsEnabled", 1);
  11902. keyValuePairs.Add("F_EnableTime", DateTime.Now);
  11903. }
  11904. else if (issubmit == 1)
  11905. {
  11906. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  11907. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  11908. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  11909. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  11910. keyValuePairs.Add("F_IsDelete", 0);
  11911. keyValuePairs.Add("F_IsEnabled", 1);
  11912. keyValuePairs.Add("F_EnableTime", DateTime.Now);
  11913. }
  11914. #region
  11915. #endregion
  11916. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  11917. // modelT_Bus_WorkOrder.F_IsEnabled = 1;
  11918. // modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now
  11919. // modelT_Bus_WorkOrder.F_IsDelete = 0;
  11920. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11921. #endregion
  11922. #region 插入操作记录
  11923. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11924. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11925. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11926. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  11927. oper.F_File = modelT_Bus_WorkOrder.F_File;
  11928. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11929. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  11930. {
  11931. oper.F_Message = userinfo + " 处理了工单";
  11932. }
  11933. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11934. {
  11935. oper.F_Message = userinfo + " 处理并提交了工单";
  11936. }
  11937. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11938. {
  11939. oper.F_Message = userinfo + " 处理并结案了工单";
  11940. }
  11941. oper.F_CreateUser = User.F_UserCode;
  11942. oper.F_CreateTime = DateTime.Now;
  11943. oper.F_IsDelete = 0;
  11944. operBLL.Add(oper);
  11945. //推送消息表
  11946. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  11947. //{
  11948. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  11949. //}
  11950. //调用科大讯飞
  11951. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  11952. //{
  11953. // ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  11954. // 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());
  11955. // if (bl)
  11956. // {
  11957. // Success("调用成功,工单号:" + oper.F_WorkOrderId);
  11958. // }
  11959. // else
  11960. // {
  11961. // Error("调用失败,工单号:" + oper.F_WorkOrderId);
  11962. // }
  11963. //}
  11964. #endregion
  11965. // trans.Complete();
  11966. //}
  11967. return Success("操作成功");
  11968. }
  11969. else
  11970. {
  11971. return Error("已经处理过了");
  11972. }
  11973. }
  11974. else
  11975. {
  11976. return Error("操作失败");
  11977. }
  11978. }
  11979. else
  11980. {
  11981. return Success("权限不足");
  11982. }
  11983. }
  11984. #region 新增审核工单流程
  11985. /// <summary>
  11986. /// 20190315需求变动,新增审核工单,由组长审核
  11987. /// </summary>
  11988. /// <param name="ids"></param>
  11989. /// <returns></returns>
  11990. //[Authority]
  11991. public ActionResult AuditWorkOrder()
  11992. {
  11993. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11994. {
  11995. string workorderid = RequestString.GetFormString("workorderid");
  11996. int state = RequestString.GetInt("state", 0);
  11997. string reason = RequestString.GetFormString("reason");
  11998. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11999. if (modelT_Bus_WorkOrder != null)
  12000. {
  12001. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12002. {
  12003. if (modelT_Bus_WorkOrder != null)
  12004. {
  12005. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12006. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  12007. {
  12008. var opt = "审核并提交"; var re = "";
  12009. #region 保存工单信息
  12010. if (state == 1)
  12011. {
  12012. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  12013. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12014. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  12015. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  12016. }
  12017. else
  12018. {
  12019. keyValuePairs.Add("F_WorkState", 0);
  12020. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  12021. opt = "审核并退回";
  12022. re = ",退回原因:" + reason;
  12023. }
  12024. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12025. #endregion
  12026. #region 插入操作记录
  12027. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12028. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12029. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12030. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12031. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  12032. oper.F_CreateUser = User.F_UserCode;
  12033. oper.F_CreateTime = DateTime.Now;
  12034. oper.F_IsDelete = 0;
  12035. operBLL.Add(oper);
  12036. //推送消息表
  12037. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  12038. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12039. //{
  12040. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  12041. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  12042. // foreach (var u in users)
  12043. // {
  12044. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12045. // }
  12046. //}
  12047. #endregion
  12048. }
  12049. }
  12050. trans.Complete();
  12051. }
  12052. return Success("操作成功");
  12053. }
  12054. else
  12055. {
  12056. return Error("操作失败");
  12057. }
  12058. }
  12059. else
  12060. {
  12061. return Error("权限不足");
  12062. }
  12063. }
  12064. #endregion
  12065. /// <summary>
  12066. /// 提交工单
  12067. /// </summary>
  12068. /// <param name="ids"></param>
  12069. /// <returns></returns>
  12070. //[Authority]
  12071. public ActionResult SubmitWorkOrder(string[] ids)
  12072. {
  12073. 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")
  12074. {
  12075. if (ids != null && ids.Length > 0)
  12076. {
  12077. foreach (string str in ids)
  12078. {
  12079. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12080. {
  12081. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12082. if (modelT_Bus_WorkOrder != null)
  12083. {
  12084. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12085. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  12086. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  12087. {
  12088. #region 保存工单信息
  12089. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  12090. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12091. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  12092. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  12093. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  12094. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12095. #endregion
  12096. #region 插入操作记录
  12097. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12098. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12099. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12100. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12101. oper.F_Message = userinfo + " 提交了工单";
  12102. oper.F_CreateUser = User.F_UserCode;
  12103. oper.F_CreateTime = DateTime.Now;
  12104. oper.F_IsDelete = 0;
  12105. operBLL.Add(oper);
  12106. //推送消息表
  12107. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  12108. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12109. //{
  12110. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  12111. // if (role != null && role.Count() > 0)
  12112. // {
  12113. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  12114. // foreach (var u in users)
  12115. // {
  12116. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12117. // }
  12118. // }
  12119. //}
  12120. #endregion
  12121. }
  12122. }
  12123. trans.Complete();
  12124. }
  12125. }
  12126. return Success("操作成功");
  12127. }
  12128. else
  12129. {
  12130. return Error("操作失败");
  12131. }
  12132. }
  12133. else
  12134. {
  12135. return Error("权限不足");
  12136. }
  12137. }
  12138. /// <summary>
  12139. /// 回退工单
  12140. /// </summary>
  12141. /// <returns></returns>
  12142. //[Authority]
  12143. public ActionResult ReturnWorkOrder()
  12144. {
  12145. string workorderid = RequestString.GetFormString("workorderid");
  12146. string backuser = RequestString.GetFormString("backuser");
  12147. string backreason = RequestString.GetFormString("backreason");
  12148. string files = RequestString.GetFormString("files");
  12149. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  12150. if (modelT_Bus_WorkOrder != null)
  12151. {
  12152. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  12153. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit ||
  12154. (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  12155. {
  12156. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12157. {
  12158. var Examine = new BLL.T_Bus_ToExamine().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  12159. if (Examine!=null && Examine.F_Type==2)
  12160. {
  12161. #region 保存工单信息
  12162. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12163. keyValuePairs.Add("F_WorkState", 6);
  12164. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;
  12165. keyValuePairs.Add("F_Prevaricate", modelT_Bus_WorkOrder.F_Prevaricate + 1);
  12166. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12167. #endregion
  12168. }
  12169. else if (modelT_Bus_WorkOrder.F_WorkState==11)
  12170. {
  12171. #region 保存工单信息
  12172. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12173. keyValuePairs.Add("F_WorkState", 7);
  12174. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;
  12175. keyValuePairs.Add("F_Prevaricate", modelT_Bus_WorkOrder.F_Prevaricate + 1);
  12176. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12177. #endregion
  12178. }
  12179. else
  12180. {
  12181. #region 保存工单信息
  12182. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12183. keyValuePairs.Add("F_WorkState", 0);
  12184. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  12185. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  12186. keyValuePairs.Add("F_IsResult", 0);
  12187. keyValuePairs.Add("F_ToBereply", 0);
  12188. keyValuePairs.Add("F_IsReturn", 1);
  12189. // modelT_Bus_WorkOrder.F_IsReturn = 1;
  12190. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  12191. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12192. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12193. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12194. keyValuePairs.Add("F_Prevaricate", modelT_Bus_WorkOrder.F_Prevaricate + 1);
  12195. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12196. #endregion
  12197. }
  12198. #region 插入批示记录
  12199. //批示记录
  12200. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  12201. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  12202. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  12203. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  12204. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  12205. model_T_Bus_SubmitSuper.F_File = files;//附件
  12206. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  12207. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  12208. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  12209. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  12210. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  12211. #endregion
  12212. #region 插入操作记录
  12213. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12214. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12215. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12216. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12217. oper.F_Message = userinfo + " 回退了工单";
  12218. oper.F_CreateUser = User.F_UserCode;
  12219. oper.F_CreateTime = DateTime.Now;
  12220. oper.F_IsDelete = 0;
  12221. operBLL.Add(oper);
  12222. #endregion
  12223. trans.Complete();
  12224. }
  12225. return Success("操作成功");
  12226. }
  12227. else
  12228. {
  12229. return Error("已经处理过了");
  12230. }
  12231. }
  12232. else
  12233. {
  12234. return Error("操作失败");
  12235. }
  12236. }
  12237. /// <summary>
  12238. /// 领导批示/市长指示
  12239. /// </summary>
  12240. /// <param name="ids"></param>
  12241. /// <returns></returns>
  12242. //[Authority]
  12243. public ActionResult SuperWorkOrder()
  12244. {
  12245. string workorderid = RequestString.GetFormString("workorderid");
  12246. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  12247. string superuser = RequestString.GetFormString("superuser");
  12248. string superopinion = RequestString.GetFormString("superopinion");
  12249. string files = RequestString.GetFormString("files");
  12250. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12251. if (modelT_Bus_WorkOrder != null)
  12252. {
  12253. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12254. {
  12255. #region 保存工单信息 no use
  12256. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  12257. //workorderBLL.Update(modelT_Bus_WorkOrder);
  12258. #endregion
  12259. #region 插入批示记录
  12260. //批示记录
  12261. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  12262. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  12263. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  12264. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  12265. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  12266. model_T_Bus_SubmitSuper.F_File = files;//附件
  12267. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  12268. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  12269. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  12270. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  12271. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  12272. #endregion
  12273. #region 插入操作记录
  12274. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12275. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12276. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12277. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12278. oper.F_Message = userinfo + " 批示了工单";
  12279. oper.F_CreateUser = User.F_UserCode;
  12280. oper.F_CreateTime = DateTime.Now;
  12281. oper.F_IsDelete = 0;
  12282. operBLL.Add(oper);
  12283. #endregion
  12284. trans.Complete();
  12285. }
  12286. return Success("操作成功");
  12287. }
  12288. else
  12289. {
  12290. return Error("操作失败");
  12291. }
  12292. }
  12293. /// <summary>
  12294. /// 办理中交办
  12295. /// </summary>
  12296. /// <returns></returns>
  12297. //[Authority]
  12298. public ActionResult HandleAssign()
  12299. {
  12300. 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")
  12301. {
  12302. string workorderid = RequestString.GetFormString("workorderid");
  12303. int state = RequestString.GetInt("state", 0);
  12304. int assignid = RequestString.GetInt("assignid", 0);
  12305. string maindeptid = RequestString.GetFormString("maindeptid");
  12306. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12307. int limittime = RequestString.GetInt("limittime", 0);
  12308. string limittimes = RequestString.GetFormString("limittimes");
  12309. string resdatetime = "";
  12310. if (limittime > 0)
  12311. {
  12312. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  12313. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  12314. "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];
  12315. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12316. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  12317. var datatime = DateTime.Now.AddDays(limittime);
  12318. if (Convert.ToDateTime(resdatetime) > datatime)
  12319. {
  12320. 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"); ;
  12321. }
  12322. }
  12323. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12324. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  12325. if (!string.IsNullOrEmpty(otherdeptids))
  12326. {
  12327. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  12328. if (both.Count() > 0)
  12329. {
  12330. return Error("主办单位不能出现在协办单位");
  12331. }
  12332. }
  12333. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12334. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12335. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12336. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12337. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  12338. {
  12339. int aid = 0; var rre = "";
  12340. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12341. {
  12342. string newids = ""; string errdeptid = ""; string deptname = "";
  12343. foreach (var deptinfo in deptlist)
  12344. {
  12345. deptname += deptinfo.F_DeptName + ",";
  12346. #region 新增工单
  12347. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  12348. modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  12349. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  12350. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  12351. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  12352. modelT_Bus_WorkOrder1.F_MainWorkorder1 = workorderid;
  12353. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  12354. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  12355. {
  12356. errdeptid += deptinfo.F_DeptName + ",";
  12357. continue;
  12358. }
  12359. #endregion
  12360. #region 交办
  12361. #region 插入交办记录
  12362. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12363. if (modelT_Bus_WorkOrder.F_Level == 2)
  12364. {
  12365. try
  12366. {
  12367. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12368. }
  12369. catch
  12370. {
  12371. return Error("请选择正确的时间");
  12372. }
  12373. }
  12374. else
  12375. {
  12376. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12377. }
  12378. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12379. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12380. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12381. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12382. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12383. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12384. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12385. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12386. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12387. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12388. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12389. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12390. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12391. #endregion
  12392. #endregion
  12393. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12394. {
  12395. #region 保存工单信息
  12396. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12397. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  12398. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  12399. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  12400. if (modelT_Bus_WorkOrder1.F_Level == 2)
  12401. {
  12402. try
  12403. {
  12404. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12405. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  12406. }
  12407. catch
  12408. {
  12409. return Error("请选择正确的时间");
  12410. }
  12411. }
  12412. else
  12413. {
  12414. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12415. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  12416. }
  12417. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  12418. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12419. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  12420. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12421. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  12422. //modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  12423. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12424. //modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  12425. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  12426. #endregion
  12427. #region 插入操作记录
  12428. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12429. if (!string.IsNullOrEmpty(otherdeptids))
  12430. {
  12431. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  12432. string deptnamea = departmentBLL.GetDeptNames(otherdeptids);
  12433. msgss += ",协办单位:" + deptnamea;
  12434. }
  12435. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  12436. ////推送消息表
  12437. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12438. //foreach (var u in users)
  12439. //{
  12440. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12441. //}
  12442. #endregion
  12443. }
  12444. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  12445. Task.Run(() =>
  12446. {
  12447. pushcase_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  12448. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  12449. {
  12450. pushmaterial_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  12451. }
  12452. }).ContinueWith(p =>
  12453. {
  12454. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12455. });
  12456. }
  12457. newids = newids.Trim(',');
  12458. var msgs = "";
  12459. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder1 = workorderBLL.GetModel(workorderid);
  12460. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  12461. keyValuePairs1.Add("F_MainWorkorder1", tempT_Bus_WorkOrder1.F_WorkOrderId);
  12462. // tempT_Bus_WorkOrder1.F_MainWorkorder1 = tempT_Bus_WorkOrder1.F_WorkOrderId;
  12463. keyValuePairs1.Add("F_SubWorkorder1", newids + "," + tempT_Bus_WorkOrder1.F_WorkOrderId);
  12464. // tempT_Bus_WorkOrder1.F_SubWorkorder1 = newids+","+ tempT_Bus_WorkOrder1.F_WorkOrderId ;
  12465. workorderBLL.UpdateWorkOrder(tempT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  12466. if (errdeptid == "")
  12467. {
  12468. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  12469. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  12470. }
  12471. else
  12472. {
  12473. errdeptid = errdeptid.Trim(',');
  12474. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  12475. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  12476. }
  12477. #region 插入操作记录
  12478. #endregion
  12479. trans.Complete();
  12480. #region
  12481. #endregion
  12482. }
  12483. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  12484. if (user != null && user.Count > 0)
  12485. {
  12486. foreach (var it in user)
  12487. {
  12488. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  12489. {
  12490. continue;
  12491. }
  12492. else
  12493. {
  12494. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  12495. // string msg = workorderid;
  12496. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  12497. string mag = "[\"" + workorderid + "\"]";
  12498. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  12499. //workorderid);
  12500. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12501. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  12502. else
  12503. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  12504. }
  12505. }
  12506. }
  12507. //审核员给二级单位转派
  12508. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  12509. }
  12510. else
  12511. {
  12512. return Error("操作失败");
  12513. }
  12514. }
  12515. else
  12516. {
  12517. return Error("权限不足");
  12518. }
  12519. }
  12520. private Model.T_Sys_Department department(int PartentId)
  12521. {
  12522. var model = new BLL.T_Sys_Department().GetModel(PartentId);
  12523. if (model != null)
  12524. {
  12525. if (model.F_IsDept == 1)
  12526. {
  12527. return model;
  12528. }
  12529. else
  12530. {
  12531. if (model.F_PartentId > 0)
  12532. model = department((int)model.F_PartentId);
  12533. else
  12534. return null;
  12535. }
  12536. }
  12537. else
  12538. {
  12539. return null;
  12540. }
  12541. return model;
  12542. }
  12543. public class maindeptcontent
  12544. {
  12545. public int id { set; get; }
  12546. public string content { set; get; }
  12547. }
  12548. /// <summary>
  12549. ///
  12550. /// </summary>
  12551. /// <returns></returns>
  12552. //[Authority]
  12553. public ActionResult AssignWorkOrderNew(List<maindeptcontent> content)
  12554. {
  12555. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12556. {
  12557. string workorderid = RequestString.GetFormString("workorderid");
  12558. int state = RequestString.GetInt("state", 0);
  12559. int assignid = RequestString.GetInt("assignid", 0);
  12560. string maindeptid = RequestString.GetFormString("maindeptid");
  12561. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12562. int limittime = RequestString.GetInt("limittime", 0);
  12563. string limittimes = RequestString.GetFormString("limittimes");
  12564. int ispd = RequestString.GetInt("ispd", 0);
  12565. int isms = RequestString.GetInt("isms", 1);
  12566. string resdatetime = "";
  12567. if (limittime > 0)
  12568. {
  12569. resdatetime = GetLimittime(limittime);
  12570. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  12571. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  12572. // "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];
  12573. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12574. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  12575. //var datatime = DateTime.Now.AddDays(limittime);
  12576. //if (Convert.ToDateTime(resdatetime) > datatime)
  12577. //{
  12578. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  12579. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  12580. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  12581. // " with(nolock) where F_OffState = 1 and " +
  12582. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  12583. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  12584. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd")!=
  12585. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  12586. // {
  12587. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  12588. // }
  12589. // // if (datetime.DayOfWeek==DayOfWeek.Saturday|| datetime.DayOfWeek == DayOfWeek.Sunday)
  12590. // //{
  12591. // // if(datetime.Hour >=0&& datetime.Hour<=8)
  12592. // // {
  12593. // // datetime.AddHours (8);
  12594. // // }
  12595. // // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12596. // // resdatetime = datetime.AddDays (2).ToString("yyyy-MM-dd HH:mm:ss");
  12597. // //}
  12598. // //else
  12599. // //{
  12600. // // resdatetime = datetime.ToString("yyyy-MM-dd HH:mm:ss");
  12601. // //}
  12602. // // 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"); ;
  12603. //}
  12604. }
  12605. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12606. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  12607. if (!string.IsNullOrEmpty(otherdeptids))
  12608. {
  12609. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  12610. if (both.Count() > 0)
  12611. {
  12612. return Error("主办单位不能出现在协办单位");
  12613. }
  12614. }
  12615. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12616. if(modelT_Bus_WorkOrder.F_WorkState ==0&& modelT_Bus_WorkOrder.F_IsReturn ==1)
  12617. {
  12618. return Error("工单已回退,不能交办");
  12619. }
  12620. var premodeldept = new Model.T_Sys_Department();
  12621. if (ispd > 0)
  12622. {
  12623. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Key))
  12624. return Error("自动派单失败,请选择反映类别!");
  12625. try
  12626. {
  12627. var model = new BLL.T_Sys_DictionaryValue().GetModel
  12628. (int.Parse(modelT_Bus_WorkOrder.F_Key));
  12629. if (model != null)
  12630. {
  12631. if (model.F_Deptid != null)
  12632. maindeptid = model.F_Deptid.ToString();
  12633. else
  12634. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  12635. }
  12636. else
  12637. return Error("自动派单失败,请选择反映类别.");
  12638. }
  12639. catch
  12640. {
  12641. return Error("自动派单失败,请选择反映类别");
  12642. }
  12643. }
  12644. else
  12645. {
  12646. if (string.IsNullOrEmpty(maindeptid))
  12647. return Error("请选择派单部门");
  12648. }
  12649. if (modelT_Bus_WorkOrder.F_WorkState != 0 && modelT_Bus_WorkOrder.F_WorkState != 1 && modelT_Bus_WorkOrder.F_WorkState != 11)
  12650. {
  12651. return Error("工单已派单");
  12652. }
  12653. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12654. if (deptlist != null)
  12655. {
  12656. if (deptlist.Count == 1)
  12657. {
  12658. var deptinfo = deptlist.FirstOrDefault();
  12659. if (deptinfo.F_IsDept == 2)
  12660. {
  12661. if (deptinfo.F_PartentId > 0)
  12662. {
  12663. premodeldept = department((int)deptinfo.F_PartentId);
  12664. if (premodeldept == null)
  12665. return Error("该单位没有上级单位,派单失败");
  12666. }
  12667. else
  12668. {
  12669. return Error("该单位没有上级单位,派单失败");
  12670. }
  12671. }
  12672. }
  12673. else
  12674. {
  12675. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  12676. return Error("派单多单位不能派给三级单位");
  12677. }
  12678. }
  12679. else
  12680. {
  12681. return Error("单位不存在");
  12682. }
  12683. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12684. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  12685. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12686. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  12687. {
  12688. if (modelT_Bus_WorkOrder.F_Level == 2)
  12689. {
  12690. try
  12691. {
  12692. Convert.ToDateTime(limittimes);
  12693. }
  12694. catch
  12695. {
  12696. return Error("请选择正确的时间");
  12697. }
  12698. }
  12699. int aid = 0;
  12700. var curuser = User;
  12701. if (deptlist.Count == 1)
  12702. {
  12703. #region 交办一个单位
  12704. var maindept = deptlist.FirstOrDefault();
  12705. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12706. {
  12707. if (assignid == 0)
  12708. {
  12709. #region 插入交办记录
  12710. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12711. if (modelT_Bus_WorkOrder.F_Level == 2)
  12712. {
  12713. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12714. }
  12715. else
  12716. {
  12717. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12718. }
  12719. if (maindept.F_IsDept == 2)
  12720. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  12721. else
  12722. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  12723. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12724. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12725. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12726. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12727. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12728. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12729. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12730. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12731. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12732. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12733. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12734. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  12735. #endregion
  12736. }
  12737. else
  12738. {
  12739. #region 修改交办记录
  12740. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  12741. if (modelT_Bus_AssignedInfo != null)
  12742. {
  12743. if (modelT_Bus_WorkOrder.F_Level == 2)
  12744. {
  12745. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12746. }
  12747. else
  12748. {
  12749. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12750. }
  12751. if (maindept.F_IsDept == 2)
  12752. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  12753. else
  12754. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  12755. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12756. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12757. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12758. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12759. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12760. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12761. assignBLL.Update(modelT_Bus_AssignedInfo);
  12762. aid = modelT_Bus_AssignedInfo.F_Id;
  12763. }
  12764. #endregion
  12765. }
  12766. trans.Complete();
  12767. }
  12768. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12769. {
  12770. Task.Run(() =>
  12771. {
  12772. #region 保存工单信息
  12773. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12774. if (content != null && content.Count > 0)
  12775. {
  12776. keyValuePairs.Add("F_Content", content[0].content);
  12777. }
  12778. if (modelT_Bus_WorkOrder.F_Level == 2)
  12779. {
  12780. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12781. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  12782. }
  12783. else
  12784. {
  12785. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12786. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  12787. }
  12788. if (maindept.F_IsDept == 2)
  12789. {
  12790. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  12791. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  12792. }
  12793. else
  12794. {
  12795. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  12796. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  12797. }
  12798. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  12799. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12800. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  12801. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  12802. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12803. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12804. if (maindept.F_IsDept == 2)
  12805. {
  12806. modelT_Bus_WorkOrder.F_WorkState = 4;
  12807. keyValuePairs.Add("F_WorkState", 4);
  12808. }
  12809. else
  12810. {
  12811. modelT_Bus_WorkOrder.F_WorkState = 2;
  12812. keyValuePairs.Add("F_WorkState", 2);
  12813. }
  12814. // keyValuePairs.Add("F_IsSendBack", 0);
  12815. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  12816. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12817. #endregion
  12818. }).ContinueWith(q =>
  12819. {
  12820. string DeptName = "";
  12821. if (maindept.F_IsDept == 2)
  12822. {
  12823. DeptName = premodeldept.F_DeptName;
  12824. }
  12825. else
  12826. DeptName = maindept.F_DeptName;
  12827. var msgss = userinfo + " 交办了工单,主办单位:" + DeptName;
  12828. if (!string.IsNullOrEmpty(otherdeptids))
  12829. {
  12830. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  12831. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  12832. msgss += ",协办单位:" + deptname;
  12833. }
  12834. if (maindept.F_IsDept == 2)
  12835. {
  12836. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12837. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion, curuser);
  12838. }
  12839. else
  12840. {
  12841. Task.Run(() =>
  12842. {
  12843. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12844. }).ContinueWith(p =>
  12845. {
  12846. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12847. });
  12848. }
  12849. #region 插入推送消息
  12850. //Task.Run(() =>
  12851. //{
  12852. // addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  12853. //}).ContinueWith(p =>
  12854. //{
  12855. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12856. //});
  12857. if (isms > 0)
  12858. {
  12859. if (maindept.F_IsDept == 2)
  12860. {
  12861. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  12862. foreach (var u in users)
  12863. {
  12864. if (curuser.F_RoleCode == "DBZY")
  12865. {
  12866. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12867. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12868. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  12869. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  12870. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12871. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12872. }
  12873. else
  12874. {
  12875. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  12876. {
  12877. continue;
  12878. }
  12879. else
  12880. {
  12881. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  12882. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12883. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  12884. //modelT_Bus_WorkOrder.F_WorkOrderId);
  12885. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12886. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12887. else
  12888. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12889. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12890. }
  12891. }
  12892. }
  12893. }
  12894. else
  12895. {
  12896. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  12897. foreach (var u in users)
  12898. {
  12899. if (curuser.F_RoleCode == "DBZY")
  12900. {
  12901. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12902. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12903. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  12904. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  12905. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12906. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12907. }
  12908. else
  12909. {
  12910. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  12911. {
  12912. continue;
  12913. }
  12914. else
  12915. {
  12916. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  12917. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  12918. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  12919. //modelT_Bus_WorkOrder.F_WorkOrderId);
  12920. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  12921. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12922. else
  12923. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  12924. }
  12925. //msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  12926. }
  12927. }
  12928. }
  12929. }
  12930. #endregion
  12931. });
  12932. }
  12933. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  12934. #endregion
  12935. }
  12936. else
  12937. {
  12938. Task.Run(() =>
  12939. {
  12940. string newids = ""; string errdeptid = ""; string deptname = "";
  12941. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12942. if (curuser.F_RoleCode == "DBZY")
  12943. {
  12944. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  12945. }
  12946. object obj = new object();
  12947. List<Task> taskList = new List<Task>();
  12948. foreach (var deptinfo in deptlist)
  12949. {
  12950. deptname += deptinfo.F_DeptName + ",";
  12951. #region 新增工单
  12952. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  12953. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  12954. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  12955. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  12956. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  12957. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  12958. if (content != null && content.Count > 0)
  12959. {
  12960. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  12961. {
  12962. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  12963. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  12964. }
  12965. }
  12966. modelT_Bus_WorkOrder1.F_IsRelease = null;
  12967. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  12968. if (curuser.F_RoleCode == "DBZY")
  12969. {
  12970. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  12971. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12972. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  12973. }
  12974. #endregion
  12975. if (modelT_Bus_WorkOrder1.F_Id > 0)
  12976. {
  12977. #region 插入交办记录
  12978. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12979. if (modelT_Bus_WorkOrder.F_Level == 2)
  12980. {
  12981. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12982. }
  12983. else
  12984. {
  12985. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12986. }
  12987. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12988. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12989. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12990. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12991. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12992. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  12993. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12994. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12995. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12996. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12997. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12998. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12999. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  13000. #endregion
  13001. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  13002. {
  13003. #region 保存工单信息
  13004. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13005. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  13006. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  13007. if (modelT_Bus_WorkOrder1.F_Level == 2)
  13008. {
  13009. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  13010. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  13011. }
  13012. else
  13013. {
  13014. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  13015. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  13016. }
  13017. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  13018. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  13019. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  13020. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  13021. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  13022. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  13023. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  13024. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  13025. // keyValuePairs.Add("F_IsSendBack", 0);
  13026. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  13027. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  13028. #endregion
  13029. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  13030. if (!string.IsNullOrEmpty(otherdeptids))
  13031. {
  13032. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  13033. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  13034. msgss += ",协办单位:" + deptname1;
  13035. }
  13036. #region 插入操作记录
  13037. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  13038. #endregion
  13039. #region 插入推送消息
  13040. //推送消息表
  13041. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13042. //foreach (var u in users)
  13043. //{
  13044. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  13045. //}
  13046. #endregion
  13047. #region 发短信
  13048. if (isms > 0)
  13049. {
  13050. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  13051. if (user != null && user.Count > 0)
  13052. {
  13053. foreach (var it in user)
  13054. {
  13055. if (curuser.F_RoleCode == "DBZY")
  13056. {
  13057. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  13058. //string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  13059. //string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag,
  13060. //modelT_Bus_WorkOrder1.F_WorkOrderId);
  13061. string t = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  13062. }
  13063. else
  13064. {
  13065. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13066. {
  13067. continue;
  13068. }
  13069. else
  13070. {
  13071. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  13072. //string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  13073. //string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13074. //modelT_Bus_WorkOrder1.F_WorkOrderId);
  13075. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13076. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  13077. else
  13078. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  13079. }
  13080. }
  13081. }
  13082. }
  13083. }
  13084. #endregion
  13085. }
  13086. Task.Run(() =>
  13087. {
  13088. pushcase_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  13089. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  13090. {
  13091. pushmaterial_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  13092. }
  13093. }).ContinueWith(p =>
  13094. {
  13095. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  13096. });
  13097. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  13098. }
  13099. else
  13100. {
  13101. errdeptid += deptinfo.F_DeptName + ",";
  13102. }
  13103. }
  13104. newids = newids.Trim(',');
  13105. var msgs = "";
  13106. if (errdeptid == "")
  13107. {
  13108. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13109. keyValuePairs.Add("F_SubWorkorder1", newids);
  13110. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  13111. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13112. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  13113. }
  13114. else
  13115. {
  13116. errdeptid = errdeptid.Trim(',');
  13117. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  13118. }
  13119. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  13120. }).ContinueWith(p =>
  13121. {
  13122. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  13123. });
  13124. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  13125. // keyValuePairs1.Add("F_IsSendBack", 0);
  13126. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  13127. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  13128. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  13129. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  13130. return Success("操作成功");
  13131. }
  13132. }
  13133. else
  13134. {
  13135. return Error("操作失败");
  13136. }
  13137. }
  13138. else
  13139. {
  13140. return Error("权限不足");
  13141. }
  13142. }
  13143. public ActionResult ReturnStatistics(string workorderid, int state=0,string message="")
  13144. {
  13145. if (string.IsNullOrEmpty(workorderid))
  13146. return Error("请选择工单");
  13147. var model = workorderBLL.GetModel(workorderid);
  13148. var assign = new BLL.T_Bus_AssignedInfo().GetNewModelByWorkOrderID (workorderid);
  13149. if (model !=null && assign!=null )
  13150. {
  13151. assign.F_IsPerform = state;
  13152. new BLL.T_Bus_AssignedInfo().Update(assign);
  13153. #region 插入操作记录
  13154. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13155. oper.F_WorkOrderId = model.F_WorkOrderId;
  13156. oper.F_AssignedId = assign.F_Id ;
  13157. oper.F_State = model.F_WorkState;
  13158. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13159. string msg = "";
  13160. if (!string.IsNullOrEmpty(message))
  13161. msg = ",原因:" + message;
  13162. if (state==1)
  13163. oper.F_Message = userinfo + "进行了退回统计"+ msg;
  13164. else
  13165. oper.F_Message = userinfo + "撤销了退回统计"+ msg;
  13166. oper.F_CreateUser = User.F_UserCode;
  13167. oper.F_CreateTime = DateTime.Now;
  13168. oper.F_IsDelete = 0;
  13169. operBLL.Add(oper);
  13170. //推送消息表
  13171. #endregion
  13172. return Success ("统计成功");
  13173. }
  13174. else
  13175. {
  13176. return Error("工单不存在或未交办");
  13177. }
  13178. }
  13179. /// <summary>
  13180. /// 审核工单
  13181. /// </summary>
  13182. /// <returns></returns>
  13183. public ActionResult ToExamineWorkOrder()
  13184. {
  13185. 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")
  13186. {
  13187. string workorderid = RequestString.GetFormString("workorderid");
  13188. int nexttype = RequestString.GetInt("nexttype", 0);//审核通过1审核不通过2审核通过转办
  13189. int statistics = RequestString.GetInt("statistics", 0);//是否进行退回统计0否1是
  13190. int groupstatistics = RequestString.GetInt("groupstatistics", 0);
  13191. int limittime = RequestString.GetInt("limittime", 0);
  13192. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  13193. int issms = RequestString.GetInt("issms", 0);//是否发送短信
  13194. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13195. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13196. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13197. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new Model.T_Bus_ToExamine();
  13198. if (modelT_Bus_WorkOrder != null)
  13199. {
  13200. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  13201. {
  13202. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13203. {
  13204. modelT_Bus_ToExamine.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13205. modelT_Bus_ToExamine.F_IsDelete = 0;
  13206. modelT_Bus_ToExamine.F_Type = nexttype;
  13207. modelT_Bus_ToExamine.F_CreatUser = User.F_UserCode;
  13208. modelT_Bus_ToExamine.F_Result = cbreason;
  13209. modelT_Bus_ToExamine.F_CreateTime = DateTime.Now;
  13210. if (modelT_Bus_AssignedInfo != null)
  13211. {
  13212. modelT_Bus_ToExamine.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13213. }
  13214. int id = new BLL.T_Bus_ToExamine().Add(modelT_Bus_ToExamine);
  13215. if (modelT_Bus_ToExamine != null)
  13216. {
  13217. //提交重办满意度改为满意
  13218. var opt = "审核通过"; var cbreasons = "";
  13219. if (nexttype == 0)
  13220. {
  13221. keyValuePairs.Add("F_Note", "");
  13222. keyValuePairs.Add("F_WorkState", 7);
  13223. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  13224. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13225. string deptname = User.depname; string code = User.F_UserCode;
  13226. Task.Run(() =>
  13227. {
  13228. if (issms > 0)
  13229. {
  13230. // SendVisits(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, deptname, code);
  13231. }
  13232. });
  13233. }
  13234. #region 重办
  13235. else if (nexttype == 2)
  13236. {
  13237. #region 保存工单信息
  13238. //if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  13239. //{
  13240. // return Error("回访时,提交重办只能操作一次");
  13241. //}
  13242. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  13243. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  13244. keyValuePairs2.Add("F_RemindDay", 3);
  13245. else
  13246. keyValuePairs2.Add("F_RemindDay", 2);
  13247. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  13248. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  13249. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  13250. keyValuePairs2.Add("F_IsSms", 0);
  13251. // modelT_Bus_WorkOrder.F_IsSms = 0;
  13252. keyValuePairs2.Add("F_Identification", 0);
  13253. // modelT_Bus_WorkOrder.F_Identification = 0;
  13254. keyValuePairs2.Add("F_Note", "");
  13255. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  13256. #endregion
  13257. opt = "于" + DateTime.Now
  13258. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  13259. cbreasons = ",重办原因:" + cbreason;
  13260. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  13261. if (t_Bus_RemindRecord != null)
  13262. {
  13263. if (t_Bus_RemindRecord.F_State != 2)
  13264. {
  13265. t_Bus_RemindRecord.F_State = 0;
  13266. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  13267. }
  13268. }
  13269. #endregion
  13270. }
  13271. else if (nexttype == 1)
  13272. {
  13273. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  13274. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  13275. {
  13276. if (User.F_RoleCode == "ZXHWY")
  13277. {
  13278. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  13279. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  13280. keyValuePairs3.Add("F_Note", "");
  13281. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  13282. if (statistics > 0)
  13283. {
  13284. if (modelT_Bus_AssignedInfo.F_IsPerform == 1)
  13285. modelT_Bus_AssignedInfo.F_IsPerform = 2;
  13286. else
  13287. modelT_Bus_AssignedInfo.F_IsPerform = 3;
  13288. if (groupstatistics > 0)
  13289. modelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  13290. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13291. }
  13292. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  13293. {
  13294. #region 插入操作记录
  13295. #region 20191021调整为多个主办单位时调整
  13296. #endregion
  13297. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  13298. cbreasons = ",重办原因:" + cbreason;
  13299. #endregion
  13300. }
  13301. }
  13302. else
  13303. {
  13304. 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());
  13305. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13306. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13307. // DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  13308. // "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];
  13309. // var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  13310. var resdatetime = GetLimittime(6);
  13311. if (!string.IsNullOrEmpty(resdatetime))
  13312. {
  13313. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  13314. // var datatime = DateTime.Now;
  13315. // if (limittime>0)
  13316. // datatime = DateTime.Now.AddDays(limittime);
  13317. // else
  13318. // datatime = DateTime.Now.AddDays(6);
  13319. // if (Convert.ToDateTime(resdatetime) > datatime)
  13320. // {
  13321. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  13322. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  13323. // " with(nolock) where F_OffState = 1 and " +
  13324. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  13325. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  13326. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  13327. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  13328. // {
  13329. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  13330. // }
  13331. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  13332. // }
  13333. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  13334. }
  13335. if (statistics > 0)
  13336. {
  13337. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  13338. if (groupstatistics > 0)
  13339. newmodelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  13340. }
  13341. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  13342. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  13343. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  13344. newmodelT_Bus_AssignedInfo.F_State = 1;
  13345. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13346. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13347. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  13348. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13349. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  13350. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  13351. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  13352. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  13353. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  13354. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  13355. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  13356. {
  13357. #region 保存工单信息
  13358. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  13359. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  13360. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  13361. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  13362. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  13363. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  13364. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13365. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  13366. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13367. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13368. {
  13369. keyValuePairs3.Add("F_RemindDay", 1);
  13370. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  13371. }
  13372. keyValuePairs3.Add("F_IsReload", n + 1);
  13373. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  13374. if (!string.IsNullOrEmpty(resdatetime))
  13375. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  13376. keyValuePairs3.Add("F_IsOverdue", 0);
  13377. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13378. keyValuePairs3.Add("F_IsSms", 0);
  13379. // modelT_Bus_WorkOrder.F_IsSms = 0;
  13380. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  13381. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  13382. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  13383. keyValuePairs3.Add("F_Identification", 2);
  13384. // modelT_Bus_WorkOrder.F_Identification = 1;
  13385. keyValuePairs3.Add("F_Result", "");
  13386. // modelT_Bus_WorkOrder.F_Result = "";
  13387. keyValuePairs3.Add("F_DealDeptId", null);
  13388. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  13389. keyValuePairs3.Add("F_DealUser", "");
  13390. // modelT_Bus_WorkOrder.F_DealUser = "";
  13391. keyValuePairs3.Add("F_DealTime", null);
  13392. // modelT_Bus_WorkOrder.F_DealTime = null;
  13393. keyValuePairs3.Add("F_Note", "");
  13394. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  13395. {
  13396. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  13397. if (user != null && user.Count > 0)
  13398. {
  13399. foreach (var it in user)
  13400. {
  13401. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  13402. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  13403. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  13404. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  13405. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  13406. // "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  13407. }
  13408. }
  13409. #region 插入操作记录
  13410. #region 20191021调整为多个主办单位时调整
  13411. #endregion
  13412. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  13413. cbreasons = ",重办原因:" + cbreason;
  13414. #endregion
  13415. }
  13416. #endregion
  13417. }
  13418. else
  13419. {
  13420. return Error("退回失败");
  13421. }
  13422. }
  13423. }
  13424. }
  13425. #region 插入操作记录
  13426. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13427. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13428. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  13429. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13430. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13431. oper.F_Message = userinfo + " " + opt + "了工单" + cbreasons;
  13432. oper.F_CreateUser = User.F_UserCode;
  13433. oper.F_CreateTime = DateTime.Now;
  13434. oper.F_IsDelete = 0;
  13435. operBLL.Add(oper);
  13436. //推送消息表
  13437. #endregion
  13438. }
  13439. trans.Complete();
  13440. }
  13441. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  13442. }
  13443. else
  13444. {
  13445. return Error("已经审核过了");
  13446. }
  13447. }
  13448. else
  13449. {
  13450. return Error("工单不存在");
  13451. }
  13452. }
  13453. else
  13454. {
  13455. return Error("权限不足");
  13456. }
  13457. }
  13458. /// <summary>
  13459. /// 交办工单
  13460. /// </summary>
  13461. /// <returns></returns>
  13462. //[Authority]
  13463. public ActionResult AssignWorkOrder()
  13464. {
  13465. 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")
  13466. {
  13467. string workorderid = RequestString.GetFormString("workorderid");
  13468. int state = RequestString.GetInt("state", 0);
  13469. int assignid = RequestString.GetInt("assignid", 0);
  13470. int maindeptid = RequestString.GetInt("maindeptid", 0);
  13471. //string maindeptid = RequestString.GetFormString("maindeptid");
  13472. string otherdeptids = RequestString.GetFormString("otherdeptids");
  13473. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  13474. string assignedopinion = RequestString.GetFormString("assignedopinion");
  13475. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  13476. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  13477. {
  13478. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  13479. {
  13480. return Error("操作失败");
  13481. }
  13482. }
  13483. if (!string.IsNullOrEmpty(otherdeptids))
  13484. {
  13485. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  13486. {
  13487. return Error("主办单位不能出现在协办单位");
  13488. }
  13489. }
  13490. if (limittime < DateTime.Now)
  13491. {
  13492. return Error("办理时限不能小于当前时间");
  13493. }
  13494. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13495. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13496. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  13497. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  13498. {
  13499. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  13500. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  13501. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  13502. {
  13503. int aid = 0;
  13504. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13505. {
  13506. if (assignid == 0)
  13507. {
  13508. #region 插入交办记录
  13509. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13510. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  13511. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  13512. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  13513. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  13514. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  13515. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13516. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13517. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  13518. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13519. modelT_Bus_AssignedInfo.F_IsSure = 0;
  13520. modelT_Bus_AssignedInfo.F_IsReload = 0;
  13521. modelT_Bus_AssignedInfo.F_IsNext = 0;
  13522. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  13523. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  13524. #endregion
  13525. }
  13526. else
  13527. {
  13528. #region 修改交办记录
  13529. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  13530. if (modelT_Bus_AssignedInfo != null)
  13531. {
  13532. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  13533. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  13534. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  13535. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  13536. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  13537. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  13538. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13539. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13540. assignBLL.Update(modelT_Bus_AssignedInfo);
  13541. aid = modelT_Bus_AssignedInfo.F_Id;
  13542. }
  13543. #endregion
  13544. }
  13545. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  13546. {
  13547. #region 保存工单信息
  13548. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  13549. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  13550. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  13551. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  13552. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  13553. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13554. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13555. workorderBLL.Update(modelT_Bus_WorkOrder);
  13556. #endregion
  13557. #region 删除草稿信息
  13558. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13559. foreach (var cg in cglist)
  13560. {
  13561. cg.F_IsDelete = 1;
  13562. cg.F_DeleteUser = User.F_UserCode;
  13563. cg.F_DeleteTime = DateTime.Now;
  13564. assignBLL.Update(cg);
  13565. }
  13566. #endregion
  13567. #region 插入操作记录
  13568. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13569. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13570. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13571. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13572. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13573. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  13574. if (!string.IsNullOrEmpty(otherdeptids))
  13575. {
  13576. //string deptname = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  13577. string deptname = departmentBLL.GetDeptNames(otherdeptids);
  13578. oper.F_Message += ",协办单位:" + deptname;
  13579. }
  13580. oper.F_CreateUser = User.F_UserCode;
  13581. oper.F_CreateTime = DateTime.Now;
  13582. oper.F_IsDelete = 0;
  13583. operBLL.Add(oper);
  13584. ////推送消息表
  13585. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13586. //foreach (var u in users)
  13587. //{
  13588. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  13589. //}
  13590. #endregion
  13591. }
  13592. trans.Complete();
  13593. }
  13594. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  13595. }
  13596. else
  13597. {
  13598. return Error("已经交办过了");
  13599. }
  13600. }
  13601. else
  13602. {
  13603. return Error("操作失败");
  13604. }
  13605. }
  13606. else
  13607. {
  13608. return Error("权限不足");
  13609. }
  13610. }
  13611. /// <summary>
  13612. /// 派工单
  13613. /// </summary>
  13614. /// <returns></returns>
  13615. //[Authority]
  13616. public string SplitOrder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  13617. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion)
  13618. {
  13619. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  13620. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  13621. {
  13622. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  13623. {
  13624. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13625. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13626. {
  13627. #region 插入派单记录
  13628. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13629. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13630. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  13631. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  13632. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13633. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13634. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  13635. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  13636. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13637. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13638. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13639. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13640. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13641. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13642. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13643. #endregion
  13644. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  13645. {
  13646. #region 保存交办信息
  13647. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13648. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  13649. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13650. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13651. #endregion
  13652. #region 插入操作记录
  13653. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13654. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13655. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13656. oper.F_State = 4;
  13657. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13658. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  13659. oper.F_CreateUser = User.F_UserCode;
  13660. oper.F_CreateTime = DateTime.Now;
  13661. oper.F_IsDelete = 0;
  13662. operBLL.Add(oper);
  13663. //推送消息表
  13664. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13665. #endregion
  13666. }
  13667. trans.Complete();
  13668. }
  13669. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  13670. if (user != null && user.Count > 0)
  13671. {
  13672. foreach (var it in user)
  13673. {
  13674. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13675. {
  13676. continue;
  13677. }
  13678. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  13679. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  13680. //bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13681. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  13682. //string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13683. // modelT_Bus_WorkOrder.F_WorkOrderId);
  13684. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13685. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13686. else
  13687. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13688. }
  13689. }
  13690. //二级单位给三级单位转派都有短信提醒
  13691. return ("操作成功");
  13692. }
  13693. else
  13694. {
  13695. return ("操作失败");
  13696. }
  13697. }
  13698. else
  13699. {
  13700. return ("操作失败");
  13701. }
  13702. }
  13703. public void SplitOrderNew(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  13704. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion, Model.T_Sys_UserAccount Users)
  13705. {
  13706. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  13707. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  13708. {
  13709. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  13710. {
  13711. #region 插入派单记录
  13712. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13713. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13714. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  13715. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13716. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13717. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  13718. modelT_Bus_AssignedInfo_Next.F_CreateUser = Users.F_UserCode;
  13719. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13720. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13721. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13722. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13723. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13724. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13725. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13726. #endregion
  13727. string userinfo = Users.depname + "(" + Users.F_UserCode + ")";
  13728. string message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  13729. if (modelT_Bus_AssignedInfo_Next.F_Id > 0)
  13730. {
  13731. #region 保存工单信息
  13732. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13733. keyValuePairs.Add("F_MainDeptID3", deptinfo.F_DeptId.ToString());
  13734. modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
  13735. if (modelT_Bus_WorkOrder.F_WorkState == 8)
  13736. {
  13737. keyValuePairs.Add("F_WorkState", 8);
  13738. modelT_Bus_WorkOrder.F_WorkState = 8;
  13739. }
  13740. else
  13741. {
  13742. keyValuePairs.Add("F_WorkState", 4);
  13743. modelT_Bus_WorkOrder.F_WorkState = 4;
  13744. }
  13745. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13746. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13747. modelT_Bus_AssignedInfo.F_NextUser = Users.F_UserCode;
  13748. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13749. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13750. #endregion
  13751. #region 插入操作记录
  13752. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13753. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13754. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13755. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13756. oper.F_Message = message;
  13757. oper.F_CreateUser = Users.F_UserCode;
  13758. oper.F_CreateTime = DateTime.Now;
  13759. oper.F_IsDelete = 0;
  13760. operBLL.Add(oper);
  13761. #region 短信通知
  13762. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  13763. if (user != null && user.Count > 0)
  13764. {
  13765. foreach (var it in user)
  13766. {
  13767. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13768. {
  13769. continue;
  13770. }
  13771. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  13772. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  13773. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13774. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  13775. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13776. // modelT_Bus_WorkOrder.F_WorkOrderId);
  13777. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13778. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13779. else
  13780. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  13781. }
  13782. }
  13783. #endregion
  13784. #endregion
  13785. }
  13786. }
  13787. }
  13788. }
  13789. /// <summary>
  13790. /// 派工单
  13791. /// </summary>
  13792. /// <returns></returns>
  13793. //[Authority]
  13794. public ActionResult SplitWorkOrder()
  13795. {
  13796. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13797. {
  13798. string workorderid = RequestString.GetFormString("workorderid");
  13799. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  13800. string maindeptid = RequestString.GetFormString("maindeptid");
  13801. string otherdeptids = RequestString.GetFormString("otherdeptids");
  13802. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  13803. string assignedopinion = RequestString.GetFormString("assignedopinion");
  13804. string files = RequestString.GetFormString("files");
  13805. int state = RequestString.GetInt("state", 0);
  13806. // int nextid = RequestString.GetInt("nextid", 0);
  13807. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13808. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13809. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  13810. if (string.IsNullOrEmpty(maindeptid))
  13811. return Error("请选择部门");
  13812. var deptinfo = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid.Trim() + ")");
  13813. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  13814. {
  13815. if (limittime > modelT_Bus_AssignedInfo.F_LimitTime)
  13816. {
  13817. return Error("办理时限不能大于当前办理时限");
  13818. }
  13819. int type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13820. 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"))
  13821. {
  13822. 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)
  13823. {
  13824. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13825. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13826. {
  13827. if (deptinfo.Count == 1)
  13828. {
  13829. #region 插入派单记录
  13830. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13831. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13832. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  13833. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo[0].F_DeptId;//主办单位id
  13834. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  13835. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  13836. else
  13837. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13838. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13839. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  13840. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  13841. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13842. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13843. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13844. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13845. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13846. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13847. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13848. #endregion
  13849. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  13850. {
  13851. #region 保存交办信息
  13852. if (modelT_Bus_AssignedInfo.F_IsNext != 3 && modelT_Bus_AssignedInfo.F_FeedbackTime
  13853. == null)
  13854. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13855. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  13856. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13857. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13858. #endregion
  13859. #region 保存工单信息
  13860. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13861. keyValuePairs.Add("F_MainDeptID3", maindeptid.ToString());
  13862. //modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  13863. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13864. #endregion
  13865. #region 插入操作记录
  13866. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13867. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13868. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13869. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13870. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13871. oper.F_Message = userinfo + " 派单给单位:" + deptinfo[0].F_DeptName;
  13872. oper.F_CreateUser = User.F_UserCode;
  13873. oper.F_CreateTime = DateTime.Now;
  13874. oper.F_IsDelete = 0;
  13875. operBLL.Add(oper);
  13876. //推送消息表
  13877. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13878. #endregion
  13879. }
  13880. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo[0].F_DeptId + " ");
  13881. if (user != null && user.Count > 0)
  13882. {
  13883. foreach (var it in user)
  13884. {
  13885. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  13886. {
  13887. continue;
  13888. }
  13889. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  13890. // string msg = workorderid;
  13891. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13892. string mag = "[\"" + workorderid + "\"]";
  13893. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  13894. // workorderid);
  13895. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  13896. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  13897. else
  13898. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  13899. }
  13900. }
  13901. //二级单位给三级单位转派都有短信提醒
  13902. trans.Complete();
  13903. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  13904. }
  13905. else
  13906. {
  13907. #region 插入派单记录
  13908. foreach (var it in deptinfo)
  13909. {
  13910. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13911. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  13912. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  13913. modelT_Bus_AssignedInfo_Next.F_MainDeptId = it.F_DeptId;//主办单位id
  13914. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  13915. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  13916. else
  13917. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  13918. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  13919. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  13920. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  13921. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  13922. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  13923. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  13924. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  13925. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  13926. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  13927. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  13928. #endregion
  13929. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  13930. {
  13931. #region 保存交办信息
  13932. modelT_Bus_AssignedInfo.F_IsNext = 1;
  13933. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  13934. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  13935. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  13936. #endregion
  13937. #region 保存工单信息
  13938. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13939. keyValuePairs.Add("F_MainDeptID3", maindeptid.ToString());
  13940. //modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  13941. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13942. #endregion
  13943. #region 插入操作记录
  13944. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13945. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13946. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13947. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13948. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13949. oper.F_Message = userinfo + " 派单给单位:" + it.F_DeptName;
  13950. oper.F_CreateUser = User.F_UserCode;
  13951. oper.F_CreateTime = DateTime.Now;
  13952. oper.F_IsDelete = 0;
  13953. operBLL.Add(oper);
  13954. #endregion
  13955. }
  13956. }
  13957. trans.Complete();
  13958. return Success("操作成功");
  13959. }
  13960. }
  13961. }
  13962. else
  13963. {
  13964. return Error("已经派过单了");
  13965. }
  13966. }
  13967. else
  13968. {
  13969. return Error("操作失败");
  13970. }
  13971. }
  13972. else
  13973. {
  13974. return Error("操作失败");
  13975. }
  13976. }
  13977. else
  13978. {
  13979. return Error("权限不足");
  13980. }
  13981. }
  13982. /// <summary>
  13983. ///催单短信
  13984. /// </summary>
  13985. /// <returns></returns>
  13986. //[Authority]
  13987. public ActionResult Reminders(string workorderid)
  13988. {
  13989. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  13990. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13991. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13992. if (modelT_Bus_AssignedInfo.F_IsNext == 1 || modelT_Bus_AssignedInfo.F_IsNext == 2)
  13993. {
  13994. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  13995. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_AssignedInfo_Next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  13996. if (user != null)
  13997. {
  13998. foreach (var iv in user)
  13999. {
  14000. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  14001. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode, workorderid);
  14002. //msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  14003. //if (!string.IsNullOrEmpty(iv.F_Mobile))
  14004. //{
  14005. // // string msg = workorderid;
  14006. // //bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "", workorderid);
  14007. // string mag = "[\"" + workorderid + "\"]";
  14008. // string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  14009. // workorderid);
  14010. //}
  14011. }
  14012. }
  14013. }
  14014. else
  14015. {
  14016. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_WorkOrder.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  14017. if (user != null)
  14018. {
  14019. foreach (var iv in user)
  14020. {
  14021. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  14022. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode, workorderid);
  14023. //msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  14024. //if (!string.IsNullOrEmpty(iv.F_Mobile))
  14025. //{
  14026. // string mag = "[\"" + workorderid + "\"]";
  14027. // string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  14028. // workorderid);
  14029. //}
  14030. }
  14031. }
  14032. }
  14033. return Success("发送成功");
  14034. }
  14035. /// <summary>
  14036. /// 撤回待审核转办
  14037. /// 话务员操作撤回自己提交的工单
  14038. /// </summary>
  14039. /// <returns></returns>
  14040. //[Authority]
  14041. public ActionResult WithdrawDWorkOrder()
  14042. {
  14043. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY")
  14044. {
  14045. string workorderid = RequestString.GetFormString("workorderid");
  14046. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14047. if (modelT_Bus_WorkOrder != null && modelT_Bus_WorkOrder.F_CreateUser == User.F_UserCode && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  14048. {
  14049. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14050. {
  14051. #region 保存工单信息
  14052. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14053. keyValuePairs.Add("F_WorkState", 0);
  14054. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  14055. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14056. #endregion
  14057. #region 插入操作记录
  14058. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14059. string msg = userinfo + " 撤回了工单";
  14060. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msg, User.F_UserCode);
  14061. #endregion
  14062. trans.Complete();
  14063. }
  14064. return Success("操作成功");
  14065. }
  14066. else
  14067. {
  14068. return Error("操作失败");
  14069. }
  14070. }
  14071. else
  14072. {
  14073. return Error("权限不足");
  14074. }
  14075. }
  14076. /// <summary>
  14077. /// 收回工单
  14078. /// </summary>
  14079. /// <returns></returns>
  14080. //[Authority]
  14081. public ActionResult TakeBackWorkOrder()
  14082. {
  14083. 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")
  14084. {
  14085. string workorderid = RequestString.GetFormString("workorderid");
  14086. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14087. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14088. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  14089. {
  14090. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  14091. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  14092. {
  14093. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14094. {
  14095. #region 插入交办记录
  14096. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  14097. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14098. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  14099. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  14100. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  14101. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  14102. AssignedInfo.F_State = 0;//0草稿 1正式
  14103. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  14104. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  14105. AssignedInfo.F_IsDelete = 0;
  14106. AssignedInfo.F_IsOverdue = 0;
  14107. AssignedInfo.F_IsSure = 0;
  14108. AssignedInfo.F_IsReload = 0;
  14109. AssignedInfo.F_IsNext = 0;
  14110. assignBLL.Add(AssignedInfo);
  14111. #endregion
  14112. #region 保存工单信息
  14113. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  14114. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14115. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  14116. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  14117. keyValuePairs.Add("F_MainDeptId", null);
  14118. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  14119. keyValuePairs.Add("F_OtherDeptIds", "");
  14120. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  14121. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14122. #endregion
  14123. #region 删除交办信息
  14124. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  14125. modelT_Bus_AssignedInfo.F_DeleteUser = User.F_UserCode;
  14126. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  14127. assignBLL.Update(modelT_Bus_AssignedInfo);
  14128. #endregion
  14129. #region 删除派单信息
  14130. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  14131. foreach (var cg in pdlist)
  14132. {
  14133. cg.F_IsDelete = 1;
  14134. cg.F_DeleteUser = User.F_UserCode;
  14135. cg.F_DeleteTime = DateTime.Now;
  14136. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  14137. }
  14138. #endregion
  14139. #region 删除二级单位处理信息
  14140. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  14141. foreach (var cg in cglist)
  14142. {
  14143. cg.F_IsDelete = 1;
  14144. cg.F_DeleteUser = User.F_UserCode;
  14145. cg.F_DeleteTime = DateTime.Now;
  14146. new BLL.T_Bus_Feedback_Next().Update(cg);
  14147. }
  14148. #endregion
  14149. var modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State !=2 and F_IsDelete = 0 and F_Type = 1 and F_WorkOrderId = '"
  14150. + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc").FirstOrDefault();
  14151. if (modelT_Bus_RemindRecord != null)
  14152. {
  14153. if (modelT_Bus_RemindRecord.F_State != 2)
  14154. {
  14155. modelT_Bus_RemindRecord.F_State = 0;
  14156. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  14157. }
  14158. }
  14159. #region 插入操作记录
  14160. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14161. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14162. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14163. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14164. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14165. oper.F_Message = userinfo + " 收回了工单";
  14166. oper.F_CreateUser = User.F_UserCode;
  14167. oper.F_CreateTime = DateTime.Now;
  14168. oper.F_IsDelete = 0;
  14169. operBLL.Add(oper);
  14170. #endregion
  14171. trans.Complete();
  14172. }
  14173. return Success("操作成功");
  14174. }
  14175. else
  14176. {
  14177. return Error("单位已查收,不能收回");
  14178. }
  14179. }
  14180. else
  14181. {
  14182. return Error("操作失败");
  14183. }
  14184. }
  14185. else
  14186. {
  14187. return Error("权限不足");
  14188. }
  14189. }
  14190. /// <summary>
  14191. /// 查收工单
  14192. /// </summary>
  14193. /// <returns></returns>
  14194. //[Authority]
  14195. public ActionResult ReceiveWorkOrder()
  14196. {
  14197. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14198. {
  14199. string workorderid = RequestString.GetFormString("workorderid");
  14200. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14201. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14202. //操作前新增判断状态
  14203. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14204. 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)
  14205. {
  14206. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  14207. {
  14208. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14209. {
  14210. #region 保存工单信息
  14211. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  14212. // int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=4 where F_Id ='" + modelT_Bus_WorkOrder .F_Id + "'");
  14213. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14214. keyValuePairs.Add("F_WorkState", 4);
  14215. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14216. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  14217. // workorderBLL.Update(modelT_Bus_WorkOrder);
  14218. #endregion
  14219. #region 保存查收信息
  14220. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  14221. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  14222. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  14223. assignBLL.Update(modelT_Bus_AssignedInfo);
  14224. #endregion
  14225. #region 保存明细信息
  14226. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  14227. {
  14228. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  14229. foreach (string strid in strids)
  14230. {
  14231. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  14232. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14233. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  14234. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  14235. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  14236. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  14237. modelT_Bus_AssignedItemInfo.F_State = 1;
  14238. modelT_Bus_AssignedItemInfo.F_Type = 2;
  14239. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14240. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  14241. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  14242. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  14243. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  14244. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  14245. }
  14246. }
  14247. #endregion
  14248. #region 插入操作记录
  14249. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14250. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14251. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14252. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14253. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14254. oper.F_Message = userinfo + " 查收了工单";
  14255. oper.F_CreateUser = User.F_UserCode;
  14256. oper.F_CreateTime = DateTime.Now;
  14257. oper.F_IsDelete = 0;
  14258. int n = operBLL.Add(oper);
  14259. #endregion
  14260. Task.Run(() =>
  14261. {
  14262. pushprocess_info(n, "case_process_info", "查收工单");
  14263. }).ContinueWith(p =>
  14264. {
  14265. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  14266. });
  14267. trans.Complete();
  14268. }
  14269. return Success("操作成功");
  14270. }
  14271. else
  14272. {
  14273. return Error("单位已查收,不能再次查收");
  14274. }
  14275. }
  14276. else
  14277. {
  14278. return Error("操作失败");
  14279. }
  14280. }
  14281. else
  14282. {
  14283. return Error("权限不足");
  14284. }
  14285. }
  14286. /// <summary>
  14287. /// 批量查收工单
  14288. /// </summary>
  14289. /// <returns></returns>
  14290. //[Authority]
  14291. public ActionResult ReceiveWorkOrderBatch(string ids)
  14292. {
  14293. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14294. {
  14295. string[] strids = ids.Split(','); string errids1 = "", errids = "";
  14296. foreach (string str in strids)
  14297. {
  14298. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  14299. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  14300. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive
  14301. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  14302. && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14303. {
  14304. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  14305. {
  14306. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14307. {
  14308. #region 保存工单信息
  14309. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14310. keyValuePairs.Add("F_WorkState", 4);
  14311. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14312. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  14313. #endregion
  14314. #region 保存查收信息
  14315. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  14316. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  14317. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  14318. assignBLL.Update(modelT_Bus_AssignedInfo);
  14319. #endregion
  14320. #region 保存明细信息
  14321. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  14322. {
  14323. string[] strids1 = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  14324. foreach (string strid in strids1)
  14325. {
  14326. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  14327. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14328. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  14329. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  14330. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  14331. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  14332. modelT_Bus_AssignedItemInfo.F_State = 1;
  14333. modelT_Bus_AssignedItemInfo.F_Type = 2;
  14334. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14335. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  14336. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  14337. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  14338. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  14339. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  14340. }
  14341. }
  14342. #endregion
  14343. #region 插入操作记录
  14344. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14345. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14346. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14347. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14348. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14349. oper.F_Message = userinfo + " 查收了工单";
  14350. oper.F_CreateUser = User.F_UserCode;
  14351. oper.F_CreateTime = DateTime.Now;
  14352. oper.F_IsDelete = 0;
  14353. int n = operBLL.Add(oper);
  14354. #endregion
  14355. Task.Run(() =>
  14356. {
  14357. pushprocess_info(n, "case_process_info", "查收工单");
  14358. }).ContinueWith(p =>
  14359. {
  14360. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  14361. });
  14362. trans.Complete();
  14363. }
  14364. }
  14365. else
  14366. {
  14367. errids1 += str + ",";
  14368. }
  14369. }
  14370. else
  14371. {
  14372. errids += str + ",";
  14373. }
  14374. }
  14375. if (errids1 == "" && errids == "")
  14376. return Success("操作成功");
  14377. else
  14378. {
  14379. string msg = "";
  14380. if (errids1 != "")
  14381. msg += ",工单编号为" + errids1.Trim(',') + "的工单已查收";
  14382. if (errids != "")
  14383. msg += ",工单编号为" + errids.Trim(',') + "的工单操作失败";
  14384. return Error("部分工单操作失败" + msg);
  14385. }
  14386. }
  14387. else
  14388. {
  14389. return Error("权限不足");
  14390. }
  14391. }
  14392. /// <summary>
  14393. /// 审核退回重办
  14394. /// </summary>
  14395. /// <returns></returns>
  14396. //[Authority]
  14397. public ActionResult AuditWorkorders()
  14398. {
  14399. if (User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14400. {
  14401. string workorderid = RequestString.GetFormString("workorderid");
  14402. string cbreason = RequestString.GetFormString("cbreason");
  14403. int state = RequestString.GetInt("state", 0);
  14404. int limittime = RequestString.GetInt("limittime", 0);
  14405. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14406. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14407. //操作前新增判断状态
  14408. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14409. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  14410. {
  14411. if (state > 0)
  14412. {
  14413. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  14414. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  14415. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  14416. 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());
  14417. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  14418. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14419. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14420. "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];
  14421. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  14422. if (!string.IsNullOrEmpty(resdatetime))
  14423. {
  14424. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  14425. var datatime = DateTime.Now;
  14426. if (limittime > 0)
  14427. resdatetime = GetLimittime(limittime);
  14428. else
  14429. resdatetime = GetLimittime(6);
  14430. // if (Convert.ToDateTime(resdatetime) > datatime)
  14431. // {
  14432. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  14433. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  14434. // " with(nolock) where F_OffState = 1 and " +
  14435. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  14436. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  14437. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  14438. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  14439. // {
  14440. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  14441. // }
  14442. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  14443. // }
  14444. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  14445. }
  14446. if (modelT_Bus_AssignedInfo.F_IsPerform == 2)
  14447. {
  14448. modelT_Bus_AssignedInfo.F_IsPerform = 1;
  14449. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  14450. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14451. }
  14452. else if (modelT_Bus_AssignedInfo.F_IsPerform == 3)
  14453. {
  14454. modelT_Bus_AssignedInfo.F_IsPerform = null;
  14455. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  14456. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14457. }
  14458. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  14459. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  14460. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = "";//交办意见
  14461. newmodelT_Bus_AssignedInfo.F_State = 1;
  14462. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  14463. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  14464. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  14465. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  14466. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  14467. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  14468. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  14469. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  14470. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  14471. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  14472. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  14473. {
  14474. #region 保存工单信息
  14475. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  14476. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  14477. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  14478. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  14479. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  14480. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  14481. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  14482. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14483. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  14484. {
  14485. keyValuePairs3.Add("F_RemindDay", 1);
  14486. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  14487. }
  14488. keyValuePairs3.Add("F_IsReload", n + 1);
  14489. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  14490. if (!string.IsNullOrEmpty(resdatetime))
  14491. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  14492. keyValuePairs3.Add("F_IsOverdue", 0);
  14493. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  14494. keyValuePairs3.Add("F_IsSms", 0);
  14495. // modelT_Bus_WorkOrder.F_IsSms = 0;
  14496. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  14497. keyValuePairs3.Add("F_Identification", 1);
  14498. // modelT_Bus_WorkOrder.F_Identification = 1;
  14499. keyValuePairs3.Add("F_Result", "");
  14500. // modelT_Bus_WorkOrder.F_Result = "";
  14501. keyValuePairs3.Add("F_DealDeptId", null);
  14502. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  14503. keyValuePairs3.Add("F_DealUser", "");
  14504. // modelT_Bus_WorkOrder.F_DealUser = "";
  14505. keyValuePairs3.Add("F_DealTime", null);
  14506. // modelT_Bus_WorkOrder.F_DealTime = null;
  14507. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  14508. {
  14509. #region 插入操作记录
  14510. #region 20191021调整为多个主办单位时调整
  14511. #endregion
  14512. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了退回重办";
  14513. string cbreasons = ",审核原因:" + cbreason;
  14514. #region 插入操作记录
  14515. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14516. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14517. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14518. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14519. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14520. oper.F_Message = userinfo + opt + cbreasons;
  14521. oper.F_CreateUser = User.F_UserCode;
  14522. oper.F_CreateTime = DateTime.Now;
  14523. oper.F_IsDelete = 0;
  14524. int v = operBLL.Add(oper);
  14525. #endregion
  14526. #endregion
  14527. }
  14528. #endregion
  14529. }
  14530. else
  14531. {
  14532. return Error("退回失败");
  14533. }
  14534. }
  14535. else
  14536. {
  14537. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  14538. var modeloper = new BLL.T_Bus_Operation().
  14539. GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State =6 order by F_CreateTime desc");
  14540. var modeloper1 = new BLL.T_Bus_Operation().
  14541. GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State =7 order by F_CreateTime desc");
  14542. int workorder = (int)EnumWorkState.dealed;
  14543. if (modeloper1 != null && modeloper1.Count > 0)
  14544. {
  14545. if (modeloper != null && modeloper.Count > 0)
  14546. {
  14547. if (modeloper1.FirstOrDefault().F_CreateTime > modeloper.FirstOrDefault().F_CreateTime)
  14548. workorder = (int)EnumWorkState.visit;
  14549. }
  14550. else
  14551. {
  14552. workorder = (int)EnumWorkState.visit;
  14553. }
  14554. }
  14555. keyValuePairs3.Add("F_WorkState", workorder);
  14556. modelT_Bus_WorkOrder.F_WorkState = workorder;
  14557. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了退回重办";
  14558. string cbreasons = ",审核原因:" + cbreason;
  14559. #region 插入操作记录
  14560. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  14561. {
  14562. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14563. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14564. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14565. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14566. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14567. oper.F_Message = userinfo + opt + cbreasons;
  14568. oper.F_CreateUser = User.F_UserCode;
  14569. oper.F_CreateTime = DateTime.Now;
  14570. oper.F_IsDelete = 0;
  14571. int v = operBLL.Add(oper);
  14572. }
  14573. #endregion
  14574. }
  14575. }
  14576. else
  14577. {
  14578. return Error("操作失败");
  14579. }
  14580. return Success("操作成功");
  14581. }
  14582. else
  14583. {
  14584. return Error("权限不足");
  14585. }
  14586. }
  14587. /// <summary>
  14588. /// 退回工单
  14589. /// </summary>
  14590. /// <returns></returns>
  14591. //[Authority]
  14592. public ActionResult RebackWorkOrder()
  14593. {
  14594. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14595. {
  14596. string workorderid = RequestString.GetFormString("workorderid");
  14597. string backreason = RequestString.GetFormString("backreason");
  14598. string file = RequestString.GetFormString("file");
  14599. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14600. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14601. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14602. {
  14603. // if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  14604. // {
  14605. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14606. {
  14607. #region 保存工单信息
  14608. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  14609. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14610. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.auditreback);
  14611. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  14612. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14613. #endregion
  14614. #region 插入退回申请信息
  14615. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  14616. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14617. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  14618. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  14619. model_T_Bus_Feedback.F_IsAudit = 0;
  14620. model_T_Bus_Feedback.F_IsDelete = 0;
  14621. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  14622. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  14623. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  14624. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  14625. model_T_Bus_Feedback.F_State = 1;
  14626. model_T_Bus_Feedback.F_Type = 3;
  14627. model_T_Bus_Feedback.F_File = file;
  14628. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  14629. #endregion
  14630. #region 保存交办信息
  14631. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  14632. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  14633. //{
  14634. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  14635. //}
  14636. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  14637. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  14638. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  14639. assignBLL.Update(modelT_Bus_AssignedInfo);
  14640. #endregion
  14641. #region 插入操作记录
  14642. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14643. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14644. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14645. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14646. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14647. string message = "";
  14648. if (!string.IsNullOrEmpty(backreason))
  14649. {
  14650. message = ",退回原因:" + backreason;
  14651. }
  14652. oper.F_Message = userinfo + " 申请退回了工单" + message;
  14653. oper.F_CreateUser = User.F_UserCode;
  14654. oper.F_CreateTime = DateTime.Now;
  14655. oper.F_IsDelete = 0;
  14656. operBLL.Add(oper);
  14657. //推送消息表
  14658. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14659. #endregion
  14660. trans.Complete();
  14661. }
  14662. return Success("操作成功");
  14663. // }
  14664. // else
  14665. // {
  14666. // return Error("单位已查收,不能退回");
  14667. // }
  14668. }
  14669. else
  14670. {
  14671. return Error("操作失败");
  14672. }
  14673. }
  14674. else
  14675. {
  14676. return Error("权限不足");
  14677. }
  14678. }
  14679. /// <summary>
  14680. /// 审核退回工单
  14681. /// </summary>
  14682. /// <returns></returns>
  14683. //[Authority]
  14684. public ActionResult AuditRebackWorkOrder()
  14685. {
  14686. 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")
  14687. {
  14688. string workorderid = RequestString.GetFormString("workorderid");
  14689. int state = RequestString.GetInt("state", 0);
  14690. string reason = RequestString.GetFormString("reason");
  14691. int isjb = RequestString.GetInt("isjb", 0);
  14692. int rebackid = RequestString.GetInt("rebackid", 0);
  14693. int zb = RequestString.GetInt("zb", 0);
  14694. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14695. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  14696. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14697. Model.T_Bus_AssignedInfo_Next modelAssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14698. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  14699. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  14700. {
  14701. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  14702. //{
  14703. // return Error("操作失败");
  14704. //}
  14705. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14706. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  14707. {
  14708. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14709. {
  14710. var rre = "";
  14711. #region 保存查收信息
  14712. modelT_Bus_Feedback.F_IsAudit = state;//审核
  14713. modelT_Bus_Feedback.F_AuditUser = User.F_UserCode;
  14714. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  14715. modelT_Bus_Feedback.F_AuditReason = reason;
  14716. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  14717. #endregion
  14718. string strmsg = "同意";
  14719. if (modelT_Bus_Feedback.F_IsAudit == 1)
  14720. {
  14721. #region 插入交办记录
  14722. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  14723. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14724. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  14725. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  14726. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  14727. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  14728. AssignedInfo.F_State = 0;//0草稿 1正式
  14729. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  14730. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  14731. AssignedInfo.F_IsDelete = 0;
  14732. AssignedInfo.F_IsOverdue = 0;
  14733. AssignedInfo.F_IsSure = 0;
  14734. AssignedInfo.F_IsNext = 0;
  14735. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  14736. assignBLL.Add(AssignedInfo);
  14737. #endregion
  14738. #region 保存交办信息
  14739. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  14740. assignBLL.Update(modelT_Bus_AssignedInfo);
  14741. #endregion
  14742. #region 保存工单信息
  14743. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  14744. keyValuePairs.Add("F_MainDeptId", null);
  14745. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  14746. keyValuePairs.Add("F_IsSendBack", 1);
  14747. // modelT_Bus_WorkOrder.F_IsSendBack = 1;
  14748. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  14749. keyValuePairs.Add("F_LimitTime", null);
  14750. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  14751. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14752. #endregion
  14753. if (modelAssignedInfo_Next != null)
  14754. {
  14755. modelAssignedInfo_Next.F_State = 2;
  14756. modelAssignedInfo_Next.F_IsNotice = 2;
  14757. new BLL.T_Bus_AssignedInfo_Next().Update(modelAssignedInfo_Next);
  14758. }
  14759. if (zb == 0)
  14760. {
  14761. if (modelT_Bus_RemindRecord.F_State != 2)
  14762. {
  14763. modelT_Bus_RemindRecord.F_State = 0;
  14764. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  14765. }
  14766. }
  14767. }
  14768. else
  14769. {
  14770. #region 保存工单信息
  14771. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  14772. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_Feedback.F_CreateTime.Value);
  14773. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  14774. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime
  14775. .Value.AddHours(tss));
  14776. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  14777. // .Value.AddHours(tss);
  14778. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  14779. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//待查收
  14780. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14781. 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");
  14782. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  14783. assignBLL.Update(modelT_Bus_AssignedInfo);
  14784. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  14785. {
  14786. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  14787. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  14788. .AddHours(tss);
  14789. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  14790. }
  14791. #endregion
  14792. #region 保存交办信息
  14793. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  14794. modelT_Bus_AssignedInfo.F_IsSure = 4;
  14795. modelT_Bus_AssignedInfo.F_SureUser = "";
  14796. modelT_Bus_AssignedInfo.F_SureTime = null;
  14797. assignBLL.Update(modelT_Bus_AssignedInfo);
  14798. #endregion
  14799. strmsg = "拒绝";
  14800. }
  14801. #region 插入操作记录
  14802. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14803. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14804. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14805. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14806. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14807. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  14808. oper.F_CreateUser = User.F_UserCode;
  14809. oper.F_CreateTime = DateTime.Now;
  14810. oper.F_IsDelete = 0;
  14811. operBLL.Add(oper);
  14812. //推送消息表
  14813. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14814. #endregion
  14815. //if (modelT_Bus_AssignedInfo.F_MainDeptId == 304)
  14816. //{
  14817. // rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(), reason, User.F_UserCode).ToString();
  14818. //}
  14819. if (isjb > 0)
  14820. {
  14821. if (modelT_Bus_Feedback.F_IsAudit == 1)
  14822. {
  14823. 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")
  14824. {
  14825. string maindeptid = RequestString.GetFormString("maindeptid");
  14826. string otherdeptids = RequestString.GetFormString("otherdeptids");
  14827. int limittime = RequestString.GetInt("limittime", 0);
  14828. string limittimes = RequestString.GetString("limittimes");
  14829. string resdatetime = "";
  14830. if (limittime > 0)
  14831. {
  14832. resdatetime = GetLimittime(limittime);
  14833. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  14834. // DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  14835. // "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];
  14836. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  14837. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  14838. // var datatime = DateTime.Now.AddDays(limittime);
  14839. // if (Convert.ToDateTime(resdatetime) > datatime)
  14840. // {
  14841. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  14842. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  14843. // " with(nolock) where F_OffState = 1 and " +
  14844. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  14845. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  14846. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  14847. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  14848. // {
  14849. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  14850. // }
  14851. // // 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"); ;
  14852. // }
  14853. }
  14854. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  14855. string assignedopinion = RequestString.GetFormString("assignedopinion");
  14856. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  14857. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  14858. {
  14859. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  14860. {
  14861. return Error("操作失败");
  14862. }
  14863. }
  14864. if (!string.IsNullOrEmpty(otherdeptids))
  14865. {
  14866. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  14867. if (both.Count() > 0)
  14868. {
  14869. return Error("主办单位不能出现在协办单位");
  14870. }
  14871. }
  14872. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14873. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  14874. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  14875. {
  14876. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  14877. {
  14878. int aid = 0;
  14879. if (deptlist.Count == 1)
  14880. {
  14881. var deptinfo = deptlist.FirstOrDefault();
  14882. #region 插入交办记录
  14883. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14884. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  14885. if (modelT_Bus_WorkOrder.F_Level == 2)
  14886. {
  14887. try
  14888. {
  14889. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  14890. }
  14891. catch
  14892. {
  14893. return Error("请选择正确的时间");
  14894. }
  14895. }
  14896. else
  14897. {
  14898. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  14899. }
  14900. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  14901. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14902. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14903. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  14904. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  14905. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  14906. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  14907. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  14908. modelT_Bus_AssignedInfo.F_IsSure = 0;
  14909. modelT_Bus_AssignedInfo.F_IsReload = 0;
  14910. modelT_Bus_AssignedInfo.F_IsNext = 0;
  14911. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  14912. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  14913. #endregion
  14914. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  14915. {
  14916. #region 保存工单信息
  14917. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  14918. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  14919. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  14920. if (modelT_Bus_WorkOrder.F_Level == 2)
  14921. {
  14922. try
  14923. {
  14924. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  14925. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  14926. }
  14927. catch
  14928. {
  14929. return Error("请选择正确的时间");
  14930. }
  14931. }
  14932. else
  14933. {
  14934. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  14935. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  14936. }
  14937. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  14938. // modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  14939. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  14940. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  14941. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  14942. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  14943. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  14944. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14945. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14946. #endregion
  14947. #region 删除草稿信息
  14948. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14949. foreach (var cg in cglist)
  14950. {
  14951. cg.F_IsDelete = 1;
  14952. cg.F_DeleteUser = User.F_UserCode;
  14953. cg.F_DeleteTime = DateTime.Now;
  14954. assignBLL.Update(cg);
  14955. }
  14956. #endregion
  14957. #region 插入操作记录
  14958. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  14959. if (!string.IsNullOrEmpty(otherdeptids))
  14960. {
  14961. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  14962. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  14963. msgss += ",协办单位:" + deptname1;
  14964. }
  14965. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  14966. //推送消息表
  14967. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  14968. //foreach (var u in users)
  14969. //{
  14970. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  14971. //}
  14972. #endregion
  14973. }
  14974. }
  14975. else
  14976. {
  14977. string newids = ""; string errdeptid = ""; string deptname = "";
  14978. foreach (var deptinfo in deptlist)
  14979. {
  14980. deptname += deptinfo.F_DeptName + ",";
  14981. #region 新增工单
  14982. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  14983. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  14984. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  14985. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  14986. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  14987. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  14988. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  14989. {
  14990. errdeptid += deptinfo.F_DeptName + ",";
  14991. continue;
  14992. }
  14993. #endregion
  14994. #region 交办
  14995. #region 插入交办记录
  14996. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  14997. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  14998. if (modelT_Bus_WorkOrder.F_Level == 2)
  14999. {
  15000. try
  15001. {
  15002. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  15003. }
  15004. catch
  15005. {
  15006. return Error("请选择正确的时间");
  15007. }
  15008. }
  15009. else
  15010. {
  15011. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  15012. }
  15013. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  15014. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  15015. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  15016. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  15017. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  15018. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  15019. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15020. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  15021. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15022. modelT_Bus_AssignedInfo.F_IsSure = 0;
  15023. modelT_Bus_AssignedInfo.F_IsReload = 0;
  15024. modelT_Bus_AssignedInfo.F_IsNext = 0;
  15025. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  15026. #endregion
  15027. #endregion
  15028. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  15029. {
  15030. #region 保存工单信息
  15031. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15032. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.receive);
  15033. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  15034. if (modelT_Bus_WorkOrder.F_Level == 2)
  15035. {
  15036. try
  15037. {
  15038. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  15039. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  15040. }
  15041. catch
  15042. {
  15043. return Error("请选择正确的时间");
  15044. }
  15045. }
  15046. else
  15047. {
  15048. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  15049. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  15050. }
  15051. keyValuePairs1.Add("F_MainDeptId", Convert.ToDateTime(deptinfo.F_DeptId));
  15052. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  15053. keyValuePairs1.Add("F_OtherDeptIds", otherdeptids);
  15054. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  15055. keyValuePairs1.Add("F_AssignUser", User.F_UserCode);
  15056. // modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  15057. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  15058. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  15059. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  15060. #endregion
  15061. #region 删除草稿信息
  15062. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  15063. foreach (var cg in cglist)
  15064. {
  15065. cg.F_IsDelete = 1;
  15066. cg.F_DeleteUser = User.F_UserCode;
  15067. cg.F_DeleteTime = DateTime.Now;
  15068. assignBLL.Update(cg);
  15069. }
  15070. #endregion
  15071. #region 插入操作记录
  15072. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  15073. if (!string.IsNullOrEmpty(otherdeptids))
  15074. {
  15075. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  15076. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  15077. msgss += ",协办单位:" + deptname1;
  15078. }
  15079. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  15080. //推送消息表
  15081. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  15082. //foreach (var u in users)
  15083. //{
  15084. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  15085. //}
  15086. #endregion
  15087. }
  15088. Task.Run(() =>
  15089. {
  15090. pushcase_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  15091. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  15092. {
  15093. pushmaterial_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  15094. }
  15095. }).ContinueWith(p =>
  15096. {
  15097. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15098. });
  15099. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  15100. }
  15101. newids = newids.Trim(',');
  15102. var msgs = "";
  15103. if (errdeptid == "")
  15104. {
  15105. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  15106. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.finish);
  15107. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  15108. keyValuePairs2.Add("F_CloseTime", DateTime.Now);
  15109. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  15110. keyValuePairs2.Add("F_CloseUser", User.F_UserCode);
  15111. //modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  15112. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  15113. msgs = userinfo + " 交办多单位:" + deptname + "关闭此工单并生成新工单,新工单编号为:" + newids;
  15114. }
  15115. else
  15116. {
  15117. errdeptid = errdeptid.Trim(',');
  15118. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  15119. }
  15120. #region 插入操作记录
  15121. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  15122. #endregion
  15123. }
  15124. #region
  15125. #endregion
  15126. }
  15127. else
  15128. {
  15129. return Error("已经交办过了");
  15130. }
  15131. }
  15132. else
  15133. {
  15134. return Error("操作失败");
  15135. }
  15136. }
  15137. else
  15138. {
  15139. return Error("权限不足");
  15140. }
  15141. }
  15142. }
  15143. trans.Complete();
  15144. }
  15145. return Success("操作成功");
  15146. }
  15147. else
  15148. {
  15149. return Error("此审核已经处理");
  15150. }
  15151. }
  15152. else
  15153. {
  15154. return Error("操作失败");
  15155. }
  15156. }
  15157. else
  15158. {
  15159. return Error("权限不足");
  15160. }
  15161. }
  15162. public ActionResult GetDelayCount()
  15163. {
  15164. var sql = "select count(1) from T_Bus_DelayTime where DATEDIFF (MONTH ,F_CreateTime ,GETDATE ())=0 " +
  15165. $"and F_CreateUser ='{User.F_DeptId }'and F_IsDelete = 0 ";
  15166. var count = int.Parse(DbHelperSQL.GetSingle(sql).ToString());
  15167. string message = "";
  15168. if (count >= 5)
  15169. {
  15170. message = "本月已申请五次延时,不允许再次申请!";
  15171. }
  15172. else
  15173. {
  15174. message = $"本月已申请{count}次延时。";
  15175. }
  15176. var obj = new
  15177. {
  15178. message,
  15179. count
  15180. };
  15181. return Success("获取成功", obj);
  15182. }
  15183. /// <summary>
  15184. /// 申请延时
  15185. /// </summary>
  15186. /// <returns></returns>
  15187. //[Authority]
  15188. public ActionResult DelayWorkOrder()
  15189. {
  15190. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15191. {
  15192. string workorderid = RequestString.GetFormString("workorderid");
  15193. int newlimittime = 5;
  15194. string resdatetime = "";
  15195. string reason = RequestString.GetFormString("reason");
  15196. string files = RequestString.GetFormString("files");
  15197. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15198. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15199. if (modelT_Bus_WorkOrder.F_LimitTime != null)
  15200. {
  15201. if (DateTime.Now > modelT_Bus_WorkOrder.F_LimitTime.Value)
  15202. {
  15203. return Error("该工单已超时,不能申请延时");
  15204. }
  15205. }
  15206. var Delay = new BLL.T_Bus_DelayTime().GetModelList("F_WorkOrderId='" +
  15207. modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit in (0,1) and F_CreateUser='" +
  15208. User.F_DeptId + "'and F_AssignedId='" + modelT_Bus_AssignedInfo.F_Id + "'");
  15209. if (Delay != null && Delay.Count > 0)
  15210. {
  15211. return Error("当前工单只能申请一次延时");
  15212. }
  15213. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  15214. {
  15215. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15216. {
  15217. #region 保存工单信息
  15218. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=5 where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15219. #endregion
  15220. #region 插入申请延时信息
  15221. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  15222. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15223. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  15224. if (newlimittime > 0)
  15225. {
  15226. resdatetime = GetLimittime(newlimittime);
  15227. // DataTable dt = DbHelperSQL.Query("select top " + newlimittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  15228. // "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];
  15229. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  15230. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  15231. // var datatime = DateTime.Now.AddDays(newlimittime);
  15232. // if (Convert.ToDateTime(resdatetime) > datatime)
  15233. // {
  15234. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  15235. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  15236. // " with(nolock) where F_OffState = 1 and " +
  15237. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  15238. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  15239. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  15240. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  15241. // {
  15242. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  15243. // }
  15244. // // 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"); ;
  15245. // }
  15246. }
  15247. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  15248. // delay.F_NewTime =DateTime .Now .AddDays ( newlimittime);
  15249. delay.F_NewTime = Convert.ToDateTime(resdatetime);
  15250. delay.F_Reason = reason;
  15251. delay.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15252. delay.F_IsAudit = 0;
  15253. delay.F_IsDelete = 0;
  15254. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15255. delay.F_CreateUser = User.F_DeptId.ToString();
  15256. delay.F_CreateTime = DateTime.Now;
  15257. delay.F_File = files;
  15258. new BLL.T_Bus_DelayTime().Add(delay);
  15259. #endregion
  15260. #region 插入操作记录
  15261. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15262. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15263. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15264. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15265. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15266. oper.F_Message = userinfo + " 申请了延时处理";
  15267. oper.F_CreateUser = User.F_UserCode;
  15268. oper.F_CreateTime = DateTime.Now;
  15269. oper.F_IsDelete = 0;
  15270. operBLL.Add(oper);
  15271. //推送消息表
  15272. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15273. #endregion
  15274. trans.Complete();
  15275. }
  15276. return Success("操作成功");
  15277. }
  15278. else
  15279. {
  15280. return Error("操作失败");
  15281. }
  15282. }
  15283. else
  15284. {
  15285. return Error("权限不足");
  15286. }
  15287. }
  15288. public class bendiack
  15289. {
  15290. public string state;
  15291. public string message;
  15292. }
  15293. public class receive_case_delay_apply
  15294. {/// <summary>
  15295. /// 任务单唯一标识
  15296. /// </summary>
  15297. public string TROWGUID { set; get; }
  15298. /// <summary>
  15299. /// 申请人姓名
  15300. /// </summary>
  15301. public string APPLY_NAME { set; get; }
  15302. /// <summary>
  15303. /// 申请延期天数
  15304. /// </summary>
  15305. public int APPLY_DELAYNUM { set; get; }
  15306. /// <summary>
  15307. /// 申请延期原因
  15308. /// </summary>
  15309. public string APPLY_REASON { set; get; }
  15310. /// <summary>
  15311. /// 申请延期类型
  15312. /// 代码项名称
  15313. /// 办结延时 10
  15314. /// 退回延时 20
  15315. /// </summary>
  15316. public string APPLY_TYPE { set; get; }
  15317. }
  15318. public class receive_case_delay_apply1
  15319. {/// <summary>
  15320. /// 任务单唯一标识
  15321. /// </summary>
  15322. public string TROWGUID { set; get; }
  15323. /// <summary>
  15324. /// 申请人姓名
  15325. /// </summary>
  15326. public string APPLY_NAME { set; get; }
  15327. /// <summary>
  15328. /// 申请延期天数
  15329. /// </summary>
  15330. public int APPLY_DELAYNUM { set; get; }
  15331. /// <summary>
  15332. /// 申请延期原因
  15333. /// </summary>
  15334. public string APPLY_REASON { set; get; }
  15335. /// <summary>
  15336. /// 申请延期类型
  15337. /// 代码项名称
  15338. /// 办结延时 10
  15339. /// 退回延时 20
  15340. /// </summary>
  15341. public string APPLY_TYPE { set; get; }
  15342. /// <summary>
  15343. /// 变更后诉求类型
  15344. /// </summary>
  15345. public string APPLY_RQSTTYPE { set; get; }
  15346. /// <summary>
  15347. /// 延期附件
  15348. /// </summary>
  15349. public string APPLY_ATTATH_ID { set; get; }
  15350. }
  15351. private BLL.T_Sys_Affairs affairsBll = new BLL.T_Sys_Affairs();
  15352. /// <summary>
  15353. /// 审核延时工单
  15354. /// </summary>
  15355. /// <returns></returns>
  15356. //[Authority]
  15357. public ActionResult AuditDelayWorkOrder()
  15358. {
  15359. 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")
  15360. {
  15361. string workorderid = RequestString.GetFormString("workorderid");
  15362. int state = RequestString.GetInt("state", 0);
  15363. string reason = RequestString.GetFormString("reason");
  15364. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  15365. int delayid = RequestString.GetInt("delayid", 0);
  15366. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15367. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  15368. 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");
  15369. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15370. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  15371. {
  15372. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  15373. {
  15374. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15375. {
  15376. #region 保存工单信息
  15377. int workstate = 4;
  15378. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  15379. {
  15380. workstate = modelT_Bus_DelayTime.F_State.Value;
  15381. }
  15382. #endregion
  15383. #region 保存审核信息
  15384. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  15385. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  15386. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  15387. modelT_Bus_DelayTime.F_RefuseReason = reason;
  15388. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  15389. #endregion
  15390. string type = "同意"; string des = "";
  15391. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  15392. {
  15393. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  15394. {
  15395. modelT_Bus_DelayTime.F_IsAudit = 3;
  15396. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  15397. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  15398. {
  15399. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  15400. }
  15401. var affairs = affairsBll.GetModel(workordercode);
  15402. if (affairs != null)
  15403. {
  15404. var day = int.Parse
  15405. (DbHelperSQL.GetSingle(" select count(1) from " +
  15406. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  15407. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  15408. $"and F_OffDate <= '{newlimittime.ToString("yyyy-MM-dd")}' ").ToString());
  15409. receive_case_delay_apply paras = new receive_case_delay_apply();
  15410. paras.TROWGUID = affairs.TROWGUID;
  15411. paras.APPLY_NAME = User.F_UserName;
  15412. paras.APPLY_DELAYNUM = day;
  15413. paras.APPLY_TYPE = "10";
  15414. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  15415. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  15416. else
  15417. paras.APPLY_REASON = reason;
  15418. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  15419. workstate + " where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15420. try
  15421. {
  15422. string jsonParam = "paras=" + paras.ToJson() +
  15423. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  15424. modelT_Bus_WorkOrder.F_WorkOrderId;
  15425. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  15426. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  15427. if (jo.state != "success")
  15428. return Error(jo.message );
  15429. }
  15430. catch
  15431. {
  15432. return Error("推送省平台延时审核失败");
  15433. }
  15434. des = ",推送省平台延时审核";
  15435. }
  15436. else
  15437. {
  15438. #region 修改交办记录
  15439. modelT_Bus_AssignedInfo.F_IsSure = 1;
  15440. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15441. assignBLL.Update(modelT_Bus_AssignedInfo);
  15442. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15443. {
  15444. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15445. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15446. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15447. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15448. .AddHours(tss);
  15449. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15450. }
  15451. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  15452. workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15453. #endregion
  15454. #region 处理协办单位
  15455. #endregion
  15456. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15457. }
  15458. }
  15459. else
  15460. {
  15461. #region 保存审核信息
  15462. #endregion
  15463. #region 修改交办记录
  15464. modelT_Bus_AssignedInfo.F_IsSure = 1;
  15465. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15466. assignBLL.Update(modelT_Bus_AssignedInfo);
  15467. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15468. {
  15469. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15470. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15471. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15472. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15473. .AddHours(tss);
  15474. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15475. }
  15476. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" + workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15477. #endregion
  15478. #region 处理协办单位
  15479. #endregion
  15480. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15481. }
  15482. }
  15483. else
  15484. {
  15485. if(modelT_Bus_WorkOrder.F_InfoSource ==2580)
  15486. {
  15487. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15488. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15489. keyValuePairs.Add("F_WorkState", workstate);
  15490. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15491. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15492. assignBLL.Update(modelT_Bus_AssignedInfo);
  15493. }
  15494. else
  15495. {
  15496. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  15497. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15498. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15499. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  15500. .Value.AddHours(tss);
  15501. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15502. keyValuePairs.Add("F_WorkState", workstate);
  15503. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  15504. // .Value.AddHours(tss);
  15505. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15506. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  15507. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15508. {
  15509. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15510. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15511. .AddHours(tss);
  15512. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15513. }
  15514. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15515. assignBLL.Update(modelT_Bus_AssignedInfo);
  15516. }
  15517. type = "拒绝";
  15518. }
  15519. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  15520. #region 插入操作记录
  15521. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15522. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15523. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15524. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15525. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15526. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  15527. oper.F_CreateUser = User.F_UserCode;
  15528. oper.F_CreateTime = DateTime.Now;
  15529. oper.F_IsDelete = 0;
  15530. operBLL.Add(oper);
  15531. //推送消息表
  15532. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15533. #endregion
  15534. trans.Complete();
  15535. }
  15536. return Success("操作成功");
  15537. }
  15538. else
  15539. {
  15540. return Error("此审核已经处理");
  15541. }
  15542. }
  15543. else
  15544. {
  15545. return Error("操作失败");
  15546. }
  15547. }
  15548. else
  15549. {
  15550. return Error("权限不足");
  15551. }
  15552. }
  15553. /// <summary>
  15554. /// 审核延时工单
  15555. /// </summary>
  15556. /// <returns></returns>
  15557. //[Authority]
  15558. public ActionResult NewAuditDelayWorkOrder()
  15559. {
  15560. 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")
  15561. {
  15562. string workorderid = RequestString.GetFormString("workorderid");
  15563. int state = RequestString.GetInt("state", 0);
  15564. string reason = RequestString.GetFormString("reason");
  15565. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  15566. int delayid = RequestString.GetInt("delayid", 0);
  15567. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15568. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  15569. 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");
  15570. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15571. string files = RequestString.GetFormString("files");
  15572. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  15573. {
  15574. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  15575. {
  15576. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15577. {
  15578. #region 保存工单信息
  15579. int workstate = 4;
  15580. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  15581. {
  15582. workstate = modelT_Bus_DelayTime.F_State.Value;
  15583. }
  15584. #endregion
  15585. #region 保存审核信息
  15586. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  15587. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  15588. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  15589. modelT_Bus_DelayTime.F_RefuseReason = reason;
  15590. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  15591. #endregion
  15592. string type = "同意"; string des = "";
  15593. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  15594. {
  15595. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  15596. {
  15597. if (!string.IsNullOrEmpty(files))
  15598. return Error("请选择附件");
  15599. modelT_Bus_DelayTime.F_IsAudit = 3;
  15600. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  15601. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  15602. {
  15603. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  15604. }
  15605. var affairs = affairsBll.GetModel(workordercode);
  15606. if (affairs != null)
  15607. {
  15608. var day = int.Parse
  15609. (DbHelperSQL.GetSingle(" select count(1) from " +
  15610. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  15611. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  15612. $"and F_OffDate <= '{newlimittime.ToString("yyyy-MM-dd")}' ").ToString());
  15613. receive_case_delay_apply1 paras = new receive_case_delay_apply1();
  15614. paras.TROWGUID = affairs.TROWGUID;
  15615. paras.APPLY_NAME = User.F_UserName;
  15616. paras.APPLY_DELAYNUM = day;
  15617. paras.APPLY_TYPE = "10";
  15618. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  15619. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  15620. else
  15621. paras.APPLY_REASON = reason;
  15622. paras.APPLY_ATTATH_ID = files;
  15623. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  15624. workstate + " where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15625. try
  15626. {
  15627. string jsonParam = "paras=" + paras.ToJson() +
  15628. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  15629. modelT_Bus_WorkOrder.F_WorkOrderId;
  15630. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  15631. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  15632. if (jo.state != "success")
  15633. return Error(jo.message);
  15634. }
  15635. catch
  15636. {
  15637. return Error("推送省平台延时审核失败");
  15638. }
  15639. des = ",推送省平台延时审核";
  15640. }
  15641. else
  15642. {
  15643. #region 修改交办记录
  15644. modelT_Bus_AssignedInfo.F_IsSure = 1;
  15645. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15646. assignBLL.Update(modelT_Bus_AssignedInfo);
  15647. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15648. {
  15649. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15650. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15651. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15652. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15653. .AddHours(tss);
  15654. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15655. }
  15656. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" +
  15657. workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15658. #endregion
  15659. #region 处理协办单位
  15660. #endregion
  15661. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15662. }
  15663. }
  15664. else
  15665. {
  15666. #region 保存审核信息
  15667. #endregion
  15668. #region 修改交办记录
  15669. modelT_Bus_AssignedInfo.F_IsSure = 1;
  15670. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15671. assignBLL.Update(modelT_Bus_AssignedInfo);
  15672. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15673. {
  15674. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15675. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15676. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15677. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15678. .AddHours(tss);
  15679. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15680. }
  15681. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" + workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  15682. #endregion
  15683. #region 处理协办单位
  15684. #endregion
  15685. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15686. }
  15687. }
  15688. else
  15689. {
  15690. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  15691. {
  15692. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15693. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15694. keyValuePairs.Add("F_WorkState", workstate);
  15695. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15696. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15697. assignBLL.Update(modelT_Bus_AssignedInfo);
  15698. }
  15699. else
  15700. {
  15701. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  15702. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15703. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15704. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  15705. .Value.AddHours(tss);
  15706. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15707. keyValuePairs.Add("F_WorkState", workstate);
  15708. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  15709. // .Value.AddHours(tss);
  15710. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15711. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  15712. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15713. {
  15714. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15715. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15716. .AddHours(tss);
  15717. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15718. }
  15719. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15720. assignBLL.Update(modelT_Bus_AssignedInfo);
  15721. }
  15722. type = "拒绝";
  15723. }
  15724. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  15725. #region 插入操作记录
  15726. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15727. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15728. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15729. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15730. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15731. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  15732. oper.F_CreateUser = User.F_UserCode;
  15733. oper.F_CreateTime = DateTime.Now;
  15734. oper.F_IsDelete = 0;
  15735. operBLL.Add(oper);
  15736. //推送消息表
  15737. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15738. #endregion
  15739. trans.Complete();
  15740. }
  15741. return Success("操作成功");
  15742. }
  15743. else
  15744. {
  15745. return Error("此审核已经处理");
  15746. }
  15747. }
  15748. else
  15749. {
  15750. return Error("操作失败");
  15751. }
  15752. }
  15753. else
  15754. {
  15755. return Error("权限不足");
  15756. }
  15757. }
  15758. /// <summary>
  15759. /// 批量审核延时
  15760. /// </summary>
  15761. /// <param name="ids"></param>
  15762. /// <returns></returns>
  15763. //[Authority]
  15764. public ActionResult AuditDelayWorkOrderBatch(string ids)
  15765. {
  15766. 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")
  15767. {
  15768. int state = RequestString.GetInt("state", 0);
  15769. string reason = RequestString.GetFormString("reason");
  15770. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  15771. string errids = ""; string errids1 = "";
  15772. if (!string.IsNullOrEmpty(ids))
  15773. {
  15774. string[] strids = ids.Split(',');
  15775. foreach (string str in strids)
  15776. {
  15777. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15778. {
  15779. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  15780. 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();
  15781. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  15782. 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");
  15783. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  15784. {
  15785. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  15786. {
  15787. #region 保存工单信息
  15788. int workstate = 4;
  15789. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  15790. workstate = modelT_Bus_DelayTime.F_State.Value;
  15791. #endregion
  15792. #region 保存审核信息
  15793. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  15794. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  15795. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  15796. modelT_Bus_DelayTime.F_RefuseReason = reason;
  15797. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  15798. #endregion
  15799. string type = "同意"; string des = "";
  15800. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  15801. {
  15802. #region 修改交办记录
  15803. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  15804. {
  15805. modelT_Bus_DelayTime.F_IsAudit = 3;
  15806. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  15807. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  15808. {
  15809. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  15810. }
  15811. var affairs = affairsBll.GetModel(workordercode);
  15812. if (affairs != null)
  15813. {
  15814. modelT_Bus_DelayTime.F_IsAudit = 3;
  15815. var day = int.Parse
  15816. (DbHelperSQL.GetSingle(" select count(1) from " +
  15817. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  15818. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  15819. $"and F_OffDate <= '{modelT_Bus_DelayTime.F_NewTime.Value .ToString("yyyy-MM-dd")}' ").ToString());
  15820. receive_case_delay_apply paras = new receive_case_delay_apply();
  15821. paras.TROWGUID = affairs.TROWGUID;
  15822. paras.APPLY_NAME = User.F_UserName;
  15823. paras.APPLY_DELAYNUM = day;
  15824. paras.APPLY_TYPE = "10";
  15825. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  15826. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  15827. else
  15828. paras.APPLY_REASON = reason;
  15829. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15830. keyValuePairs.Add("F_WorkState", workstate);
  15831. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15832. try
  15833. {
  15834. string jsonParam = "paras=" + paras.ToJson() +
  15835. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  15836. modelT_Bus_WorkOrder.F_WorkOrderId;
  15837. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  15838. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  15839. if (jo.state != "success")
  15840. return Error(jo.message);
  15841. }
  15842. catch
  15843. {
  15844. return Error("推送省平台延时审核失败");
  15845. }
  15846. des = ",推送省平台延时审核";
  15847. }
  15848. else
  15849. {
  15850. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15851. keyValuePairs.Add("F_WorkState", workstate);
  15852. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  15853. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  15854. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  15855. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15856. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15857. assignBLL.Update(modelT_Bus_AssignedInfo);
  15858. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15859. {
  15860. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15861. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15862. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15863. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15864. .AddHours(tss);
  15865. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15866. }
  15867. #endregion
  15868. #region 处理协办单位
  15869. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  15870. foreach (var xb in xblist)
  15871. {
  15872. //xb.F_LimitTime = DateTime.Now;
  15873. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15874. assignItemBLL.Update(xb);
  15875. }
  15876. #endregion
  15877. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15878. }
  15879. }
  15880. else
  15881. {
  15882. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15883. keyValuePairs.Add("F_WorkState", workstate);
  15884. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  15885. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  15886. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  15887. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15888. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15889. assignBLL.Update(modelT_Bus_AssignedInfo);
  15890. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15891. {
  15892. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  15893. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15894. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15895. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15896. .AddHours(tss);
  15897. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15898. }
  15899. #region 处理协办单位
  15900. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  15901. foreach (var xb in xblist)
  15902. {
  15903. //xb.F_LimitTime = DateTime.Now;
  15904. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  15905. assignItemBLL.Update(xb);
  15906. }
  15907. #endregion
  15908. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  15909. }
  15910. }
  15911. else
  15912. {
  15913. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  15914. {
  15915. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15916. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15917. keyValuePairs1.Add("F_WorkState", workstate);
  15918. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  15919. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15920. assignBLL.Update(modelT_Bus_AssignedInfo);
  15921. }
  15922. else
  15923. {
  15924. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  15925. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  15926. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15927. keyValuePairs1.Add("F_WorkState", workstate);
  15928. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  15929. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  15930. .Value.AddHours(tss);
  15931. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  15932. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  15933. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  15934. {
  15935. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  15936. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  15937. .AddHours(tss);
  15938. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  15939. }
  15940. modelT_Bus_AssignedInfo.F_IsSure = 5;
  15941. assignBLL.Update(modelT_Bus_AssignedInfo);
  15942. }
  15943. type = "拒绝";
  15944. }
  15945. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  15946. #region 插入操作记录
  15947. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15948. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15949. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15950. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15951. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15952. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  15953. oper.F_CreateUser = User.F_UserCode;
  15954. oper.F_CreateTime = DateTime.Now;
  15955. oper.F_IsDelete = 0;
  15956. operBLL.Add(oper);
  15957. //推送消息表
  15958. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15959. #endregion
  15960. }
  15961. else
  15962. errids1 += str + ",";
  15963. }
  15964. trans.Complete();
  15965. }
  15966. }
  15967. if (errids1 == "" && errids == "")
  15968. return Success("操作成功");
  15969. else
  15970. {
  15971. string msg = "";
  15972. if (errids1 != "")
  15973. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  15974. if (errids != "")
  15975. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  15976. return Error("部分工单操作失败" + msg);
  15977. }
  15978. }
  15979. else
  15980. {
  15981. return Error("参数获取失败");
  15982. }
  15983. }
  15984. else
  15985. {
  15986. return Error("权限不足");
  15987. }
  15988. }
  15989. /// <summary>
  15990. /// 批量审核延时
  15991. /// </summary>
  15992. /// <param name="ids"></param>
  15993. /// <returns></returns>
  15994. //[Authority]
  15995. public ActionResult NewAuditDelayWorkOrderBatch(string ids)
  15996. {
  15997. 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")
  15998. {
  15999. int state = RequestString.GetInt("state", 0);
  16000. string reason = RequestString.GetFormString("reason");
  16001. string files = RequestString.GetFormString("files");
  16002. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  16003. string errids = ""; string errids1 = "";
  16004. if (!string.IsNullOrEmpty(ids))
  16005. {
  16006. string[] strids = ids.Split(',');
  16007. foreach (string str in strids)
  16008. {
  16009. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16010. {
  16011. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  16012. 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();
  16013. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  16014. 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");
  16015. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  16016. {
  16017. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  16018. {
  16019. #region 保存工单信息
  16020. int workstate = 4;
  16021. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  16022. workstate = modelT_Bus_DelayTime.F_State.Value;
  16023. #endregion
  16024. #region 保存审核信息
  16025. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  16026. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  16027. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  16028. modelT_Bus_DelayTime.F_RefuseReason = reason;
  16029. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  16030. #endregion
  16031. string type = "同意"; string des = "";
  16032. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  16033. {
  16034. #region 修改交办记录
  16035. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  16036. {
  16037. if (!string.IsNullOrEmpty(files))
  16038. return Error("请选择附件");
  16039. modelT_Bus_DelayTime.F_IsAudit = 3;
  16040. string workordercode = modelT_Bus_WorkOrder.F_WorkOrderId;
  16041. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  16042. {
  16043. workordercode = modelT_Bus_WorkOrder.F_MainWorkorder1;
  16044. }
  16045. var affairs = affairsBll.GetModel(workordercode);
  16046. if (affairs != null)
  16047. {
  16048. modelT_Bus_DelayTime.F_IsAudit = 3;
  16049. var day = int.Parse
  16050. (DbHelperSQL.GetSingle(" select count(1) from " +
  16051. "T_Sys_WorkOFFDays where F_OffState = 1 and " +
  16052. $" F_OffDate > '{modelT_Bus_DelayTime.F_OldTime.Value.ToString("yyyy-MM-dd")}' " +
  16053. $"and F_OffDate <= '{modelT_Bus_DelayTime.F_NewTime.Value.ToString("yyyy-MM-dd")}' ").ToString());
  16054. receive_case_delay_apply1 paras = new receive_case_delay_apply1();
  16055. paras.TROWGUID = affairs.TROWGUID;
  16056. paras.APPLY_NAME = User.F_UserName;
  16057. paras.APPLY_DELAYNUM = day;
  16058. paras.APPLY_TYPE = "10";
  16059. if (!string.IsNullOrEmpty(modelT_Bus_DelayTime.F_Reason))
  16060. paras.APPLY_REASON = modelT_Bus_DelayTime.F_Reason;
  16061. else
  16062. paras.APPLY_REASON = reason;
  16063. paras.APPLY_ATTATH_ID = files;
  16064. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16065. keyValuePairs.Add("F_WorkState", workstate);
  16066. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16067. try
  16068. {
  16069. string jsonParam = "paras=" + paras.ToJson() +
  16070. "&message=申请延时&url=http://59.227.93.14:9000/share/fwgdyqsqjk&WorkOrderId=" +
  16071. modelT_Bus_WorkOrder.F_WorkOrderId;
  16072. var responseString = HttpMethods.HttpPost(FrontUrl + "/Affairs/receive_Push", jsonParam);
  16073. bendiack jo = JsonConvert.DeserializeObject<bendiack>(responseString);
  16074. if (jo.state != "success")
  16075. return Error(jo.message);
  16076. }
  16077. catch
  16078. {
  16079. return Error("推送省平台延时审核失败");
  16080. }
  16081. des = ",推送省平台延时审核";
  16082. }
  16083. else
  16084. {
  16085. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16086. keyValuePairs.Add("F_WorkState", workstate);
  16087. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  16088. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  16089. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  16090. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16091. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  16092. assignBLL.Update(modelT_Bus_AssignedInfo);
  16093. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  16094. {
  16095. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  16096. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  16097. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  16098. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  16099. .AddHours(tss);
  16100. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  16101. }
  16102. #endregion
  16103. #region 处理协办单位
  16104. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  16105. foreach (var xb in xblist)
  16106. {
  16107. //xb.F_LimitTime = DateTime.Now;
  16108. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  16109. assignItemBLL.Update(xb);
  16110. }
  16111. #endregion
  16112. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  16113. }
  16114. }
  16115. else
  16116. {
  16117. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16118. keyValuePairs.Add("F_WorkState", workstate);
  16119. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  16120. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  16121. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  16122. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16123. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  16124. assignBLL.Update(modelT_Bus_AssignedInfo);
  16125. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  16126. {
  16127. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  16128. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  16129. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  16130. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  16131. .AddHours(tss);
  16132. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  16133. }
  16134. #region 处理协办单位
  16135. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  16136. foreach (var xb in xblist)
  16137. {
  16138. //xb.F_LimitTime = DateTime.Now;
  16139. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  16140. assignItemBLL.Update(xb);
  16141. }
  16142. #endregion
  16143. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  16144. }
  16145. }
  16146. else
  16147. {
  16148. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  16149. {
  16150. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  16151. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  16152. keyValuePairs1.Add("F_WorkState", workstate);
  16153. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  16154. modelT_Bus_AssignedInfo.F_IsSure = 5;
  16155. assignBLL.Update(modelT_Bus_AssignedInfo);
  16156. }
  16157. else
  16158. {
  16159. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  16160. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  16161. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  16162. keyValuePairs1.Add("F_WorkState", workstate);
  16163. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  16164. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  16165. .Value.AddHours(tss);
  16166. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  16167. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  16168. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  16169. {
  16170. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  16171. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  16172. .AddHours(tss);
  16173. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  16174. }
  16175. modelT_Bus_AssignedInfo.F_IsSure = 5;
  16176. assignBLL.Update(modelT_Bus_AssignedInfo);
  16177. }
  16178. type = "拒绝";
  16179. }
  16180. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  16181. #region 插入操作记录
  16182. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16183. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16184. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16185. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16186. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16187. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  16188. oper.F_CreateUser = User.F_UserCode;
  16189. oper.F_CreateTime = DateTime.Now;
  16190. oper.F_IsDelete = 0;
  16191. operBLL.Add(oper);
  16192. //推送消息表
  16193. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16194. #endregion
  16195. }
  16196. else
  16197. errids1 += str + ",";
  16198. }
  16199. trans.Complete();
  16200. }
  16201. }
  16202. if (errids1 == "" && errids == "")
  16203. return Success("操作成功");
  16204. else
  16205. {
  16206. string msg = "";
  16207. if (errids1 != "")
  16208. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  16209. if (errids != "")
  16210. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  16211. return Error("部分工单操作失败" + msg);
  16212. }
  16213. }
  16214. else
  16215. {
  16216. return Error("参数获取失败");
  16217. }
  16218. }
  16219. else
  16220. {
  16221. return Error("权限不足");
  16222. }
  16223. }
  16224. /// <summary>
  16225. /// 办理工单
  16226. /// </summary>
  16227. /// <returns></returns>
  16228. //[Authority]
  16229. public ActionResult FeedBackWorkOrder()
  16230. {
  16231. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16232. {
  16233. string workorderid = RequestString.GetFormString("workorderid");
  16234. string dealman = RequestString.GetFormString("dealman");
  16235. string result = RequestString.GetFormString("result");
  16236. string files = RequestString.GetFormString("files");
  16237. int state = RequestString.GetInt("state", 0);
  16238. int feedbackid = RequestString.GetInt("feedbackid", 0);
  16239. int isproresult = RequestString.GetInt("isproresult", 0);//是否向当事人反馈
  16240. string prosituation = RequestString.GetFormString("prosituation");
  16241. string dealcontact = RequestString.GetFormString("dealcontact");
  16242. string connecttime = RequestString.GetFormString("connecttime");
  16243. string connectmode = RequestString.GetFormString("connectmode");
  16244. string replycontent = RequestString.GetFormString("replycontent");
  16245. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  16246. string duties = RequestString.GetFormString("duties");
  16247. string situation = RequestString.GetFormString("situation");
  16248. string IsProResultState = RequestString.GetFormString("IsProResultState ");
  16249. string Unsuccessful = RequestString.GetFormString("Unsuccessful");
  16250. string AuditUser = RequestString.GetFormString("AuditUser");//审核领导
  16251. string post = RequestString.GetFormString("post");//审核领导职务
  16252. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  16253. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里 是否向当事人反馈,选择否的时候,有个输入框,可以填原因,
  16254. string staisfiedreason = RequestString.GetFormString("staisfiedreason");//不满意原因
  16255. if ((isstaisfied == -1 || isstaisfied == 3) &&string.IsNullOrEmpty(staisfiedreason))
  16256. {
  16257. return Error("请输入不满意原因");
  16258. }
  16259. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16260. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16261. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  16262. int type = 0;
  16263. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  16264. {
  16265. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  16266. if (type > 0)
  16267. {
  16268. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  16269. if (modelT_Bus_WorkOrder.F_WorkState >= (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_IsProResult == 0)
  16270. {
  16271. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16272. {
  16273. if (feedbackid == 0)
  16274. {
  16275. #region 插入反馈记录
  16276. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16277. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  16278. modelT_Bus_Feedback.F_AuditPost = post;
  16279. modelT_Bus_Feedback.F_AuditContact = auditContact;
  16280. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  16281. modelT_Bus_Feedback.F_DealUser = dealman;
  16282. modelT_Bus_Feedback.F_Result = result;//反馈内容
  16283. #region 20200114新增字段 zhengbingbing
  16284. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16285. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  16286. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16287. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  16288. DateTime contime = DateTime.Now;
  16289. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16290. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16291. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  16292. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  16293. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16294. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  16295. modelT_Bus_Feedback.F_Duties = duties;//职务
  16296. modelT_Bus_Feedback.F_Situation = situation;
  16297. modelT_Bus_Feedback.F_IsProResult = isproresult;
  16298. #endregion
  16299. modelT_Bus_Feedback.F_File = files;
  16300. modelT_Bus_Feedback.F_IsAudit = 0;
  16301. modelT_Bus_Feedback.F_IsDelete = 0;
  16302. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  16303. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  16304. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  16305. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  16306. modelT_Bus_Feedback.F_State = state;
  16307. modelT_Bus_Feedback.F_Type = type;
  16308. modelT_Bus_Feedback.F_Id= new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  16309. #endregion
  16310. }
  16311. else
  16312. {
  16313. #region 修改反馈记录
  16314. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  16315. if (modelT_Bus_Feedback != null)
  16316. {
  16317. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  16318. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  16319. modelT_Bus_Feedback.F_DealUser = dealman;
  16320. modelT_Bus_Feedback.F_Result = result;//反馈内容
  16321. modelT_Bus_Feedback.F_File = files;
  16322. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  16323. #region 20200114新增字段 zhengbingbing
  16324. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  16325. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  16326. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  16327. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  16328. DateTime contime = DateTime.Now;
  16329. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  16330. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  16331. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  16332. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  16333. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  16334. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  16335. modelT_Bus_Feedback.F_Duties = duties;//职务
  16336. modelT_Bus_Feedback.F_Situation = situation;
  16337. #endregion
  16338. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  16339. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  16340. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  16341. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  16342. modelT_Bus_Feedback.F_State = state;
  16343. modelT_Bus_Feedback.F_IsProResult = isproresult;
  16344. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  16345. {
  16346. modelT_Bus_Feedback.F_Type = 1;
  16347. }
  16348. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  16349. {
  16350. modelT_Bus_Feedback.F_Type = 2;
  16351. }
  16352. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  16353. }
  16354. #endregion
  16355. }
  16356. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  16357. {
  16358. string typemsg = "办理";
  16359. if (type == 1)
  16360. {
  16361. int iscs = 0;
  16362. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  16363. {
  16364. iscs = 1;
  16365. }
  16366. #region 保存工单信息
  16367. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  16368. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16369. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealed);
  16370. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  16371. keyValuePairs.Add("F_Result", result);
  16372. // modelT_Bus_WorkOrder.F_Result = result;
  16373. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  16374. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  16375. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  16376. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  16377. keyValuePairs.Add("F_DealTime", DateTime.Now);
  16378. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  16379. keyValuePairs.Add("F_ToBereply", 1);
  16380. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  16381. keyValuePairs.Add("F_IsOverdue", iscs);
  16382. //modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  16383. keyValuePairs.Add("F_IsProResult", isproresult);
  16384. // modelT_Bus_WorkOrder.F_IsProResult = isproresult;
  16385. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16386. #endregion
  16387. #region 保存交办信息
  16388. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  16389. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  16390. {
  16391. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  16392. }
  16393. assignBLL.Update(modelT_Bus_AssignedInfo);
  16394. #endregion
  16395. #region 删除草稿信息
  16396. 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 + "'");
  16397. foreach (var cg in cglist)
  16398. {
  16399. cg.F_IsDelete = 1;
  16400. cg.F_DeleteUser = User.F_UserCode;
  16401. cg.F_DeleteTime = DateTime.Now;
  16402. new BLL.T_Bus_Feedback().Update(cg);
  16403. }
  16404. #endregion
  16405. #region 删除二级单位未办理信息
  16406. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  16407. foreach (var ej in ejlist)
  16408. {
  16409. ej.F_IsDelete = 1;
  16410. ej.F_DeleteUser = User.F_UserCode;
  16411. ej.F_DeleteTime = DateTime.Now;
  16412. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  16413. }
  16414. #endregion
  16415. #region 二级单位未办理改为办理
  16416. var ejbllist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit=0");
  16417. foreach (var ej in ejbllist)
  16418. {
  16419. ej.F_IsAudit = 1;
  16420. ej.F_AuditUser = User.F_UserCode;
  16421. ej.F_AuditTime = DateTime.Now;
  16422. new BLL.T_Bus_Feedback_Next().Update(ej);
  16423. }
  16424. #endregion
  16425. #region 处理协办单位
  16426. 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 + "'");
  16427. foreach (var xb in xblist)
  16428. {
  16429. xb.F_State = 2;
  16430. xb.F_SureUser = User.F_UserCode;
  16431. xb.F_SureTime = DateTime.Now;
  16432. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  16433. }
  16434. #endregion
  16435. typemsg = "主办";
  16436. }
  16437. else if (type == 2)
  16438. {
  16439. #region 保存明细信息
  16440. 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();
  16441. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  16442. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  16443. {
  16444. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  16445. }
  16446. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  16447. #endregion
  16448. #region 删除草稿信息
  16449. 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 + "'");
  16450. foreach (var cg in cglist)
  16451. {
  16452. cg.F_IsDelete = 1;
  16453. cg.F_DeleteUser = User.F_UserCode;
  16454. cg.F_DeleteTime = DateTime.Now;
  16455. new BLL.T_Bus_Feedback().Update(cg);
  16456. }
  16457. #endregion
  16458. typemsg = "协办";
  16459. }
  16460. #region 插入操作记录
  16461. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16462. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16463. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16464. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16465. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16466. oper.F_Message = userinfo + " " + typemsg + "了工单";
  16467. oper.F_CreateUser = User.F_UserCode;
  16468. oper.F_CreateTime = DateTime.Now;
  16469. oper.F_IsDelete = 0;
  16470. operBLL.Add(oper);
  16471. //推送消息表
  16472. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16473. #endregion
  16474. }
  16475. trans.Complete();
  16476. }
  16477. if (modelT_Bus_Feedback.F_Id>0)
  16478. {
  16479. Task.Run(() =>
  16480. {
  16481. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  16482. if (!string.IsNullOrEmpty(files))
  16483. {
  16484. pushmaterial_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  16485. }
  16486. }).ContinueWith(p =>
  16487. {
  16488. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16489. });
  16490. }
  16491. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  16492. }
  16493. else
  16494. {
  16495. return Error("已经办理过了");
  16496. }
  16497. }
  16498. else
  16499. {
  16500. return Error("权限不足");
  16501. }
  16502. }
  16503. else
  16504. {
  16505. return Error("操作失败");
  16506. }
  16507. }
  16508. else
  16509. {
  16510. return Error("权限不足");
  16511. }
  16512. }
  16513. /// <summary>
  16514. /// 已办未果通过
  16515. /// </summary>
  16516. /// <returns></returns>
  16517. //[Authority]
  16518. public ActionResult AuditTransfer(string reason, int state=0)
  16519. {
  16520. string workorderid = RequestString.GetFormString("workorderid");
  16521. if (User.F_RoleCode == "WLDW" )
  16522. {
  16523. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16524. if (modelT_Bus_WorkOrder != null)
  16525. {
  16526. #region 插入操作记录
  16527. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16528. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16529. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16530. string message = "";
  16531. if (state==0)
  16532. {
  16533. message = "审核不通过已办未果";
  16534. if (!string.IsNullOrEmpty(reason))
  16535. message += "原因:" + message;
  16536. keyValuePairs.Add("F_IsProResultState", 0);
  16537. }
  16538. else
  16539. {
  16540. message = "审核通过已办未果";
  16541. if (!string.IsNullOrEmpty(reason))
  16542. message += "原因:" + message;
  16543. keyValuePairs.Add("F_IsProResultState", 2);
  16544. keyValuePairs.Add("F_IsProResult", 3);
  16545. keyValuePairs.Add("F_WorkState", 7);
  16546. }
  16547. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16548. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16549. oper.F_Message = userinfo + message + "";
  16550. oper.F_CreateUser = User.F_UserCode;
  16551. oper.F_CreateTime = DateTime.Now;
  16552. oper.F_IsDelete = 0;
  16553. operBLL.Add(oper);
  16554. #endregion
  16555. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16556. return Success("成功");
  16557. else
  16558. return Error("失败");
  16559. }
  16560. else
  16561. {
  16562. return Error("工单不存在");
  16563. }
  16564. }
  16565. return Error("权限不足");
  16566. }
  16567. /// <summary>
  16568. ///追问回复
  16569. /// </summary>
  16570. /// <returns></returns>
  16571. //[Authority]
  16572. public ActionResult ReplyWorkOrder()
  16573. {
  16574. 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")
  16575. {
  16576. string workorderid = RequestString.GetFormString("workorderid");
  16577. string files = RequestString.GetFormString("files");
  16578. string replycount = RequestString.GetFormString("replycount");
  16579. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16580. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16581. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL
  16582. .GetNewModelByWorkOrderID(workorderid);
  16583. int type = 0;
  16584. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  16585. && modelT_Bus_Feedback != null)
  16586. {
  16587. // type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  16588. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  16589. if (modelT_Bus_WorkOrder.F_IsProResult == 2)
  16590. {
  16591. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16592. {
  16593. var deptinfo = "";
  16594. var dept = new BLL.T_Sys_Department().GetModel(User.F_DeptId);
  16595. if (dept != null)
  16596. deptinfo = dept.F_DeptName;
  16597. else
  16598. deptinfo = User.F_UserName;
  16599. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16600. string message = deptinfo + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + replycount; ;
  16601. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_AdditionalReply))
  16602. {
  16603. keyValuePairs.Add("F_AdditionalReply", message);
  16604. }
  16605. else
  16606. {
  16607. keyValuePairs.Add("F_AdditionalReply", modelT_Bus_WorkOrder.F_AdditionalReply + "<br/>" + message);
  16608. }
  16609. if (User .F_RoleCode =="EJWLDW")
  16610. {
  16611. keyValuePairs.Add("F_IsProResultState", 1);
  16612. }
  16613. else
  16614. {
  16615. keyValuePairs.Add("F_IsProResult", 3);
  16616. }
  16617. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16618. if (!string.IsNullOrEmpty(files))
  16619. {
  16620. if (!string.IsNullOrEmpty(modelT_Bus_Feedback.F_Files))
  16621. modelT_Bus_Feedback.F_Files += "," + files;
  16622. else
  16623. modelT_Bus_Feedback.F_Files = files;
  16624. bool f = feedbackBLL.Update(modelT_Bus_Feedback);
  16625. }
  16626. #region 插入操作记录
  16627. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16628. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16629. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16630. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16631. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16632. oper.F_Message = userinfo + " " + "回复" + "了工单";
  16633. oper.F_CreateUser = User.F_UserCode;
  16634. oper.F_CreateTime = DateTime.Now;
  16635. oper.F_IsDelete = 0;
  16636. operBLL.Add(oper);
  16637. #endregion
  16638. trans.Complete();
  16639. }
  16640. return Success("操作成功");
  16641. }
  16642. else
  16643. {
  16644. return Error("已经办理过了");
  16645. }
  16646. }
  16647. else
  16648. {
  16649. return Error("操作失败");
  16650. }
  16651. }
  16652. else
  16653. {
  16654. return Error("权限不足");
  16655. }
  16656. }
  16657. /// <summary>
  16658. /// 转办回访
  16659. /// </summary>
  16660. /// <returns></returns>
  16661. //[Authority]
  16662. public ActionResult Transfer(int limittime = 5)
  16663. {
  16664. string workorderid = RequestString.GetFormString("workorderid");
  16665. 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")
  16666. {
  16667. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16668. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new BLL.T_Bus_AssignedInfo().GetNewModelByWorkOrderID(workorderid);
  16669. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16670. if (modelT_Bus_WorkOrder != null)
  16671. {
  16672. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16673. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  16674. keyValuePairs.Add("F_ToBereply", 0);
  16675. keyValuePairs.Add("F_IsSms", 0);
  16676. keyValuePairs.Add("F_IsProResult", 2);
  16677. keyValuePairs.Add("F_Note", "");
  16678. string resdatetime = "";
  16679. if (limittime > 0)
  16680. {
  16681. resdatetime = GetLimittime(limittime);
  16682. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  16683. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  16684. // "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];
  16685. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  16686. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  16687. //var datatime = DateTime.Now.AddDays(limittime);
  16688. //if (Convert.ToDateTime(resdatetime) > datatime)
  16689. //{
  16690. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  16691. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  16692. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  16693. // " with(nolock) where F_OffState = 1 and " +
  16694. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  16695. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  16696. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  16697. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  16698. // {
  16699. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  16700. // }
  16701. //}
  16702. }
  16703. keyValuePairs.Add("F_UnsuccessfulTime", resdatetime);
  16704. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  16705. //Model.T_Bus_ToExamine modelT_Bus_ToExamine = new Model.T_Bus_ToExamine();
  16706. //modelT_Bus_ToExamine.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16707. //modelT_Bus_ToExamine.F_IsDelete = 0;
  16708. //modelT_Bus_ToExamine.F_Type = 0;
  16709. //modelT_Bus_ToExamine.F_CreatUser = User.F_UserCode;
  16710. //modelT_Bus_ToExamine.F_CreateTime = DateTime.Now;
  16711. //modelT_Bus_ToExamine.F_Result = "";
  16712. //if (modelT_Bus_AssignedInfo != null)
  16713. //{
  16714. // modelT_Bus_ToExamine.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16715. //}
  16716. //int id = new BLL.T_Bus_ToExamine().Add(modelT_Bus_ToExamine);
  16717. //if (modelT_Bus_ToExamine != null)
  16718. //{
  16719. // keyValuePairs.Add("F_WorkState", 7);
  16720. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  16721. //}
  16722. keyValuePairs.Add("F_WorkState", 6);
  16723. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//已回访
  16724. #region 插入操作记录
  16725. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16726. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16727. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  16728. {
  16729. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  16730. if (user != null && user.Count > 0)
  16731. {
  16732. foreach (var it in user)
  16733. {
  16734. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  16735. // string msg = workorderid;
  16736. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  16737. string mag = "[\"" + workorderid + "\"]";
  16738. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  16739. // workorderid);
  16740. }
  16741. }
  16742. if (modelT_Bus_AssignedInfo_Next != null)
  16743. {
  16744. var modelT_Bus_Feedback_Next
  16745. = new BLL.T_Bus_Feedback_Next().GetModelList
  16746. ("F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "' and F_WorkOrderId='" +
  16747. workorderid + "' ORDER BY F_CreateTime DESC ");
  16748. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next
  16749. .Count > 0)
  16750. {
  16751. if (modelT_Bus_Feedback_Next[0].F_CreateDeptId > 0)
  16752. {
  16753. var users = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_Feedback_Next[0].F_CreateDeptId + " ");
  16754. if (users != null && users.Count > 0)
  16755. {
  16756. foreach (var it in users)
  16757. {
  16758. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  16759. // string msg = workorderid;
  16760. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  16761. string mag = "[\"" + workorderid + "\"]";
  16762. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  16763. // workorderid);
  16764. }
  16765. }
  16766. }
  16767. }
  16768. }
  16769. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16770. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16771. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16772. oper.F_Message = userinfo + " " + "提交了已办未果";
  16773. oper.F_CreateUser = User.F_UserCode;
  16774. oper.F_CreateTime = DateTime.Now;
  16775. oper.F_IsDelete = 0;
  16776. operBLL.Add(oper);
  16777. #endregion
  16778. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16779. return Success("转办成功");
  16780. else
  16781. return Error("转办失败");
  16782. }
  16783. else
  16784. return Error("该工单没有承办单位");
  16785. }
  16786. else
  16787. {
  16788. return Error("工单不存在");
  16789. }
  16790. }
  16791. return Error("权限不足");
  16792. }
  16793. public ActionResult AssignTransfer()
  16794. {
  16795. string workorderid = RequestString.GetFormString("workorderid");
  16796. string deptid = RequestString.GetFormString("deptid");
  16797. 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")
  16798. {
  16799. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16800. if (modelT_Bus_WorkOrder != null)
  16801. {
  16802. string depement = "";
  16803. if (!string.IsNullOrEmpty(deptid))
  16804. {
  16805. var depementlist = new BLL.T_Sys_Department().GetModelList($"F_DeptId in ({deptid})");
  16806. if (depementlist != null && depementlist.Count > 0)
  16807. {
  16808. foreach (var it in depementlist)
  16809. {
  16810. depement += "," + it.F_DeptName;
  16811. }
  16812. }
  16813. }
  16814. else
  16815. {
  16816. return Error("请选择转派单位");
  16817. }
  16818. if (depement != "")
  16819. {
  16820. depement = "给" + depement.TrimStart(',');
  16821. }
  16822. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16823. keyValuePairs.Add("F_NoResult", deptid);
  16824. #region 插入操作记录
  16825. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16826. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16827. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16828. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16829. oper.F_Message = userinfo + " " + "转派了已办未果" + depement;
  16830. oper.F_CreateUser = User.F_UserCode;
  16831. oper.F_CreateTime = DateTime.Now;
  16832. oper.F_IsDelete = 0;
  16833. operBLL.Add(oper);
  16834. #endregion
  16835. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16836. return Success("成功");
  16837. else
  16838. return Error("失败");
  16839. }
  16840. else
  16841. {
  16842. return Error("工单不存在");
  16843. }
  16844. }
  16845. return Error("权限不足");
  16846. }
  16847. /// <summary>
  16848. /// 已办未果通过
  16849. /// </summary>
  16850. /// <returns></returns>
  16851. //[Authority]
  16852. public ActionResult PassTransfer()
  16853. {
  16854. string workorderid = RequestString.GetFormString("workorderid");
  16855. 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")
  16856. {
  16857. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16858. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new BLL.T_Bus_AssignedInfo().GetNewModelByWorkOrderID(workorderid);
  16859. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  16860. if (modelT_Bus_WorkOrder != null)
  16861. {
  16862. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16863. keyValuePairs.Add("F_ToBereply", 1);
  16864. keyValuePairs.Add("F_IsProResult", 1);
  16865. keyValuePairs.Add("F_WorkState", 7);
  16866. #region 插入操作记录
  16867. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16868. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16869. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16870. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16871. oper.F_Message = userinfo + " " + "通过了已办未果";
  16872. oper.F_CreateUser = User.F_UserCode;
  16873. oper.F_CreateTime = DateTime.Now;
  16874. oper.F_IsDelete = 0;
  16875. operBLL.Add(oper);
  16876. #endregion
  16877. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16878. return Success("成功");
  16879. else
  16880. return Error("失败");
  16881. }
  16882. else
  16883. {
  16884. return Error("工单不存在");
  16885. }
  16886. }
  16887. return Error("权限不足");
  16888. }
  16889. /// <summary>
  16890. /// 抽查工单
  16891. /// </summary>
  16892. /// <returns></returns>
  16893. //[Authority]
  16894. public ActionResult SpotCheck(string workorderid, int spotCheck = 0)
  16895. {
  16896. 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")
  16897. {
  16898. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16899. if (modelT_Bus_WorkOrder != null)
  16900. {
  16901. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16902. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  16903. keyValuePairs.Add("F_SpotCheck", spotCheck);
  16904. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16905. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16906. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16907. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16908. if (spotCheck > 0)
  16909. oper.F_Message = userinfo + " " + "抽查了工单";
  16910. else
  16911. oper.F_Message = userinfo + " " + "取消抽查了工单";
  16912. oper.F_CreateUser = User.F_UserCode;
  16913. oper.F_CreateTime = DateTime.Now;
  16914. oper.F_IsDelete = 0;
  16915. operBLL.Add(oper);
  16916. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16917. return Success("抽查成功");
  16918. else
  16919. return Error("抽查失败");
  16920. }
  16921. else
  16922. {
  16923. return Error("工单不存在");
  16924. }
  16925. }
  16926. return Error("权限不足");
  16927. }
  16928. /// <summary>
  16929. ///注解
  16930. /// </summary>
  16931. /// <returns></returns>
  16932. //[Authority]
  16933. public ActionResult NoteWorkOrder()
  16934. {
  16935. 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")
  16936. {
  16937. string workorderid = RequestString.GetFormString("workorderid");
  16938. string note = RequestString.GetFormString("note");
  16939. if (string.IsNullOrEmpty(workorderid.Trim()) || string.IsNullOrEmpty(note.Trim()))
  16940. {
  16941. return Error("操作失败");
  16942. }
  16943. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16944. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  16945. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit
  16946. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish))
  16947. {
  16948. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16949. keyValuePairs.Add("F_Note", modelT_Bus_WorkOrder.F_Note + "|||" + note);
  16950. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16951. return Success("注解成功");
  16952. else
  16953. return Error("注解失败");
  16954. }
  16955. else
  16956. {
  16957. return Error("操作失败");
  16958. }
  16959. }
  16960. else
  16961. {
  16962. return Error("权限不足");
  16963. }
  16964. }
  16965. /// <summary>
  16966. ///修改注解
  16967. /// </summary>
  16968. /// <returns></returns>
  16969. //[Authority]
  16970. public ActionResult UpdateNoteWorkOrder()
  16971. {
  16972. 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")
  16973. {
  16974. string workorderid = RequestString.GetFormString("workorderid");
  16975. string note = RequestString.GetFormString("note");
  16976. if (string.IsNullOrEmpty(workorderid.Trim()))
  16977. {
  16978. return Error("操作失败");
  16979. }
  16980. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16981. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit
  16982. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish))
  16983. {
  16984. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16985. keyValuePairs.Add("F_Note", note);
  16986. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16987. return Success("保存成功");
  16988. else
  16989. return Error("保存失败");
  16990. }
  16991. else
  16992. {
  16993. return Error("操作失败");
  16994. }
  16995. }
  16996. else
  16997. {
  16998. return Error("权限不足");
  16999. }
  17000. }
  17001. #region 网格化对接
  17002. /// <summary>
  17003. /// 对接网格化
  17004. /// 工单查收操作
  17005. /// </summary>
  17006. /// <param name="usercode"></param>
  17007. /// <param name="workorderid"></param>
  17008. /// <returns></returns>
  17009. public string ReceiveWorkOrderByDock(string usercode, string workorderid, string content)
  17010. {
  17011. var returns = "";
  17012. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17013. {
  17014. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  17015. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  17016. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17017. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17018. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  17019. if (User != null)
  17020. {
  17021. if (modelT_Bus_WorkOrder == null)
  17022. msgss = "要办理的工单已不存在";
  17023. else if (modelT_Bus_AssignedInfo == null)
  17024. {
  17025. msgss = "工单无法处理或已被处理";
  17026. }
  17027. else
  17028. {
  17029. 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)
  17030. {
  17031. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  17032. {
  17033. #region 保存工单信息
  17034. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  17035. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17036. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  17037. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  17038. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17039. #endregion
  17040. #region 保存查收信息
  17041. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  17042. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  17043. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  17044. assignBLL.Update(modelT_Bus_AssignedInfo);
  17045. #endregion
  17046. #region 保存明细信息
  17047. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  17048. {
  17049. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  17050. foreach (string strid in strids)
  17051. {
  17052. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  17053. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  17054. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  17055. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  17056. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  17057. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  17058. modelT_Bus_AssignedItemInfo.F_State = 1;
  17059. modelT_Bus_AssignedItemInfo.F_Type = 2;
  17060. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  17061. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  17062. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  17063. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  17064. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  17065. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  17066. }
  17067. }
  17068. #endregion
  17069. retbool = "true";
  17070. optmsg = " 查收了工单";
  17071. msgss = optmsg;
  17072. }
  17073. else
  17074. msgss = "工单已被查收";
  17075. assid = modelT_Bus_AssignedInfo.F_Id;
  17076. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  17077. }
  17078. else
  17079. msgss = "工单已办理或已被重新指派";
  17080. }
  17081. userinfo = User.depname + "(" + User.F_UserCode + ")";
  17082. }
  17083. else
  17084. {
  17085. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  17086. msgss = "无法获取工号信息";
  17087. }
  17088. #region 插入操作记录
  17089. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17090. oper.F_WorkOrderId = workorderid;
  17091. oper.F_AssignedId = assid;
  17092. oper.F_State = state;
  17093. oper.F_Message = userinfo + " " + msgss + msgend;
  17094. oper.F_CreateUser = usercode;
  17095. oper.F_CreateTime = DateTime.Now;
  17096. oper.F_IsDelete = 0;
  17097. oper.F_Type = 1;
  17098. optid = operBLL.Add(oper).ToString();
  17099. #endregion
  17100. trans.Complete();
  17101. returns = retbool + "|" + optid + "|" + msgss;
  17102. }
  17103. return returns;
  17104. }
  17105. /// <summary>
  17106. /// 对接网格化 工单退回操作
  17107. /// </summary>
  17108. /// <returns></returns>
  17109. public string RebackWorkOrderByDock(string usercode, string workorderid, string backreason, string content)
  17110. {
  17111. var returns = "";
  17112. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17113. {
  17114. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  17115. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  17116. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  17117. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17118. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17119. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  17120. if (User != null)
  17121. {
  17122. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  17123. if (modelT_Bus_WorkOrder == null)
  17124. msgss = "要办理的工单已不存在";
  17125. else if (modelT_Bus_AssignedInfo == null)
  17126. {
  17127. msgss = "工单无法处理或已被处理";
  17128. }
  17129. else
  17130. {
  17131. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17132. {
  17133. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  17134. {
  17135. #region 保存工单信息
  17136. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  17137. workorderBLL.Update(modelT_Bus_WorkOrder);
  17138. #endregion
  17139. #region 插入退回申请信息
  17140. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  17141. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  17142. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  17143. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  17144. model_T_Bus_Feedback.F_IsAudit = 0;
  17145. model_T_Bus_Feedback.F_IsDelete = 0;
  17146. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  17147. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  17148. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  17149. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  17150. model_T_Bus_Feedback.F_State = 1;
  17151. model_T_Bus_Feedback.F_Type = 3;
  17152. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  17153. #endregion
  17154. #region 保存交办信息
  17155. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  17156. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  17157. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  17158. assignBLL.Update(modelT_Bus_AssignedInfo);
  17159. #endregion
  17160. #region 推送消息
  17161. retbool = "true";
  17162. optmsg = " 申请退回了工单";
  17163. //推送消息表
  17164. //msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  17165. #endregion
  17166. msgss = optmsg;
  17167. }
  17168. else
  17169. msgss = "工单已被查收,不能退回";
  17170. assid = modelT_Bus_AssignedInfo.F_Id;
  17171. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  17172. }
  17173. else
  17174. msgss = "工单已办理或已被重新指派";
  17175. }
  17176. }
  17177. else
  17178. {
  17179. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  17180. msgss = "无法获取工号信息";
  17181. }
  17182. #region 插入操作记录
  17183. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17184. oper.F_WorkOrderId = workorderid;
  17185. oper.F_AssignedId = assid;
  17186. oper.F_State = state;
  17187. oper.F_Message = userinfo + " " + msgss + msgend;
  17188. oper.F_CreateUser = usercode;
  17189. oper.F_CreateTime = DateTime.Now;
  17190. oper.F_IsDelete = 0;
  17191. oper.F_Type = 1;
  17192. optid = operBLL.Add(oper).ToString();
  17193. #endregion
  17194. trans.Complete();
  17195. returns = retbool + "|" + optid + "|" + msgss;
  17196. }
  17197. return returns;
  17198. }
  17199. /// <summary>
  17200. /// 对接网格化办理
  17201. /// </summary>
  17202. /// <param name="usercode">工号</param>
  17203. /// <param name="workorderid">工单编号</param>
  17204. /// <param name="dealman">承办人人</param>
  17205. /// <param name="result">反馈内容</param>
  17206. /// <param name="files">附件</param>
  17207. /// <param name="prosituation">处理情况/方案/进程</param>
  17208. /// <param name="dealcontact">承办人联系方式</param>
  17209. /// <param name="connecttime">沟通时间</param>
  17210. /// <param name="connectmode">沟通方式</param>
  17211. /// <param name="replycontent">答复内容</param>
  17212. /// <param name="duties">职务</param>
  17213. /// <param name="situation">处理情况</param>
  17214. /// <param name="state">0保存,1保存并办理</param>
  17215. /// <param name="feedbackid"></param>
  17216. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  17217. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  17218. /// <returns></returns>
  17219. 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)
  17220. {
  17221. var returns = "";
  17222. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17223. {
  17224. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  17225. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  17226. if (User != null)
  17227. {
  17228. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  17229. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17230. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17231. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  17232. msgend = ",工单编号:" + workorderid;
  17233. int type = 0; var resmsg = ""; string typemsg = "办理";
  17234. if (modelT_Bus_WorkOrder == null)
  17235. msgss = "要办理的工单已不存在";
  17236. else if (modelT_Bus_AssignedInfo == null)
  17237. {
  17238. msgss = "工单无法处理";
  17239. }
  17240. else
  17241. {
  17242. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  17243. if (type > 0)
  17244. {
  17245. #region 办理结果合成
  17246. result = "";
  17247. #region 获取部门
  17248. var deptname = "";
  17249. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  17250. {
  17251. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  17252. if (deptmodel != null)
  17253. deptname = deptmodel.F_DeptName;
  17254. }
  17255. #endregion
  17256. #region 获取来源
  17257. var sourcename = "";
  17258. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  17259. {
  17260. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  17261. if (dicmodel != null)
  17262. sourcename = dicmodel.F_Value;
  17263. }
  17264. #endregion
  17265. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  17266. var bljg = ""; var endstr = "";
  17267. if (isproresult == 1)
  17268. {
  17269. bljg = "已办理";
  17270. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  17271. {
  17272. var isStaisfiedRadioData = "未评价";
  17273. if (isstaisfied == 1)
  17274. {
  17275. isStaisfiedRadioData = "满意";
  17276. }
  17277. else if (isstaisfied == 2)
  17278. {
  17279. isStaisfiedRadioData = "基本满意";
  17280. }
  17281. else if (isstaisfied == 3)
  17282. {
  17283. isStaisfiedRadioData = "不满意";
  17284. }
  17285. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  17286. }
  17287. }
  17288. else if (isproresult == 2)
  17289. {
  17290. bljg = "未办理";
  17291. endstr = "; 处理方案/进程:" + prosituation;
  17292. }
  17293. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  17294. #endregion
  17295. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  17296. {
  17297. #region 处理办理
  17298. if (feedbackid == 0)
  17299. {
  17300. #region 插入反馈记录
  17301. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  17302. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  17303. modelT_Bus_Feedback.F_DealUser = dealman;
  17304. modelT_Bus_Feedback.F_Result = result;//反馈内容
  17305. #region 20200114新增字段 zhengbingbing
  17306. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  17307. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  17308. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  17309. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  17310. DateTime contime = DateTime.Now;
  17311. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  17312. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  17313. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  17314. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  17315. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  17316. modelT_Bus_Feedback.F_Duties = duties;//职务
  17317. modelT_Bus_Feedback.F_Situation = situation;
  17318. #endregion
  17319. modelT_Bus_Feedback.F_File = files;
  17320. modelT_Bus_Feedback.F_IsAudit = 0;
  17321. modelT_Bus_Feedback.F_IsDelete = 0;
  17322. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  17323. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  17324. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  17325. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  17326. modelT_Bus_Feedback.F_State = state;
  17327. modelT_Bus_Feedback.F_Type = type;
  17328. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  17329. #endregion
  17330. }
  17331. else
  17332. {
  17333. #region 修改反馈记录
  17334. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  17335. if (modelT_Bus_Feedback != null)
  17336. {
  17337. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  17338. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  17339. modelT_Bus_Feedback.F_DealUser = dealman;
  17340. modelT_Bus_Feedback.F_Result = result;//反馈内容
  17341. modelT_Bus_Feedback.F_File = files;
  17342. #region 20200114新增字段 zhengbingbing
  17343. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  17344. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  17345. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  17346. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  17347. DateTime contime = DateTime.Now;
  17348. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  17349. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  17350. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  17351. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  17352. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  17353. modelT_Bus_Feedback.F_Duties = duties;//职务
  17354. modelT_Bus_Feedback.F_Situation = situation;
  17355. #endregion
  17356. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  17357. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  17358. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  17359. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  17360. modelT_Bus_Feedback.F_State = state;
  17361. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17362. {
  17363. modelT_Bus_Feedback.F_Type = 1;
  17364. }
  17365. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  17366. {
  17367. modelT_Bus_Feedback.F_Type = 2;
  17368. }
  17369. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  17370. }
  17371. #endregion
  17372. }
  17373. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  17374. {
  17375. if (type == 1)
  17376. {
  17377. int iscs = 0;
  17378. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  17379. {
  17380. iscs = 1;
  17381. }
  17382. #region 保存工单信息
  17383. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  17384. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  17385. modelT_Bus_WorkOrder.F_Result = result;
  17386. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  17387. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  17388. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  17389. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  17390. workorderBLL.Update(modelT_Bus_WorkOrder);
  17391. #endregion
  17392. #region 保存交办信息
  17393. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  17394. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  17395. {
  17396. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  17397. }
  17398. assignBLL.Update(modelT_Bus_AssignedInfo);
  17399. #endregion
  17400. #region 删除草稿信息
  17401. 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 + "'");
  17402. foreach (var cg in cglist)
  17403. {
  17404. cg.F_IsDelete = 1;
  17405. cg.F_DeleteUser = User.F_UserCode;
  17406. cg.F_DeleteTime = DateTime.Now;
  17407. new BLL.T_Bus_Feedback().Update(cg);
  17408. }
  17409. #endregion
  17410. #region 删除二级单位未办理信息
  17411. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  17412. foreach (var ej in ejlist)
  17413. {
  17414. ej.F_IsDelete = 1;
  17415. ej.F_DeleteUser = User.F_UserCode;
  17416. ej.F_DeleteTime = DateTime.Now;
  17417. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  17418. }
  17419. #endregion
  17420. #region 处理协办单位
  17421. 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 + "'");
  17422. foreach (var xb in xblist)
  17423. {
  17424. xb.F_State = 2;
  17425. xb.F_SureUser = User.F_UserCode;
  17426. xb.F_SureTime = DateTime.Now;
  17427. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  17428. }
  17429. #endregion
  17430. typemsg = "主办";
  17431. }
  17432. else if (type == 2)
  17433. {
  17434. #region 保存明细信息
  17435. 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();
  17436. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  17437. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  17438. {
  17439. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  17440. }
  17441. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  17442. #endregion
  17443. #region 删除草稿信息
  17444. 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 + "'");
  17445. foreach (var cg in cglist)
  17446. {
  17447. cg.F_IsDelete = 1;
  17448. cg.F_DeleteUser = User.F_UserCode;
  17449. cg.F_DeleteTime = DateTime.Now;
  17450. new BLL.T_Bus_Feedback().Update(cg);
  17451. }
  17452. #endregion
  17453. typemsg = "协办";
  17454. }
  17455. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  17456. //推送消息表
  17457. // msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  17458. }
  17459. #endregion
  17460. retbool = "true";
  17461. }
  17462. else
  17463. msgss = "工单已办理";
  17464. backid = modelT_Bus_Feedback.F_Id.ToString();
  17465. }
  17466. else
  17467. msgss = "工单已办理或已被重新指派";
  17468. assid = modelT_Bus_AssignedInfo.F_Id;
  17469. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  17470. }
  17471. msgend = resmsg + " " + typemsg + "了工单";
  17472. }
  17473. else
  17474. {
  17475. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  17476. msgss = "无法获取工号信息";
  17477. }
  17478. #region 插入操作记录
  17479. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17480. oper.F_WorkOrderId = workorderid;
  17481. oper.F_AssignedId = assid;
  17482. oper.F_State = wostate;
  17483. oper.F_Message = userinfo + msgend;
  17484. oper.F_CreateUser = usercode;
  17485. oper.F_CreateTime = DateTime.Now;
  17486. oper.F_IsDelete = 0;
  17487. oper.F_Type = 1;
  17488. oper.F_File = files;
  17489. operBLL.Add(oper);
  17490. #endregion
  17491. trans.Complete();
  17492. returns = retbool + "|" + backid + "|" + msgss;
  17493. }
  17494. return returns;
  17495. }
  17496. /// <summary>
  17497. /// 对接网格化,记录办理过程
  17498. /// </summary>
  17499. /// <param name="usercode"></param>
  17500. /// <param name="workorderid"></param>
  17501. /// <param name="content"></param>
  17502. /// <returns></returns>
  17503. public string DealProcessWorkOrderByDock(string usercode, string workorderid, string content)
  17504. {
  17505. var returns = "";
  17506. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17507. {
  17508. var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  17509. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  17510. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17511. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17512. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  17513. if (User != null)
  17514. {
  17515. if (modelT_Bus_WorkOrder == null)
  17516. msgss = "要办理的工单已不存在";
  17517. else if (modelT_Bus_AssignedInfo == null)
  17518. {
  17519. msgss = "工单无法处理或已被处理";
  17520. }
  17521. else
  17522. {
  17523. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17524. {
  17525. msgss = "办理工单";
  17526. retbool = "true";
  17527. assid = modelT_Bus_AssignedInfo.F_Id;
  17528. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  17529. }
  17530. else
  17531. {
  17532. msgss = "工单无法处理";
  17533. }
  17534. }
  17535. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  17536. }
  17537. else
  17538. {
  17539. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  17540. msgss = "无法获取工号信息";
  17541. }
  17542. #region 插入操作记录
  17543. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17544. oper.F_WorkOrderId = workorderid;
  17545. oper.F_AssignedId = assid;
  17546. oper.F_State = state;
  17547. oper.F_Message = userinfo + msgend;
  17548. oper.F_CreateUser = usercode;
  17549. oper.F_CreateTime = DateTime.Now;
  17550. oper.F_IsDelete = 0;
  17551. oper.F_Type = 1;
  17552. optid = operBLL.Add(oper).ToString();
  17553. #endregion
  17554. trans.Complete();
  17555. returns = retbool + "|" + optid + "|" + msgss;
  17556. }
  17557. return returns;
  17558. }
  17559. #endregion
  17560. /// <summary>
  17561. /// 撤回工单
  17562. /// </summary>
  17563. /// <returns></returns>
  17564. //[Authority]
  17565. public ActionResult WithdrawWorkOrder()
  17566. {
  17567. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17568. {
  17569. string workorderid = RequestString.GetFormString("workorderid");
  17570. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17571. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17572. // Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  17573. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  17574. " and F_IsDelete=0 and F_State=1 " +
  17575. "and F_IsSure in (0,1) order by F_Id desc ");
  17576. if (modelT_Bus_WorkOrder != null && Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17577. {
  17578. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17579. {
  17580. #region 保存撤单信息
  17581. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  17582. //modelT_Bus_AssignedInfo_Next.F_DeleteUser = User.F_UserCode;
  17583. //modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  17584. //new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  17585. foreach (var cg in Bus_AssignedInfo_Next)
  17586. {
  17587. cg.F_IsDelete = 1;
  17588. cg.F_DeleteUser = User.F_UserCode;
  17589. cg.F_DeleteTime = DateTime.Now;
  17590. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  17591. }
  17592. #endregion
  17593. #region 删除处理信息
  17594. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId in(" +
  17595. string.Join(",", Bus_AssignedInfo_Next.Select(x => x.F_Id)) + ")");
  17596. foreach (var cg in cglist)
  17597. {
  17598. cg.F_IsDelete = 1;
  17599. cg.F_DeleteUser = User.F_UserCode;
  17600. cg.F_DeleteTime = DateTime.Now;
  17601. new BLL.T_Bus_Feedback_Next().Update(cg);
  17602. }
  17603. #endregion
  17604. #region 保存交办信息
  17605. modelT_Bus_AssignedInfo.F_IsNext = 0;
  17606. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  17607. #endregion
  17608. #region 保存工单信息
  17609. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17610. keyValuePairs.Add("F_MainDeptID3", null);
  17611. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  17612. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17613. #endregion
  17614. #region 插入操作记录
  17615. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17616. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17617. //oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17618. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17619. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17620. oper.F_Message = userinfo + " 撤回了工单";
  17621. oper.F_CreateUser = User.F_UserCode;
  17622. oper.F_CreateTime = DateTime.Now;
  17623. oper.F_IsDelete = 0;
  17624. operBLL.Add(oper);
  17625. #endregion
  17626. trans.Complete();
  17627. }
  17628. return Success("操作成功");
  17629. }
  17630. else
  17631. {
  17632. return Error("操作失败");
  17633. }
  17634. }
  17635. else
  17636. {
  17637. return Error("权限不足");
  17638. }
  17639. }
  17640. /// <summary>
  17641. /// 签收工单
  17642. /// </summary>
  17643. /// <returns></returns>
  17644. //[Authority]
  17645. public ActionResult SignWorkOrder()
  17646. {
  17647. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17648. {
  17649. string workorderid = RequestString.GetFormString("workorderid");
  17650. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17651. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17652. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  17653. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  17654. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  17655. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  17656. {
  17657. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  17658. }
  17659. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  17660. {
  17661. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  17662. {
  17663. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17664. {
  17665. #region 保存签收信息
  17666. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  17667. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  17668. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  17669. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  17670. #endregion
  17671. #region 保存交办信息
  17672. modelT_Bus_AssignedInfo.F_IsNext = 2;
  17673. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  17674. #endregion
  17675. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo_Next.F_OtherDeptIds))
  17676. {
  17677. if (modelT_Bus_AssignedInfo_Next.F_OtherDeptIds != "null")
  17678. {
  17679. string[] strids = modelT_Bus_AssignedInfo_Next.F_OtherDeptIds.TrimEnd(',').Split(',');
  17680. foreach (string strid in strids)
  17681. {
  17682. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  17683. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17684. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo_Next.F_AssignedOpinion;
  17685. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  17686. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo_Next.F_LimitTime;
  17687. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo_Next.F_Remark;
  17688. modelT_Bus_AssignedItemInfo.F_State = 1;
  17689. modelT_Bus_AssignedItemInfo.F_Type = 2;
  17690. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo_Next.F_WorkOrderId;
  17691. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  17692. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  17693. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  17694. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  17695. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  17696. }
  17697. }
  17698. }
  17699. #region 插入操作记录
  17700. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17701. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17702. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17703. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17704. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17705. oper.F_Message = userinfo + " 签收了工单";
  17706. oper.F_CreateUser = User.F_UserCode;
  17707. oper.F_CreateTime = DateTime.Now;
  17708. oper.F_IsDelete = 0;
  17709. operBLL.Add(oper);
  17710. #endregion
  17711. trans.Complete();
  17712. }
  17713. return Success("操作成功");
  17714. }
  17715. else
  17716. {
  17717. return Error("单位已签收,不能再次签收");
  17718. }
  17719. }
  17720. else
  17721. {
  17722. return Error("操作失败");
  17723. }
  17724. }
  17725. else
  17726. {
  17727. return Error("权限不足");
  17728. }
  17729. }
  17730. /// <summary>
  17731. /// 拒收工单
  17732. /// </summary>
  17733. /// <returns></returns>
  17734. //[Authority]
  17735. public ActionResult RefuseWorkOrder()
  17736. {
  17737. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17738. {
  17739. string workorderid = RequestString.GetFormString("workorderid");
  17740. string reason = RequestString.GetFormString("reason");
  17741. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17742. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17743. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  17744. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  17745. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  17746. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  17747. {
  17748. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  17749. }
  17750. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  17751. {
  17752. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0
  17753. || modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  17754. {
  17755. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17756. {
  17757. #region 保存签收信息
  17758. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  17759. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  17760. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  17761. modelT_Bus_AssignedInfo_Next.F_IsNotice = 2;
  17762. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  17763. #endregion
  17764. #region 保存交办信息
  17765. //三级单位退单
  17766. modelT_Bus_AssignedInfo.F_IsNext = 4;
  17767. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  17768. #endregion
  17769. #region 保存工单信息
  17770. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17771. keyValuePairs.Add("F_MainDeptID3", null);
  17772. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  17773. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17774. #endregion
  17775. #region 插入操作记录
  17776. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17777. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17778. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17779. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17780. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17781. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  17782. oper.F_CreateUser = User.F_UserCode;
  17783. oper.F_CreateTime = DateTime.Now;
  17784. oper.F_IsDelete = 0;
  17785. operBLL.Add(oper);
  17786. #endregion
  17787. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  17788. if (user != null && user.Count > 0)
  17789. {
  17790. foreach (var it in user)
  17791. {
  17792. string count = "工单" + workorderid + "已被退回至本单位,请及时转派处理!";
  17793. // string msg = workorderid;
  17794. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "181769", "");
  17795. string mag = "[\"" + workorderid + "\"]";
  17796. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240428561600512", mag,
  17797. //workorderid);
  17798. }
  17799. }
  17800. //三级单位退回工单给二级单位时,增加短信提醒
  17801. //三级单位退回工单给二级单位时,增加短信提醒
  17802. trans.Complete();
  17803. }
  17804. return Success("操作成功");
  17805. }
  17806. else
  17807. {
  17808. return Error("单位未拒收");
  17809. }
  17810. }
  17811. else
  17812. {
  17813. return Error("操作失败");
  17814. }
  17815. }
  17816. else
  17817. {
  17818. return Error("权限不足");
  17819. }
  17820. }
  17821. /// <summary>
  17822. /// 拒绝工单
  17823. /// </summary>
  17824. /// <returns></returns>
  17825. //[Authority]
  17826. public ActionResult RejectWorkOrder()
  17827. {
  17828. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17829. {
  17830. string workorderid = RequestString.GetFormString("workorderid");
  17831. string reason = RequestString.GetFormString("reason");
  17832. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17833. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17834. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  17835. ;
  17836. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  17837. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17838. {
  17839. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 3)
  17840. {
  17841. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17842. {
  17843. #region 保存签收信息
  17844. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  17845. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  17846. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  17847. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  17848. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  17849. #endregion
  17850. #region 保存交办信息
  17851. //三级单位退单
  17852. modelT_Bus_AssignedInfo.F_IsNext = 1;
  17853. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  17854. #endregion
  17855. #region 保存工单信息
  17856. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17857. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  17858. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  17859. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17860. #endregion
  17861. #region 插入操作记录
  17862. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17863. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17864. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17865. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17866. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17867. oper.F_Message = userinfo + " 拒绝了工单,原因:" + reason;
  17868. oper.F_CreateUser = User.F_UserCode;
  17869. oper.F_CreateTime = DateTime.Now;
  17870. oper.F_IsDelete = 0;
  17871. operBLL.Add(oper);
  17872. #endregion
  17873. trans.Complete();
  17874. }
  17875. return Success("操作成功");
  17876. }
  17877. else
  17878. {
  17879. return Error("单位已签收,不能再次签收");
  17880. }
  17881. }
  17882. else
  17883. {
  17884. return Error("操作失败");
  17885. }
  17886. }
  17887. else
  17888. {
  17889. return Error("权限不足");
  17890. }
  17891. }
  17892. /// <summary>
  17893. /// 二级单位退回工单
  17894. /// </summary>
  17895. /// <returns></returns>
  17896. //[Authority]
  17897. public ActionResult BackWorkOrder()
  17898. {
  17899. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "EJWLDW")
  17900. {
  17901. string workorderid = RequestString.GetFormString("workorderid");
  17902. string reason = RequestString.GetFormString("reason");
  17903. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17904. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17905. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  17906. ;
  17907. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  17908. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  17909. {
  17910. if (modelT_Bus_AssignedInfo_Next.F_FeedbackTime != null)
  17911. {
  17912. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17913. {
  17914. #region
  17915. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = null;
  17916. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  17917. modelT_Bus_AssignedInfo_Next.F_IsNotice = 0;
  17918. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  17919. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  17920. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  17921. #endregion
  17922. #region
  17923. //三级单位退单
  17924. modelT_Bus_AssignedInfo.F_IsNext = 1;
  17925. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  17926. #endregion
  17927. #region 保存工单信息
  17928. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17929. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  17930. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  17931. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17932. #endregion
  17933. #region 插入操作记录
  17934. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17935. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17936. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  17937. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17938. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17939. oper.F_Message = userinfo + " 退回了工单,原因:" + reason;
  17940. oper.F_CreateUser = User.F_UserCode;
  17941. oper.F_CreateTime = DateTime.Now;
  17942. oper.F_IsDelete = 0;
  17943. operBLL.Add(oper);
  17944. #endregion
  17945. trans.Complete();
  17946. }
  17947. return Success("操作成功");
  17948. }
  17949. else
  17950. {
  17951. return Error("单位未办理,不能退回重办");
  17952. }
  17953. }
  17954. else
  17955. {
  17956. return Error("操作失败");
  17957. }
  17958. }
  17959. else
  17960. {
  17961. return Error("权限不足");
  17962. }
  17963. }
  17964. /// <summary>
  17965. /// 处理工单
  17966. /// </summary>
  17967. /// <returns></returns>
  17968. //[Authority]
  17969. public ActionResult DealWorkOrder()
  17970. {
  17971. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17972. {
  17973. string workorderid = RequestString.GetFormString("workorderid");
  17974. string dealman = RequestString.GetFormString("dealman");
  17975. string result = RequestString.GetFormString("result");
  17976. string files = RequestString.GetFormString("files");
  17977. int state = RequestString.GetInt("state", 0);
  17978. int dealid = RequestString.GetInt("dealid", 0);
  17979. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  17980. string prosituation = RequestString.GetFormString("prosituation");
  17981. string dealcontact = RequestString.GetFormString("dealcontact");
  17982. string connecttime = RequestString.GetFormString("connecttime");
  17983. string connectmode = RequestString.GetFormString("connectmode");
  17984. string replycontent = RequestString.GetFormString("replycontent");
  17985. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  17986. string duties = RequestString.GetFormString("duties");//职务
  17987. string situation = RequestString.GetFormString("situation");
  17988. string AuditUser = RequestString.GetFormString("AuditUser");
  17989. string post = RequestString.GetFormString("post");
  17990. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  17991. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里
  17992. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17993. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17994. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  17995. var Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_WorkOrderId='" + workorderid + "'" +
  17996. " and F_IsDelete=0 and F_MainDeptId='" + User.F_DeptId + "' order by F_Id desc ");
  17997. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new T_Bus_AssignedInfo_Next();
  17998. if (Bus_AssignedInfo_Next != null && Bus_AssignedInfo_Next.Count > 0)
  17999. {
  18000. modelT_Bus_AssignedInfo_Next = Bus_AssignedInfo_Next.FirstOrDefault();
  18001. }
  18002. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  18003. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  18004. && (modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId || modelT_Bus_AssignedInfo_Next
  18005. .F_OtherDeptIds.Contains(User.F_DeptId.ToString()))
  18006. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  18007. {
  18008. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  18009. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay
  18010. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  18011. {
  18012. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18013. {
  18014. if (dealid == 0)
  18015. {
  18016. #region 插入反馈记录
  18017. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  18018. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  18019. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  18020. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  18021. #region 20200114新增字段 zhengbingbing
  18022. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  18023. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  18024. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  18025. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  18026. DateTime contime = DateTime.Now;
  18027. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  18028. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  18029. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  18030. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  18031. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  18032. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  18033. modelT_Bus_Feedback_Next.F_Situation = situation;
  18034. #endregion
  18035. modelT_Bus_Feedback_Next.F_File = files;
  18036. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  18037. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  18038. modelT_Bus_Feedback_Next.F_AuditPost = post;
  18039. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  18040. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  18041. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  18042. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  18043. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  18044. modelT_Bus_Feedback_Next.F_State = state;
  18045. modelT_Bus_Feedback_Next.F_Type = 1;
  18046. modelT_Bus_Feedback_Next.F_AuditContact = auditContact;
  18047. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  18048. modelT_Bus_Feedback_Next.F_Id= new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  18049. #endregion
  18050. }
  18051. else
  18052. {
  18053. #region 修改反馈记录
  18054. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  18055. if (modelT_Bus_Feedback_Next != null)
  18056. {
  18057. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  18058. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  18059. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  18060. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  18061. modelT_Bus_Feedback_Next.F_File = files;
  18062. #region 20200114新增字段 zhengbingbing
  18063. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  18064. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  18065. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  18066. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  18067. DateTime contime = DateTime.Now;
  18068. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  18069. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  18070. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  18071. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  18072. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  18073. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  18074. modelT_Bus_Feedback_Next.F_Situation = situation;
  18075. #endregion
  18076. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  18077. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  18078. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  18079. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  18080. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  18081. modelT_Bus_Feedback_Next.F_State = state;
  18082. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  18083. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  18084. }
  18085. #endregion
  18086. }
  18087. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  18088. {
  18089. #region 保存交办信息
  18090. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  18091. modelT_Bus_AssignedInfo.F_IsNext = 3;
  18092. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  18093. #endregion
  18094. #region 保存派单信息
  18095. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  18096. modelT_Bus_AssignedInfo_Next.F_IsNotice = 1;
  18097. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  18098. {
  18099. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  18100. }
  18101. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  18102. #endregion
  18103. #region 删除草稿信息
  18104. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" +
  18105. modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  18106. foreach (var cg in cglist)
  18107. {
  18108. cg.F_IsDelete = 1;
  18109. cg.F_DeleteUser = User.F_UserCode;
  18110. cg.F_DeleteTime = DateTime.Now;
  18111. new BLL.T_Bus_Feedback_Next().Update(cg);
  18112. }
  18113. #endregion
  18114. #region 插入操作记录
  18115. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18116. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18117. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  18118. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18119. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18120. oper.F_Message = userinfo + " 办理了工单";
  18121. oper.F_CreateUser = User.F_UserCode;
  18122. oper.F_CreateTime = DateTime.Now;
  18123. oper.F_IsDelete = 0;
  18124. operBLL.Add(oper);
  18125. //推送消息表
  18126. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  18127. #endregion
  18128. }
  18129. trans.Complete();
  18130. }
  18131. if (modelT_Bus_AssignedInfo_Next.F_Id > 0)
  18132. {
  18133. Task.Run(() =>
  18134. {
  18135. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_2");
  18136. }).ContinueWith(p =>
  18137. {
  18138. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18139. });
  18140. }
  18141. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  18142. }
  18143. else
  18144. {
  18145. return Error("已经办理过了");
  18146. }
  18147. }
  18148. else
  18149. {
  18150. return Error("操作失败");
  18151. }
  18152. }
  18153. else
  18154. {
  18155. return Error("权限不足");
  18156. }
  18157. }
  18158. private BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
  18159. /// <summary>
  18160. /// 保存客户档案
  18161. /// </summary>
  18162. /// <param name="telphone"></param>
  18163. /// <param name="name"></param>
  18164. /// <param name="phone"></param>
  18165. /// <param name="countryid"></param>
  18166. /// <param name="address"></param>
  18167. /// <returns></returns>
  18168. private void saveCus(string name, string phone, string address)
  18169. {
  18170. int res = 0;
  18171. Model.T_Cus_CustomerBase cusmodel = new Model.T_Cus_CustomerBase();
  18172. if (!string.IsNullOrWhiteSpace(phone))
  18173. {
  18174. cusmodel = cusBLL.GetModelBy(phone, name);
  18175. if (cusmodel == null)
  18176. {
  18177. cusmodel = new Model.T_Cus_CustomerBase();
  18178. cusmodel.F_Address = address;
  18179. cusmodel.F_CustomerName = name;
  18180. cusmodel.F_Mobile = phone;
  18181. cusmodel.F_DeleteFlag = 0;
  18182. res = cusBLL.Add(cusmodel);
  18183. }
  18184. }
  18185. }
  18186. /// <summary>
  18187. /// 审核处理工单
  18188. /// </summary>
  18189. /// <returns></returns>
  18190. //[Authority]
  18191. public ActionResult AuditSplitWorkOrder()
  18192. {
  18193. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  18194. {
  18195. string workorderid = RequestString.GetFormString("workorderid");
  18196. int state = RequestString.GetInt("state", 0);
  18197. string reason = RequestString.GetFormString("reason");
  18198. int backid = RequestString.GetInt("backid", 0);
  18199. string files = RequestString.GetFormString("files");
  18200. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18201. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  18202. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  18203. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  18204. {
  18205. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  18206. {
  18207. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18208. {
  18209. modelT_Bus_Feedback_Next.F_IsAudit = state;
  18210. modelT_Bus_Feedback_Next.F_AuditUser = User.F_UserCode;
  18211. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  18212. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  18213. var dept = new BLL.T_Sys_Department().GetModel(User.F_DeptId);
  18214. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  18215. string strmsg = "";
  18216. var deptinfo = "";
  18217. if (dept != null)
  18218. deptinfo = dept.F_DeptName;
  18219. else
  18220. deptinfo = User.F_UserName;
  18221. string message = deptinfo + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + modelT_Bus_Feedback_Next.F_Result; ;
  18222. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18223. if (state == 1)
  18224. {
  18225. strmsg = "同意";
  18226. #region 插入反馈记录
  18227. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  18228. modelT_Bus_AssignedInfo_Next1.F_IsNotice = 2;
  18229. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  18230. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  18231. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  18232. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  18233. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  18234. modelT_Bus_Feedback.F_Result = message;//反馈内容
  18235. #region 20200114新增字段 zhengbingbing
  18236. modelT_Bus_Feedback.F_AuditPost = modelT_Bus_Feedback_Next.F_AuditPost;
  18237. modelT_Bus_Feedback.F_AuditReason = modelT_Bus_Feedback_Next.F_AuditReason;
  18238. modelT_Bus_Feedback.F_AuditUser = modelT_Bus_Feedback_Next.F_AuditUser;
  18239. modelT_Bus_Feedback.F_AuditContact = modelT_Bus_Feedback_Next.F_AuditContact;
  18240. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  18241. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  18242. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  18243. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  18244. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  18245. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  18246. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  18247. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  18248. #endregion
  18249. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  18250. modelT_Bus_Feedback.F_IsAudit = 0;
  18251. modelT_Bus_Feedback.F_IsDelete = 0;
  18252. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  18253. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  18254. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  18255. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  18256. modelT_Bus_Feedback.F_State = state;
  18257. modelT_Bus_Feedback.F_Type = 1;
  18258. modelT_Bus_Feedback.F_Id=new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  18259. #endregion
  18260. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  18261. {
  18262. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  18263. keyValuePairs.Add("F_IsOverdue", 1);
  18264. // modelT_Bus_WorkOrder.F_IsOverdue = 1;
  18265. }
  18266. #region 保存工单信息
  18267. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  18268. if (modelT_Bus_Feedback.F_IsProResult == 2)
  18269. {
  18270. keyValuePairs.Add("F_IsProResult", 2);
  18271. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  18272. // modelT_Bus_WorkOrder.F_IsProResultState = IsProResultState;
  18273. keyValuePairs.Add("F_Unsuccessful", modelT_Bus_Feedback.F_ProSituation);
  18274. // modelT_Bus_WorkOrder.F_Unsuccessful = modelT_Bus_Feedback.F_ProSituation;
  18275. }
  18276. else
  18277. {
  18278. keyValuePairs.Add("F_IsProResult", 1);
  18279. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  18280. // modelT_Bus_WorkOrder.F_IsProResult = 1;
  18281. }
  18282. keyValuePairs.Add("F_ToBereply", 1);
  18283. var modeBus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next()
  18284. .GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsDelete=0 " +
  18285. " ");
  18286. if (modeBus_AssignedInfo_Next != null && modeBus_AssignedInfo_Next.Count > 0)
  18287. {
  18288. if (modeBus_AssignedInfo_Next.Count > 0)
  18289. {
  18290. if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 1).Count() > 0)
  18291. {
  18292. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  18293. }
  18294. else if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 0).Count() > 0)
  18295. {
  18296. modelT_Bus_AssignedInfo.F_IsNext = 2;
  18297. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  18298. }
  18299. }
  18300. }
  18301. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  18302. {
  18303. keyValuePairs.Add("F_Result", message);
  18304. }
  18305. else
  18306. {
  18307. keyValuePairs.Add("F_Result", modelT_Bus_WorkOrder.F_Result + "\n" + message);
  18308. }
  18309. // modelT_Bus_WorkOrder.F_Result = message;
  18310. //keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback_Next.F_CreateDeptId);
  18311. //// modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  18312. //keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback_Next.F_CreateUser);
  18313. //// modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  18314. //keyValuePairs.Add("F_DealTime", DateTime.Now);
  18315. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  18316. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18317. #endregion
  18318. #region 保存交办信息
  18319. assignBLL.Update(modelT_Bus_AssignedInfo);
  18320. #endregion
  18321. #region 删除草稿信息
  18322. //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 + "'");
  18323. //foreach (var cg in cglist)
  18324. //{
  18325. // cg.F_IsDelete = 1;
  18326. // cg.F_DeleteUser = User.F_UserCode;
  18327. // cg.F_DeleteTime = DateTime.Now;
  18328. // new BLL.T_Bus_Feedback().Update(cg);
  18329. //}
  18330. #endregion
  18331. #region 处理协办单位
  18332. //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 + "'");
  18333. //foreach (var xb in xblist)
  18334. //{
  18335. // xb.F_State = 2;
  18336. // xb.F_SureUser = User.F_UserCode;
  18337. // xb.F_SureTime = DateTime.Now;
  18338. // new BLL.T_Bus_AssignedItemInfo().Update(xb);
  18339. //}
  18340. #endregion
  18341. if (modelT_Bus_Feedback.F_Id>0)
  18342. {
  18343. Task.Run(() =>
  18344. {
  18345. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  18346. if (!string.IsNullOrEmpty(files))
  18347. {
  18348. pushmaterial_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  18349. }
  18350. }).ContinueWith(p =>
  18351. {
  18352. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18353. });
  18354. }
  18355. }
  18356. else if (state == 2)
  18357. {
  18358. strmsg = "拒绝";
  18359. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  18360. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  18361. modelT_Bus_AssignedInfo_Next1.F_IsNotice = 0;
  18362. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  18363. var modeBus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next()
  18364. .GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsDelete=0 " +
  18365. " ");
  18366. if (modeBus_AssignedInfo_Next != null && modeBus_AssignedInfo_Next.Count > 0)
  18367. {
  18368. if (modeBus_AssignedInfo_Next.Count > 0)
  18369. {
  18370. if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 1).Count() > 0)
  18371. {
  18372. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  18373. assignBLL.Update(modelT_Bus_AssignedInfo);
  18374. }
  18375. else if (modeBus_AssignedInfo_Next.Where(x => x.F_IsNotice == 0).Count() > 0)
  18376. {
  18377. modelT_Bus_AssignedInfo.F_IsNext = 2;
  18378. modelT_Bus_AssignedInfo.F_FeedbackTime = null;
  18379. assignBLL.Update(modelT_Bus_AssignedInfo);
  18380. }
  18381. }
  18382. }
  18383. }
  18384. #region 插入操作记录
  18385. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18386. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18387. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  18388. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18389. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18390. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  18391. if (!string.IsNullOrWhiteSpace(reason))
  18392. oper.F_Message = oper.F_Message + ",原因:" + reason;
  18393. oper.F_CreateUser = User.F_UserCode;
  18394. oper.F_CreateTime = DateTime.Now;
  18395. oper.F_IsDelete = 0;
  18396. operBLL.Add(oper);
  18397. //推送消息表
  18398. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  18399. #endregion
  18400. trans.Complete();
  18401. }
  18402. return Success("操作成功");
  18403. }
  18404. else
  18405. {
  18406. return Error("已经审核过了");
  18407. }
  18408. }
  18409. else
  18410. {
  18411. return Error("操作失败");
  18412. }
  18413. }
  18414. else
  18415. {
  18416. return Error("权限不足");
  18417. }
  18418. }
  18419. ///// <summary>
  18420. ///// 发送评价短信
  18421. ///// </summary>
  18422. ///// <param name="phone"></param>
  18423. ///// <param name="WorkOrderId"></param>
  18424. ///// <returns></returns>
  18425. //public void SendVisits(string phone, string WorkOrderId, string deptname, string code)
  18426. //{
  18427. // if (!string.IsNullOrEmpty(phone))
  18428. // {
  18429. // if (phone.Trim().Length > 11)
  18430. // phone = phone.Trim().Substring(phone.Length - 11);
  18431. // else
  18432. // phone = phone.Trim();
  18433. // }
  18434. // var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  18435. // if (model != null)
  18436. // {
  18437. // string content = ""; string temp = "1055511888753410048";
  18438. // content = $"您反映的诉求已有回复,可点击短信末尾链接查看办理结果并于2日内进行评价," +
  18439. // $"或者拨打鹤壁市12345热线咨询,谢谢!链接地址:" +
  18440. // $"{ "http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + ""}";
  18441. // string mag = "[\"http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + "\"]";
  18442. // string n = SmsNewController.AddSmS(0, content, phone, temp, mag, WorkOrderId);
  18443. // if (n == "")
  18444. // {
  18445. // Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18446. // keyValuePairs.Add("F_IsSms", "1");
  18447. // keyValuePairs.Add("F_SmsTime", DateTime.Now);
  18448. // keyValuePairs.Add("F_PublicComment","-1");
  18449. // // model.F_IsSms = 1;
  18450. // new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18451. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18452. // oper.F_WorkOrderId = model.F_WorkOrderId;
  18453. // oper.F_State = model.F_WorkState;
  18454. // oper.F_CallRecordId = model.F_CallRecordId;
  18455. // oper.F_File = model.F_File;
  18456. // string userinfo = deptname + "(" + code + ")";
  18457. // oper.F_Message = userinfo + "发送了市民评价短信";
  18458. // oper.F_CreateUser = code;
  18459. // oper.F_CreateTime = DateTime.Now;
  18460. // oper.F_IsDelete = 0;
  18461. // operBLL.Add(oper);
  18462. // }
  18463. // }
  18464. //}
  18465. /// <summary>
  18466. /// 发送评价短信
  18467. /// </summary>
  18468. /// <param name="phone"></param>
  18469. /// <param name="WorkOrderId"></param>
  18470. /// <returns></returns>
  18471. public ActionResult SendVisit( string workorderid,int spotcheck=1)
  18472. {
  18473. string deptname = User.depname; string code = User.F_UserCode;
  18474. if (string .IsNullOrEmpty(workorderid))
  18475. {
  18476. return Error("请选择工单");
  18477. }
  18478. var model = workorderBLL.GetModel(workorderid);
  18479. if (model != null)
  18480. {
  18481. string phone = model. F_CusPhone;
  18482. if (phone.Length<11&&!string .IsNullOrEmpty(model.F_ConPhone)
  18483. && model.F_ConPhone.Length >= 11)
  18484. {
  18485. phone = model.F_ConPhone;
  18486. }
  18487. if (!string.IsNullOrEmpty(phone))
  18488. {
  18489. if (phone.Trim().Length > 11)
  18490. phone = phone.Trim().Substring(phone.Length - 11);
  18491. else
  18492. phone = phone.Trim();
  18493. }
  18494. string content = ""; string temp = "1055588256505212928";
  18495. content = $"您反映的诉求已有回复,可点击短信末尾链接查看办理结果并于2日内进行评价," +
  18496. $"或拨打鹤壁市12345热线咨询。链接地址:" +
  18497. $"{ "http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + ""}";
  18498. string mag = "[\"http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + "\"]";
  18499. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, workorderid);
  18500. if (n == "")
  18501. {
  18502. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18503. keyValuePairs.Add("F_IsSms", "1");
  18504. keyValuePairs.Add("F_SmsTime", DateTime.Now);
  18505. keyValuePairs.Add("F_PublicComment", "-1");
  18506. keyValuePairs.Add("F_SpotCheck", spotcheck);
  18507. // model.F_IsSms = 1;
  18508. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18509. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18510. oper.F_WorkOrderId = model.F_WorkOrderId;
  18511. oper.F_State = model.F_WorkState;
  18512. oper.F_CallRecordId = model.F_CallRecordId;
  18513. oper.F_File = model.F_File;
  18514. string userinfo = deptname + "(" + code + ")";
  18515. oper.F_Message = userinfo + "发送了市民评价短信";
  18516. oper.F_CreateTime = DateTime.Now;
  18517. oper.F_CreateUser = code;
  18518. oper.F_IsDelete = 0;
  18519. operBLL.Add(oper);
  18520. return Success("发送成功");
  18521. }
  18522. else
  18523. {
  18524. return Error(n);
  18525. }
  18526. }
  18527. else
  18528. {
  18529. return Error("工单不存在");
  18530. }
  18531. }
  18532. /// <summary>
  18533. /// 回退已办待回访
  18534. /// </summary>
  18535. /// <param name="ids"></param>
  18536. /// <returns></returns>
  18537. public ActionResult BackVisit(string [] ids)
  18538. {
  18539. string deptname = User.depname; string code = User.F_UserCode;
  18540. string error = "";
  18541. foreach (var workorderid in ids)
  18542. {
  18543. var model = workorderBLL.GetModel(workorderid);
  18544. if (model != null)
  18545. {
  18546. if (model.F_WorkState !=9)
  18547. {
  18548. error += workorderid + "工单未结案";
  18549. continue;
  18550. }
  18551. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18552. keyValuePairs.Add("F_IsSms", "0");
  18553. keyValuePairs.Add("F_WorkState", "7");
  18554. // model.F_IsSms = 1;
  18555. bool n = new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18556. if (n)
  18557. {
  18558. if (model.F_IsClosed == 1)
  18559. {
  18560. var modellist = new BLL.T_Bus_Operation().GetModelList($"F_WorkOrderId='{model.F_WorkOrderId}' order by F_Id desc");
  18561. foreach (var it in modellist)
  18562. {
  18563. if (it.F_Message.Contains("回访了工单,结果")
  18564. || it.F_Message.Contains("市民评议满意,自动结案")
  18565. || it.F_Message.Contains(" 2天未评价自动结案了工单,结果:满意 "))
  18566. {
  18567. it.F_IsDelete = 1;
  18568. new BLL.T_Bus_Operation().Update(it);
  18569. break;
  18570. }
  18571. }
  18572. }
  18573. string userinfo = deptname + "(" + code + ")";
  18574. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18575. oper.F_WorkOrderId = model.F_WorkOrderId;
  18576. oper.F_State = model.F_WorkState;
  18577. oper.F_CallRecordId = model.F_CallRecordId;
  18578. oper.F_File = model.F_File;
  18579. oper.F_Message = userinfo + "回退了工单";
  18580. oper.F_CreateUser = code;
  18581. oper.F_IsDelete = 0;
  18582. operBLL.Add(oper);
  18583. }
  18584. else
  18585. {
  18586. error += workorderid + "工单回退失败";
  18587. }
  18588. }
  18589. else
  18590. {
  18591. error += workorderid + "工单不存在";
  18592. }
  18593. }
  18594. if (error == "")
  18595. {
  18596. return Success("成功");
  18597. }
  18598. else
  18599. return Error(error);
  18600. }
  18601. /// <summary>
  18602. /// 转出人工差评
  18603. /// </summary>
  18604. /// <param name="ids"></param>
  18605. /// <returns></returns>
  18606. public ActionResult RemoveContentment(string[] ids)
  18607. {
  18608. string deptname = User.depname; string code = User.F_UserCode;
  18609. string error = "";
  18610. foreach (var workorderid in ids)
  18611. {
  18612. var model = workorderBLL.GetModel(workorderid);
  18613. if (model != null)
  18614. {
  18615. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18616. keyValuePairs.Add("F_Contentment", null );
  18617. // model.F_IsSms = 1;
  18618. bool n = new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18619. if (!n)
  18620. {
  18621. error += workorderid + "工单转出失败";
  18622. }
  18623. }
  18624. else
  18625. {
  18626. error += workorderid + "工单不存在";
  18627. }
  18628. }
  18629. if (error == "")
  18630. {
  18631. return Success("成功");
  18632. }
  18633. else
  18634. return Error(error);
  18635. }
  18636. /// <summary>
  18637. /// 转出人工差评
  18638. /// </summary>
  18639. /// <param name="ids"></param>
  18640. /// <returns></returns>
  18641. public ActionResult TransferOut(string [] ids)
  18642. {
  18643. string deptname = User.depname; string code = User.F_UserCode;
  18644. string error = "";
  18645. foreach (var workorderid in ids)
  18646. {
  18647. var model = workorderBLL.GetModel(workorderid);
  18648. if (model != null)
  18649. {
  18650. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18651. keyValuePairs.Add("F_PublicComment", "-2");
  18652. // model.F_IsSms = 1;
  18653. bool n = new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18654. if (n)
  18655. {
  18656. string userinfo = deptname + "(" + code + ")";
  18657. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18658. oper.F_WorkOrderId = model.F_WorkOrderId;
  18659. oper.F_State = model.F_WorkState;
  18660. oper.F_CallRecordId = model.F_CallRecordId;
  18661. oper.F_File = model.F_File;
  18662. oper.F_Message = userinfo + "转出了工单";
  18663. oper.F_CreateUser = code;
  18664. oper.F_CreateTime = DateTime.Now;
  18665. oper.F_IsDelete = 0;
  18666. operBLL.Add(oper);
  18667. }
  18668. else
  18669. {
  18670. error += workorderid + "工单转出失败";
  18671. }
  18672. }
  18673. else
  18674. {
  18675. error += workorderid + "工单不存在";
  18676. }
  18677. }
  18678. if (error == "")
  18679. {
  18680. return Success("成功");
  18681. }
  18682. else
  18683. return Error(error);
  18684. }
  18685. /// <summary>
  18686. /// 发送评价短信
  18687. /// </summary>
  18688. /// <param name="phone"></param>
  18689. /// <param name="WorkOrderId"></param>
  18690. /// <returns></returns>
  18691. public ActionResult SendVisits(string [] ids,int spotcheck=1)
  18692. {
  18693. string deptname = User.depname; string code = User.F_UserCode;
  18694. string error = "";
  18695. foreach (var workorderid in ids)
  18696. {
  18697. var model = workorderBLL.GetModel(workorderid);
  18698. if (model != null)
  18699. {
  18700. string phone = model.F_CusPhone;
  18701. if (phone.Length < 11 && !string.IsNullOrEmpty(model.F_ConPhone)
  18702. && model.F_ConPhone.Length >= 11)
  18703. {
  18704. phone = model.F_ConPhone;
  18705. }
  18706. if (!string.IsNullOrEmpty(phone))
  18707. {
  18708. if (phone.Trim().Length > 11)
  18709. phone = phone.Trim().Substring(phone.Length - 11);
  18710. else
  18711. phone = phone.Trim();
  18712. }
  18713. string content = ""; string temp = "1055588256505212928";
  18714. content = $"您反映的诉求已有回复,可点击短信末尾链接查看办理结果并于2日内进行评价," +
  18715. $"或拨打鹤壁市12345热线咨询。链接地址:" +
  18716. $"{ "http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + ""}";
  18717. string mag = "[\"http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + model.F_Id + "\"]";
  18718. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, workorderid);
  18719. if (n == "")
  18720. {
  18721. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18722. keyValuePairs.Add("F_IsSms", "1");
  18723. keyValuePairs.Add("F_SmsTime", DateTime.Now);
  18724. keyValuePairs.Add("F_PublicComment", "-1");
  18725. keyValuePairs.Add("F_SpotCheck", spotcheck);
  18726. // model.F_IsSms = 1;
  18727. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  18728. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18729. oper.F_WorkOrderId = model.F_WorkOrderId;
  18730. oper.F_State = model.F_WorkState;
  18731. oper.F_CallRecordId = model.F_CallRecordId;
  18732. oper.F_File = model.F_File;
  18733. string userinfo = deptname + "(" + code + ")";
  18734. oper.F_Message = userinfo + "发送了市民评价短信";
  18735. oper.F_CreateTime = DateTime.Now;
  18736. oper.F_CreateUser = code;
  18737. oper.F_IsDelete = 0;
  18738. operBLL.Add(oper);
  18739. }
  18740. else
  18741. {
  18742. error += workorderid +n;
  18743. }
  18744. }
  18745. else
  18746. {
  18747. error += workorderid+"工单不存在";
  18748. }
  18749. }
  18750. if (error == "")
  18751. {
  18752. return Success("发送成功");
  18753. }
  18754. else
  18755. return Error(error);
  18756. }
  18757. /// <summary>
  18758. /// 发送评价短信
  18759. /// </summary>
  18760. /// <param name="phone"></param>
  18761. /// <param name="WorkOrderId"></param>
  18762. /// <returns></returns>
  18763. public ActionResult SendSMSVisits()
  18764. {
  18765. string error = "";
  18766. string sql = "select * from T_Bus_WorkOrder " +
  18767. " where F_Note='|||1' and F_CreateTime>= '2024-11-01 00:00:00' and F_WorkState = 9 " +
  18768. " and F_PublicComment is null";
  18769. var dt = DbHelperSQL.Query(sql).Tables[0];
  18770. foreach (DataRow dr in dt.Rows)
  18771. {
  18772. string phone = dr["F_CusPhone"].ToString();
  18773. if (phone.Length < 11 && !string.IsNullOrEmpty(dr["F_CusPhone"].ToString())
  18774. && dr["F_CusPhone"]!=null&& dr["F_CusPhone"].ToString().Length >= 11)
  18775. {
  18776. phone = dr["F_CusPhone"].ToString();
  18777. }
  18778. if (!string.IsNullOrEmpty(phone))
  18779. {
  18780. if (phone.Trim().Length > 11)
  18781. phone = phone.Trim().Substring(phone.Length - 11);
  18782. else
  18783. phone = phone.Trim();
  18784. }
  18785. string content = ""; string temp = "1055588256505212928";
  18786. content = $"您反映的诉求已有回复,可点击短信末尾链接查看办理结果并于2日内进行评价," +
  18787. $"或拨打鹤壁市12345热线咨询。链接地址:" +
  18788. $"{ "http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + dr["F_Id"].ToString() + ""}";
  18789. string mag = "[\"http://dxhf.spzwxxj.hebi.gov.cn:8001/citizenNode/login.html?workorderid=" + dr["F_Id"].ToString() + "\"]";
  18790. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, dr["F_WorkOrderId"].ToString());
  18791. if (n == "")
  18792. {
  18793. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18794. keyValuePairs.Add("F_IsSms", "1");
  18795. keyValuePairs.Add("F_SmsTime", DateTime.Now);
  18796. keyValuePairs.Add("F_PublicComment", "-1");
  18797. keyValuePairs.Add("F_WorkState", "7");
  18798. keyValuePairs.Add("F_SpotCheck", 1);
  18799. // model.F_IsSms = 1;
  18800. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(int.Parse(dr["F_Id"].ToString()), keyValuePairs);
  18801. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18802. oper.F_WorkOrderId = dr["F_WorkOrderId"].ToString();
  18803. oper.F_Message = "发送了市民评价短信";
  18804. oper.F_CreateUser = "系统";
  18805. oper.F_CreateTime = DateTime.Now;
  18806. oper.F_IsDelete = 0;
  18807. operBLL.Add(oper);
  18808. }
  18809. else
  18810. {
  18811. error += dr["F_WorkOrderId"].ToString() + n;
  18812. }
  18813. }
  18814. if (error == "")
  18815. {
  18816. return Success("发送成功");
  18817. }
  18818. else
  18819. return Error(error);
  18820. }
  18821. /// <summary>
  18822. /// 审核派单
  18823. /// </summary>
  18824. /// <returns></returns>
  18825. public ActionResult AuditDispatch()
  18826. {
  18827. 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")
  18828. {
  18829. string workorderid = RequestString.GetFormString("workorderid");
  18830. int nexttype = RequestString.GetInt("nexttype", 0);//0审核通过1审核不通过
  18831. string cbreason = RequestString.GetFormString("cbreason");//审核
  18832. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18833. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new BLL.T_Bus_ToExamine().GetNewModelByWorkOrderID(workorderid);
  18834. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18835. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new T_Bus_AssignedInfo();
  18836. if (modelT_Bus_WorkOrder != null)
  18837. {
  18838. if (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 11 && modelT_Bus_ToExamine != null)
  18839. {
  18840. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18841. {
  18842. modelT_Bus_ToExamine.F_IsDelete = 0;
  18843. if (nexttype == 1)
  18844. modelT_Bus_ToExamine.F_State = 1;
  18845. else
  18846. modelT_Bus_ToExamine.F_State = 0;
  18847. modelT_Bus_ToExamine.F_Type = nexttype;
  18848. modelT_Bus_ToExamine.AuditUser = User.F_UserCode;
  18849. modelT_Bus_ToExamine.F_Result = cbreason;
  18850. var n = new BLL.T_Bus_ToExamine().Update(modelT_Bus_ToExamine);
  18851. if (n)
  18852. {
  18853. var opt = "审核通过"; var cbreasons = "";
  18854. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18855. #region
  18856. if (nexttype == 1)
  18857. {
  18858. #region 保存工单信息
  18859. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  18860. keyValuePairs2.Add("F_MainDeptId", null);
  18861. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  18862. #endregion
  18863. cbreasons = ",拒绝原因:" + cbreason;
  18864. #endregion
  18865. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18866. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18867. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  18868. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18869. oper.F_Message = userinfo + " 审核拒绝了工单" + cbreasons;
  18870. oper.F_CreateUser = User.F_UserCode;
  18871. oper.F_CreateTime = DateTime.Now;
  18872. oper.F_IsDelete = 0;
  18873. operBLL.Add(oper);
  18874. }
  18875. else
  18876. {
  18877. int day = 7;
  18878. if (modelT_Bus_ToExamine.F_LimitTime != null && modelT_Bus_ToExamine.F_LimitTime > 0)
  18879. {
  18880. day = (int)modelT_Bus_ToExamine.F_LimitTime + 1;
  18881. }
  18882. var resdatetime = GetLimittime(day);
  18883. // DataTable dt = DbHelperSQL.Query("select top " + day + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  18884. // "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];
  18885. // var resdatetime = dt.Rows[day - 1]["F_OffDate"].ToString();
  18886. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  18887. // var datatime = DateTime.Now.AddDays(day );
  18888. // if (Convert.ToDateTime(resdatetime) > datatime)
  18889. // {
  18890. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  18891. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  18892. // " with(nolock) where F_OffState = 1 and " +
  18893. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  18894. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  18895. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  18896. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  18897. // {
  18898. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  18899. // }
  18900. // // 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"); ;
  18901. // }
  18902. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + modelT_Bus_ToExamine.F_MainDeptId + ")");
  18903. int t = 0;
  18904. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  18905. 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;
  18906. var curuser = User;
  18907. if (deptlist != null)
  18908. {
  18909. if (deptlist.Count == 1)
  18910. {
  18911. #region 交办一个单位
  18912. var maindept = deptlist.FirstOrDefault();
  18913. var premodeldept = department((int)maindept.F_PartentId);
  18914. #region 插入交办记录
  18915. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18916. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  18917. if (maindept.F_IsDept == 2)
  18918. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  18919. else
  18920. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  18921. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  18922. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  18923. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  18924. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  18925. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  18926. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  18927. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  18928. modelT_Bus_AssignedInfo.F_IsSure = 0;
  18929. modelT_Bus_AssignedInfo.F_IsReload = t;
  18930. modelT_Bus_AssignedInfo.F_IsNext = 0;
  18931. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  18932. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  18933. #endregion
  18934. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  18935. {
  18936. // Task.Run(() =>
  18937. // {
  18938. #region 保存工单信息
  18939. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18940. if (modelT_Bus_WorkOrder.F_Level == 2)
  18941. {
  18942. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  18943. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  18944. }
  18945. else
  18946. {
  18947. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  18948. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  18949. }
  18950. if (maindept.F_IsDept == 2)
  18951. {
  18952. keyValuePairs1.Add("F_MainDeptId", premodeldept.F_DeptId);
  18953. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  18954. }
  18955. else
  18956. {
  18957. keyValuePairs1.Add("F_MainDeptId", maindept.F_DeptId);
  18958. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  18959. }
  18960. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  18961. {
  18962. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  18963. if (content != null && content.Length > 0)
  18964. {
  18965. string[] deptid = content[0].Split(',');
  18966. if (deptid != null && deptid.Length > 0)
  18967. {
  18968. keyValuePairs1.Add("F_Content", content[0].Remove(0, deptid[0].Length + 1));
  18969. }
  18970. }
  18971. }
  18972. keyValuePairs1.Add("F_OtherDeptIds", "");
  18973. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  18974. keyValuePairs1.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  18975. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  18976. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  18977. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  18978. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  18979. {
  18980. keyValuePairs1.Add("F_IsReload", t);
  18981. keyValuePairs1.Add("F_IsOverdue", 0);
  18982. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  18983. modelT_Bus_WorkOrder.F_WorkState = 8;
  18984. }
  18985. else
  18986. {
  18987. if (maindept.F_IsDept == 2)
  18988. {
  18989. modelT_Bus_WorkOrder.F_WorkState = 4;
  18990. keyValuePairs1.Add("F_WorkState", 4);
  18991. }
  18992. else
  18993. {
  18994. modelT_Bus_WorkOrder.F_WorkState = 2;
  18995. keyValuePairs1.Add("F_WorkState", 2);
  18996. }
  18997. }
  18998. keyValuePairs1.Add("F_IsSendBack", 0);
  18999. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  19000. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  19001. #endregion
  19002. // }).ContinueWith(q =>
  19003. // {
  19004. string DeptName = "";
  19005. if (maindept.F_IsDept == 2)
  19006. {
  19007. DeptName = premodeldept.F_DeptName;
  19008. }
  19009. else
  19010. DeptName = maindept.F_DeptName;
  19011. var msgss = userinfo + " 审核通过了工单,主办单位:" + DeptName;
  19012. if (!string.IsNullOrEmpty(cbreason))
  19013. {
  19014. msgss += ",审核意见:" + cbreason;
  19015. }
  19016. if (maindept.F_IsDept == 2)
  19017. {
  19018. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  19019. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, cbreason, curuser);
  19020. }
  19021. else
  19022. {
  19023. Task.Run(() =>
  19024. {
  19025. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  19026. }).ContinueWith(p =>
  19027. {
  19028. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19029. });
  19030. }
  19031. #region 插入推送消息
  19032. if (maindept.F_IsDept == 2)
  19033. {
  19034. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  19035. foreach (var u in users)
  19036. {
  19037. if (curuser.F_RoleCode == "DBZY")
  19038. {
  19039. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  19040. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  19041. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  19042. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19043. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  19044. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  19045. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  19046. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  19047. }
  19048. else
  19049. {
  19050. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  19051. {
  19052. continue;
  19053. }
  19054. else
  19055. {
  19056. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  19057. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  19058. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  19059. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19060. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681555443768397824", mag,
  19061. // modelT_Bus_WorkOrder.F_WorkOrderId);
  19062. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  19063. }
  19064. }
  19065. }
  19066. }
  19067. else
  19068. {
  19069. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  19070. foreach (var u in users)
  19071. {
  19072. if (curuser.F_RoleCode == "DBZY")
  19073. {
  19074. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  19075. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  19076. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  19077. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19078. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  19079. //"681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  19080. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  19081. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  19082. }
  19083. else
  19084. {
  19085. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  19086. {
  19087. continue;
  19088. }
  19089. else
  19090. {
  19091. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  19092. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  19093. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  19094. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  19095. // string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  19096. // modelT_Bus_WorkOrder.F_WorkOrderId);
  19097. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  19098. PushMessageController.PushApp("紧急工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  19099. else
  19100. PushMessageController.PushApp("新工单提醒", count, u.F_UserCode, modelT_Bus_WorkOrder.F_WorkOrderId);
  19101. }
  19102. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  19103. }
  19104. }
  19105. }
  19106. #endregion
  19107. // });
  19108. }
  19109. #endregion
  19110. }
  19111. else
  19112. {
  19113. // Task.Run(() =>
  19114. // {
  19115. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  19116. string newids = ""; string errdeptid = ""; string deptname = "";
  19117. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  19118. if (curuser.F_RoleCode == "DBZY")
  19119. {
  19120. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  19121. }
  19122. object obj = new object();
  19123. List<Task> taskList = new List<Task>();
  19124. foreach (var deptinfo in deptlist)
  19125. {
  19126. deptname += deptinfo.F_DeptName + ",";
  19127. #region 新增工单
  19128. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  19129. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  19130. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  19131. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  19132. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  19133. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  19134. string deptcontent = "";
  19135. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  19136. {
  19137. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  19138. if (content != null && content.Length > 0)
  19139. {
  19140. foreach (var it in content)
  19141. {
  19142. string[] deptid = it.Split(',');
  19143. if (deptid != null && deptid.Length > 0)
  19144. {
  19145. if (deptid[0] == deptinfo.F_DeptId.ToString())
  19146. {
  19147. deptcontent = it.Remove(0, deptid[0].Length + 1);
  19148. }
  19149. }
  19150. }
  19151. }
  19152. }
  19153. if (!string.IsNullOrEmpty(deptcontent))
  19154. {
  19155. modelT_Bus_WorkOrder1.F_Content = deptcontent;
  19156. modelT_Bus_WorkOrder1.F_ComContent = deptcontent;
  19157. }
  19158. modelT_Bus_WorkOrder1.F_IsRelease = null;
  19159. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  19160. if (curuser.F_RoleCode == "DBZY")
  19161. {
  19162. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  19163. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  19164. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  19165. }
  19166. #endregion
  19167. if (modelT_Bus_WorkOrder1.F_Id > 0)
  19168. {
  19169. #region 插入交办记录
  19170. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  19171. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  19172. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  19173. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  19174. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  19175. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  19176. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  19177. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  19178. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  19179. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  19180. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  19181. modelT_Bus_AssignedInfo.F_IsSure = 0;
  19182. modelT_Bus_AssignedInfo.F_IsReload = 0;
  19183. modelT_Bus_AssignedInfo.F_IsNext = 0;
  19184. int aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  19185. #endregion
  19186. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  19187. {
  19188. #region 保存工单信息
  19189. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  19190. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  19191. {
  19192. keyValuePairs2.Add("F_IsReload", t);
  19193. keyValuePairs2.Add("F_IsOverdue", 0);
  19194. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.reload);
  19195. }
  19196. else
  19197. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.receive);
  19198. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  19199. if (modelT_Bus_WorkOrder1.F_Level == 2)
  19200. {
  19201. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  19202. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  19203. }
  19204. else
  19205. {
  19206. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  19207. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  19208. }
  19209. keyValuePairs2.Add("F_MainDeptId", deptinfo.F_DeptId);
  19210. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  19211. keyValuePairs2.Add("F_OtherDeptIds", "");
  19212. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  19213. keyValuePairs2.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  19214. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  19215. keyValuePairs2.Add("F_AssignTime", DateTime.Now);
  19216. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  19217. // keyValuePairs2.Add("F_IsSendBack", 0);
  19218. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  19219. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs2);
  19220. #endregion
  19221. var msgss = userinfo + " 审核通过了工单,主办单位:" + deptinfo.F_DeptName;
  19222. if (!string.IsNullOrEmpty(cbreason))
  19223. {
  19224. msgss += ",审核意见:" + cbreason;
  19225. }
  19226. #region 插入操作记录
  19227. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  19228. #endregion
  19229. #region 插入推送消息
  19230. //推送消息表
  19231. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  19232. //foreach (var u in users)
  19233. //{
  19234. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  19235. //}
  19236. #endregion
  19237. #region 发短信
  19238. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  19239. if (user != null && user.Count > 0)
  19240. {
  19241. foreach (var it in user)
  19242. {
  19243. if (curuser.F_RoleCode == "DBZY")
  19244. {
  19245. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  19246. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  19247. //bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  19248. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  19249. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  19250. //"681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  19251. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  19252. }
  19253. else
  19254. {
  19255. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  19256. {
  19257. continue;
  19258. }
  19259. else
  19260. {
  19261. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  19262. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  19263. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  19264. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  19265. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  19266. // modelT_Bus_WorkOrder1.F_WorkOrderId);
  19267. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  19268. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  19269. else
  19270. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  19271. }
  19272. }
  19273. }
  19274. }
  19275. #endregion
  19276. }
  19277. Task.Run(() =>
  19278. {
  19279. pushcase_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  19280. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  19281. {
  19282. pushmaterial_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  19283. }
  19284. }).ContinueWith(p =>
  19285. {
  19286. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19287. });
  19288. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  19289. }
  19290. else
  19291. {
  19292. errdeptid += deptinfo.F_DeptName + ",";
  19293. }
  19294. }
  19295. newids = newids.Trim(',');
  19296. var msgs = "";
  19297. if (errdeptid == "")
  19298. {
  19299. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  19300. keyValuePairs3.Add("F_SubWorkorder1", newids);
  19301. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  19302. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3);
  19303. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  19304. }
  19305. else
  19306. {
  19307. errdeptid = errdeptid.Trim(',');
  19308. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  19309. }
  19310. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  19311. // }).ContinueWith(p =>
  19312. // {
  19313. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19314. // });
  19315. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  19316. keyValuePairs1.Add("F_IsSendBack", 0);
  19317. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  19318. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  19319. {
  19320. keyValuePairs1.Add("F_IsReload", t);
  19321. keyValuePairs1.Add("F_IsOverdue", 0);
  19322. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  19323. modelT_Bus_WorkOrder.F_WorkState = 8;
  19324. }
  19325. else
  19326. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  19327. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  19328. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  19329. }
  19330. }
  19331. else
  19332. {
  19333. return Error("单位不存在");
  19334. }
  19335. }
  19336. #region 插入操作记录
  19337. //推送消息表
  19338. #endregion
  19339. }
  19340. trans.Complete();
  19341. }
  19342. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  19343. }
  19344. else
  19345. {
  19346. return Error("已经审核过了");
  19347. }
  19348. }
  19349. else
  19350. {
  19351. return Error("操作失败");
  19352. }
  19353. }
  19354. else
  19355. {
  19356. return Error("权限不足");
  19357. }
  19358. }
  19359. public ActionResult BatchOverWorkOrder(string ids)
  19360. {
  19361. 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")
  19362. {
  19363. string[] strids = ids.Split(','); string errids1 = "", errids = "";
  19364. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19365. {
  19366. foreach (string str in strids)
  19367. {
  19368. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  19369. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  19370. if (modelT_Bus_WorkOrder != null)
  19371. {
  19372. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19373. {
  19374. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  19375. #region 新增回访结果记录
  19376. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19377. modelT_Bus_VisitResult.F_AssignedId = 0;
  19378. modelT_Bus_VisitResult.F_VisitUser = User .F_UserName;
  19379. modelT_Bus_VisitResult.F_Type = -1;
  19380. modelT_Bus_VisitResult.F_IsSatisfie = 2;
  19381. modelT_Bus_VisitResult.F_Result = "市长热线:该问题已收到办理结果,如有需要建议再次拨打12345进行反映或咨询。";
  19382. modelT_Bus_VisitResult.F_Remark = "";//重办原因
  19383. modelT_Bus_VisitResult.F_State = 1;
  19384. modelT_Bus_VisitResult.F_IsDelete = 0;
  19385. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  19386. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  19387. if (modelT_Bus_AssignedInfo != null)
  19388. {
  19389. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  19390. }
  19391. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  19392. modelT_Bus_VisitResult.F_Id = id;
  19393. //保存回访记录
  19394. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, "");
  19395. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19396. keyValuePairs.Add("F_IsClosed", 1);
  19397. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  19398. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  19399. keyValuePairs.Add("F_WorkState", 9);
  19400. keyValuePairs.Add("F_IsProResult", 1);
  19401. keyValuePairs.Add("F_Note", "");
  19402. keyValuePairs.Add("F_SpotCheck", 0);
  19403. keyValuePairs.Add("F_FinalOpinion", "");
  19404. modelT_Bus_WorkOrder.F_SpotCheck = 0;
  19405. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  19406. bool n= workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19407. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19408. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19409. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  19410. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19411. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19412. string satisfie = ",结果:基本满意";
  19413. oper.F_Message = userinfo + " " + "回访" + "了工单" + satisfie ;
  19414. oper.F_CreateUser = User.F_UserCode;
  19415. oper.F_CreateTime = DateTime.Now;
  19416. oper.F_IsDelete = 0;
  19417. int o = operBLL.Add(oper);
  19418. try
  19419. {
  19420. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  19421. {
  19422. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  19423. }
  19424. }
  19425. catch (Exception ex)
  19426. {
  19427. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  19428. }
  19429. var cureuser = User;
  19430. if (n )
  19431. {
  19432. Task.Run(() =>
  19433. {
  19434. pushprocess_info(o, "case_process_info", "回访工单");
  19435. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  19436. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  19437. {
  19438. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  19439. }
  19440. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_info");
  19441. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_detail_info");
  19442. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  19443. }).ContinueWith(p =>
  19444. {
  19445. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19446. });
  19447. }
  19448. #endregion
  19449. }
  19450. else
  19451. {
  19452. errids += "工单" + str + "已经回访过了。";
  19453. }
  19454. }
  19455. else
  19456. {
  19457. errids += "工单" + str + "操作失败。";
  19458. }
  19459. }
  19460. trans.Complete();
  19461. }
  19462. if(!string .IsNullOrEmpty(errids) )
  19463. {
  19464. return Error (errids);
  19465. }
  19466. else
  19467. return Success("操作成功");
  19468. }
  19469. else
  19470. {
  19471. return Error("权限不足");
  19472. }
  19473. }
  19474. /// <summary>
  19475. /// 回访工单
  19476. /// </summary>
  19477. /// <returns></returns>
  19478. public ActionResult VisitWorkOrder(int limittime=5)
  19479. {
  19480. 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")
  19481. {
  19482. string workorderid = RequestString.GetFormString("workorderid");
  19483. string visituser = RequestString.GetFormString("visituser");//回访人
  19484. int type = RequestString.GetInt("type", -1);//回访方式
  19485. int spotcheck = RequestString.GetInt("spotcheck", -1);//是否抽查0否1是
  19486. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意2基本满意
  19487. int state = RequestString.GetInt("state", 1);//0保存 1保存并下一步
  19488. int visitid = RequestString.GetInt("visitid", 0);
  19489. int limittimes = RequestString.GetInt("limittimes", 6);
  19490. int statistics = RequestString.GetInt("statistics", 0);//是否进行退回统计0否1是
  19491. int groupstatistics = RequestString.GetInt("groupstatistics", 0);
  19492. string result = RequestString.GetFormString("result");//回访情况
  19493. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2退回重办3仅回访4已办未果
  19494. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  19495. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  19496. string callid = RequestString.GetFormString("callid");
  19497. string guid = RequestString.GetFormString("guid");
  19498. int isover = RequestString.GetInt("isover", 0);
  19499. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  19500. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  19501. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19502. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  19503. if (string.IsNullOrEmpty(visituser))
  19504. {
  19505. visituser = User.F_UserCode;
  19506. }
  19507. if (modelT_Bus_WorkOrder != null)
  19508. {
  19509. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  19510. {
  19511. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19512. {
  19513. if (visitid == 0)
  19514. {
  19515. #region 新增回访结果记录
  19516. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19517. modelT_Bus_VisitResult.F_AssignedId = 0;
  19518. modelT_Bus_VisitResult.F_VisitUser = visituser;
  19519. modelT_Bus_VisitResult.F_Type = type;
  19520. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  19521. modelT_Bus_VisitResult.F_Result = result;
  19522. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  19523. modelT_Bus_VisitResult.F_State = state;
  19524. modelT_Bus_VisitResult.F_IsOver = isover;
  19525. if (!string.IsNullOrEmpty(callid))
  19526. {
  19527. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  19528. if (rd != null)
  19529. {
  19530. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  19531. }
  19532. }
  19533. modelT_Bus_VisitResult.F_IsDelete = 0;
  19534. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  19535. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  19536. if (modelT_Bus_AssignedInfo != null)
  19537. {
  19538. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  19539. }
  19540. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  19541. modelT_Bus_VisitResult.F_Id = id;
  19542. //保存回访记录
  19543. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  19544. #endregion
  19545. }
  19546. else
  19547. {
  19548. #region 修改回访结果记录
  19549. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  19550. if (modelT_Bus_VisitResult != null)
  19551. {
  19552. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19553. modelT_Bus_VisitResult.F_AssignedId = 0;
  19554. modelT_Bus_VisitResult.F_VisitUser = visituser;
  19555. modelT_Bus_VisitResult.F_Type = type;
  19556. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  19557. modelT_Bus_VisitResult.F_Result = result;
  19558. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  19559. modelT_Bus_VisitResult.F_State = state;
  19560. if (!string.IsNullOrEmpty(callid))
  19561. {
  19562. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  19563. if (rd != null)
  19564. {
  19565. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  19566. }
  19567. }
  19568. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  19569. modelT_Bus_VisitResult.F_IsDelete = 0;
  19570. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  19571. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  19572. if (modelT_Bus_AssignedInfo != null)
  19573. {
  19574. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  19575. }
  19576. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  19577. modelT_Bus_VisitResult.F_Id = id;
  19578. //保存回访记录
  19579. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  19580. }
  19581. #endregion
  19582. }
  19583. if (modelT_Bus_VisitResult != null)
  19584. {
  19585. //提交重办满意度改为满意
  19586. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  19587. assignBLL.Update(modelT_Bus_AssignedInfo);
  19588. var opt = "回访"; var cbreasons = "";
  19589. keyValuePairs.Add("F_Contentment", issatisfie);
  19590. //结案
  19591. if (nexttype == 0)
  19592. {
  19593. if (issatisfie <= 0)
  19594. keyValuePairs.Add("F_ToBereply", 1);
  19595. keyValuePairs.Add("F_IsClosed", 1);
  19596. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  19597. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  19598. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  19599. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  19600. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  19601. keyValuePairs.Add("F_WorkState", 9);
  19602. keyValuePairs.Add("F_IsProResult", 1);
  19603. keyValuePairs.Add("F_Note", "");
  19604. keyValuePairs.Add("F_SpotCheck", spotcheck);
  19605. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  19606. modelT_Bus_WorkOrder.F_SpotCheck = spotcheck;
  19607. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  19608. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19609. Task.Run(() =>
  19610. {
  19611. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  19612. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  19613. {
  19614. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  19615. }
  19616. }).ContinueWith(p =>
  19617. {
  19618. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19619. });
  19620. try
  19621. {
  19622. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  19623. {
  19624. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  19625. }
  19626. }
  19627. catch (Exception ex)
  19628. {
  19629. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  19630. }
  19631. var cureuser = User;
  19632. Task.Run(() =>
  19633. {
  19634. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  19635. }).ContinueWith(p =>
  19636. {
  19637. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19638. });
  19639. }
  19640. #region 重办
  19641. else if (nexttype == 1)
  19642. {
  19643. #region 保存工单信息
  19644. //if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  19645. //{
  19646. // return Error("回访时,提交重办只能操作一次");
  19647. //}
  19648. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  19649. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  19650. keyValuePairs2.Add("F_RemindDay", 3);
  19651. else
  19652. keyValuePairs2.Add("F_RemindDay", 2);
  19653. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  19654. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  19655. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  19656. keyValuePairs2.Add("F_IsSms", 0);
  19657. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19658. keyValuePairs2.Add("F_Identification", 0);
  19659. keyValuePairs2.Add("F_Note", "");
  19660. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  19661. // modelT_Bus_WorkOrder.F_Identification = 0;
  19662. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  19663. #endregion
  19664. opt = "于" + DateTime.Now
  19665. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  19666. cbreasons = ",重办原因:" + cbreason;
  19667. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  19668. if (t_Bus_RemindRecord != null)
  19669. {
  19670. if (t_Bus_RemindRecord.F_State != 2)
  19671. {
  19672. t_Bus_RemindRecord.F_State = 0;
  19673. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  19674. }
  19675. }
  19676. #endregion
  19677. }
  19678. else if (nexttype == 2)
  19679. {
  19680. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  19681. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  19682. {
  19683. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  19684. //if (User.F_RoleCode == "ZXHWY")
  19685. //{
  19686. // keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  19687. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  19688. // keyValuePairs3.Add("F_SpotCheck", spotcheck);
  19689. // if (statistics > 0)
  19690. // {
  19691. // if (modelT_Bus_AssignedInfo.F_IsPerform == 1)
  19692. // modelT_Bus_AssignedInfo.F_IsPerform = 2;
  19693. // else
  19694. // modelT_Bus_AssignedInfo.F_IsPerform = 3;
  19695. // if (groupstatistics > 0)
  19696. // modelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  19697. // new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  19698. // }
  19699. // if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  19700. // {
  19701. // #region 插入操作记录
  19702. // #region 20191021调整为多个主办单位时调整
  19703. // #endregion
  19704. // opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  19705. // cbreasons = ",重办原因:" + cbreason;
  19706. // #endregion
  19707. // }
  19708. //}
  19709. //else
  19710. //{
  19711. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  19712. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  19713. 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());
  19714. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  19715. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19716. if (statistics > 0)
  19717. {
  19718. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  19719. if (groupstatistics > 0)
  19720. newmodelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  19721. }
  19722. DataTable dt = DbHelperSQL.Query("select top "+ limittimes + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  19723. "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];
  19724. var resdatetime = dt.Rows[limittimes-1]["F_OffDate"].ToString();
  19725. if (!string.IsNullOrEmpty(resdatetime))
  19726. {
  19727. resdatetime = GetLimittime(limittimes);
  19728. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  19729. // var datatime = DateTime.Now.AddDays(6);
  19730. // if (Convert.ToDateTime(resdatetime) > datatime)
  19731. // {
  19732. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  19733. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  19734. // " with(nolock) where F_OffState = 1 and " +
  19735. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  19736. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  19737. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  19738. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  19739. // {
  19740. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  19741. // }
  19742. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  19743. // }
  19744. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  19745. }
  19746. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  19747. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  19748. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  19749. newmodelT_Bus_AssignedInfo.F_State = 1;
  19750. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  19751. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  19752. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  19753. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  19754. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  19755. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  19756. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  19757. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  19758. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  19759. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  19760. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  19761. {
  19762. #region 保存工单信息
  19763. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  19764. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  19765. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  19766. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  19767. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  19768. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19769. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  19770. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19771. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  19772. {
  19773. keyValuePairs3.Add("F_RemindDay", 1);
  19774. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  19775. }
  19776. keyValuePairs3.Add("F_IsReload", n + 1);
  19777. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  19778. if (!string.IsNullOrEmpty(resdatetime))
  19779. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  19780. keyValuePairs3.Add("F_IsOverdue", 0);
  19781. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  19782. keyValuePairs3.Add("F_IsSms", 0);
  19783. // modelT_Bus_WorkOrder.F_IsSms = 0;
  19784. keyValuePairs3.Add("F_Identification", 1);
  19785. // modelT_Bus_WorkOrder.F_Identification = 1;
  19786. keyValuePairs3.Add("F_Result", "");
  19787. // modelT_Bus_WorkOrder.F_Result = "";
  19788. keyValuePairs3.Add("F_DealDeptId", null);
  19789. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  19790. keyValuePairs3.Add("F_DealUser", "");
  19791. // modelT_Bus_WorkOrder.F_DealUser = "";
  19792. keyValuePairs3.Add("F_DealTime", null);
  19793. // modelT_Bus_WorkOrder.F_DealTime = null;
  19794. keyValuePairs3.Add("F_Note", "");
  19795. keyValuePairs3.Add("F_SpotCheck", spotcheck);
  19796. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  19797. {
  19798. #region 插入操作记录
  19799. #region 20191021调整为多个主办单位时调整
  19800. #endregion
  19801. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  19802. cbreasons = ",重办原因:" + cbreason;
  19803. #endregion
  19804. }
  19805. #endregion
  19806. }
  19807. else
  19808. {
  19809. return Error("退回失败");
  19810. }
  19811. // }
  19812. }
  19813. }
  19814. else if (nexttype == 3)
  19815. {
  19816. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  19817. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  19818. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  19819. }
  19820. else if (nexttype == 4)
  19821. {
  19822. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  19823. keyValuePairs2.Add("F_ToBereply", 0);
  19824. keyValuePairs2.Add("F_IsSms", 0);
  19825. keyValuePairs2.Add("F_IsProResult", 2);
  19826. keyValuePairs2.Add("F_Note", "");
  19827. keyValuePairs2.Add("F_SpotCheck", spotcheck);
  19828. string resdatetime = "";
  19829. if (limittime > 0)
  19830. {
  19831. resdatetime = GetLimittime(limittime);
  19832. //string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  19833. //DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and " +
  19834. // "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];
  19835. //resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  19836. //resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss");
  19837. //var datatime = DateTime.Now.AddDays(limittime);
  19838. //if (Convert.ToDateTime(resdatetime) > datatime)
  19839. //{
  19840. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " +
  19841. // DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  19842. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  19843. // " with(nolock) where F_OffState = 1 and " +
  19844. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  19845. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  19846. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  19847. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  19848. // {
  19849. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  19850. // }
  19851. //}
  19852. }
  19853. keyValuePairs2.Add("F_WorkState", 6);
  19854. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;
  19855. keyValuePairs2.Add("F_UnsuccessfulTime", resdatetime);
  19856. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  19857. {
  19858. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  19859. opt = "提交已办未果";
  19860. }
  19861. else
  19862. return Error("该工单没有承办单位");
  19863. }
  19864. #region 插入操作记录
  19865. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19866. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19867. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  19868. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19869. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19870. string satisfie = "";
  19871. satisfie = ",结果:满意";
  19872. if (issatisfie == 0)
  19873. satisfie = ",结果:不满意";
  19874. else if (issatisfie == 2)
  19875. satisfie = ",结果:基本满意";
  19876. else if (issatisfie == 3)
  19877. satisfie = ",结果:非常满意";
  19878. else if (issatisfie == -1)
  19879. satisfie = ",结果:非常不满意";
  19880. oper.F_Message = userinfo + " " + opt + "了工单" + satisfie + cbreasons;
  19881. oper.F_CreateUser = User.F_UserCode;
  19882. oper.F_CreateTime = DateTime.Now;
  19883. oper.F_IsDelete = 0;
  19884. int o = operBLL.Add(oper);
  19885. if (o>0)
  19886. {
  19887. Task.Run(() =>
  19888. {
  19889. pushprocess_info(o, "case_process_info", "审核工单");
  19890. }).ContinueWith(p =>
  19891. {
  19892. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19893. });
  19894. }
  19895. //推送消息表
  19896. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  19897. #endregion
  19898. if (issatisfie == 1)//如果满意就进行自动语音回访
  19899. {
  19900. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  19901. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  19902. {
  19903. string AutoCallMsg = string.Empty;
  19904. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  19905. }
  19906. }
  19907. }
  19908. if (modelT_Bus_VisitResult.F_Id > 0)
  19909. {
  19910. Task.Run(() =>
  19911. {
  19912. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_detail_info");
  19913. if (modelT_Bus_WorkOrder.F_WorkState == 9)
  19914. {
  19915. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_info");
  19916. }
  19917. }).ContinueWith(p =>
  19918. {
  19919. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19920. });
  19921. }
  19922. trans.Complete();
  19923. //////多次不满意转督办
  19924. ////if (issatisfie == 0 && nexttype > 0)
  19925. ////{
  19926. //// Remind(modelT_Bus_WorkOrder, modelT_Bus_AssignedInfo);
  19927. ////}
  19928. }
  19929. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  19930. }
  19931. else
  19932. {
  19933. return Error("已经回访过了");
  19934. }
  19935. }
  19936. else
  19937. {
  19938. return Error("操作失败");
  19939. }
  19940. }
  19941. else
  19942. {
  19943. return Error("权限不足");
  19944. }
  19945. }
  19946. public void CloseWorkorder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Sys_UserAccount curruser)
  19947. {
  19948. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  19949. {
  19950. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  19951. if (model != null)
  19952. {
  19953. string Result = "";
  19954. if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  19955. {
  19956. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  19957. {
  19958. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  19959. string FinalOpinion = "";
  19960. if (modellist != null && modellist.Count > 0)
  19961. {
  19962. foreach (var it in modellist)
  19963. {
  19964. if (string.IsNullOrEmpty(Result))
  19965. Result = modelT_Bus_WorkOrder.F_Result;
  19966. else
  19967. Result += "; " + it.F_Result;
  19968. if (!string.IsNullOrEmpty(FinalOpinion))
  19969. {
  19970. if (string.IsNullOrEmpty(FinalOpinion))
  19971. FinalOpinion = it.F_FinalOpinion;
  19972. else
  19973. {
  19974. if (!string.IsNullOrEmpty(it.F_FinalOpinion))
  19975. FinalOpinion += "; " + it.F_FinalOpinion;
  19976. }
  19977. }
  19978. }
  19979. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  19980. keyValuePairs1.Add("F_Result", Result);
  19981. model.F_Result = Result;
  19982. keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  19983. // model.F_FinalOpinion = FinalOpinion;
  19984. keyValuePairs1.Add("F_Note", "");
  19985. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  19986. }
  19987. }
  19988. }
  19989. else
  19990. {
  19991. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  19992. if (string.IsNullOrEmpty(model.F_Result))
  19993. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  19994. else
  19995. keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  19996. Result = model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result;
  19997. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  19998. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  19999. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20000. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20001. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  20002. {
  20003. 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());
  20004. if (v <= 0)
  20005. {
  20006. keyValuePairs1.Add("F_IsClosed", 1);
  20007. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20008. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  20009. keyValuePairs1.Add("F_WorkState", 9);
  20010. keyValuePairs1.Add("F_IsProResult", 1);
  20011. keyValuePairs1.Add("F_Note", "");
  20012. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20013. bool n= workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20014. if (n )
  20015. {
  20016. Task.Run(() =>
  20017. {
  20018. pushcase_info(model.F_WorkOrderId, "case_finish_info");
  20019. if (model.F_InfoSource == 2580)
  20020. {
  20021. case_info(model.F_WorkOrderId, "FinishWorkOrder");
  20022. }
  20023. }).ContinueWith(p =>
  20024. {
  20025. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20026. });
  20027. try
  20028. {
  20029. if (model.F_InfoSource == 4606)
  20030. {
  20031. CommonHelper.pushresult(model.F_WorkOrderId);
  20032. }
  20033. }
  20034. catch (Exception ex)
  20035. {
  20036. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20037. }
  20038. }
  20039. }
  20040. else
  20041. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20042. }
  20043. else
  20044. {
  20045. keyValuePairs1.Add("F_IsClosed", 1);
  20046. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20047. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  20048. keyValuePairs1.Add("F_WorkState", 9);
  20049. keyValuePairs1.Add("F_IsProResult", 1);
  20050. keyValuePairs1.Add("F_Note", "");
  20051. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20052. bool n= workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20053. if (n )
  20054. {
  20055. Task.Run(() =>
  20056. {
  20057. pushcase_info(model.F_WorkOrderId, "case_finish_info");
  20058. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  20059. {
  20060. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  20061. }
  20062. }).ContinueWith(p =>
  20063. {
  20064. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20065. });
  20066. try
  20067. {
  20068. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  20069. {
  20070. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  20071. }
  20072. }
  20073. catch (Exception ex)
  20074. {
  20075. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20076. }
  20077. }
  20078. }
  20079. }
  20080. if (model .F_IsRelease ==2)
  20081. {
  20082. if (!string.IsNullOrEmpty(model.F_SubWorkorder))
  20083. {
  20084. var orderlist = model.F_SubWorkorder.Split(',');
  20085. if (orderlist.Length > 0)
  20086. {
  20087. foreach (var it in orderlist)
  20088. {
  20089. var model1 = workorderBLL.GetModel(it);
  20090. if (model1 != null)
  20091. {
  20092. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20093. keyValuePairs1.Add("F_IsClosed", 1);
  20094. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20095. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  20096. keyValuePairs1.Add("F_WorkState", 9);
  20097. keyValuePairs1.Add("F_IsProResult", 1);
  20098. model1.F_WorkState = (int)EnumWorkState.finish;//已回访
  20099. keyValuePairs1.Add("F_Result", Result);
  20100. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  20101. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20102. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20103. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20104. keyValuePairs1.Add("F_Note", "");
  20105. bool q= workorderBLL.UpdateWorkOrder(model1.F_Id, keyValuePairs1);
  20106. if (q)
  20107. {
  20108. Task.Run(() =>
  20109. {
  20110. pushcase_info(model1.F_WorkOrderId, "case_finish_info");
  20111. if (model1.F_InfoSource == 2580)
  20112. {
  20113. case_info(model1.F_WorkOrderId, "FinishWorkOrder");
  20114. }
  20115. }).ContinueWith(p =>
  20116. {
  20117. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20118. });
  20119. try
  20120. {
  20121. if (model1.F_InfoSource == 4606)
  20122. {
  20123. CommonHelper.pushresult(model1.F_WorkOrderId);
  20124. }
  20125. }
  20126. catch (Exception ex)
  20127. {
  20128. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20129. }
  20130. }
  20131. }
  20132. }
  20133. }
  20134. }
  20135. }
  20136. }
  20137. }
  20138. else if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder1))
  20139. {
  20140. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from " +
  20141. "dbo.SplitToNvarchar('" + modelT_Bus_WorkOrder.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  20142. if (modellist != null && modellist.Count > 0)
  20143. {
  20144. string Result = "";
  20145. foreach (var it in modellist)
  20146. {
  20147. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20148. if (string.IsNullOrEmpty(it.F_Result))
  20149. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  20150. else
  20151. keyValuePairs1.Add("F_Result", it.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  20152. Result = it.F_Result + "; " + modelT_Bus_WorkOrder.F_Result;
  20153. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  20154. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20155. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20156. // keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20157. keyValuePairs1.Add("F_IsClosed", 1);
  20158. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20159. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  20160. keyValuePairs1.Add("F_WorkState", 9);
  20161. keyValuePairs1.Add("F_IsProResult", 1);
  20162. it.F_WorkState = (int)EnumWorkState.finish;//已回访
  20163. bool w= workorderBLL.UpdateWorkOrder(it.F_Id, keyValuePairs1);
  20164. if (w )
  20165. {
  20166. Task.Run(() =>
  20167. {
  20168. pushcase_info(it.F_WorkOrderId, "case_finish_info");
  20169. if (it.F_InfoSource == 2580)
  20170. {
  20171. case_info(it.F_WorkOrderId, "FinishWorkOrder");
  20172. }
  20173. }).ContinueWith(p => {
  20174. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20175. });
  20176. workorderBLL.UpdateWorkOrder(it.F_Id, keyValuePairs1);
  20177. try
  20178. {
  20179. if (it.F_InfoSource == 4606)
  20180. {
  20181. CommonHelper.pushresult(it.F_WorkOrderId);
  20182. }
  20183. }
  20184. catch (Exception ex)
  20185. {
  20186. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20187. }
  20188. }
  20189. }
  20190. }
  20191. }
  20192. if (modelT_Bus_WorkOrder .F_IsRelease ==2)
  20193. {
  20194. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  20195. {
  20196. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  20197. if (orderlist.Length > 0)
  20198. {
  20199. foreach (var it in orderlist)
  20200. {
  20201. var model = workorderBLL.GetModel(it);
  20202. if (model != null)
  20203. {
  20204. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  20205. keyValuePairs1.Add("F_IsClosed", 1);
  20206. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  20207. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  20208. keyValuePairs1.Add("F_WorkState", 9);
  20209. keyValuePairs1.Add("F_IsProResult", 1);
  20210. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  20211. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  20212. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  20213. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20214. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20215. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20216. keyValuePairs1.Add("F_Note", "");
  20217. bool e= workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20218. if (e)
  20219. {
  20220. Task.Run(() =>
  20221. {
  20222. pushcase_info(model.F_WorkOrderId, "case_finish_info");
  20223. if (model.F_InfoSource == 2580)
  20224. {
  20225. case_info(model.F_WorkOrderId, "FinishWorkOrder");
  20226. }
  20227. }).ContinueWith(p => {
  20228. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20229. });
  20230. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  20231. try
  20232. {
  20233. if (model.F_InfoSource == 4606)
  20234. {
  20235. CommonHelper.pushresult(model.F_WorkOrderId);
  20236. }
  20237. }
  20238. catch (Exception ex)
  20239. {
  20240. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20241. }
  20242. }
  20243. if (!string.IsNullOrEmpty(model.F_MainWorkorder1))
  20244. {
  20245. var model2 = workorderBLL.GetModel(model.F_MainWorkorder1);
  20246. if (model2 != null)
  20247. {
  20248. if (model2.F_WorkOrderId == model2.F_MainWorkorder1)
  20249. {
  20250. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  20251. {
  20252. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model2.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  20253. string Result = ""; string FinalOpinion = "";
  20254. if (modellist != null && modellist.Count > 0)
  20255. {
  20256. foreach (var iv in modellist)
  20257. {
  20258. if (string.IsNullOrEmpty(Result))
  20259. Result = modelT_Bus_WorkOrder.F_Result;
  20260. else
  20261. Result += "; " + iv.F_Result;
  20262. if (!string.IsNullOrEmpty(FinalOpinion))
  20263. {
  20264. if (string.IsNullOrEmpty(FinalOpinion))
  20265. FinalOpinion = iv.F_FinalOpinion;
  20266. else
  20267. {
  20268. if (!string.IsNullOrEmpty(iv.F_FinalOpinion))
  20269. FinalOpinion += "; " + iv.F_FinalOpinion;
  20270. }
  20271. }
  20272. }
  20273. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  20274. keyValuePairs2.Add("F_Result", Result);
  20275. model2.F_Result = Result;
  20276. keyValuePairs2.Add("F_FinalOpinion", FinalOpinion);
  20277. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs2);
  20278. }
  20279. }
  20280. }
  20281. else
  20282. {
  20283. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  20284. if (string.IsNullOrEmpty(model2.F_Result))
  20285. keyValuePairs3.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  20286. else
  20287. keyValuePairs3.Add("F_Result", model2.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  20288. keyValuePairs3.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  20289. // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  20290. keyValuePairs3.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  20291. // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  20292. keyValuePairs3.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  20293. // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  20294. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20295. // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  20296. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  20297. {
  20298. 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());
  20299. if (v <= 0)
  20300. {
  20301. keyValuePairs3.Add("F_IsClosed", 1);
  20302. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  20303. keyValuePairs3.Add("F_WorkState", 9);
  20304. keyValuePairs3.Add("F_IsProResult", 1);
  20305. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  20306. bool r=workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  20307. if (r )
  20308. {
  20309. Task.Run(() =>
  20310. {
  20311. pushcase_info(model2.F_WorkOrderId, "case_finish_info");
  20312. if (model2.F_InfoSource == 2580)
  20313. {
  20314. case_info(model2.F_WorkOrderId, "FinishWorkOrder");
  20315. }
  20316. }).ContinueWith(p =>
  20317. {
  20318. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20319. });
  20320. try
  20321. {
  20322. if (model2.F_InfoSource == 4606)
  20323. {
  20324. CommonHelper.pushresult(model2.F_WorkOrderId);
  20325. }
  20326. }
  20327. catch (Exception ex)
  20328. {
  20329. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20330. }
  20331. }
  20332. }
  20333. else
  20334. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  20335. }
  20336. else
  20337. {
  20338. keyValuePairs3.Add("F_IsClosed", 1);
  20339. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  20340. keyValuePairs3.Add("F_WorkState", 9);
  20341. keyValuePairs3.Add("F_IsProResult", 1);
  20342. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  20343. bool t= workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  20344. if (t )
  20345. {
  20346. Task.Run(() =>
  20347. {
  20348. pushcase_info(model2.F_WorkOrderId, "case_finish_info");
  20349. if (model2.F_InfoSource == 2580)
  20350. {
  20351. case_info(model2.F_WorkOrderId, "FinishWorkOrder");
  20352. }
  20353. }).ContinueWith(p =>
  20354. {
  20355. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  20356. });
  20357. try
  20358. {
  20359. if (model2.F_InfoSource == 4606)
  20360. {
  20361. CommonHelper.pushresult(model2.F_WorkOrderId);
  20362. }
  20363. }
  20364. catch (Exception ex)
  20365. {
  20366. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  20367. }
  20368. }
  20369. }
  20370. }
  20371. }
  20372. }
  20373. }
  20374. }
  20375. }
  20376. }
  20377. }
  20378. }
  20379. /// <summary>
  20380. /// 多次不满意转督办
  20381. /// </summary>
  20382. /// <returns></returns>
  20383. public bool Remind(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo)
  20384. {
  20385. bool n = true;
  20386. 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());
  20387. if (f >= 2)
  20388. {
  20389. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  20390. 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");
  20391. if (modelRemindlist != null && modelRemindlist.Count > 0)
  20392. {
  20393. modelT_Bus_RemindRecord = modelRemindlist.FirstOrDefault();
  20394. if (modelT_Bus_RemindRecord != null)
  20395. {
  20396. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办";
  20397. modelT_Bus_RemindRecord.F_State = 0;
  20398. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  20399. }
  20400. }
  20401. else
  20402. {
  20403. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20404. if (modelT_Bus_AssignedInfo != null)
  20405. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20406. modelT_Bus_RemindRecord.F_Type = 1;
  20407. if (modelT_Bus_AssignedInfo != null)
  20408. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  20409. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办"; ;
  20410. modelT_Bus_RemindRecord.F_File = "";
  20411. modelT_Bus_RemindRecord.F_State = 0;//0待办 1已办 2退回
  20412. modelT_Bus_RemindRecord.F_IsDelete = 0;
  20413. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  20414. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  20415. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  20416. }
  20417. #region 插入操作记录
  20418. string typename = "督办";
  20419. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20420. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20421. if (modelT_Bus_AssignedInfo != null)
  20422. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20423. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20424. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20425. oper.F_Message = userinfo + " " + typename + "了工单";
  20426. oper.F_CreateUser = User.F_UserCode;
  20427. oper.F_CreateTime = DateTime.Now;
  20428. oper.F_IsDelete = 0;
  20429. operBLL.Add(oper);
  20430. #endregion 插入操作记录
  20431. }
  20432. return n;
  20433. }
  20434. /// <summary>
  20435. /// 督办工单
  20436. /// </summary>
  20437. /// <returns></returns>
  20438. //[Authority]
  20439. public ActionResult RemindWorkOrder()
  20440. {
  20441. string workorderid = RequestString.GetFormString("workorderid");
  20442. int type = RequestString.GetInt("type", 0);//1督办 2监察
  20443. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  20444. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  20445. string files = RequestString.GetFormString("files");
  20446. int mode = RequestString.GetInt("mode", 0);//0现场1电话
  20447. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20448. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20449. if (modelT_Bus_WorkOrder != null)
  20450. {
  20451. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20452. {
  20453. #region 插入督办记录
  20454. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  20455. if (type == 1 && state > 0)
  20456. {
  20457. 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();
  20458. if (modelT_Bus_RemindRecord != null)
  20459. {
  20460. if (state == 0)
  20461. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  20462. else
  20463. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  20464. modelT_Bus_RemindRecord.F_State = state;
  20465. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  20466. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  20467. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  20468. }
  20469. }
  20470. else
  20471. {
  20472. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20473. if (modelT_Bus_AssignedInfo != null)
  20474. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20475. modelT_Bus_RemindRecord.F_Type = type;
  20476. if (modelT_Bus_AssignedInfo != null)
  20477. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  20478. if (state == 0)
  20479. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  20480. else
  20481. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  20482. modelT_Bus_RemindRecord.F_File = files;
  20483. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  20484. modelT_Bus_RemindRecord.F_IsDelete = 0;
  20485. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  20486. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  20487. modelT_Bus_RemindRecord.F_Mode = mode;
  20488. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  20489. }
  20490. #endregion
  20491. #region 插入操作记录
  20492. string typename = "督办";
  20493. if (type == 2) { typename = "监察"; }
  20494. if (type == 1 && state == 0) { typename = "提交督办"; }
  20495. if (type == 1 && state == 1) { typename = "督办"; }
  20496. if (type == 1 && state == 2) { typename = "退回督办"; }
  20497. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  20498. // bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  20499. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20500. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20501. if (modelT_Bus_AssignedInfo != null)
  20502. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20503. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20504. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20505. oper.F_Message = userinfo + " " + typename + "了工单";
  20506. oper.F_CreateUser = User.F_UserCode;
  20507. oper.F_CreateTime = DateTime.Now;
  20508. oper.F_IsDelete = 0;
  20509. operBLL.Add(oper);
  20510. #endregion
  20511. trans.Complete();
  20512. }
  20513. return Success("操作成功");
  20514. }
  20515. else
  20516. {
  20517. return Error("操作失败");
  20518. }
  20519. }
  20520. /// <summary>
  20521. /// 督办查收工单
  20522. /// </summary>
  20523. /// <returns></returns>
  20524. //[Authority]
  20525. public ActionResult RemindCheck()
  20526. {
  20527. string workorderid = RequestString.GetFormString("workorderid");
  20528. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  20529. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20530. if (modelT_Bus_RemindRecord != null)
  20531. {
  20532. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20533. {
  20534. #region 插入督办记录
  20535. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  20536. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  20537. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  20538. #endregion
  20539. #region 插入操作记录
  20540. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20541. oper.F_WorkOrderId = modelT_Bus_RemindRecord.F_WorkOrderId;
  20542. if (modelT_Bus_AssignedInfo != null)
  20543. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20544. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20545. oper.F_Message = userinfo + " 查收了督办工单";
  20546. oper.F_CreateUser = User.F_UserCode;
  20547. oper.F_CreateTime = DateTime.Now;
  20548. oper.F_IsDelete = 0;
  20549. operBLL.Add(oper);
  20550. #endregion
  20551. trans.Complete();
  20552. }
  20553. return Success("操作成功");
  20554. }
  20555. else
  20556. {
  20557. return Error("操作失败");
  20558. }
  20559. }
  20560. /// <summary>
  20561. /// 督办审核工单
  20562. /// </summary>
  20563. /// <returns></returns>
  20564. public ActionResult RemindApproved()
  20565. {
  20566. if (User.F_RoleCode == "GLY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DBZY")
  20567. {
  20568. string workorderid = RequestString.GetFormString("workorderid");
  20569. int state = RequestString.GetInt("state", 0);//0通过1拒绝
  20570. string reason = RequestString.GetFormString("reason");//审核意见
  20571. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20572. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20573. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  20574. if (modelT_Bus_WorkOrder != null && modelT_Bus_RemindRecord != null)
  20575. {
  20576. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  20577. {
  20578. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20579. {
  20580. var opt = ""; var cbreasons = "";
  20581. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20582. if (state == 1)
  20583. {
  20584. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  20585. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  20586. {
  20587. 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());
  20588. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  20589. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20590. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  20591. "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];
  20592. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  20593. if (!string.IsNullOrEmpty(resdatetime))
  20594. {
  20595. resdatetime = GetLimittime(6);
  20596. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  20597. // var datatime = DateTime.Now.AddDays(6);
  20598. // if (Convert.ToDateTime(resdatetime) > datatime)
  20599. // {
  20600. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  20601. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  20602. // " with(nolock) where F_OffState = 1 and " +
  20603. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  20604. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  20605. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  20606. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  20607. // {
  20608. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  20609. // }
  20610. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  20611. // }
  20612. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  20613. }
  20614. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  20615. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  20616. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  20617. newmodelT_Bus_AssignedInfo.F_State = 1;
  20618. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  20619. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  20620. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  20621. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  20622. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  20623. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  20624. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  20625. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  20626. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  20627. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  20628. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  20629. {
  20630. #region 保存工单信息
  20631. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  20632. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  20633. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  20634. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  20635. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  20636. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  20637. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  20638. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  20639. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  20640. {
  20641. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  20642. keyValuePairs.Add("F_RemindDay", 1);
  20643. }
  20644. keyValuePairs.Add("F_IsReload", n + 1);
  20645. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  20646. if (!string.IsNullOrEmpty(resdatetime))
  20647. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  20648. keyValuePairs.Add("F_IsOverdue", 0);
  20649. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  20650. keyValuePairs.Add("F_IsSms", 0);
  20651. // modelT_Bus_WorkOrder.F_IsSms = 0;
  20652. if (User.F_RoleCode == "ZXHWY")
  20653. {
  20654. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.backaudit);
  20655. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  20656. }
  20657. else
  20658. {
  20659. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  20660. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  20661. }
  20662. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  20663. keyValuePairs.Add("F_Identification", 1);
  20664. // modelT_Bus_WorkOrder.F_Identification = 1;
  20665. keyValuePairs.Add("F_Result", "");
  20666. // modelT_Bus_WorkOrder.F_Result = "";
  20667. keyValuePairs.Add("F_DealDeptId", null);
  20668. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  20669. keyValuePairs.Add("F_DealUser", "");
  20670. // modelT_Bus_WorkOrder.F_DealUser = "";
  20671. keyValuePairs.Add("F_DealTime", null);
  20672. // modelT_Bus_WorkOrder.F_DealTime = null;
  20673. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  20674. {
  20675. // var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  20676. // if (user != null && user.Count > 0)
  20677. // {
  20678. // foreach (var it in user)
  20679. // {
  20680. // string count = "你有督办退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  20681. // //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  20682. // // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "255884", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  20683. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  20684. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  20685. //"681240088986554368", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  20686. // }
  20687. // }
  20688. #region 插入操作记录
  20689. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了工单";
  20690. cbreasons = ",审核意见:" + reason;
  20691. #endregion
  20692. }
  20693. #endregion
  20694. }
  20695. else
  20696. {
  20697. return Error("退回失败");
  20698. }
  20699. }
  20700. }
  20701. else
  20702. {
  20703. modelT_Bus_RemindRecord.F_IsExamine = 1;
  20704. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  20705. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了工单";
  20706. }
  20707. #region 插入操作记录
  20708. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20709. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20710. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20711. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20712. oper.F_Message = userinfo + " " + opt + "" + cbreasons;
  20713. oper.F_CreateUser = User.F_UserCode;
  20714. oper.F_CreateTime = DateTime.Now;
  20715. oper.F_IsDelete = 0;
  20716. operBLL.Add(oper);
  20717. //推送消息表
  20718. //msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  20719. #endregion
  20720. trans.Complete();
  20721. }
  20722. return Success("操作成功");
  20723. }
  20724. else
  20725. {
  20726. return Error("督办单不存在");
  20727. }
  20728. }
  20729. else
  20730. {
  20731. return Error("操作失败");
  20732. }
  20733. }
  20734. else
  20735. {
  20736. return Error("权限不足");
  20737. }
  20738. }
  20739. /// <summary>
  20740. /// 重办工单
  20741. /// </summary>
  20742. /// <returns></returns>
  20743. //[Authority]
  20744. public ActionResult ReloadWorkOrder()
  20745. {
  20746. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  20747. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  20748. {
  20749. string workorderid = RequestString.GetFormString("workorderid");
  20750. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  20751. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  20752. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  20753. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  20754. if (modelT_Bus_WorkOrder != null)
  20755. {
  20756. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  20757. {
  20758. return Error("操作失败");
  20759. }
  20760. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  20761. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  20762. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  20763. {
  20764. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  20765. {
  20766. #region 插入督办记录
  20767. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  20768. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20769. modelT_Bus_RemindRecord.F_AssignedId = 0;
  20770. modelT_Bus_RemindRecord.F_Type = 1;
  20771. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20772. if (modelT_Bus_AssignedInfo != null)//转办后重办
  20773. {
  20774. #region 插入交办记录
  20775. 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());
  20776. keyValuePairs.Add("F_IsReload", n + 1);
  20777. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  20778. keyValuePairs.Add("F_LimitTime", newlimittime);
  20779. // modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  20780. keyValuePairs.Add("F_IsOverdue", 0);
  20781. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  20782. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  20783. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20784. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  20785. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  20786. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  20787. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  20788. AssignedInfo.F_State = 1;//0草稿 1正式
  20789. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  20790. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  20791. AssignedInfo.F_IsDelete = 0;
  20792. AssignedInfo.F_IsOverdue = 0;
  20793. AssignedInfo.F_IsSure = 0;
  20794. AssignedInfo.F_IsReload = n + 1;
  20795. AssignedInfo.F_ReloadUser = User.F_UserCode;
  20796. AssignedInfo.F_ReloadTime = DateTime.Now;
  20797. assignBLL.Add(AssignedInfo);
  20798. #endregion
  20799. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  20800. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  20801. }
  20802. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  20803. {
  20804. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  20805. if (cruser != null)
  20806. {
  20807. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  20808. }
  20809. }
  20810. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  20811. modelT_Bus_RemindRecord.F_State = 1;
  20812. modelT_Bus_RemindRecord.F_IsDelete = 0;
  20813. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  20814. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  20815. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  20816. #endregion
  20817. #region 保存工单信息
  20818. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  20819. // modelT_Bus_WorkOrder.F_IsSms = 0;
  20820. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  20821. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  20822. // keyValuePairs.Add("F_IsExamine", 1);
  20823. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  20824. keyValuePairs.Add("F_Result", "");
  20825. //modelT_Bus_WorkOrder.F_Result = "";
  20826. keyValuePairs.Add("F_DealDeptId", null);
  20827. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  20828. keyValuePairs.Add("F_DealUser", "");
  20829. //modelT_Bus_WorkOrder.F_DealUser = "";
  20830. keyValuePairs.Add("F_DealTime", null);
  20831. // modelT_Bus_WorkOrder.F_DealTime = null;
  20832. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20833. #endregion
  20834. #region 插入操作记录
  20835. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20836. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20837. if (modelT_Bus_AssignedInfo != null)
  20838. {
  20839. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  20840. }
  20841. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20842. string deptname = "";
  20843. #region 20191021调整为多个主办单位时调整
  20844. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  20845. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  20846. #endregion
  20847. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20848. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  20849. oper.F_CreateUser = User.F_UserCode;
  20850. oper.F_CreateTime = DateTime.Now;
  20851. oper.F_IsDelete = 0;
  20852. operBLL.Add(oper);
  20853. //推送消息表
  20854. //var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  20855. //foreach (var u in users)
  20856. //{
  20857. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  20858. //}
  20859. #endregion
  20860. trans.Complete();
  20861. }
  20862. return Success("操作成功");
  20863. }
  20864. else
  20865. {
  20866. return Error("已经处理过了");
  20867. }
  20868. }
  20869. else
  20870. {
  20871. return Error("操作失败");
  20872. }
  20873. }
  20874. else
  20875. {
  20876. return Error("权限不足");
  20877. }
  20878. }
  20879. /// <summary>
  20880. /// 重办提交工单 提交后为重办待交办
  20881. /// </summary>
  20882. /// <returns></returns>
  20883. //[Authority]
  20884. public ActionResult SubReloadWorkOrder(string ids, string reason
  20885. , int iszb = 0)
  20886. {
  20887. int maindeptid = RequestString.GetInt("maindeptid", 0);
  20888. string otherdeptids = RequestString.GetFormString("otherdeptids");
  20889. int limittime = RequestString.GetInt("limittime", 6);
  20890. string assignedopinion = RequestString.GetFormString("assignedopinion");
  20891. int statistics = RequestString.GetInt("statistics", 0);//是否进行退回统计0否1是
  20892. int groupstatistics = RequestString.GetInt("groupstatistics", 0);
  20893. 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")
  20894. {
  20895. if (!string.IsNullOrEmpty(ids))
  20896. {
  20897. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(ids);
  20898. if (modelT_Bus_WorkOrder != null)
  20899. {
  20900. if (iszb == 0)
  20901. {
  20902. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  20903. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  20904. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  20905. {
  20906. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20907. #region 保存工单信息
  20908. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  20909. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  20910. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  20911. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  20912. // keyValuePairs.Add("F_IsExamine", 1);
  20913. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  20914. keyValuePairs.Add("F_IsSms", 0);
  20915. // modelT_Bus_WorkOrder.F_IsSms = 0;
  20916. keyValuePairs.Add("F_Identification", 0);
  20917. // modelT_Bus_WorkOrder.F_Identification = 0;
  20918. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  20919. keyValuePairs.Add("F_MainDeptId", null);
  20920. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  20921. keyValuePairs.Add("F_OtherDeptIds", "");
  20922. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  20923. keyValuePairs.Add("F_DealDeptId", null);
  20924. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  20925. keyValuePairs.Add("F_Note", "");
  20926. #endregion
  20927. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20928. #endregion
  20929. #region 插入操作记录
  20930. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20931. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20932. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20933. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20934. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  20935. oper.F_CreateUser = User.F_UserCode;
  20936. oper.F_CreateTime = DateTime.Now;
  20937. oper.F_IsDelete = 0;
  20938. operBLL.Add(oper);
  20939. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  20940. if (t_Bus_RemindRecord != null)
  20941. {
  20942. if (t_Bus_RemindRecord.F_State != 2)
  20943. {
  20944. t_Bus_RemindRecord.F_State = 0;
  20945. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  20946. }
  20947. }
  20948. #endregion
  20949. }
  20950. else
  20951. {
  20952. return Error("此工单已处理");
  20953. }
  20954. }
  20955. else
  20956. {
  20957. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  20958. {
  20959. #region 保存工单信息
  20960. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  20961. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  20962. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  20963. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  20964. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  20965. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  20966. #endregion
  20967. #region 插入操作记录
  20968. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  20969. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  20970. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  20971. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  20972. if (!string.IsNullOrEmpty(reason))
  20973. {
  20974. oper.F_Message = userinfo + " 提交了驳回重办工单,原因:" + reason;
  20975. }
  20976. else
  20977. {
  20978. oper.F_Message = userinfo + " 提交了驳回重办工单";
  20979. }
  20980. oper.F_CreateUser = User.F_UserCode;
  20981. oper.F_CreateTime = DateTime.Now;
  20982. oper.F_IsDelete = 0;
  20983. operBLL.Add(oper);
  20984. #endregion 插入操作记录
  20985. //推送消息表
  20986. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  20987. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  20988. //{
  20989. // var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  20990. // if (role != null && role.Count() > 0)
  20991. // {
  20992. // var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  20993. // if (users != null && users.Count() > 0)
  20994. // {
  20995. // foreach (var u in users)
  20996. // {
  20997. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  20998. // }
  20999. // }
  21000. // }
  21001. //}
  21002. }
  21003. else
  21004. {
  21005. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3))
  21006. {
  21007. return Error("结案后工单只能提交重办一次");
  21008. }
  21009. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21010. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  21011. {
  21012. if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  21013. keyValuePairs.Add("F_RemindDay", 3);
  21014. else
  21015. keyValuePairs.Add("F_RemindDay", 1);
  21016. }
  21017. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  21018. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  21019. {
  21020. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID
  21021. (modelT_Bus_WorkOrder.F_WorkOrderId);
  21022. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  21023. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  21024. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  21025. {
  21026. if (User.F_RoleCode == "ZXHWY")
  21027. {
  21028. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  21029. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  21030. keyValuePairs3.Add("F_Note", "");
  21031. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  21032. if (statistics > 0)
  21033. {
  21034. if (modelT_Bus_AssignedInfo.F_IsPerform == 1)
  21035. modelT_Bus_AssignedInfo.F_IsPerform = 2;
  21036. else
  21037. modelT_Bus_AssignedInfo.F_IsPerform = 3;
  21038. if (groupstatistics > 0)
  21039. modelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  21040. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  21041. }
  21042. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  21043. {
  21044. #region 插入操作记录
  21045. #region 20191021调整为多个主办单位时调整
  21046. #endregion
  21047. #endregion
  21048. #region 插入操作记录
  21049. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21050. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21051. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21052. string deptname = "";
  21053. #region 20191021调整为多个主办单位时调整
  21054. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  21055. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  21056. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  21057. #endregion
  21058. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21059. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办了工单,重办原因:" + reason;
  21060. if (!string.IsNullOrEmpty(otherdeptids))
  21061. {
  21062. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  21063. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  21064. oper.F_Message += ",协办单位:" + deptname1;
  21065. }
  21066. oper.F_CreateUser = User.F_UserCode;
  21067. oper.F_CreateTime = DateTime.Now;
  21068. oper.F_IsDelete = 0;
  21069. operBLL.Add(oper);
  21070. //推送消息表
  21071. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  21072. //foreach (var u in users)
  21073. //{
  21074. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  21075. //}
  21076. #endregion
  21077. }
  21078. }
  21079. else
  21080. {
  21081. 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());
  21082. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  21083. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21084. DataTable dt = DbHelperSQL.Query("select top " +limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  21085. "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];
  21086. var resdatetime = dt.Rows[limittime-1]["F_OffDate"].ToString();
  21087. if (!string.IsNullOrEmpty(resdatetime))
  21088. {
  21089. resdatetime = GetLimittime(limittime);
  21090. // resdatetime = resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss");
  21091. // var datatime = DateTime.Now.AddDays(6);
  21092. // if (Convert.ToDateTime(resdatetime) > datatime)
  21093. // {
  21094. // var datetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  21095. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  21096. // " with(nolock) where F_OffState = 1 and " +
  21097. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  21098. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  21099. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  21100. //Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  21101. // {
  21102. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  21103. // }
  21104. // // resdatetime = Convert.ToDateTime(resdatetime.Split(' ')[0] + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8).ToString("yyyy-MM-dd HH:mm:ss"); ;
  21105. // }
  21106. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime);//办理时限
  21107. }
  21108. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  21109. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  21110. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  21111. newmodelT_Bus_AssignedInfo.F_State = 1;
  21112. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  21113. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  21114. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  21115. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  21116. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  21117. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  21118. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  21119. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  21120. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  21121. if (statistics > 0)
  21122. {
  21123. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  21124. if (groupstatistics > 0)
  21125. newmodelT_Bus_AssignedInfo.F_GroupStatistics = groupstatistics.ToString();
  21126. }
  21127. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  21128. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  21129. {
  21130. #region 保存工单信息
  21131. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  21132. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  21133. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  21134. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  21135. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  21136. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  21137. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  21138. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  21139. keyValuePairs.Add("F_IsReload", n + 1);
  21140. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  21141. if (!string.IsNullOrEmpty(resdatetime))
  21142. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime));
  21143. keyValuePairs.Add("F_IsOverdue", 0);
  21144. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  21145. keyValuePairs.Add("F_IsSms", 0);
  21146. // modelT_Bus_WorkOrder.F_IsSms = 0;
  21147. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  21148. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  21149. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  21150. keyValuePairs.Add("F_Identification", 1);
  21151. // modelT_Bus_WorkOrder.F_Identification = 1;
  21152. keyValuePairs.Add("F_Result", "");
  21153. // modelT_Bus_WorkOrder.F_Result = "";
  21154. keyValuePairs.Add("F_DealDeptId", null);
  21155. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  21156. keyValuePairs.Add("F_DealUser", "");
  21157. // modelT_Bus_WorkOrder.F_DealUser = "";
  21158. keyValuePairs.Add("F_DealTime", null);
  21159. // modelT_Bus_WorkOrder.F_DealTime = null;
  21160. keyValuePairs.Add("F_Note", "");
  21161. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  21162. {
  21163. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  21164. if (user != null && user.Count > 0)
  21165. {
  21166. foreach (var it in user)
  21167. {
  21168. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  21169. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  21170. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  21171. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  21172. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  21173. // "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  21174. }
  21175. }
  21176. #region 插入操作记录
  21177. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21178. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21179. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  21180. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21181. string deptname = "";
  21182. #region 20191021调整为多个主办单位时调整
  21183. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  21184. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  21185. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  21186. #endregion
  21187. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21188. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办了工单,重办原因:" + reason;
  21189. if (!string.IsNullOrEmpty(otherdeptids))
  21190. {
  21191. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  21192. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  21193. oper.F_Message += ",协办单位:" + deptname1;
  21194. }
  21195. oper.F_CreateUser = User.F_UserCode;
  21196. oper.F_CreateTime = DateTime.Now;
  21197. oper.F_IsDelete = 0;
  21198. operBLL.Add(oper);
  21199. //推送消息表
  21200. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  21201. //foreach (var u in users)
  21202. //{
  21203. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  21204. //}
  21205. #endregion
  21206. return Success("操作成功");
  21207. }
  21208. else
  21209. {
  21210. return Error("重办失败");
  21211. }
  21212. #endregion
  21213. }
  21214. else
  21215. {
  21216. return Error("退回失败");
  21217. }
  21218. }
  21219. }
  21220. else
  21221. {
  21222. return Error("已经处理过了");
  21223. }
  21224. }
  21225. else
  21226. {
  21227. #region 保存工单信息
  21228. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  21229. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  21230. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  21231. //modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  21232. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  21233. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  21234. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  21235. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  21236. keyValuePairs.Add("F_IsReload", 1);
  21237. // modelT_Bus_WorkOrder.F_IsReload = 1;
  21238. keyValuePairs.Add("F_IsOverdue", 0);
  21239. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  21240. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  21241. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  21242. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  21243. keyValuePairs.Add("F_Identification", 0);
  21244. // modelT_Bus_WorkOrder.F_Identification = 0;
  21245. keyValuePairs.Add("F_Result", "");
  21246. // modelT_Bus_WorkOrder.F_Result = "";
  21247. keyValuePairs.Add("F_DealDeptId", null);
  21248. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  21249. keyValuePairs.Add("F_DealUser", "");
  21250. // modelT_Bus_WorkOrder.F_DealUser = "";
  21251. keyValuePairs.Add("F_DealTime", null);
  21252. // modelT_Bus_WorkOrder.F_DealTime = null;
  21253. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  21254. {
  21255. #region 插入操作记录
  21256. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21257. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21258. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21259. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21260. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  21261. if (!string.IsNullOrEmpty(otherdeptids))
  21262. {
  21263. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  21264. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  21265. oper.F_Message += ",协办单位:" + deptname1;
  21266. }
  21267. oper.F_CreateUser = User.F_UserCode;
  21268. oper.F_CreateTime = DateTime.Now;
  21269. oper.F_IsDelete = 0;
  21270. operBLL.Add(oper);
  21271. //推送消息表
  21272. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  21273. if (t_Bus_RemindRecord != null)
  21274. {
  21275. if (t_Bus_RemindRecord.F_State != 2)
  21276. {
  21277. t_Bus_RemindRecord.F_State = 0;
  21278. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  21279. }
  21280. }
  21281. #endregion
  21282. }
  21283. else
  21284. {
  21285. return Error("重办失败");
  21286. }
  21287. #endregion
  21288. }
  21289. }
  21290. }
  21291. }
  21292. else
  21293. {
  21294. return Error("操作失败");
  21295. }
  21296. return Success("操作成功");
  21297. }
  21298. else
  21299. {
  21300. return Error("操作失败");
  21301. }
  21302. }
  21303. else
  21304. {
  21305. return Error("权限不足");
  21306. }
  21307. }
  21308. /// <summary>
  21309. /// 驳回重办,驳回后状态为重办驳回状态
  21310. /// 调度员可驳回
  21311. /// </summary>
  21312. /// <param name="ids"></param>
  21313. /// <returns></returns>
  21314. //[Authority]
  21315. public ActionResult RejReloadWorkOrder(string id, string reason)
  21316. {
  21317. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  21318. {
  21319. if (!string.IsNullOrEmpty(id))
  21320. {
  21321. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21322. {
  21323. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  21324. if (modelT_Bus_WorkOrder != null)
  21325. {
  21326. 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();
  21327. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  21328. {
  21329. #region 保存工单信息
  21330. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21331. // keyValuePairs.Add("F_IsExamine", 1);
  21332. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  21333. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.rejload);
  21334. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  21335. if (modelT_Bus_AssignedInfo != null)
  21336. {
  21337. 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();
  21338. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  21339. keyValuePairs.Add("F_MainDeptId", modelT_Bus_AssignedInfo.F_MainDeptId);
  21340. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  21341. keyValuePairs.Add("F_Identification", 1);
  21342. //modelT_Bus_WorkOrder.F_Identification = 1;
  21343. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_AssignedInfo.F_OtherDeptIds);
  21344. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  21345. keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback.F_CreateDeptId);
  21346. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  21347. keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback.F_CreateUser);
  21348. //modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  21349. keyValuePairs.Add("F_DealTime", modelT_Bus_Feedback.F_CreateTime);
  21350. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  21351. #endregion
  21352. }
  21353. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21354. #endregion
  21355. #region 插入操作记录
  21356. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21357. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21358. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21359. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21360. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  21361. oper.F_CreateUser = User.F_UserCode;
  21362. oper.F_CreateTime = DateTime.Now;
  21363. oper.F_IsDelete = 0;
  21364. operBLL.Add(oper);
  21365. #endregion
  21366. }
  21367. }
  21368. trans.Complete();
  21369. }
  21370. return Success("操作成功");
  21371. }
  21372. else
  21373. {
  21374. return Error("参数异常");
  21375. }
  21376. }
  21377. else
  21378. {
  21379. return Error("权限不足");
  21380. }
  21381. }
  21382. /// <summary>
  21383. /// 重办工单
  21384. /// </summary>
  21385. /// <returns></returns>
  21386. //[Authority]
  21387. public ActionResult NewReloadWorkOrder(List<maindeptcontent> content)
  21388. {
  21389. // var User = new BLL.T_Sys_UserAccount ().GetModel("8000");
  21390. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  21391. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  21392. {
  21393. string workorderid = RequestString.GetFormString("workorderid");
  21394. string maindeptid = RequestString.GetFormString("maindeptid");
  21395. string otherdeptids = RequestString.GetFormString("otherdeptids");
  21396. // DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  21397. string limittimes = RequestString.GetFormString("limittimes");
  21398. int limittime = RequestString.GetInt("limittime", 0);
  21399. int issms = RequestString.GetInt("issms", 1);
  21400. string assignedopinion = RequestString.GetFormString("assignedopinion");
  21401. var premodeldept = new Model.T_Sys_Department();
  21402. var curuser = User;
  21403. string resdatetime = "";
  21404. if (limittime > 0)
  21405. {
  21406. resdatetime = GetLimittime(limittime);
  21407. // string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  21408. // DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and " +
  21409. // "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];
  21410. // resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  21411. // resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss"); ;
  21412. // var datatime = DateTime.Now.AddDays(limittime);
  21413. // if (Convert.ToDateTime(resdatetime) > datatime)
  21414. // {
  21415. // var datetime = Convert.ToDateTime(Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " " + DateTime.Now.ToString("HH:mm:ss")).AddHours(8);
  21416. // DataTable dt1 = DbHelperSQL.Query("select top 1 F_OffDate from T_Sys_WorkOFFDays " +
  21417. // " with(nolock) where F_OffState = 1 and " +
  21418. // "F_OffDate >= '" + datetime.ToString("yyyy-MM-dd") + "' order by F_OffDate asc").Tables[0];
  21419. // var resdatetimes = dt1.Rows[dt1.Rows.Count - 1]["F_OffDate"].ToString();
  21420. // if (Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") !=
  21421. // Convert.ToDateTime(datetime).ToString("yyyy-MM-dd"))
  21422. // {
  21423. // resdatetime = Convert.ToDateTime(resdatetimes).ToString("yyyy-MM-dd") + " " + datetime.AddHours(8).ToString("HH:mm:ss");
  21424. // }
  21425. // // 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"); ;
  21426. // }
  21427. //}
  21428. }
  21429. else
  21430. {
  21431. if (!string.IsNullOrEmpty(limittimes))
  21432. {
  21433. try
  21434. {
  21435. resdatetime = Convert.ToDateTime(limittimes).ToString("yyyy-MM-dd HH:mm:ss");
  21436. }
  21437. catch
  21438. {
  21439. return Error("请选择办理时限");
  21440. }
  21441. }
  21442. else
  21443. return Error("请选择办理时限");
  21444. }
  21445. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  21446. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  21447. if (modelT_Bus_WorkOrder != null)
  21448. {
  21449. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  21450. if (deptlist != null)
  21451. {
  21452. if (deptlist.Count == 1)
  21453. {
  21454. var deptinfo = deptlist.FirstOrDefault();
  21455. if (deptinfo.F_IsDept == 2)
  21456. {
  21457. if (deptinfo.F_PartentId > 0)
  21458. {
  21459. premodeldept = department((int)deptinfo.F_PartentId);
  21460. if (premodeldept == null)
  21461. return Error("该单位没有上级单位,派单失败");
  21462. }
  21463. else
  21464. {
  21465. return Error("该单位没有上级单位,派单失败");
  21466. }
  21467. }
  21468. }
  21469. else
  21470. {
  21471. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  21472. return Error("派单多单位不能派给三级单位");
  21473. }
  21474. }
  21475. else
  21476. {
  21477. return Error("单位不存在");
  21478. }
  21479. if (!string.IsNullOrEmpty(otherdeptids))
  21480. {
  21481. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  21482. {
  21483. return Error("主办单位不能出现在协办单位");
  21484. }
  21485. }
  21486. //if (limittime < DateTime.Now)
  21487. //{
  21488. // return Error("办理时限不能小于当前时间");
  21489. //}
  21490. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21491. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  21492. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  21493. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  21494. {
  21495. 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());
  21496. if (deptlist.Count == 1)
  21497. {
  21498. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21499. {
  21500. var maindept = deptlist.FirstOrDefault();
  21501. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  21502. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21503. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  21504. if (maindept.F_IsDept == 2)
  21505. newmodelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  21506. else
  21507. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  21508. // newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  21509. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  21510. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  21511. newmodelT_Bus_AssignedInfo.F_State = 1;
  21512. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  21513. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  21514. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  21515. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  21516. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  21517. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  21518. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  21519. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  21520. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  21521. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  21522. #region 保存工单信息
  21523. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21524. if (maindept.F_IsDept == 2)
  21525. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  21526. else
  21527. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  21528. if (content != null && content.Count > 0)
  21529. {
  21530. keyValuePairs.Add("F_Content", content[0]);
  21531. keyValuePairs.Add("F_ComContent", content[0]);
  21532. }
  21533. //modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  21534. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  21535. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  21536. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  21537. //modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  21538. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  21539. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  21540. keyValuePairs.Add("F_MainDeptID3", "");
  21541. //modelT_Bus_WorkOrder.F_MainDeptID3 = "";
  21542. keyValuePairs.Add("F_IsReload", n + 1);
  21543. //modelT_Bus_WorkOrder.F_IsReload = n + 1;
  21544. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  21545. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  21546. keyValuePairs.Add("F_IsOverdue", 0);
  21547. keyValuePairs.Add("F_Identification", 0);
  21548. //modelT_Bus_WorkOrder.F_IsOverdue = 0;
  21549. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  21550. if (maindept.F_IsDept == 2)
  21551. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing );
  21552. else
  21553. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  21554. // keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive );
  21555. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  21556. // keyValuePairs.Add("F_IsExamine", 1);
  21557. // modelT_Bus_WorkOrder.F_IsExamine = 1; // modelT_Bus_WorkOrder.F_IsSms = 0;
  21558. keyValuePairs.Add("F_Result", "");
  21559. //modelT_Bus_WorkOrder.F_Result = "";
  21560. keyValuePairs.Add("F_DealDeptId", null);
  21561. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  21562. keyValuePairs.Add("F_DealUser", "");
  21563. // modelT_Bus_WorkOrder.F_DealUser = "";
  21564. keyValuePairs.Add("F_DealTime", null);
  21565. //modelT_Bus_WorkOrder.F_DealTime = null;
  21566. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21567. #endregion
  21568. #region 插入操作记录
  21569. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21570. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21571. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  21572. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21573. string deptname = "";
  21574. #region 20191021调整为多个主办单位时调整
  21575. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  21576. if (maindept.F_IsDept == 2)
  21577. {
  21578. deptname = premodeldept.F_DeptName;
  21579. }
  21580. else
  21581. deptname = maindept.F_DeptName;
  21582. if (maindept.F_IsDept == 2)
  21583. {
  21584. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), newmodelT_Bus_AssignedInfo, assignedopinion, curuser);
  21585. }
  21586. #endregion
  21587. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  21588. if (!string.IsNullOrEmpty(otherdeptids))
  21589. {
  21590. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  21591. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  21592. oper.F_Message += ",协办单位:" + deptname1;
  21593. }
  21594. if (issms>0)
  21595. {
  21596. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + maindeptid + "') ");
  21597. if (user != null && user.Count > 0)
  21598. {
  21599. foreach (var it in user)
  21600. {
  21601. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  21602. {
  21603. continue;
  21604. }
  21605. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  21606. // string msg = workorderid;
  21607. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  21608. string mag = "[\"" + workorderid + "\"]";
  21609. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  21610. // workorderid);
  21611. if (modelT_Bus_WorkOrder.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  21612. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, workorderid);
  21613. else
  21614. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, workorderid);
  21615. }
  21616. }
  21617. }
  21618. oper.F_CreateUser = User.F_UserCode;
  21619. oper.F_CreateTime = DateTime.Now;
  21620. oper.F_IsDelete = 0;
  21621. operBLL.Add(oper);
  21622. #endregion
  21623. trans.Complete();
  21624. }
  21625. }
  21626. else
  21627. {
  21628. Task.Run(() =>
  21629. {
  21630. string newids = ""; string errdeptid = ""; string deptname = "";
  21631. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  21632. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  21633. if (curuser.F_RoleCode == "DBZY")
  21634. {
  21635. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  21636. }
  21637. object obj = new object();
  21638. List<Task> taskList = new List<Task>();
  21639. foreach (var deptinfo in deptlist)
  21640. {
  21641. deptname += deptinfo.F_DeptName + ",";
  21642. #region 新增工单
  21643. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  21644. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  21645. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  21646. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  21647. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  21648. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  21649. if (content != null && content.Count > 0)
  21650. {
  21651. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  21652. {
  21653. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  21654. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  21655. }
  21656. }
  21657. modelT_Bus_WorkOrder1.F_IsRelease = null;
  21658. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  21659. if (curuser.F_RoleCode == "DBZY")
  21660. {
  21661. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  21662. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  21663. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  21664. }
  21665. #endregion
  21666. if (modelT_Bus_WorkOrder1.F_Id > 0)
  21667. {
  21668. #region 插入交办记录
  21669. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  21670. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  21671. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  21672. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;
  21673. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  21674. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  21675. newmodelT_Bus_AssignedInfo.F_State = 1;
  21676. newmodelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  21677. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  21678. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  21679. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  21680. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  21681. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  21682. newmodelT_Bus_AssignedInfo.F_ReloadUser = curuser.F_UserCode;
  21683. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  21684. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  21685. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  21686. #endregion
  21687. if (newmodelT_Bus_AssignedInfo != null && newmodelT_Bus_AssignedInfo.F_State == 1)
  21688. {
  21689. #region 保存工单信息
  21690. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21691. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive );
  21692. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;
  21693. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  21694. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  21695. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  21696. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  21697. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  21698. keyValuePairs.Add("F_IsReload", n + 1);
  21699. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  21700. keyValuePairs.Add("F_IsSendBack", 0);
  21701. // keyValuePairs.Add("F_IsExamine", 1);
  21702. keyValuePairs.Add("F_Result", "");
  21703. keyValuePairs.Add("F_DealDeptId", null);
  21704. keyValuePairs.Add("F_DealUser", "");
  21705. keyValuePairs.Add("F_Identification", 0);
  21706. keyValuePairs.Add("F_DealTime", null);
  21707. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  21708. #endregion
  21709. var msgss = userinfo + " 重办了工单,主办单位:" + deptinfo.F_DeptName;
  21710. if (!string.IsNullOrEmpty(otherdeptids))
  21711. {
  21712. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + otherdeptids + "')").ToString();
  21713. string deptname1 = departmentBLL.GetDeptNames(otherdeptids);
  21714. msgss += ",协办单位:" + deptname1;
  21715. }
  21716. #region 插入操作记录
  21717. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, newmodelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  21718. #endregion
  21719. #region 插入推送消息
  21720. //推送消息表
  21721. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  21722. // foreach (var u in users)
  21723. // {
  21724. // msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  21725. // }
  21726. #endregion
  21727. #region 发短信
  21728. if (issms >0)
  21729. {
  21730. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  21731. if (user != null && user.Count > 0)
  21732. {
  21733. foreach (var it in user)
  21734. {
  21735. if (curuser.F_RoleCode == "DBZY")
  21736. {
  21737. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  21738. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  21739. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  21740. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  21741. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  21742. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  21743. }
  21744. else
  21745. {
  21746. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  21747. {
  21748. continue;
  21749. }
  21750. else
  21751. {
  21752. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  21753. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  21754. // bool f = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  21755. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  21756. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  21757. if (modelT_Bus_WorkOrder1.F_Level == 2 || modelT_Bus_WorkOrder.F_Level == 3)
  21758. PushMessageController.PushApp("紧急工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  21759. else
  21760. PushMessageController.PushApp("新工单提醒", count, it.F_UserCode, modelT_Bus_WorkOrder1.F_WorkOrderId);
  21761. }
  21762. }
  21763. }
  21764. }
  21765. }
  21766. #endregion
  21767. }
  21768. Task.Run(() =>
  21769. {
  21770. pushcase_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  21771. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  21772. {
  21773. pushmaterial_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  21774. }
  21775. }).ContinueWith(p =>
  21776. {
  21777. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  21778. });
  21779. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  21780. }
  21781. else
  21782. {
  21783. errdeptid += deptinfo.F_DeptName + ",";
  21784. }
  21785. }
  21786. newids = newids.Trim(',');
  21787. var msgs = "";
  21788. if (errdeptid == "")
  21789. {
  21790. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21791. keyValuePairs.Add("F_SubWorkorder1", newids);
  21792. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  21793. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21794. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  21795. }
  21796. else
  21797. {
  21798. errdeptid = errdeptid.Trim(',');
  21799. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  21800. }
  21801. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, curuser.F_UserCode, 0, 1);
  21802. }).ContinueWith(p =>
  21803. {
  21804. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  21805. });
  21806. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  21807. keyValuePairs1.Add("F_IsSendBack", 0);
  21808. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  21809. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  21810. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  21811. return Success("操作成功");
  21812. }
  21813. return Success("操作成功");
  21814. }
  21815. else
  21816. {
  21817. return Error("已经处理过了");
  21818. }
  21819. }
  21820. else
  21821. {
  21822. return Error("操作失败");
  21823. }
  21824. }
  21825. else
  21826. {
  21827. return Error("权限不足");
  21828. }
  21829. }
  21830. /// <summary>
  21831. /// 结案工单
  21832. /// </summary>
  21833. /// <returns></returns>
  21834. //[Authority]
  21835. public ActionResult FinishWorkOrder()
  21836. {
  21837. 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")
  21838. {
  21839. string workorderid = RequestString.GetFormString("workorderid");
  21840. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  21841. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  21842. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  21843. string deptids = RequestString.GetFormString("deptids");//通告单位
  21844. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  21845. //2020-3-4添加通告选项
  21846. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  21847. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  21848. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  21849. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  21850. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  21851. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  21852. if (modelT_Bus_WorkOrder != null)
  21853. {
  21854. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  21855. //{
  21856. // return Error("操作失败");
  21857. //}
  21858. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  21859. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  21860. {
  21861. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  21862. {
  21863. #region 修改工单记录
  21864. //modelT_Bus_WorkOrder.F_WorkState = 9;
  21865. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  21866. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.finish);
  21867. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  21868. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  21869. //modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  21870. keyValuePairs.Add("F_IsClosed", 1);
  21871. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  21872. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  21873. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  21874. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  21875. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  21876. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  21877. // modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  21878. keyValuePairs.Add("F_IsStandard", isstandard);
  21879. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  21880. keyValuePairs.Add("F_StandardIDS", standardids);
  21881. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  21882. keyValuePairs.Add("F_ToBereply", 0);
  21883. keyValuePairs.Add("F_IsProResult", 1);
  21884. //modelT_Bus_WorkOrder.F_ToBereply = 0;
  21885. keyValuePairs.Add("F_Note", "");
  21886. if (isnotice == 1)
  21887. {
  21888. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  21889. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  21890. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21891. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  21892. modelT_Bus_NoticeCriticism.F_State = 1;
  21893. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  21894. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  21895. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  21896. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  21897. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  21898. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  21899. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  21900. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  21901. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  21902. keyValuePairs.Add("F_IsNotice", 1);
  21903. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  21904. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  21905. // modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  21906. }
  21907. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  21908. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  21909. assignBLL.Update(modelT_Bus_AssignedInfo);
  21910. bool n=workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  21911. #endregion
  21912. #region 插入操作记录
  21913. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  21914. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  21915. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  21916. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  21917. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  21918. if (isnotice == 1)
  21919. {
  21920. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  21921. string deptname1 = departmentBLL.GetDeptNames(deptids);
  21922. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  21923. }
  21924. if (isstandard == 1)
  21925. {
  21926. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  21927. var sts = DbHelperSQL.GetSingle(sqlstand);
  21928. oper.F_Message = oper.F_Message + ";办理结果出现不规范" + sts + "情况,请及时查看";
  21929. }
  21930. oper.F_CreateUser = User.F_UserCode;
  21931. oper.F_CreateTime = DateTime.Now;
  21932. oper.F_IsDelete = 0;
  21933. operBLL.Add(oper);
  21934. //调用科大讯飞
  21935. #endregion
  21936. if (n )
  21937. {
  21938. Task.Run(() =>
  21939. {
  21940. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  21941. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  21942. {
  21943. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  21944. }
  21945. }).ContinueWith(p =>
  21946. {
  21947. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  21948. });
  21949. try
  21950. {
  21951. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  21952. {
  21953. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  21954. }
  21955. }
  21956. catch (Exception ex)
  21957. {
  21958. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  21959. }
  21960. }
  21961. trans.Complete();
  21962. }
  21963. return Success("操作成功");
  21964. }
  21965. else
  21966. {
  21967. return Error("已经处理过了");
  21968. }
  21969. }
  21970. else
  21971. {
  21972. return Error("操作失败");
  21973. }
  21974. }
  21975. else
  21976. {
  21977. return Error("权限不足");
  21978. }
  21979. }
  21980. /// <summary>
  21981. /// 结案工单
  21982. /// </summary>
  21983. /// <returns></returns>
  21984. //[Authority]
  21985. public ActionResult ForceFinishWorkOrder()
  21986. {
  21987. 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")
  21988. {
  21989. string workorderid = RequestString.GetFormString("workorderid");
  21990. string result = RequestString.GetFormString("result");//处理结果
  21991. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  21992. int issatisfie = RequestString.GetInt("issatisfie", 1);//0不满意 1满意
  21993. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  21994. //是否发送短信0否1是
  21995. int issms = RequestString.GetInt("issms", 0);
  21996. string deptids = RequestString.GetFormString("deptids");//通告单位
  21997. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  21998. //2020-3-4添加通告选项
  21999. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  22000. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  22001. string files = RequestString.GetFormString("files");//附件
  22002. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  22003. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  22004. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22005. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  22006. if (modelT_Bus_WorkOrder != null)
  22007. {
  22008. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"
  22009. && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY")
  22010. {
  22011. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  22012. {
  22013. return Error("操作失败");
  22014. }
  22015. }
  22016. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22017. {
  22018. #region 修改工单记录
  22019. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22020. if (!string.IsNullOrEmpty(result))
  22021. {
  22022. keyValuePairs.Add("F_Result", result);
  22023. modelT_Bus_WorkOrder.F_Result = result;
  22024. }
  22025. else
  22026. {
  22027. if(string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  22028. return Error("请输入办结内容");
  22029. if (!string.IsNullOrEmpty(finalopinion) &&
  22030. string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  22031. {
  22032. keyValuePairs.Add("F_Result", finalopinion);
  22033. modelT_Bus_WorkOrder.F_Result = finalopinion;
  22034. }
  22035. }
  22036. if (modelT_Bus_WorkOrder.F_DealTime == null)
  22037. keyValuePairs.Add("F_DealTime", DateTime.Now);
  22038. //modelT_Bus_WorkOrder.F_WorkState = 9;
  22039. keyValuePairs.Add("F_WorkState", 9);
  22040. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  22041. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  22042. // modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  22043. keyValuePairs.Add("F_IsClosed", 1);
  22044. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  22045. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  22046. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  22047. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  22048. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  22049. if (!string.IsNullOrEmpty(finalopinion))
  22050. {
  22051. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  22052. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  22053. }
  22054. keyValuePairs.Add("F_IsStandard", isstandard);
  22055. keyValuePairs.Add("F_IsProResult", 1);
  22056. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  22057. keyValuePairs.Add("F_StandardIDS", standardids);
  22058. keyValuePairs.Add("F_HandlingFile", files);
  22059. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  22060. keyValuePairs.Add("F_Note", "");
  22061. if (isnotice == 1)
  22062. {
  22063. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  22064. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  22065. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22066. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  22067. modelT_Bus_NoticeCriticism.F_State = 1;
  22068. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  22069. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  22070. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  22071. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  22072. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  22073. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  22074. keyValuePairs.Add("F_IsNotice", 1);
  22075. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  22076. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  22077. if (modelT_Bus_AssignedInfo != null)
  22078. {
  22079. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  22080. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  22081. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  22082. }
  22083. }
  22084. if (modelT_Bus_AssignedInfo != null)
  22085. {
  22086. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  22087. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  22088. assignBLL.Update(modelT_Bus_AssignedInfo);
  22089. }
  22090. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22091. #endregion
  22092. #region 插入操作记录
  22093. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22094. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22095. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22096. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22097. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  22098. if (isnotice == 1)
  22099. {
  22100. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  22101. string deptname1 = departmentBLL.GetDeptNames(deptids);
  22102. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  22103. }
  22104. if (isstandard == 1)
  22105. {
  22106. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  22107. }
  22108. if (issms > 0)
  22109. {
  22110. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 2501)
  22111. {
  22112. if (modelT_Bus_WorkOrder.F_CusPhone.Length > 11)
  22113. modelT_Bus_WorkOrder.F_CusPhone = modelT_Bus_WorkOrder.F_CusPhone.Substring(1, 11);
  22114. string content = ""; string temp = "680847330371186688";
  22115. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 3 || modelT_Bus_WorkOrder.F_InfoSource == 6)
  22116. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  22117. else
  22118. {
  22119. temp = "681914832337539072";
  22120. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  22121. }
  22122. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",\"]";
  22123. //string n = SmsNewController.AddSmS(0, content, modelT_Bus_WorkOrder.F_CusPhone, temp, mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  22124. //if (n != "")
  22125. // return Error(n);
  22126. //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  22127. //string mag = "";
  22128. //bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "289715", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  22129. }
  22130. }
  22131. oper.F_CreateUser = User.F_UserCode;
  22132. oper.F_CreateTime = DateTime.Now;
  22133. oper.F_IsDelete = 0;
  22134. operBLL.Add(oper);
  22135. var cureuser = User;
  22136. Task.Run(() =>
  22137. {
  22138. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  22139. }).ContinueWith(p =>
  22140. {
  22141. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22142. });
  22143. //if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  22144. //{
  22145. // var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  22146. // if (model != null)
  22147. // {
  22148. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  22149. // if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  22150. // {
  22151. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  22152. // {
  22153. // var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0");
  22154. // string Result = "";string FinalOpinion = "";
  22155. // if (modellist!=null && modellist.Count >0)
  22156. // {
  22157. // foreach (var it in modellist)
  22158. // {
  22159. // if (string.IsNullOrEmpty(Result))
  22160. // Result = modelT_Bus_WorkOrder.F_Result;
  22161. // else
  22162. // Result += "; " + it .F_Result;
  22163. // if (!string.IsNullOrEmpty(FinalOpinion))
  22164. // {
  22165. // if (string.IsNullOrEmpty(FinalOpinion))
  22166. // FinalOpinion = it.F_FinalOpinion;
  22167. // else
  22168. // {
  22169. // if (!string .IsNullOrEmpty (it.F_FinalOpinion))
  22170. // FinalOpinion += "; " + it.F_FinalOpinion;
  22171. // }
  22172. // }
  22173. // }
  22174. // keyValuePairs1.Add("F_Result", Result);
  22175. // // model.F_Result = Result;
  22176. // keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  22177. // // model.F_FinalOpinion = FinalOpinion;
  22178. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  22179. // Task.Run(() =>
  22180. // {
  22181. // case_info(model.F_WorkOrderId, "case_finish_info");
  22182. // }).ContinueWith(p => {
  22183. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22184. // });
  22185. // }
  22186. // }
  22187. // }
  22188. // else
  22189. // {
  22190. // if (string.IsNullOrEmpty(model.F_Result))
  22191. // {
  22192. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  22193. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  22194. // }
  22195. // else
  22196. // {
  22197. // keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  22198. // // model.F_Result += ";" + modelT_Bus_WorkOrder.F_Result;
  22199. // }
  22200. // if (!string.IsNullOrEmpty(finalopinion))
  22201. // {
  22202. // if (string.IsNullOrEmpty(model.F_FinalOpinion))
  22203. // {
  22204. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  22205. // // model.F_FinalOpinion = finalopinion;
  22206. // }
  22207. // else
  22208. // {
  22209. // keyValuePairs1.Add("F_FinalOpinion", model.F_FinalOpinion + modelT_Bus_WorkOrder.F_FinalOpinion);
  22210. // // model.F_FinalOpinion += "; " + modelT_Bus_WorkOrder.F_FinalOpinion;
  22211. // }
  22212. // }
  22213. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  22214. // // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  22215. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  22216. // {
  22217. // 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());
  22218. // if (n <= 0)
  22219. // {
  22220. // keyValuePairs1.Add("F_IsClosed", 1);
  22221. // // model.F_IsClosed = 1;
  22222. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  22223. // // model.F_CloseTime = DateTime.Now;
  22224. // keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.finish);
  22225. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  22226. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  22227. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  22228. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  22229. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  22230. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  22231. // Task.Run(() =>
  22232. // {
  22233. // case_info(model.F_WorkOrderId, "case_finish_info");
  22234. // }).ContinueWith(p => {
  22235. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22236. // });
  22237. // }
  22238. // else
  22239. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  22240. // }
  22241. // else
  22242. // {
  22243. // keyValuePairs1.Add("F_IsClosed", 1);
  22244. // // model.F_IsClosed = 1;
  22245. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  22246. // // model.F_CloseTime = DateTime.Now;
  22247. // keyValuePairs1.Add("F_WorkState", 9);
  22248. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  22249. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  22250. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  22251. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  22252. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  22253. // }
  22254. // }
  22255. // }
  22256. //}
  22257. //if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  22258. //{
  22259. // if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  22260. // {
  22261. // var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  22262. // if (orderlist.Length > 0)
  22263. // {
  22264. // foreach (var it in orderlist)
  22265. // {
  22266. // var model = workorderBLL.GetModel(it);
  22267. // if (model != null)
  22268. // {
  22269. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  22270. // keyValuePairs1.Add("F_IsClosed", 1);
  22271. // //model.F_IsClosed = 1;
  22272. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  22273. // //model.F_CloseTime = DateTime.Now;
  22274. // keyValuePairs1.Add("F_CloseUser", User.F_UserCode);
  22275. // // model.F_CloseUser = User.F_UserCode;
  22276. // keyValuePairs1.Add("F_WorkState", 9);
  22277. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  22278. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  22279. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  22280. // if (!string.IsNullOrEmpty(finalopinion))
  22281. // {
  22282. // model.F_FinalOpinion = finalopinion;
  22283. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  22284. // }
  22285. // keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  22286. // // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  22287. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  22288. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  22289. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  22290. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  22291. // keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  22292. // // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  22293. // Task.Run(() =>
  22294. // {
  22295. // case_info(model.F_WorkOrderId, "case_finish_info");
  22296. // }).ContinueWith(p => {
  22297. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22298. // });
  22299. // workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  22300. // }
  22301. // }
  22302. // }
  22303. // }
  22304. //}
  22305. #endregion
  22306. trans.Complete();
  22307. }
  22308. Task.Run(() =>
  22309. {
  22310. pushcase_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  22311. if (modelT_Bus_WorkOrder.F_InfoSource == 2580)
  22312. {
  22313. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "FinishWorkOrder");
  22314. }
  22315. }).ContinueWith(p =>
  22316. {
  22317. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  22318. });
  22319. try
  22320. {
  22321. if (modelT_Bus_WorkOrder.F_InfoSource == 4606)
  22322. {
  22323. CommonHelper.pushresult(modelT_Bus_WorkOrder.F_WorkOrderId);
  22324. }
  22325. }
  22326. catch (Exception ex)
  22327. {
  22328. // FileLog.Error("结案110工单:" + ex.ToJson()); ;
  22329. }
  22330. return Success("操作成功");
  22331. }
  22332. else
  22333. {
  22334. return Error("操作失败");
  22335. }
  22336. }
  22337. else
  22338. {
  22339. return Error("权限不足");
  22340. }
  22341. }
  22342. /// <summary>
  22343. /// 删除工单
  22344. /// </summary>
  22345. /// <returns></returns>
  22346. public ActionResult DelWorkOrder(string[] ids)
  22347. {
  22348. 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")
  22349. {
  22350. //StringBuilder sb = new StringBuilder();
  22351. foreach (var item in ids)
  22352. {
  22353. //sb.Append("'" + item + "',");
  22354. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  22355. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  22356. {
  22357. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22358. {
  22359. #region 修改工单记录
  22360. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22361. keyValuePairs.Add("F_IsDelete", 1);
  22362. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  22363. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  22364. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  22365. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  22366. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  22367. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22368. #endregion
  22369. #region 插入操作记录
  22370. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22371. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22372. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22373. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22374. oper.F_Message = userinfo + " 删除了工单";
  22375. oper.F_CreateUser = User.F_UserCode;
  22376. oper.F_CreateTime = DateTime.Now;
  22377. oper.F_IsDelete = 0;
  22378. operBLL.Add(oper);
  22379. #endregion
  22380. trans.Complete();
  22381. }
  22382. }
  22383. }
  22384. return Success("删除成功");
  22385. }
  22386. else
  22387. {
  22388. return Error("权限不足");
  22389. }
  22390. }
  22391. /// <summary>
  22392. /// 删除工单
  22393. /// </summary>
  22394. /// <returns></returns>
  22395. public ActionResult Recovery(string[] ids)
  22396. {
  22397. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  22398. {
  22399. //StringBuilder sb = new StringBuilder();
  22400. foreach (var item in ids)
  22401. {
  22402. //sb.Append("'" + item + "',");
  22403. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  22404. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  22405. {
  22406. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22407. {
  22408. #region 修改工单记录
  22409. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22410. keyValuePairs.Add("F_IsDelete", 0);
  22411. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  22412. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  22413. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  22414. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  22415. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  22416. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22417. #endregion
  22418. #region 插入操作记录
  22419. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22420. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22421. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22422. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22423. oper.F_Message = userinfo + " 恢复了删除工单";
  22424. oper.F_CreateUser = User.F_UserCode;
  22425. oper.F_CreateTime = DateTime.Now;
  22426. oper.F_IsDelete = 0;
  22427. operBLL.Add(oper);
  22428. #endregion
  22429. trans.Complete();
  22430. }
  22431. }
  22432. }
  22433. return Success("删除成功");
  22434. }
  22435. else
  22436. {
  22437. return Error("权限不足");
  22438. }
  22439. }
  22440. /// <summary>
  22441. /// 转公开工单
  22442. /// </summary>
  22443. /// <returns></returns>
  22444. //[Authority]
  22445. public ActionResult ReleaseWorkOrder()
  22446. {
  22447. 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")
  22448. {
  22449. string workorderid = RequestString.GetFormString("workorderid");
  22450. int isrelease = RequestString.GetInt("isrelease", -1);
  22451. // int isopen = RequestString.GetInt("isopen", 0);
  22452. if (isrelease > -1)
  22453. {
  22454. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22455. if (modelT_Bus_WorkOrder != null)
  22456. {
  22457. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22458. {
  22459. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22460. #region 修改工单记录
  22461. if (isrelease > 0)
  22462. {
  22463. var configly = configBll.GetModelList(" F_ParamCode='Public' ").FirstOrDefault();
  22464. int day = 5;
  22465. if (configly != null)
  22466. {
  22467. try
  22468. {
  22469. day = int.Parse(configly.F_ParamValue);
  22470. }
  22471. catch
  22472. {
  22473. day = 5;
  22474. }
  22475. }
  22476. if (modelT_Bus_WorkOrder.F_WorkState != 6 && modelT_Bus_WorkOrder.F_WorkState != 9)
  22477. {
  22478. if (modelT_Bus_WorkOrder.F_DealTime != null && modelT_Bus_WorkOrder.F_AssignTime != null)
  22479. {
  22480. TimeSpan time = (DateTime)modelT_Bus_WorkOrder.F_DealTime - (DateTime)modelT_Bus_WorkOrder.F_AssignTime;
  22481. if (time.TotalDays > day)
  22482. {
  22483. return Error("公开件的回复时间必须在" + day + "个工作日内");
  22484. }
  22485. }
  22486. }
  22487. keyValuePairs.Add("F_IsOpen", 1);
  22488. modelT_Bus_WorkOrder.F_IsOpen = 1;
  22489. }
  22490. else
  22491. {
  22492. keyValuePairs.Add("F_IsOpen", 0);
  22493. modelT_Bus_WorkOrder.F_IsOpen = 0;
  22494. }
  22495. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22496. #endregion
  22497. #region 插入操作记录
  22498. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22499. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22500. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22501. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22502. if (modelT_Bus_WorkOrder.F_IsOpen == 1)
  22503. oper.F_Message = userinfo + "公开了工单";
  22504. else
  22505. oper.F_Message = userinfo + "撤回了公开工单";
  22506. oper.F_CreateUser = User.F_UserCode;
  22507. oper.F_CreateTime = DateTime.Now;
  22508. oper.F_IsDelete = 0;
  22509. operBLL.Add(oper);
  22510. #endregion
  22511. trans.Complete();
  22512. }
  22513. return Success("操作成功");
  22514. }
  22515. else
  22516. return Error("操作失败");
  22517. }
  22518. else
  22519. return Error("操作失败");
  22520. }
  22521. else
  22522. {
  22523. return Error("权限不足");
  22524. }
  22525. }
  22526. /// <summary>
  22527. /// 转公开媒体
  22528. /// </summary>
  22529. /// <returns></returns>
  22530. //[Authority]
  22531. public ActionResult MediaWorkOrder()
  22532. {
  22533. 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")
  22534. {
  22535. string workorderid = RequestString.GetFormString("workorderid");
  22536. int isrelease = RequestString.GetInt("isrelease", -1);
  22537. // int isopen = RequestString.GetInt("isopen", 0);
  22538. if (isrelease > -1)
  22539. {
  22540. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22541. if (modelT_Bus_WorkOrder != null)
  22542. {
  22543. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22544. {
  22545. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22546. #region 修改工单记录
  22547. if (isrelease > 0)
  22548. {
  22549. keyValuePairs.Add("F_IsMedia", 1);
  22550. modelT_Bus_WorkOrder.F_IsMedia = 1;
  22551. }
  22552. else
  22553. {
  22554. keyValuePairs.Add("F_IsMedia", 0);
  22555. modelT_Bus_WorkOrder.F_IsMedia = 0;
  22556. }
  22557. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22558. #endregion
  22559. #region 插入操作记录
  22560. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22561. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22562. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22563. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22564. if (modelT_Bus_WorkOrder.F_IsMedia == 1)
  22565. oper.F_Message = userinfo + "转媒体了工单";
  22566. else
  22567. oper.F_Message = userinfo + "撤回了媒体工单";
  22568. oper.F_CreateUser = User.F_UserCode;
  22569. oper.F_CreateTime = DateTime.Now;
  22570. oper.F_IsDelete = 0;
  22571. operBLL.Add(oper);
  22572. #endregion
  22573. trans.Complete();
  22574. }
  22575. return Success("操作成功");
  22576. }
  22577. else
  22578. return Error("操作失败");
  22579. }
  22580. else
  22581. return Error("操作失败");
  22582. }
  22583. else
  22584. {
  22585. return Error("权限不足");
  22586. }
  22587. }
  22588. /// <summary>
  22589. /// 撤销关联工单
  22590. /// </summary>
  22591. /// <returns></returns>1
  22592. //[Authority]
  22593. public ActionResult DisassociateWorkOrder()
  22594. {
  22595. 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")
  22596. {
  22597. string workorderid = RequestString.GetFormString("workorderid");
  22598. // string subworkorderid = RequestString.GetFormString("subworkorderid");
  22599. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22600. if (modelT_Bus_WorkOrder == null)
  22601. return Error("工单不存在");
  22602. if (modelT_Bus_WorkOrder.F_IsRelease != 3)
  22603. return Error("只能撤销子工单");
  22604. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22605. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22606. keyValuePairs.Add("F_MainWorkorder", "");
  22607. keyValuePairs.Add("F_IsRelease", null);
  22608. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  22609. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22610. if (!n)
  22611. return Error("撤销子工单失败");
  22612. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22613. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22614. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22615. oper.F_Message = userinfo + "撤销子工单";
  22616. oper.F_CreateUser = User.F_UserCode;
  22617. oper.F_CreateTime = DateTime.Now;
  22618. oper.F_IsDelete = 0;
  22619. operBLL.Add(oper);
  22620. return Success("撤销成功!");
  22621. }
  22622. else
  22623. {
  22624. return Error("权限不足");
  22625. }
  22626. }
  22627. /// <summary>
  22628. /// 关联工单
  22629. /// </summary>
  22630. /// <returns></returns>
  22631. //[Authority]
  22632. public ActionResult RelationWorkOrder()
  22633. {
  22634. 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")
  22635. {
  22636. string workorderid = RequestString.GetFormString("workorderid");
  22637. string subworkorderid = RequestString.GetFormString("subworkorderid");
  22638. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22639. if (string.IsNullOrEmpty(workorderid))
  22640. return Error("请选择主工单");
  22641. if (string.IsNullOrEmpty(subworkorderid))
  22642. return Error("请选择子工单");
  22643. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22644. if (modelT_Bus_WorkOrder == null)
  22645. return Error("主工单不存在");
  22646. if (modelT_Bus_WorkOrder.F_IsRelease == 3)
  22647. return Error(modelT_Bus_WorkOrder.F_WorkOrderId + "工单已被设置为子工单不能设置为主工单");
  22648. string[] orderlist = subworkorderid.Split(',');
  22649. if (subworkorderid.Contains(workorderid))
  22650. {
  22651. return Error("主工单不能出现在子工单中");
  22652. }
  22653. if (orderlist.Length > 0)
  22654. {
  22655. foreach (var it in orderlist)
  22656. {
  22657. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = workorderBLL.GetModel(it);
  22658. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22659. if (modelT_Bus_WorkOrder1 == null)
  22660. return Error("子工单" + it + "不存在");
  22661. if (modelT_Bus_WorkOrder1.F_IsRelease == 3)
  22662. return Error("" + it + "已被设置为子工单,不能重复设置");
  22663. if (modelT_Bus_WorkOrder1.F_IsRelease == 2)
  22664. return Error("" + it + "已被设置为主工单,不能设置为子工单");
  22665. // modelT_Bus_WorkOrder1.F_MainWorkorder = modelT_Bus_WorkOrder.F_WorkOrderId;
  22666. keyValuePairs.Add("F_MainWorkorder", modelT_Bus_WorkOrder.F_WorkOrderId);
  22667. keyValuePairs.Add("F_IsRelease", 3);
  22668. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  22669. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  22670. if (!n)
  22671. return Error("设置子工单" + it + "失败");
  22672. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22673. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  22674. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  22675. oper.F_Message = userinfo + "设置该工单为子工单,主工单为:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  22676. oper.F_CreateUser = User.F_UserCode;
  22677. oper.F_CreateTime = DateTime.Now;
  22678. oper.F_IsDelete = 0;
  22679. operBLL.Add(oper);
  22680. }
  22681. }
  22682. else
  22683. {
  22684. return Error("请选择子工单");
  22685. }
  22686. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  22687. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  22688. keyValuePairs1.Add("F_SubWorkorder", modelT_Bus_WorkOrder.F_SubWorkorder + "," + subworkorderid);
  22689. else
  22690. keyValuePairs1.Add("F_SubWorkorder", subworkorderid);
  22691. keyValuePairs1.Add("F_IsRelease", 2);
  22692. // modelT_Bus_WorkOrder.F_SubWorkorder = subworkorderid;
  22693. // modelT_Bus_WorkOrder.F_IsRelease = 2;
  22694. Model.T_Bus_Operation ope = new Model.T_Bus_Operation();
  22695. ope.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22696. ope.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22697. ope.F_Message = userinfo + "设置该工单为主工单,子工单为:" + subworkorderid;
  22698. ope.F_CreateUser = User.F_UserCode;
  22699. ope.F_CreateTime = DateTime.Now;
  22700. ope.F_IsDelete = 0;
  22701. operBLL.Add(ope);
  22702. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1))
  22703. return Success("操作成功");
  22704. else
  22705. return Error("操作失败");
  22706. }
  22707. else
  22708. {
  22709. return Error("权限不足");
  22710. }
  22711. }
  22712. /// <summary>
  22713. /// 通告和撤销通告
  22714. /// </summary>
  22715. /// <returns></returns>
  22716. //[Authority]
  22717. public ActionResult NoticeWorkOrder()
  22718. {
  22719. 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")
  22720. {
  22721. string workorderid = RequestString.GetFormString("workorderid");
  22722. int isnotice = RequestString.GetInt("isnotice", -1);
  22723. string deptids = RequestString.GetFormString("deptids");//通告单位
  22724. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  22725. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  22726. if (modelT_Bus_WorkOrder != null)
  22727. {
  22728. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  22729. {
  22730. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22731. {
  22732. #region 修改工单记录
  22733. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22734. keyValuePairs.Add("F_IsNotice", 0);
  22735. // modelT_Bus_WorkOrder.F_IsNotice = 0;
  22736. keyValuePairs.Add("F_NoticeDeptIds", "");
  22737. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  22738. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22739. #endregion
  22740. #region 修改通告记录
  22741. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  22742. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  22743. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  22744. modelT_Bus_NoticeCriticism.F_DeleteUser = User.F_UserCode;
  22745. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  22746. #endregion
  22747. #region 插入操作记录
  22748. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22749. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22750. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')").ToString();
  22751. string deptname1 = departmentBLL.GetDeptNames(modelT_Bus_NoticeCriticism.F_DeptIds.ToString());
  22752. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + deptname1;
  22753. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22754. oper.F_Message = userinfo + " 撤销了通告交办单位:" + deptname1;
  22755. oper.F_CreateUser = User.F_UserCode;
  22756. oper.F_CreateTime = DateTime.Now;
  22757. oper.F_IsDelete = 0;
  22758. operBLL.Add(oper);
  22759. #endregion
  22760. trans.Complete();
  22761. }
  22762. return Success("操作成功");
  22763. }
  22764. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  22765. {
  22766. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22767. {
  22768. #region 修改工单记录
  22769. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  22770. keyValuePairs.Add("F_IsNotice", 1);
  22771. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  22772. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  22773. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  22774. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  22775. #endregion
  22776. #region 新增通告记录
  22777. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  22778. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  22779. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22780. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  22781. modelT_Bus_NoticeCriticism.F_State = 1;
  22782. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  22783. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  22784. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  22785. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  22786. #endregion
  22787. #region 插入操作记录
  22788. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22789. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22790. //string deptname1 = DbHelperSQL.GetSingle("select dbo.GetDeptNames('" + deptids + "')").ToString();
  22791. string deptname1 = departmentBLL.GetDeptNames(deptids);
  22792. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22793. oper.F_Message = userinfo + " 通告了交办单位:" + deptname1;
  22794. oper.F_CreateUser = User.F_UserCode;
  22795. oper.F_CreateTime = DateTime.Now;
  22796. oper.F_IsDelete = 0;
  22797. operBLL.Add(oper);
  22798. #endregion
  22799. trans.Complete();
  22800. }
  22801. return Success("操作成功");
  22802. }
  22803. else
  22804. {
  22805. return Error("操作失败");
  22806. }
  22807. }
  22808. else
  22809. {
  22810. return Error("操作失败");
  22811. }
  22812. }
  22813. else
  22814. {
  22815. return Error("权限不足");
  22816. }
  22817. }
  22818. /// <summary>
  22819. /// 市民催单
  22820. /// </summary>
  22821. /// <returns></returns>
  22822. //[Authority]
  22823. public ActionResult AdditionalWorkOrder()
  22824. {
  22825. string workorderid = RequestString.GetFormString("workorderid");
  22826. string title = RequestString.GetFormString("title");
  22827. string content = RequestString.GetFormString("content");
  22828. string files = RequestString.GetFormString("files");
  22829. string callid = RequestString.GetFormString("callid");
  22830. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  22831. if (modelT_Bus_WorkOrder != null)
  22832. {
  22833. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  22834. {
  22835. #region 插入附加记录
  22836. //批示记录
  22837. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  22838. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  22839. model_T_Bus_Additional.F_Title = title;
  22840. model_T_Bus_Additional.F_Content = content;
  22841. if (!string.IsNullOrEmpty(callid))
  22842. {
  22843. model_T_Bus_Additional.F_CallId = callid;
  22844. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  22845. if (rd != null)
  22846. {
  22847. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  22848. }
  22849. }
  22850. model_T_Bus_Additional.F_File = files;//附件
  22851. model_T_Bus_Additional.F_CreateUser = User.F_UserCode;//呈批人
  22852. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  22853. model_T_Bus_Additional.F_IsDelete = 0;
  22854. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  22855. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  22856. #endregion
  22857. #region 插入操作记录
  22858. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  22859. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  22860. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  22861. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  22862. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  22863. oper.F_CreateUser = User.F_UserCode;
  22864. oper.F_CreateTime = DateTime.Now;
  22865. oper.F_IsDelete = 0;
  22866. operBLL.Add(oper);
  22867. #endregion
  22868. #region 根据状态不同给出提醒
  22869. var sqlusers = " F_DeleteFlag=0 ";
  22870. #region 获取被提醒人
  22871. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  22872. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  22873. sqlusers += " and F_UserCode='" + modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  22874. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  22875. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  22876. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  22877. {
  22878. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  22879. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  22880. }
  22881. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  22882. {
  22883. if (modelT_Bus_AssignedInfo != null)
  22884. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  22885. }
  22886. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  22887. {
  22888. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  22889. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  22890. }
  22891. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  22892. {
  22893. if (modelT_Bus_AssignedInfo != null)
  22894. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  22895. }
  22896. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  22897. {
  22898. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  22899. }
  22900. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  22901. {
  22902. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  22903. }
  22904. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  22905. {
  22906. if (modelT_Bus_AssignedInfo != null)
  22907. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  22908. }
  22909. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  22910. {
  22911. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  22912. }
  22913. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  22914. {
  22915. if (modelT_Bus_AssignedInfo != null)
  22916. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  22917. }
  22918. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  22919. {
  22920. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  22921. }
  22922. #endregion
  22923. //var userlists = userBLL.GetModelListNoCache(sqlusers);
  22924. ////推送消息表
  22925. //foreach (var u in userlists)
  22926. //{
  22927. // msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  22928. //}
  22929. #endregion
  22930. trans.Complete();
  22931. }
  22932. return Success("操作成功");
  22933. }
  22934. else
  22935. {
  22936. return Error("操作失败");
  22937. }
  22938. }
  22939. #region 语音附件其他
  22940. /// <summary>
  22941. /// 验证当前单位是否交办单位
  22942. /// </summary>
  22943. /// <param name="modelT_Bus_AssignedInfo"></param>
  22944. /// <param name="deptid"></param>
  22945. /// <returns></returns>
  22946. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  22947. {
  22948. int type = 0;
  22949. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  22950. {
  22951. type = 1;//主办
  22952. }
  22953. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  22954. {
  22955. type = 2;//协办
  22956. }
  22957. return type;
  22958. }
  22959. /// <summary>
  22960. /// 获取留言路径
  22961. /// </summary>
  22962. /// <param name="lid">留言id</param>
  22963. /// <param name="prefix">前缀</param>
  22964. /// <returns></returns>
  22965. public string GetLeavePath(string lid, string prefix)
  22966. {
  22967. string path = string.Empty;
  22968. try
  22969. {
  22970. var liuyan = new BLL.T_Call_LeaveRecord().GetModel(int.Parse(lid));
  22971. if (liuyan != null)
  22972. {
  22973. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  22974. {
  22975. path = prefix + liuyan.F_RecFileUrl;
  22976. }
  22977. }
  22978. }
  22979. catch
  22980. {
  22981. }
  22982. return path;
  22983. }
  22984. /// <summary>
  22985. /// 获取通话录音路径
  22986. /// </summary>
  22987. /// <param name="cid">通话id</param>
  22988. /// <param name="prefix">前缀</param>
  22989. /// <returns></returns>
  22990. public string GetCallPath(string cid, string prefix)
  22991. {
  22992. string path = string.Empty;
  22993. try
  22994. {
  22995. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(cid));
  22996. if (luyin != null)
  22997. {
  22998. if (!string.IsNullOrEmpty(luyin.FilePath))
  22999. {
  23000. var ym = prefix;
  23001. ym = ym.Substring(0, ym.Length - 1);
  23002. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  23003. path = ym + lujing;
  23004. }
  23005. }
  23006. }
  23007. catch
  23008. {
  23009. }
  23010. return path;
  23011. }
  23012. public ActionResult Uploads(string ids)
  23013. {
  23014. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  23015. string prefix = configfj.F_ParamValue;
  23016. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  23017. foreach (DataRow dr in dt.Rows)
  23018. {
  23019. if (dr["F_UserCode"].ToString() == "jianhang")
  23020. {
  23021. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  23022. {
  23023. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23024. }
  23025. else
  23026. {
  23027. 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(), ""));
  23028. if (url == "1")
  23029. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23030. else
  23031. dr["F_FileUrl"] = url;
  23032. }
  23033. }
  23034. else
  23035. {
  23036. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23037. }
  23038. }
  23039. return Success("成功");
  23040. }
  23041. public string Upload(string pathUrl, string newFileName, string path)
  23042. {
  23043. //文件下载地址
  23044. try
  23045. {
  23046. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pathUrl);
  23047. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  23048. Stream responseStream = response.GetResponseStream();
  23049. string Currentpath = "E:/web/API" + path;
  23050. // 如果不存在就创建file文件夹
  23051. if (!Directory.Exists(Currentpath))
  23052. {
  23053. if (Currentpath != null) Directory.CreateDirectory(Currentpath);
  23054. }
  23055. Stream stream = new FileStream(Currentpath + newFileName, FileMode.Create);
  23056. byte[] bArr = new byte[1024];
  23057. int size = responseStream.Read(bArr, 0, bArr.Length);
  23058. while (size > 0)
  23059. {
  23060. stream.Write(bArr, 0, size);
  23061. size = responseStream.Read(bArr, 0, bArr.Length);
  23062. }
  23063. stream.Close();
  23064. responseStream.Close();
  23065. return "1";
  23066. }
  23067. catch (Exception e)
  23068. {
  23069. return e.Message;
  23070. }
  23071. }
  23072. /// <summary>
  23073. /// 获取附件数据
  23074. /// </summary>
  23075. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  23076. /// <param name="prefix">前缀</param>
  23077. /// <returns></returns>
  23078. public DataTable GetFileData(string ids, string prefix)
  23079. {
  23080. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  23081. foreach (DataRow dr in dt.Rows)
  23082. {
  23083. if (dr["F_UserCode"].ToString() == "省12345平台" || dr["F_UserCode"].ToString() == "shengpingtai")
  23084. {
  23085. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  23086. {
  23087. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23088. }
  23089. else
  23090. {
  23091. 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(), ""));
  23092. if (url == "1")
  23093. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23094. else
  23095. {
  23096. WebClient web = new WebClient();
  23097. web.Encoding = Encoding.UTF8;
  23098. string Dataurl = web.DownloadString("http://119.0.11.6:8002/" + "Affairs/SetFileData" + "?ids=" + ids);
  23099. 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(), ""));
  23100. if (url1 == "1")
  23101. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23102. }
  23103. }
  23104. }
  23105. else
  23106. {
  23107. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  23108. }
  23109. }
  23110. return dt;
  23111. }
  23112. /// <summary>
  23113. /// 绑定追问回复附件信息
  23114. /// </summary>
  23115. /// <param name="dt"></param>
  23116. /// <param name="prefix"></param>
  23117. /// <returns></returns>
  23118. public DataTable BindFileDatas(DataTable dt, string prefix)
  23119. {
  23120. dt.Columns.Add("File", typeof(object));
  23121. foreach (DataRow dr in dt.Rows)
  23122. {
  23123. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  23124. {
  23125. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  23126. }
  23127. }
  23128. dt.Columns.Add("Files", typeof(object));
  23129. foreach (DataRow dr in dt.Rows)
  23130. {
  23131. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  23132. {
  23133. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  23134. }
  23135. }
  23136. return dt;
  23137. }
  23138. /// <summary>
  23139. /// 绑定附件信息
  23140. /// </summary>
  23141. /// <param name="dt"></param>
  23142. /// <param name="prefix"></param>
  23143. /// <returns></returns>
  23144. public DataTable BindFileData(DataTable dt, string prefix)
  23145. {
  23146. dt.Columns.Add("File", typeof(object));
  23147. foreach (DataRow dr in dt.Rows)
  23148. {
  23149. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  23150. {
  23151. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  23152. }
  23153. }
  23154. return dt;
  23155. }
  23156. /// <summary>
  23157. /// 绑定附件信息
  23158. /// </summary>
  23159. /// <param name="dt"></param>
  23160. /// <param name="prefix"></param>
  23161. /// <returns></returns>
  23162. public DataTable BindHandlingFileFileData(DataTable dt, string prefix)
  23163. {
  23164. dt.Columns.Add("HandlingFile", typeof(object));
  23165. foreach (DataRow dr in dt.Rows)
  23166. {
  23167. if (dr["F_HandlingFile"] != null && dr["F_HandlingFile"].ToString() != "")
  23168. {
  23169. dr["HandlingFile"] = GetFileData(dr["F_HandlingFile"].ToString(), prefix);
  23170. }
  23171. }
  23172. return dt;
  23173. }
  23174. #endregion
  23175. #region 修改工单 by admin
  23176. /// <summary>
  23177. /// 获取详情
  23178. /// </summary>
  23179. /// <returns></returns>
  23180. //[Authority]
  23181. public ActionResult GetInfoByAdmin(int id, int type)
  23182. {
  23183. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23184. {
  23185. //string sql = "select * from ";
  23186. string table = string.Empty;
  23187. switch (type)
  23188. {
  23189. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  23190. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  23191. case 3: table = "T_Bus_Feedback"; break;//办理信息
  23192. case 4: table = "T_Bus_RemindRecord"; break;//督办
  23193. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  23194. case 6: table = "T_Bus_VisitResult"; break;//回访
  23195. }
  23196. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  23197. var dt = DbHelperSQL.Query(sql).Tables[0];
  23198. return Success("操作成功", dt);
  23199. }
  23200. else
  23201. {
  23202. return Error("权限不足");
  23203. }
  23204. }
  23205. /// <summary>
  23206. /// 修改工单信息
  23207. /// </summary>
  23208. /// <returns></returns>
  23209. //[Authority]
  23210. public ActionResult EditWorkOrderByAdmin()
  23211. {
  23212. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23213. {
  23214. string workorderid = RequestString.GetFormString("workorderid");
  23215. int source = RequestString.GetInt("source", 0);
  23216. string cusname = RequestString.GetFormString("cusname");
  23217. string cussex = RequestString.GetFormString("cussex");
  23218. string cusphone = RequestString.GetFormString("cusphone");
  23219. string cusaddress = RequestString.GetFormString("cusaddress");
  23220. string email = RequestString.GetFormString("email");
  23221. string zipcode = RequestString.GetFormString("zipcode");
  23222. string conname = RequestString.GetFormString("conname");
  23223. string conphone = RequestString.GetFormString("conphone");
  23224. string title = RequestString.GetFormString("title");
  23225. string content = RequestString.GetFormString("content");
  23226. string files = RequestString.GetFormString("files");
  23227. int sourcearea = RequestString.GetInt("sourcearea", 0);
  23228. string sourceaddress = RequestString.GetFormString("sourceaddress");
  23229. string keys = RequestString.GetFormString("keys");
  23230. string splituser = RequestString.GetFormString("splituser");
  23231. int type = RequestString.GetInt("type", 0);
  23232. int bigtype = RequestString.GetInt("bigtype", 0);
  23233. int smalltype = RequestString.GetInt("smalltype", 0);
  23234. int isprotect = RequestString.GetInt("isprotect", 0);
  23235. int level = RequestString.GetInt("level", 0);
  23236. if (type == 0)
  23237. return Error("请选择来电类型");
  23238. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  23239. if (modelT_Bus_WorkOrder != null)
  23240. {
  23241. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23242. {
  23243. #region 保存工单信息
  23244. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  23245. keyValuePairs.Add("F_InfoSource", source);
  23246. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  23247. keyValuePairs.Add("F_InfoType", type);
  23248. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  23249. // keyValuePairs.Add("F_InfoConBigType", bigtype);
  23250. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  23251. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  23252. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  23253. keyValuePairs.Add("F_SourceArea", sourcearea);
  23254. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  23255. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  23256. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  23257. keyValuePairs.Add("F_CusName", cusname);
  23258. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  23259. keyValuePairs.Add("F_CusSex", cussex);
  23260. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  23261. keyValuePairs.Add("F_CusPhone", cusphone);
  23262. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  23263. keyValuePairs.Add("F_CusAddress", cusaddress);
  23264. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  23265. keyValuePairs.Add("F_ZipCode", zipcode);
  23266. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  23267. keyValuePairs.Add("F_ConName", conname);
  23268. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  23269. keyValuePairs.Add("F_ConPhone", conphone);
  23270. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  23271. keyValuePairs.Add("F_Email", email);
  23272. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  23273. keyValuePairs.Add("F_ComTitle", title);
  23274. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  23275. keyValuePairs.Add("F_ComContent", content);
  23276. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  23277. if (!string.IsNullOrEmpty(files))
  23278. keyValuePairs.Add("F_File", files);
  23279. // modelT_Bus_WorkOrder.F_File = files;//附件
  23280. keyValuePairs.Add("F_File", isprotect);
  23281. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  23282. // modelT_Bus_WorkOrder.F_Content = workcontent;
  23283. keyValuePairs.Add("F_Key", keys);
  23284. // modelT_Bus_WorkOrder.F_Key = keys;
  23285. keyValuePairs.Add("F_Level", level);
  23286. // modelT_Bus_WorkOrder.F_Level = level;
  23287. keyValuePairs.Add("F_ToBereply", 0);
  23288. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  23289. //是否直办(即时答复)0:,否1: 是
  23290. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  23291. #endregion
  23292. #region 插入操作记录
  23293. if (modelT_Bus_WorkOrder.F_ComTitle !=title || modelT_Bus_WorkOrder.F_ComContent !=content )
  23294. {
  23295. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23296. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  23297. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  23298. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  23299. oper.F_File = modelT_Bus_WorkOrder.F_File;
  23300. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23301. oper.F_Message = userinfo + " 修改了工单基本信息";
  23302. oper.F_CreateUser = User.F_UserCode;
  23303. oper.F_CreateTime = DateTime.Now;
  23304. oper.F_IsDelete = 0;
  23305. operBLL.Add(oper);
  23306. }
  23307. else
  23308. {
  23309. LogFactory.GetLogger("修改了信息").Warn(User.F_UserCode + " 修改工单信息");
  23310. }
  23311. #endregion
  23312. trans.Complete();
  23313. }
  23314. return Success("操作成功");
  23315. }
  23316. else
  23317. {
  23318. return Error("操作失败");
  23319. }
  23320. }
  23321. else
  23322. {
  23323. return Success("权限不足");
  23324. }
  23325. }
  23326. /// <summary>
  23327. /// 修改批示信息
  23328. /// </summary>
  23329. /// <returns></returns>
  23330. //[Authority]
  23331. public ActionResult EditSuperInfoByAdmin()
  23332. {
  23333. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23334. {
  23335. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  23336. string superuser = RequestString.GetFormString("superuser");
  23337. string superopinion = RequestString.GetFormString("superopinion");
  23338. string files = RequestString.GetFormString("files");
  23339. int id = RequestString.GetInt("id", 0);
  23340. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  23341. if (model_T_Bus_SubmitSuper != null)
  23342. {
  23343. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23344. {
  23345. #region 保存批示信息
  23346. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  23347. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  23348. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  23349. if (!string.IsNullOrEmpty(files))
  23350. model_T_Bus_SubmitSuper.F_File = files;//附件
  23351. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  23352. #endregion
  23353. #region 插入操作记录
  23354. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23355. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  23356. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  23357. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23358. oper.F_Message = userinfo + " 修改了工单批示信息";
  23359. oper.F_CreateUser = User.F_UserCode;
  23360. oper.F_CreateTime = DateTime.Now;
  23361. oper.F_IsDelete = 0;
  23362. operBLL.Add(oper);
  23363. #endregion
  23364. trans.Complete();
  23365. }
  23366. return Success("操作成功");
  23367. }
  23368. else
  23369. {
  23370. return Error("操作失败");
  23371. }
  23372. }
  23373. else
  23374. {
  23375. return Error("权限不足");
  23376. }
  23377. }
  23378. /// <summary>
  23379. /// 修改交办信息
  23380. /// </summary>
  23381. /// <returns></returns>
  23382. //[Authority]
  23383. public ActionResult EditAssignInfoByAdmin()
  23384. {
  23385. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23386. {
  23387. int assignid = RequestString.GetInt("id", 0);
  23388. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  23389. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  23390. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  23391. string assignedopinion = RequestString.GetFormString("assignedopinion");
  23392. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  23393. if (modelT_Bus_AssignedInfo != null)
  23394. {
  23395. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23396. {
  23397. #region 保存交办信息
  23398. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  23399. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  23400. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  23401. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  23402. assignBLL.Update(modelT_Bus_AssignedInfo);
  23403. #endregion
  23404. #region 插入操作记录
  23405. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23406. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  23407. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  23408. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23409. oper.F_Message = userinfo + " 修改了工单交办信息";
  23410. oper.F_CreateUser = User.F_UserCode;
  23411. oper.F_CreateTime = DateTime.Now;
  23412. oper.F_IsDelete = 0;
  23413. operBLL.Add(oper);
  23414. #endregion
  23415. trans.Complete();
  23416. }
  23417. return Success("操作成功");
  23418. }
  23419. else
  23420. {
  23421. return Error("操作失败");
  23422. }
  23423. }
  23424. else
  23425. {
  23426. return Error("权限不足");
  23427. }
  23428. }
  23429. /// <summary>
  23430. /// 修改办理信息
  23431. /// </summary>
  23432. /// <returns></returns>
  23433. //[Authority]
  23434. public ActionResult EditFeedBackInfoByAdmin()
  23435. {
  23436. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23437. {
  23438. string dealman = RequestString.GetFormString("dealman");
  23439. string result = RequestString.GetFormString("result");
  23440. string files = RequestString.GetFormString("files");
  23441. int feedbackid = RequestString.GetInt("id", 0);
  23442. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  23443. if (model_T_Bus_Feedback != null)
  23444. {
  23445. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23446. {
  23447. #region 保存办理信息
  23448. model_T_Bus_Feedback.F_DealUser = dealman;
  23449. model_T_Bus_Feedback.F_Result = result;//反馈内容
  23450. model_T_Bus_Feedback.F_File = files;
  23451. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  23452. #endregion
  23453. #region 保存工单信息
  23454. 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());
  23455. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  23456. if (maxid == assign.F_Id)
  23457. {
  23458. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  23459. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  23460. keyValuePairs.Add("F_Result", result);
  23461. workorderBLL.UpdateWorkOrder(order.F_Id, keyValuePairs);
  23462. }
  23463. #endregion
  23464. #region 插入操作记录
  23465. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23466. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  23467. oper.F_File = model_T_Bus_Feedback.F_File;
  23468. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23469. oper.F_Message = userinfo + " 修改了工单办理信息";
  23470. oper.F_CreateUser = User.F_UserCode;
  23471. oper.F_CreateTime = DateTime.Now;
  23472. oper.F_IsDelete = 0;
  23473. operBLL.Add(oper);
  23474. #endregion
  23475. trans.Complete();
  23476. }
  23477. return Success("操作成功");
  23478. }
  23479. else
  23480. {
  23481. return Error("操作失败");
  23482. }
  23483. }
  23484. else
  23485. {
  23486. return Error("权限不足");
  23487. }
  23488. }
  23489. /// <summary>
  23490. /// 修改回访信息
  23491. /// </summary>
  23492. /// <returns></returns>
  23493. //[Authority]
  23494. public ActionResult EditVisitInfoByAdmin()
  23495. {
  23496. 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")
  23497. {
  23498. string visituser = RequestString.GetFormString("visituser");//回访人
  23499. int type = RequestString.GetInt("type", 0);//回访方式
  23500. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  23501. int visitid = RequestString.GetInt("id", 0);
  23502. string result = RequestString.GetFormString("result");//回访情况
  23503. string guid = RequestString.GetFormString("guid");
  23504. string file = RequestString.GetFormString("file");
  23505. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  23506. if (modelT_Bus_VisitResult != null)
  23507. {
  23508. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23509. {
  23510. #region 保存回访信息
  23511. modelT_Bus_VisitResult.F_VisitUser = visituser;
  23512. modelT_Bus_VisitResult.F_Type = type;
  23513. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  23514. modelT_Bus_VisitResult.F_Result = result;
  23515. modelT_Bus_VisitResult.F_File = file ;
  23516. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  23517. //保存回访记录
  23518. // new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  23519. #endregion
  23520. //#region 插入操作记录
  23521. //Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23522. //oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  23523. //string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23524. //oper.F_Message = userinfo + " 修改了工单回访信息";
  23525. //oper.F_CreateUser = User.F_UserCode;
  23526. //oper.F_CreateTime = DateTime.Now;
  23527. //oper.F_IsDelete = 0;
  23528. //operBLL.Add(oper);
  23529. //#endregion
  23530. trans.Complete();
  23531. }
  23532. return Success("操作成功");
  23533. }
  23534. else
  23535. {
  23536. return Error("操作失败");
  23537. }
  23538. }
  23539. else
  23540. {
  23541. return Error("权限不足");
  23542. }
  23543. }
  23544. /// <summary>
  23545. /// 修改退回审核信息
  23546. /// </summary>
  23547. /// <returns></returns>
  23548. //[Authority]
  23549. public ActionResult EditAuditRebackByAdmin()
  23550. {
  23551. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23552. {
  23553. string reason = RequestString.GetFormString("reason");
  23554. int rebackid = RequestString.GetInt("id", 0);
  23555. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  23556. if (modelT_Bus_Feedback != null)
  23557. {
  23558. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23559. {
  23560. #region 保存反馈信息
  23561. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  23562. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  23563. #endregion
  23564. #region 插入操作记录
  23565. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23566. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  23567. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23568. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  23569. oper.F_CreateUser = User.F_UserCode;
  23570. oper.F_CreateTime = DateTime.Now;
  23571. oper.F_IsDelete = 0;
  23572. operBLL.Add(oper);
  23573. #endregion
  23574. trans.Complete();
  23575. }
  23576. return Success("操作成功");
  23577. }
  23578. else
  23579. {
  23580. return Error("操作失败");
  23581. }
  23582. }
  23583. else
  23584. {
  23585. return Error("权限不足");
  23586. }
  23587. }
  23588. /// <summary>
  23589. /// 修改延时审核信息
  23590. /// </summary>
  23591. /// <returns></returns>
  23592. //[Authority]
  23593. public ActionResult EditAuditDelayByAdmin()
  23594. {
  23595. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23596. {
  23597. string reason = RequestString.GetFormString("reason");
  23598. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  23599. int delayid = RequestString.GetInt("id", 0);
  23600. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  23601. if (modelT_Bus_DelayTime != null)
  23602. {
  23603. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  23604. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23605. {
  23606. #region 保存延时审核信息
  23607. modelT_Bus_DelayTime.F_RefuseReason = reason;
  23608. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  23609. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  23610. #endregion
  23611. #region 插入操作记录
  23612. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23613. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  23614. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23615. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  23616. oper.F_CreateUser = User.F_UserCode;
  23617. oper.F_CreateTime = DateTime.Now;
  23618. oper.F_IsDelete = 0;
  23619. operBLL.Add(oper);
  23620. #endregion
  23621. trans.Complete();
  23622. }
  23623. return Success("操作成功");
  23624. }
  23625. else
  23626. {
  23627. return Error("操作失败");
  23628. }
  23629. }
  23630. else
  23631. {
  23632. return Error("权限不足");
  23633. }
  23634. }
  23635. #endregion
  23636. #region 县级对接
  23637. /// <summary>
  23638. /// 获取网点列表
  23639. /// </summary>
  23640. /// <param name="code"></param>
  23641. /// <param name="name"></param>
  23642. /// <returns></returns>
  23643. //[Authority]
  23644. public ActionResult GetCityList(string code, string name)
  23645. {
  23646. string signcode = Configs.GetValue("CityOutSignCode");
  23647. string url = Configs.GetValue("CityOutUrl");
  23648. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  23649. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  23650. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  23651. return Content(result);
  23652. }
  23653. /// <summary>
  23654. /// 获取网点详情
  23655. /// </summary>
  23656. /// <param name="code"></param>
  23657. /// <returns></returns>
  23658. //[Authority]
  23659. public ActionResult GetCityDetail(string code)
  23660. {
  23661. string signcode = Configs.GetValue("CityOutSignCode");
  23662. string url = Configs.GetValue("CityOutUrl");
  23663. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  23664. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  23665. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  23666. return Content(result);
  23667. }
  23668. /// <summary>
  23669. /// 转派工单到县级
  23670. /// </summary>
  23671. /// <returns></returns>
  23672. //[Authority]
  23673. public ActionResult TurnWorkOrder()
  23674. {
  23675. 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")
  23676. {
  23677. string workorderid = RequestString.GetFormString("workorderid");
  23678. string citycode = RequestString.GetFormString("citycode");
  23679. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  23680. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  23681. {
  23682. string code = Configs.GetValue("CityCode");
  23683. var branchmodel = GetCityInfo(code);
  23684. var citymodel = GetCityInfo(citycode);
  23685. if (branchmodel != null && citymodel != null)
  23686. {
  23687. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  23688. {
  23689. string cityworkorderid = string.Empty;
  23690. #region 转单
  23691. string turnsigncode = citymodel["F_Sign"].ToString();
  23692. string turnurl = citymodel["F_Url"].ToString();
  23693. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  23694. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  23695. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  23696. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  23697. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  23698. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  23699. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  23700. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  23701. var turnresult = turnresultstr.ToJObject();
  23702. if (turnresult["state"].ToString() != "success")
  23703. {
  23704. return Content(turnresultstr);
  23705. }
  23706. else
  23707. {
  23708. cityworkorderid = turnresult["data"].ToString();
  23709. }
  23710. #endregion
  23711. #region 保存工单信息
  23712. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  23713. modelT_Bus_WorkOrder.F_IsClosed = 1;
  23714. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  23715. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  23716. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  23717. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  23718. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  23719. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  23720. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  23721. workorderBLL.Update(modelT_Bus_WorkOrder);
  23722. #endregion
  23723. #region 删除草稿信息
  23724. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  23725. foreach (var cg in cglist)
  23726. {
  23727. cg.F_IsDelete = 1;
  23728. cg.F_DeleteUser = User.F_UserCode;
  23729. cg.F_DeleteTime = DateTime.Now;
  23730. assignBLL.Update(cg);
  23731. }
  23732. #endregion
  23733. #region 新增转单记录
  23734. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  23735. modelT_Bus_CityTurn.F_CityCode = citycode;
  23736. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  23737. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  23738. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  23739. modelT_Bus_CityTurn.F_Type = 2;
  23740. modelT_Bus_CityTurn.F_State = 1;
  23741. modelT_Bus_CityTurn.F_IsSure = 0;
  23742. modelT_Bus_CityTurn.F_IsDelete = 0;
  23743. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  23744. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  23745. #endregion
  23746. #region 插入操作记录
  23747. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23748. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  23749. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  23750. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  23751. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  23752. oper.F_CreateUser = User.F_UserCode;
  23753. oper.F_CreateTime = DateTime.Now;
  23754. oper.F_IsDelete = 0;
  23755. operBLL.Add(oper);
  23756. #endregion
  23757. trans.Complete();
  23758. }
  23759. return Success("操作成功");
  23760. }
  23761. else
  23762. {
  23763. return Error("操作失败");
  23764. }
  23765. }
  23766. else
  23767. {
  23768. return Error("操作失败");
  23769. }
  23770. }
  23771. else
  23772. {
  23773. return Success("权限不足");
  23774. }
  23775. }
  23776. /// <summary>
  23777. /// 获取当前网点信息
  23778. /// </summary>
  23779. /// <returns></returns>
  23780. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  23781. {
  23782. string signcode = Configs.GetValue("CityOutSignCode");
  23783. string url = Configs.GetValue("CityOutUrl");
  23784. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  23785. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  23786. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  23787. if (result["state"].ToString() == "success")
  23788. {
  23789. return result["data"].ToString().ToJObject();
  23790. }
  23791. else
  23792. {
  23793. return null;
  23794. }
  23795. }
  23796. #endregion
  23797. #region 私有方法
  23798. /// <summary>
  23799. /// 添加操作日志
  23800. /// </summary>
  23801. /// <param name="workorderid"></param>
  23802. /// <param name="workstate"></param>
  23803. /// <param name="msgs"></param>
  23804. /// <param name="usercode"></param>
  23805. private void addoptlog(string workorderid, int? workstate, int assid, string msgs, string usercode, int type = 0, int isjb = 0)
  23806. {
  23807. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  23808. oper.F_WorkOrderId = workorderid;
  23809. oper.F_State = workstate;
  23810. oper.F_AssignedId = assid;
  23811. oper.F_Message = msgs;
  23812. oper.F_CreateUser = usercode;
  23813. oper.F_CreateTime = DateTime.Now;
  23814. oper.F_IsDelete = 0;
  23815. oper.F_Type = type;
  23816. int n = operBLL.Add(oper);
  23817. if (isjb == 1)
  23818. {
  23819. Task.Run(() =>
  23820. {
  23821. pushprocess_info(n, "case_process_info", "交办工单");
  23822. }).ContinueWith(p =>
  23823. {
  23824. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  23825. });
  23826. }
  23827. }
  23828. #endregion
  23829. /// <summary>
  23830. /// 二级单位下工单数量
  23831. /// </summary>
  23832. /// <returns></returns>
  23833. //[Authority]
  23834. public ActionResult GetDWCount()
  23835. {
  23836. Dictionary<string, string> paras = new Dictionary<string, string>();
  23837. paras.Add("@deptid", User.F_DeptId.ToString());
  23838. paras.Add("@usercode", User.F_UserCode.ToString());
  23839. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  23840. {
  23841. var obj = DbHelperSQL.RunProcedure("P_DWCount", paras, "DWCount");
  23842. return Success("成功", obj);
  23843. }
  23844. else
  23845. {
  23846. var obj = DbHelperSQL.RunProcedure("P_GLCount", paras, "DWCount");
  23847. return Success("成功", obj);
  23848. }
  23849. }
  23850. #region 省平台对接
  23851. string FrontUrl = Configs.GetValue("FrontUrl");
  23852. // string url = "http://localhost:63660/Affairs/";
  23853. int Affairs = int.Parse(Configs.GetValue("Affairs"));
  23854. public string case_info(string workorderid, string parameter)
  23855. {
  23856. if (Affairs > 0)
  23857. {
  23858. WebClient web = new WebClient();
  23859. web.Encoding = Encoding.UTF8;
  23860. string Dataurl = web.DownloadString(FrontUrl+"/Affairs/" + parameter + "?workorderid=" + workorderid);
  23861. }
  23862. return "";
  23863. }
  23864. public void process_info(int id, string parameter, string title)
  23865. {
  23866. if (Affairs > 0)
  23867. {
  23868. WebClient web = new WebClient();
  23869. web.Encoding = Encoding.UTF8;
  23870. string Dataurl = web.DownloadString(FrontUrl + "/Affairs/" + parameter + "?id=" + id + "&title=" + title);
  23871. }
  23872. }
  23873. public void material_info(string WorkOrderId, string file, int id, string type)
  23874. {
  23875. if (Affairs > 0)
  23876. {
  23877. WebClient web = new WebClient();
  23878. web.Encoding = Encoding.UTF8;
  23879. string Dataurl = web.DownloadString(FrontUrl + "/Affairs/" + "case_material_info" + "?WorkOrderId=" + WorkOrderId + "&file=" + file + "&id=" + id + "&type=" + type);
  23880. }
  23881. }
  23882. string url = Configs.GetValue("FrontUrl") + "/Affairs/";
  23883. string phshurl = Configs.GetValue("FrontUrl") + "/Converge/";
  23884. public string pushcase_info(string workorderid, string parameter)
  23885. {
  23886. if (Affairs > 0)
  23887. {
  23888. WebClient web = new WebClient();
  23889. web.Encoding = Encoding.UTF8;
  23890. string Dataurl = web.DownloadString(phshurl + parameter + "?workorderid=" + workorderid);
  23891. }
  23892. return "";
  23893. }
  23894. public void pushprocess_info(int id, string parameter, string title)
  23895. {
  23896. if (Affairs > 0)
  23897. {
  23898. WebClient web = new WebClient();
  23899. web.Encoding = Encoding.UTF8;
  23900. string Dataurl = web.DownloadString(phshurl + parameter + "?id=" + id + "&title=" + title);
  23901. }
  23902. }
  23903. public void pushmaterial_info(string WorkOrderId, string file, int id, string type)
  23904. {
  23905. if (Affairs > 0)
  23906. {
  23907. WebClient web = new WebClient();
  23908. web.Encoding = Encoding.UTF8;
  23909. string Dataurl = web.DownloadString(phshurl + "case_material_info" + "?WorkOrderId=" + WorkOrderId + "&file=" + file + "&id=" + id + "&type=" + type);
  23910. }
  23911. }
  23912. #endregion
  23913. public ActionResult ReleaseOnLineWorkOrder()
  23914. {
  23915. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  23916. {
  23917. int userId = User.F_UserId;
  23918. if (userId != 0)
  23919. {
  23920. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  23921. if (userModel != null)
  23922. {
  23923. string workorderid = RequestString.GetFormString("workorderid");
  23924. string title = RequestString.GetFormString("title");
  23925. int islimit = RequestString.GetInt("islimit", 1);
  23926. string limittime = RequestString.GetFormString("limittime");
  23927. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  23928. if (modelT_Bus_WorkOrder != null)
  23929. {
  23930. Model.T_Web_WorkRelease WorkReleaseInfo = new BLL.T_Web_WorkRelease().GetModel(workorderid);
  23931. if (WorkReleaseInfo == null)
  23932. {
  23933. WorkReleaseInfo = new Model.T_Web_WorkRelease();
  23934. WorkReleaseInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  23935. WorkReleaseInfo.F_Content = modelT_Bus_WorkOrder.F_ComContent;
  23936. WorkReleaseInfo.F_Result = modelT_Bus_WorkOrder.F_Result;
  23937. WorkReleaseInfo.F_WorkSort = modelT_Bus_WorkOrder.F_InfoType;
  23938. WorkReleaseInfo.F_WorkState = modelT_Bus_WorkOrder.F_WorkState;
  23939. WorkReleaseInfo.F_AcceptTime = modelT_Bus_WorkOrder.F_CreateTime;
  23940. WorkReleaseInfo.F_Title = title;
  23941. WorkReleaseInfo.F_EffectiveState = islimit;
  23942. if (islimit == 2)
  23943. {
  23944. WorkReleaseInfo.F_EffectiveTime = DateTime.Parse(limittime);
  23945. }
  23946. WorkReleaseInfo.F_Releaser = userModel.F_UserName;
  23947. WorkReleaseInfo.F_ReleaseState = 1;
  23948. WorkReleaseInfo.F_ReleaseTime = DateTime.Now;
  23949. var dt = new BLL.T_Bus_AssignedInfo().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_Id desc").Tables[0];
  23950. if (dt != null && dt.Rows.Count > 0)
  23951. {
  23952. WorkReleaseInfo.F_Opinion = dt.Rows[0]["F_AssignedOpinion"].ToString();
  23953. if (!string.IsNullOrEmpty(dt.Rows[0]["F_MainDeptId"].ToString()))
  23954. {
  23955. WorkReleaseInfo.F_Department = Convert.ToInt32(dt.Rows[0]["F_MainDeptId"]);
  23956. }
  23957. }
  23958. dt.Dispose();
  23959. dt = new BLL.T_Bus_Feedback().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'").Tables[0];
  23960. if (dt != null && dt.Rows.Count > 0)
  23961. {
  23962. if (!string.IsNullOrEmpty(dt.Rows[0]["F_CreateTime"].ToString()))
  23963. {
  23964. WorkReleaseInfo.F_FeedbackTime = Convert.ToDateTime(dt.Rows[0]["F_CreateTime"]);
  23965. }
  23966. }
  23967. if (new BLL.T_Web_WorkRelease().Add(WorkReleaseInfo))
  23968. {
  23969. return Success("发布成功!");
  23970. }
  23971. else
  23972. {
  23973. return Error("发布失败!");
  23974. }
  23975. }
  23976. else
  23977. {
  23978. return Error("此工单已经发布过了!");
  23979. }
  23980. }
  23981. return Error("操作失败");
  23982. }
  23983. else
  23984. {
  23985. return Error("发布失败");
  23986. }
  23987. }
  23988. else
  23989. {
  23990. return Error("发布失败");
  23991. }
  23992. }
  23993. else
  23994. {
  23995. return Error("权限不足");
  23996. }
  23997. }
  23998. /// <summary>
  23999. /// 获取工单日志
  24000. /// </summary>
  24001. /// <param name="isdc"></param>
  24002. /// <returns></returns>
  24003. public ActionResult GetOperationList(int isdc=0)
  24004. {
  24005. DataTable dt = new DataTable();
  24006. string sql = " and F_IsDelete=0 ";
  24007. string workorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  24008. string starttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  24009. string endtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  24010. string usercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  24011. if (!string .IsNullOrEmpty (workorderid))
  24012. {
  24013. sql += $" and F_WorkOrderId like '%{workorderid}%'";
  24014. }
  24015. if (!string.IsNullOrEmpty(starttime))
  24016. {
  24017. sql += " and F_CreateTime>='" + starttime + "' ";
  24018. }
  24019. if (!string.IsNullOrEmpty(endtime))
  24020. {
  24021. sql += " and F_CreateTime<='" + endtime + "' ";
  24022. }
  24023. if (!string.IsNullOrEmpty(usercode))
  24024. {
  24025. sql += $" and F_CreateUser = '{usercode}'";
  24026. }
  24027. string strpageindex = RequestString.GetQueryString("page");
  24028. int pageindex = 1;
  24029. string strpagesize = RequestString.GetQueryString("pagesize");
  24030. int pagesize = 10;
  24031. if (strpageindex.Trim() != "")
  24032. {
  24033. pageindex = Convert.ToInt32(strpageindex);
  24034. }
  24035. if (strpagesize.Trim() != "")
  24036. {
  24037. pagesize = Convert.ToInt32(strpagesize);
  24038. }
  24039. int recordCount = 0;
  24040. dt = BLL.PagerBLL.GetListPager(
  24041. "T_Bus_Operation WITH(NOLOCK)",
  24042. "F_Id",
  24043. "*",
  24044. sql,
  24045. "ORDER BY F_CreateTime desc ",
  24046. pagesize,
  24047. pageindex,
  24048. true,
  24049. out recordCount);
  24050. var obj = new
  24051. {
  24052. state = "success",
  24053. message = "成功",
  24054. rows = dt,
  24055. total = recordCount
  24056. };
  24057. return Content(obj.ToJson());
  24058. }
  24059. ///// <summary>
  24060. ///// 导入excel更换标签
  24061. ///// </summary>
  24062. public ActionResult ImportExcel()
  24063. {
  24064. HttpPostedFile _upFile = RequestString.GetFile("upFile");
  24065. if (_upFile != null)
  24066. {
  24067. int headrow = 0;
  24068. #region 上传文件
  24069. string filepath = "";
  24070. string datepath = DateTime.Now.ToString("yyyyMMddHHMMss");
  24071. string aLastName = Path.GetExtension(_upFile.FileName);
  24072. string oriname = Path.GetFileNameWithoutExtension(_upFile.FileName);
  24073. if (aLastName != ".xls" && aLastName != ".xlsx")
  24074. {
  24075. return Error("文件类型错误,请选择Excel文件");
  24076. }
  24077. string newpath = datepath + "_" + _upFile.FileName;
  24078. if (!Directory.Exists(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData")))
  24079. {
  24080. Directory.CreateDirectory(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData"));
  24081. }
  24082. filepath = this.Request.ApplicationPath + "/ExcelData/" + newpath;
  24083. string PhysicalPath = Server.MapPath(filepath);
  24084. _upFile.SaveAs(PhysicalPath);
  24085. #endregion
  24086. NPOIHelper np = new NPOIHelper();
  24087. DataTable dt = np.ExcelToTable(_upFile, headrow);
  24088. string msg = string.Empty;
  24089. if (dt == null || dt.Rows.Count == 0)
  24090. return Error("文件没有数据");
  24091. else
  24092. {
  24093. foreach (DataRow dr in dt.Rows)
  24094. {
  24095. headrow = headrow + 1;
  24096. if (string.IsNullOrEmpty(dr["工单编号"].ToString()))
  24097. {
  24098. msg = msg + "第" + headrow + "行,工单编号,未导入<br>";
  24099. continue;
  24100. }
  24101. if (string.IsNullOrEmpty(dr["所属分类"].ToString()))
  24102. {
  24103. msg = msg + "第" + headrow + "行,所属分类,未导入<br>";
  24104. continue;
  24105. }
  24106. var list = new BLL.T_Sys_DictionaryValue().
  24107. GetModelList(" F_State= 0 and F_Value='" + dr["所属分类"].ToString() + "' and F_PrentId=4608 ");
  24108. if (list!=null&&list.Count ()>0)
  24109. {
  24110. var model = new BLL.T_Bus_WorkOrder().GetModel(dr["工单编号"].ToString().Trim());
  24111. if (model != null)
  24112. {
  24113. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  24114. keyValuePairs.Add("F_InfoConSmallType", list.FirstOrDefault().F_ValueId);
  24115. bool n = workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs);
  24116. if (!n)
  24117. {
  24118. msg = msg + "第" + headrow + "行,修改失败,未导入<br>";
  24119. continue;
  24120. }
  24121. }
  24122. else
  24123. {
  24124. msg = msg + "第" + headrow + "行,工单不存在,未导入<br>";
  24125. continue;
  24126. }
  24127. }
  24128. else
  24129. {
  24130. msg = msg + "第" + headrow + "行,所属分类不存在,未导入<br>";
  24131. continue;
  24132. }
  24133. }
  24134. if (string.IsNullOrEmpty(msg))
  24135. return Success("导入成功 ");
  24136. else
  24137. return Error(msg);
  24138. }
  24139. }
  24140. return Error("数据源上传失败");
  24141. }
  24142. ///// <summary>
  24143. /////
  24144. ///// </summary>
  24145. public ActionResult AddContentment(string [] ids)
  24146. {
  24147. if (ids != null && ids.Length > 0)
  24148. {
  24149. foreach (string str in ids)
  24150. {
  24151. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  24152. {
  24153. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  24154. if (modelT_Bus_WorkOrder != null)
  24155. {
  24156. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  24157. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  24158. {
  24159. #region 保存工单信息
  24160. keyValuePairs.Add("F_Contentment", 1);
  24161. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  24162. #endregion
  24163. }
  24164. }
  24165. trans.Complete();
  24166. }
  24167. }
  24168. return Success("操作成功");
  24169. }
  24170. else
  24171. {
  24172. return Error("操作失败");
  24173. }
  24174. }
  24175. ///// <summary>
  24176. ///// 导入excel新增
  24177. ///// </summary>
  24178. public ActionResult ImportContentment()
  24179. {
  24180. HttpPostedFile _upFile = RequestString.GetFile("upFile");
  24181. if (_upFile != null)
  24182. {
  24183. int headrow = 0;
  24184. #region 上传文件
  24185. string filepath = "";
  24186. string datepath = DateTime.Now.ToString("yyyyMMddHHMMss");
  24187. string aLastName = Path.GetExtension(_upFile.FileName);
  24188. string oriname = Path.GetFileNameWithoutExtension(_upFile.FileName);
  24189. if (aLastName != ".xls" && aLastName != ".xlsx")
  24190. {
  24191. return Error("文件类型错误,请选择Excel文件");
  24192. }
  24193. string newpath = datepath + "_" + _upFile.FileName;
  24194. if (!Directory.Exists(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData")))
  24195. {
  24196. Directory.CreateDirectory(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData"));
  24197. }
  24198. filepath = this.Request.ApplicationPath + "/ExcelData/" + newpath;
  24199. string PhysicalPath = Server.MapPath(filepath);
  24200. _upFile.SaveAs(PhysicalPath);
  24201. #endregion
  24202. NPOIHelper np = new NPOIHelper();
  24203. DataTable dt = np.ExcelToTable(_upFile, headrow);
  24204. string msg = string.Empty;
  24205. if (dt == null || dt.Rows.Count == 0)
  24206. return Error("文件没有数据");
  24207. else
  24208. {
  24209. foreach (DataRow dr in dt.Rows)
  24210. {
  24211. headrow = headrow + 1;
  24212. if (string.IsNullOrEmpty(dr["工单编号"].ToString()))
  24213. {
  24214. msg = msg + "第" + headrow + "行,工单编号,未导入<br>";
  24215. continue;
  24216. }
  24217. var model = new BLL.T_Bus_WorkOrder().GetModel(dr["工单编号"].ToString().Trim());
  24218. if (model != null)
  24219. {
  24220. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  24221. keyValuePairs.Add("F_Contentment", 1);
  24222. bool n = workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs);
  24223. if (!n)
  24224. {
  24225. msg = msg + "第" + headrow + "行,修改失败,未导入<br>";
  24226. continue;
  24227. }
  24228. }
  24229. else
  24230. {
  24231. msg = msg + "第" + headrow + "行,工单不存在,未导入<br>";
  24232. continue;
  24233. }
  24234. }
  24235. if (string.IsNullOrEmpty(msg))
  24236. return Success("导入成功 ");
  24237. else
  24238. return Error(msg);
  24239. }
  24240. }
  24241. return Error("数据源上传失败");
  24242. }
  24243. ///// <summary>
  24244. ///// 导入excel更换标签
  24245. ///// </summary>
  24246. public ActionResult ImportFileExcel()
  24247. {
  24248. HttpPostedFile _upFile = RequestString.GetFile("upFile");
  24249. if (_upFile != null)
  24250. {
  24251. int headrow = 0;
  24252. #region 上传文件
  24253. string filepath = "";
  24254. string datepath = DateTime.Now.ToString("yyyyMMddHHMMss");
  24255. string aLastName = Path.GetExtension(_upFile.FileName);
  24256. string oriname = Path.GetFileNameWithoutExtension(_upFile.FileName);
  24257. if (aLastName != ".xls" && aLastName != ".xlsx")
  24258. {
  24259. return Error("文件类型错误,请选择Excel文件");
  24260. }
  24261. string newpath = datepath + "_" + _upFile.FileName;
  24262. if (!Directory.Exists(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData")))
  24263. {
  24264. Directory.CreateDirectory(Server.MapPath(this.Request.ApplicationPath + "\\ExcelData"));
  24265. }
  24266. filepath = this.Request.ApplicationPath + "/ExcelData/" + newpath;
  24267. string PhysicalPath = Server.MapPath(filepath);
  24268. _upFile.SaveAs(PhysicalPath);
  24269. #endregion
  24270. NPOIHelper np = new NPOIHelper();
  24271. DataTable dt = np.ExcelToTable(_upFile, headrow);
  24272. string msg = string.Empty;
  24273. if (dt == null || dt.Rows.Count == 0)
  24274. return Error("文件没有数据");
  24275. else
  24276. {
  24277. foreach (DataRow dr in dt.Rows)
  24278. {
  24279. headrow = headrow + 1;
  24280. if (string.IsNullOrEmpty(dr["工单编号"].ToString()))
  24281. {
  24282. msg = msg + "第" + headrow + "行,工单编号,未导入<br>";
  24283. continue;
  24284. }
  24285. if (string.IsNullOrEmpty(dr["ID"].ToString()))
  24286. {
  24287. msg = msg + "第" + headrow + "行,ID,未导入<br>";
  24288. continue;
  24289. }
  24290. var Call = new BLL.T_Call_CallRecords().GetModel(int .Parse (dr["ID"].ToString().Trim()));
  24291. if (Call != null)
  24292. {
  24293. var model = new BLL.T_Bus_VisitResult().GetNewModelByWorkOrderID(dr["工单编号"].ToString().Trim());
  24294. if (model != null)
  24295. {
  24296. model.F_File = Call.CallRecordsId.ToString();
  24297. bool n = new BLL.T_Bus_VisitResult().Update(model);
  24298. if (!n)
  24299. {
  24300. msg = msg + "第" + headrow + "行,修改失败,未导入<br>";
  24301. continue;
  24302. }
  24303. }
  24304. else
  24305. {
  24306. msg = msg + "第" + headrow + "行,工单不存在,未导入<br>";
  24307. continue;
  24308. }
  24309. }
  24310. else
  24311. {
  24312. msg = msg + "第" + headrow + "行,所属分类不存在,未导入<br>";
  24313. continue;
  24314. }
  24315. }
  24316. if (string.IsNullOrEmpty(msg))
  24317. return Success("导入成功 ");
  24318. else
  24319. return Error(msg);
  24320. }
  24321. }
  24322. return Error("数据源上传失败");
  24323. }
  24324. public static string Post(string url, Dictionary<string, object> dic)
  24325. {
  24326. string result = "";
  24327. HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
  24328. req.Method = "POST";
  24329. req.ContentType = "application/x-www-form-urlencoded";
  24330. #region 添加Post 参数
  24331. StringBuilder builder = new StringBuilder();
  24332. int i = 0;
  24333. foreach (var item in dic)
  24334. {
  24335. if (i > 0)
  24336. builder.Append("&");
  24337. builder.AppendFormat("{0}={1}", item.Key, item.Value);
  24338. i++;
  24339. }
  24340. byte[] data = Encoding.UTF8.GetBytes(builder.ToString());
  24341. req.ContentLength = data.Length;
  24342. using (Stream reqStream = req.GetRequestStream())
  24343. {
  24344. reqStream.Write(data, 0, data.Length);
  24345. reqStream.Close();
  24346. }
  24347. #endregion
  24348. HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
  24349. Stream stream = resp.GetResponseStream();
  24350. //获取响应内容
  24351. using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
  24352. {
  24353. result = reader.ReadToEnd();
  24354. }
  24355. return result;
  24356. }
  24357. }
  24358. }