Нет описания

WorkOrderController.cs 1.0MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763
  1. using CallCenter.Utility;
  2. using CallCenterApi.Common;
  3. using CallCenterApi.DB;
  4. using CallCenterApi.Interface.Controllers.Base;
  5. using CallCenterApi.Interface.Models.Common;
  6. using CallCenterApi.Model;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.IO;
  12. using System.Linq;
  13. using System.Net;
  14. using System.Text;
  15. using System.Text.RegularExpressions;
  16. using System.Threading.Tasks;
  17. using System.Transactions;
  18. using System.Web;
  19. using System.Web.Mvc;
  20. namespace CallCenterApi.Interface.Controllers.workorder
  21. {
  22. [Authority]
  23. public class WorkOrderController : BaseController
  24. {
  25. // GET: WorkOrder
  26. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  27. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  28. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  29. private information.InternalMessagesController msg = new information.InternalMessagesController();
  30. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  31. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  32. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  33. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  34. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  35. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  36. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  37. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  38. private readonly static object _MyLock = new object();
  39. #region 获取工单
  40. /// <summary>
  41. /// 获取工单列表
  42. /// </summary>
  43. /// <returns></returns>
  44. public ActionResult GetList(int isdc = 0)
  45. {
  46. DataTable dt = new DataTable();
  47. string sql = " and F_IsDelete=0 ";
  48. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  49. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  50. int islike = RequestString.GetInt("islike", 1);
  51. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  52. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  53. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  54. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  55. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  56. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  57. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  58. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  59. int isproresult = RequestString.GetInt("isproresult", 0);
  60. int source = RequestString.GetInt("source", 0);
  61. int keyid = RequestString.GetInt("keyid", 0);
  62. int type = RequestString.GetInt("type", 0);
  63. int bigtype = RequestString.GetInt("bigtype", 0);
  64. int smalltype = RequestString.GetInt("smalltype", 0);
  65. int sourcearea = RequestString.GetInt("sourcearea", 0);
  66. int deptid = RequestString.GetInt("deptid", 0);
  67. int pydt = RequestString.GetInt("pydt", 0);
  68. int zdpy = RequestString.GetInt("zdpy", 0);
  69. int smpy = RequestString.GetInt("smpy", 0);
  70. int dealtype = RequestString.GetInt("dealtype", -1);
  71. int issend = RequestString.GetInt("issend", -1);
  72. int deptlevel = RequestString.GetInt("deptlevel", 0);
  73. int dbdata = RequestString.GetInt("dbdata", 0);
  74. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  75. string strpageindex = RequestString.GetQueryString("page");
  76. int pageindex = 1;
  77. string strpagesize = RequestString.GetQueryString("pagesize");
  78. int pagesize = 10;
  79. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  80. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  81. int isopen = RequestString.GetInt("isopen", -1);
  82. if (isopen > -1)
  83. sql += " and isnull(F_IsOpen,0) =" + isopen;
  84. int business = RequestString.GetInt("business", 0);
  85. if (business > 0)
  86. sql += " and F_Business = '1'";
  87. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  88. {
  89. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  90. {
  91. sql += " and F_DealTime between '" + dealstarttime +
  92. "' AND '" + dealstrendtime + "'";
  93. }
  94. else
  95. {
  96. sql += " and F_DealTime>='" + dealstarttime + "' ";
  97. }
  98. }
  99. else
  100. {
  101. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  102. {
  103. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  104. }
  105. }
  106. #region sql 语句相关处理
  107. if (strstate.Trim() != "" && strstate != "undefined")
  108. {
  109. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  110. }
  111. if (strworkid.Trim() != "" && strworkid != "undefined")
  112. {
  113. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  114. }
  115. if (strname.Trim() != "" && strname != "undefined")
  116. {
  117. sql += " and F_CusName = '" + strname + "' ";
  118. }
  119. if (splituser.Trim() != "" && splituser != "undefined")
  120. {
  121. sql += " and F_SplitUser = '" + splituser + "' ";
  122. }
  123. if (islike > 0)
  124. {
  125. if (strtel.Trim() != "" && strtel != "undefined")
  126. {
  127. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  128. }
  129. }
  130. else
  131. {
  132. if (strtel.Trim() != "" && strtel != "undefined")
  133. {
  134. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  135. }
  136. }
  137. int dbtype = RequestString.GetInt("dbtype", 0);
  138. if (pydt > 0)
  139. {
  140. if (zdpy > 0)
  141. {
  142. sql += " and datediff(day,F_CreateTime,getdate() )>15 and F_WorkState = 9 and F_CloseTime is not null " +
  143. "and F_WorkOrderId not in (select WorkOrderId from PublicComment WITH(NOLOCK) )";
  144. }
  145. else if (smpy > 0)
  146. {
  147. sql += " and F_WorkOrderId in (select WorkOrderId from PublicComment WITH(NOLOCK) ) ";
  148. }
  149. else
  150. {
  151. sql += " and ((datediff(day,F_CreateTime,getdate() )>15 and F_WorkState = 9 and F_CloseTime is not null) or F_WorkOrderId in (select WorkOrderId from PublicComment WITH(NOLOCK) )) ";
  152. }
  153. }
  154. else if (dbdata > 0)
  155. {
  156. if (deptid == 0)
  157. {
  158. return Error("请选择部门");
  159. }
  160. string sdate = ""; string etime = "";
  161. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  162. {
  163. sdate = DateTime.Now.AddMonths(-1).
  164. ToString("yyyy-MM") + "-21 00:00:01";
  165. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  166. }
  167. else
  168. {
  169. sdate = strstarttime;
  170. if (strendtime.Trim() == "" || strendtime == "undefined")
  171. {
  172. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  173. }
  174. else
  175. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  176. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  177. }
  178. if (dbtype != 6)
  179. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  180. else
  181. sql += "and F_WorkState not in (0, 1, 11)";
  182. if (dbtype == 1)
  183. {
  184. 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) ) ) ";
  185. }
  186. else if (dbtype == 2)
  187. {
  188. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  189. }
  190. else if (dbtype == 3)
  191. {
  192. 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 " +
  193. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  194. }
  195. else if (dbtype == 4)
  196. {
  197. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  198. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  199. }
  200. else if (dbtype == 5)
  201. {
  202. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  203. }
  204. else if (dbtype == 6)
  205. {
  206. 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 )";
  207. }
  208. }
  209. else if (dbdata2 > 0)
  210. {
  211. if (deptid == 0)
  212. {
  213. return Error("请选择部门");
  214. }
  215. int deptid2 = 0;
  216. if (User.F_RoleCode == "WLDW")
  217. deptid2 = User.F_DeptId;
  218. string sdate = ""; string etime = "";
  219. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  220. {
  221. sdate = DateTime.Now.AddMonths(-1).
  222. ToString("yyyy-MM") + "-21 00:00:01";
  223. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  224. }
  225. else
  226. {
  227. sdate = strstarttime;
  228. if (strendtime.Trim() == "" || strendtime == "undefined")
  229. {
  230. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  231. }
  232. else
  233. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  234. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  235. }
  236. if (dbtype != 6)
  237. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  238. "and F_MainDeptID3='" + deptid + "'";
  239. else
  240. sql += "and F_WorkState not in (0, 1, 11)";
  241. if (dbtype == 1)
  242. {
  243. 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) ) ) ";
  244. }
  245. else if (dbtype == 2)
  246. {
  247. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  248. }
  249. else if (dbtype == 3)
  250. {
  251. 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 " +
  252. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  253. }
  254. else if (dbtype == 4)
  255. {
  256. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  257. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  258. }
  259. else if (dbtype == 5)
  260. {
  261. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  262. }
  263. else if (dbtype == 6)
  264. {
  265. 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 ) " +
  266. "and F_MainDeptID3='" + deptid + "'";
  267. }
  268. }
  269. else
  270. {
  271. int comprehensive = RequestString.GetInt("comprehensive", 0);
  272. int phoneType = RequestString.GetInt("phoneType", 0);
  273. int jianhang = RequestString.GetInt("jianhang", 0);
  274. if (comprehensive <= 0)
  275. {
  276. if (jianhang > 0)
  277. {
  278. if (jianhang == 3)
  279. sql += " and F_InfoSource = '2501' ";
  280. else
  281. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  282. }
  283. else
  284. {
  285. sql += " and F_InfoSource = '1' ";
  286. if (phoneType == 1)
  287. sql += " and F_PhoneType != '12345' ";
  288. else if (phoneType == 2)
  289. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  290. "or F_PhoneType is null ) ";
  291. }
  292. }
  293. }
  294. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  295. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  296. {
  297. sql += " and F_PhoneType = '" + incomingcall + "' ";
  298. }
  299. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  300. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  301. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  302. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  303. {
  304. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  305. }
  306. if (Result.Trim() != "" && Result != "undefined")
  307. {
  308. sql += " and F_Result like '%" + Result + "%' ";
  309. }
  310. if (ComContent.Trim() != "" && ComContent != "undefined")
  311. {
  312. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  313. "or F_Content like '%" + ComContent + "%' )";
  314. }
  315. if (strkey.Trim() != "" && strkey != "undefined")
  316. {
  317. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  318. " or F_Result like '%" + strkey + "%' ) ";
  319. }
  320. if (strusercode.Trim() != "" && strusercode != "undefined")
  321. {//坐席
  322. var usercode = strusercode.Trim().Split(',');
  323. var newusercode = "";
  324. foreach (var item in usercode)
  325. {
  326. if (!string.IsNullOrWhiteSpace(item.Trim()))
  327. newusercode += "'" + item + "',";
  328. }
  329. newusercode = newusercode.Trim(',');
  330. if (usercode.Length > 1)
  331. {
  332. if (newusercode.Trim() != "" && newusercode != "undefined")
  333. {
  334. sql += " and F_CreateUser in (" + newusercode + ") ";
  335. //sql += " and F_CreateUser ='" + strusercode + "' ";
  336. }
  337. }
  338. else
  339. {
  340. if (newusercode.Trim() != "" && newusercode != "undefined")
  341. {
  342. sql += " and F_CreateUser = " + newusercode + " ";
  343. //sql += " and F_CreateUser ='" + strusercode + "' ";
  344. }
  345. }
  346. }
  347. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  348. {//调度员
  349. var ddusercode = strddusercode.Trim().Split(',');
  350. var newusercode = "";
  351. foreach (var item in ddusercode)
  352. {
  353. if (!string.IsNullOrWhiteSpace(item.Trim()))
  354. newusercode += "'" + item + "',";
  355. }
  356. newusercode = newusercode.Trim(',');
  357. if (ddusercode.Length > 1)
  358. {
  359. if (newusercode.Trim() != "" && newusercode != "undefined")
  360. {
  361. sql += " and F_AssignUser in (" + newusercode + ") ";
  362. //sql += " and F_CreateUser ='" + strusercode + "' ";
  363. }
  364. }
  365. else
  366. {
  367. if (newusercode.Trim() != "" && newusercode != "undefined")
  368. {
  369. sql += " and F_AssignUser = " + newusercode + " ";
  370. //sql += " and F_CreateUser ='" + strusercode + "' ";
  371. }
  372. }
  373. }
  374. if (source != 0)
  375. {
  376. sql += " and F_InfoSource = '" + source + "' ";
  377. }
  378. string sqlwhere = ""; string value = "";
  379. if (keyid != 0)
  380. {
  381. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  382. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  383. }
  384. else if (User.F_RoleCode == "DFZF")
  385. {
  386. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  387. }
  388. if (type != 0)
  389. {
  390. sql += " and F_InfoType = '" + type + "' ";
  391. }
  392. if (bigtype != 0)
  393. {
  394. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  395. }
  396. if (smalltype != 0)
  397. {
  398. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  399. }
  400. if (isproresult != 0)
  401. {
  402. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY"
  403. || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  404. {
  405. if (isproresult == 2)
  406. {
  407. isproresult = 3;
  408. sql += " and F_IsProResult = '" + 3 + "' ";
  409. }
  410. else
  411. {
  412. isproresult = 2;
  413. sql += " and F_IsProResult = '" + 2 + "' ";
  414. }
  415. }
  416. else
  417. sql += " and F_IsProResult = '" + 2 + "' ";
  418. }
  419. if (sourcearea != 0)
  420. {
  421. sql += " and F_SourceArea = '" + sourcearea + "' ";
  422. }
  423. if (deptid != 0)
  424. {
  425. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  426. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  427. #endregion
  428. }
  429. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  430. {
  431. if (strendtime.Trim() != "" && strendtime != "undefined")
  432. {
  433. sql += " and F_CreateTime between '" + strstarttime +
  434. "' AND '" + strendtime + "'";
  435. }
  436. else
  437. {
  438. sql += " and F_CreateTime>='" + strstarttime + "' ";
  439. }
  440. }
  441. else
  442. {
  443. if (strendtime.Trim() != "" && strendtime != "undefined")
  444. {
  445. sql += " and F_CreateTime<='" + strendtime + "' ";
  446. }
  447. }
  448. if (dealtype != -1)
  449. {
  450. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  451. }
  452. if (issend != -1)
  453. {
  454. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  455. }
  456. #endregion
  457. if (strpageindex.Trim() != "")
  458. {
  459. pageindex = Convert.ToInt32(strpageindex);
  460. }
  461. if (strpagesize.Trim() != "")
  462. {
  463. pagesize = Convert.ToInt32(strpagesize);
  464. }
  465. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  466. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  467. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  468. string cols = "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,(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,(SELECT COUNT(1) FROM T_Sys_WorkOFFDays WITH(NOLOCK) WHERE F_OffState =0 AND F_OffDate >GETDATE() AND F_OffDate<a.F_LimitTime) as SYSJ ,(select COUNT(1) from T_Bus_RemindRecord WITH(NOLOCK) where F_State=0 and F_IsDelete=0 and F_Type =1 and F_WorkOrderId = a.F_WorkOrderId ) as reminds ,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification ";
  469. #region 导出
  470. if (isdc > 0)
  471. {
  472. var top = " "; var orderby = " order by F_CreateTime";
  473. if (sql == " and F_IsDelete=0 ")
  474. {
  475. top = " top 1000 "; orderby += " desc ";
  476. }
  477. //20190715调整导出字段 zhengbingbing
  478. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  479. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  480. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  481. + " (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) 办理结果, "
  482. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 "
  483. + " from T_Bus_WorkOrder a WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  484. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  485. if (msg == "")
  486. {
  487. return Success("导出成功");
  488. }
  489. else
  490. {
  491. return Error("导出失败");
  492. }
  493. }
  494. #endregion
  495. int recordCount = 0;
  496. dt = BLL.PagerBLL.GetListPager(
  497. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  498. "F_Id",
  499. cols,
  500. sql,
  501. "ORDER BY F_CreateTime DESC",
  502. pagesize,
  503. pageindex,
  504. true,
  505. out recordCount);
  506. #region 声音文件和交办超时
  507. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  508. // dt.Columns.Add("AssignTime", typeof(string));//交办时间
  509. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  510. dt.Columns.Add("OverState", typeof(string));//超时状态
  511. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  512. dt.Columns.Add("GapTime", typeof(string));//时间差
  513. // dt.Columns.Add("PDState", typeof(string));//派单状态
  514. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  515. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  516. dt.Columns.Add("Dissatisfied", typeof(object));//不满意
  517. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  518. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  519. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  520. // var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  521. foreach (DataRow dr in dt.Rows)
  522. {
  523. string iszbdw = "0";
  524. string ispd = "";
  525. int state = Int32.Parse(dr["F_WorkState"].ToString());
  526. if (state > 1)
  527. {
  528. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  529. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  530. // 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";
  531. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  532. // if (dtjb.Rows.Count > 0)
  533. // {
  534. //if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  535. //{
  536. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  537. //}
  538. #region 20191016
  539. #endregion
  540. // dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  541. #region
  542. #endregion
  543. var lt = dr["LimitTime"].ToString();//限制时间
  544. // dr["LimitTime"] = lt;
  545. #region 超时时限
  546. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  547. {
  548. if (!string.IsNullOrWhiteSpace(lt))
  549. {
  550. var ltime = DateTime.Parse(lt);
  551. if (ltime > DateTime.Now)
  552. {
  553. // string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  554. // var SYSJ = DbHelperSQL.GetSingle(SY);
  555. if (dr["SYSJ"] != null && dr["SYSJ"].ToString() != "")
  556. {
  557. try
  558. {
  559. ltime = ltime.AddDays(-int.Parse(dr["SYSJ"].ToString()));
  560. }
  561. catch
  562. {
  563. }
  564. }
  565. }
  566. TimeSpan ts = ltime.Subtract(DateTime.Now);
  567. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  568. if (tss < 0) { tss = -tss; }
  569. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  570. if (ltime > DateTime.Now)
  571. {
  572. if (configcs != null)
  573. {
  574. int cs = Int32.Parse(configcs.F_ParamValue);
  575. if (ts.TotalHours > cs)
  576. {
  577. dr["OverState"] = 1;
  578. }
  579. else
  580. {
  581. dr["OverState"] = 2;
  582. }
  583. }
  584. dr["GapTime"] = "剩余" + gshsj;
  585. }
  586. else
  587. {
  588. dr["OverState"] = 3;
  589. dr["GapTime"] = "超时" + gshsj;
  590. }
  591. }
  592. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  593. //dr["PDState"] = ispd;
  594. }
  595. if (state == (int)EnumWorkState.finish &&
  596. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  597. {
  598. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  599. var dttime = DateTime.Now;
  600. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  601. else
  602. {
  603. var DealTime = dr["F_CloseTime"].ToString();
  604. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  605. }
  606. if (!string.IsNullOrWhiteSpace(lt))
  607. {
  608. var ltime = DateTime.Parse(lt);
  609. TimeSpan ts = ltime.Subtract(dttime);
  610. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  611. if (tss < 0) { tss = -tss; }
  612. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  613. if (ltime < dttime)
  614. {
  615. dr["OverState"] = 3;
  616. dr["GapTime"] = "超时" + gshsj;
  617. }
  618. }
  619. }
  620. #endregion
  621. // }
  622. }
  623. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  624. {
  625. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  626. }
  627. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  628. {
  629. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  630. }
  631. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  632. if (dbdata > 0 && dbtype == 5)
  633. {
  634. 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";
  635. var db = DbHelperSQL.Query(dbsql).Tables[0];
  636. if (db.Rows.Count > 0)
  637. {
  638. dr["Dissatisfied"] = db.Rows[0]["strSsf_Cst_Ass_CntDsc"].ToString();
  639. }
  640. }
  641. #region 判断是否存在待督办
  642. // var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  643. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  644. if (int.Parse(dr["reminds"].ToString()) > 0 && butt != null)
  645. buttons.Remove(butt);
  646. #endregion
  647. //if (isproresult == 0 && User.F_RoleCode.ToUpper() == "ZXHWY")
  648. //{
  649. // buttons.Clear();
  650. // buttons.Add(ButtonGroup.query());
  651. //}
  652. if (state == 9)
  653. {
  654. 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")
  655. {
  656. if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  657. {
  658. var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  659. TimeSpan ts = DateTime.Now - closedttime;
  660. if (ts.TotalDays < 20)
  661. {
  662. buttons.Add(ButtonGroup.subreload());
  663. }
  664. }
  665. }
  666. }
  667. else if (state == 6)
  668. {
  669. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  670. {
  671. if (isproresult == 2 || isproresult == 3)
  672. buttons.Add(ButtonGroup.forceend());
  673. }
  674. }
  675. else if (state == 0&&dr["F_IsReturn"].ToString ()=="1")
  676. {
  677. if (User.F_RoleCode.ToUpper() == "MTDD"
  678. )
  679. {
  680. buttons.Add(ButtonGroup.edit());
  681. }
  682. else if ( User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode == "YSZY")
  683. {
  684. buttons.Add(ButtonGroup.submit());
  685. buttons.Add(ButtonGroup.delete());
  686. }
  687. }
  688. dr["Buttons"] = buttons;
  689. }
  690. #endregion
  691. var obj = new
  692. {
  693. state = "success",
  694. message = "成功",
  695. rows = dt,
  696. total = recordCount
  697. };
  698. return Content(obj.ToJson());
  699. }
  700. /// <summary>
  701. /// 获取工单列表
  702. /// </summary>
  703. /// <returns></returns>
  704. public ActionResult GetModelList(int isdc = 0)
  705. {
  706. DataTable dt = new DataTable();
  707. string sql = " and F_IsDelete=0 ";
  708. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  709. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  710. int source = RequestString.GetInt("source", 0);
  711. int deptid = RequestString.GetInt("deptid", 0);
  712. int dbdata = RequestString.GetInt("dbdata", 0);
  713. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  714. string strpageindex = RequestString.GetQueryString("page");
  715. int pageindex = 1;
  716. string strpagesize = RequestString.GetQueryString("pagesize");
  717. int pagesize = 10;
  718. Dictionary<int, int> DWDeptid = new Dictionary<int, int>();
  719. DWDeptid.Add(220, 1267);
  720. DWDeptid.Add(219, 1266);
  721. DWDeptid.Add(197, 1268);
  722. DWDeptid.Add(204, 1271);
  723. DWDeptid.Add(199, 1264);
  724. DWDeptid.Add(218, 1265);
  725. DWDeptid.Add(202, 1269);
  726. DWDeptid.Add(203, 1270);
  727. #region sql 语句相关处理
  728. int dbtype = RequestString.GetInt("dbtype", 0);
  729. if (dbdata > 0)
  730. {
  731. if (deptid == 0)
  732. {
  733. return Error("请选择部门");
  734. }
  735. string sdate = ""; string etime = "";
  736. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  737. {
  738. sdate = DateTime.Now.AddMonths(-1).
  739. ToString("yyyy-MM") + "-21 00:00:01";
  740. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  741. }
  742. else
  743. {
  744. sdate = strstarttime;
  745. if (strendtime.Trim() == "" || strendtime == "undefined")
  746. {
  747. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  748. }
  749. else
  750. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  751. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  752. }
  753. if (dbtype != 6)
  754. {
  755. if (DWDeptid.ContainsKey(deptid))
  756. {
  757. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId in(" + deptid + "," + DWDeptid[deptid] + ")";
  758. }
  759. else
  760. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  761. }
  762. else
  763. sql += "and F_WorkState not in (0, 1, 11)";
  764. if (dbtype == 1)
  765. {
  766. 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) ) ) ";
  767. }
  768. else if (dbtype == 2)
  769. {
  770. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  771. }
  772. else if (dbtype == 3)
  773. {
  774. 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 " +
  775. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  776. }
  777. else if (dbtype == 4)
  778. {
  779. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  780. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  781. }
  782. else if (dbtype == 5)
  783. {
  784. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  785. }
  786. else if (dbtype == 6)
  787. {
  788. if (DWDeptid.ContainsKey(deptid))
  789. {
  790. 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 in(" + deptid + "," + DWDeptid[deptid] + ")) group by F_WorkOrderId having COUNT(1) = 1 )";
  791. }
  792. else
  793. 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 )";
  794. }
  795. }
  796. else if (dbdata2 > 0)
  797. {
  798. if (deptid == 0)
  799. {
  800. return Error("请选择部门");
  801. }
  802. int deptid2 = 0;
  803. if (User.F_RoleCode == "WLDW")
  804. deptid2 = User.F_DeptId;
  805. string sdate = ""; string etime = "";
  806. if (string.IsNullOrEmpty(strstarttime))
  807. {
  808. sdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-21 00:00:00";
  809. }
  810. else
  811. {
  812. sdate = DateTime.Parse(strstarttime).ToString("yyyy-MM-dd") + " 00:00:00";
  813. }
  814. if (string.IsNullOrEmpty(strendtime))
  815. {
  816. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  817. }
  818. else
  819. {
  820. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  821. }
  822. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  823. if (dbtype != 6)
  824. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  825. "and F_MainDeptID3='" + deptid + "'";
  826. else
  827. sql += "and F_WorkState not in (0, 1, 11)";
  828. if (dbtype == 1)
  829. {
  830. 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) ) ) ";
  831. }
  832. else if (dbtype == 2)
  833. {
  834. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  835. }
  836. else if (dbtype == 3)
  837. {
  838. 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 " +
  839. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  840. }
  841. else if (dbtype == 4)
  842. {
  843. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  844. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  845. }
  846. else if (dbtype == 5)
  847. {
  848. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  849. }
  850. else if (dbtype == 6)
  851. {
  852. 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 ) " +
  853. "and F_MainDeptID3='" + deptid + "'";
  854. }
  855. }
  856. if (source != 0)
  857. {
  858. sql += " and F_InfoSource = '" + source + "' ";
  859. }
  860. #endregion
  861. if (strpageindex.Trim() != "")
  862. {
  863. pageindex = Convert.ToInt32(strpageindex);
  864. }
  865. if (strpagesize.Trim() != "")
  866. {
  867. pagesize = Convert.ToInt32(strpagesize);
  868. }
  869. string cols = "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," +
  870. "(select top 1 strSsf_Cst_Ass_CntDsc from PublicComment where WorkOrderId =a.F_WorkOrderId order by CreateTime desc) as Oncedissatisfied";
  871. #region 导出
  872. if (isdc > 0)
  873. {
  874. var top = " "; var orderby = " order by F_CreateTime";
  875. if (sql == " and F_IsDelete=0 ")
  876. {
  877. top = " top 1000 "; orderby += " desc ";
  878. }
  879. //20190715调整导出字段 zhengbingbing
  880. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  881. 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) 反映类别, "
  882. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  883. + " (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) 办理结果, "
  884. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  885. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  886. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  887. if (msg == "")
  888. {
  889. return Success("导出成功");
  890. }
  891. else
  892. {
  893. return Error("导出失败");
  894. }
  895. }
  896. #endregion
  897. int recordCount = 0;
  898. dt = BLL.PagerBLL.GetListPager(
  899. "T_Bus_WorkOrder a WITH(NOLOCK)",
  900. "F_Id",
  901. cols,
  902. sql,
  903. "ORDER BY F_CreateTime DESC",
  904. pagesize,
  905. pageindex,
  906. true,
  907. out recordCount);
  908. #region 声音文件和交办超时
  909. #endregion
  910. var obj = new
  911. {
  912. state = "success",
  913. message = "成功",
  914. rows = dt,
  915. total = recordCount
  916. };
  917. return Content(obj.ToJson());
  918. }
  919. /// <summary>
  920. /// 获取坐席处理列表
  921. /// </summary>
  922. /// <returns></returns>
  923. //[Authority]
  924. public ActionResult GetZXDealList(int isdc = 0)
  925. {
  926. DataTable dt = new DataTable();
  927. string sql = " and F_IsDelete=0";
  928. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  929. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  930. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  931. int islike = RequestString.GetInt("islike", 1);
  932. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  933. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  934. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  935. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  936. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  937. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  938. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  939. int source = RequestString.GetInt("source", 0);
  940. int keyid = RequestString.GetInt("keyid", 0);
  941. int type = RequestString.GetInt("type", 0);
  942. int bigtype = RequestString.GetInt("bigtype", 0);
  943. int smalltype = RequestString.GetInt("smalltype", 0);
  944. int sourcearea = RequestString.GetInt("sourcearea", 0);
  945. int tobereply = RequestString.GetInt("tobereply", 0);
  946. int deptid = RequestString.GetInt("deptid", 0);
  947. int deptlevel = RequestString.GetInt("deptlevel", 0);
  948. int issms = RequestString.GetInt("issms", -1);
  949. int db = RequestString.GetInt("db", 0);
  950. string strpageindex = RequestString.GetQueryString("page");
  951. int pageindex = 1;
  952. string strpagesize = RequestString.GetQueryString("pagesize");
  953. int pagesize = 10;
  954. switch (strtab)
  955. {
  956. case "-1"://待处理工单(其他来源)
  957. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  958. break;
  959. case "0"://待处理工单
  960. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "MTDD")
  961. {
  962. //话务员,已办待回访菜单中可以看到所有工单并能操作
  963. if (User.F_RoleCode != "ZJZY" && User.F_RoleCode != "ZXHWY")
  964. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  965. //话务员,已办待回访菜单中可以看到所有工单并能操作
  966. }
  967. if (strstate.Trim() != "" && strstate != "undefined")
  968. {
  969. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  970. {
  971. sql += "and (F_IsReturn !='1' or F_IsReturn is null)";
  972. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  973. sql += "and F_ToBereply=" + tobereply;
  974. }
  975. else if (strstate.Trim() == ((int)EnumWorkState.audit).ToString())
  976. {
  977. sql += " and F_WorkState in (" + (int)EnumWorkState.audit + "," + (int)EnumWorkState.auditreback + ") ";
  978. }
  979. else
  980. {
  981. sql += "and F_ToBereply=" + tobereply;
  982. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  983. }
  984. if (strstate.Trim() == ((int)EnumWorkState.dealed).ToString())
  985. {
  986. if (db > -1)
  987. {
  988. if (db == 0)
  989. {
  990. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 )";
  991. }
  992. else
  993. {
  994. 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) and F_IsExamine=1 )";
  995. }
  996. }
  997. else
  998. {
  999. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  1000. }
  1001. }
  1002. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1003. }
  1004. else
  1005. {
  1006. sql += "and F_ToBereply=" + tobereply;
  1007. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + "," + (int)EnumWorkState.rejload + ") ";
  1008. sql += " and F_WorkState in (0) ";
  1009. sql += "and (F_IsReturn !='1' or F_IsReturn is null)";
  1010. }
  1011. break;
  1012. case "1"://已提交的工单
  1013. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  1014. sql += " and F_WorkState >0 ";
  1015. if (strstate.Trim() != "" && strstate != "undefined")
  1016. {
  1017. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1018. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1019. else
  1020. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1021. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1022. }
  1023. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" || User.F_RoleCode != "DBZY")
  1024. {
  1025. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1026. }
  1027. break;
  1028. case "2"://已回访的工单
  1029. if (strstate.Trim() != "" && strstate != "undefined")
  1030. {
  1031. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1032. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1033. else
  1034. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1035. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1036. }
  1037. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1038. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" || User.F_RoleCode != "DBZY")
  1039. {
  1040. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1041. }
  1042. else
  1043. {
  1044. sql += ")";
  1045. }
  1046. break;
  1047. case "3"://已回退的工单
  1048. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  1049. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  1050. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1051. {
  1052. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1053. }
  1054. break;
  1055. case "4":
  1056. 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)";
  1057. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1058. {
  1059. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1060. }
  1061. break;
  1062. }
  1063. int business = RequestString.GetInt("business", 0);
  1064. if (business > 0)
  1065. sql += " and F_Business = '1'";
  1066. int jianhang = RequestString.GetInt("jianhang", 0);
  1067. int phoneType = RequestString.GetInt("phoneType", 0);
  1068. int IsExamine = RequestString.GetInt("IsExamine", -1);
  1069. if (issms > -1)
  1070. {
  1071. if (issms == 1)
  1072. sql += " and F_IsSms = '" + issms + "'";
  1073. else
  1074. sql += " and (F_IsSms = '0' or F_IsSms is null )";
  1075. }
  1076. if (jianhang > 0)
  1077. {
  1078. if (jianhang == 3)
  1079. {
  1080. if (IsExamine > -1)
  1081. {
  1082. if (IsExamine==0)
  1083. {
  1084. sql += " and (F_IsExamine = '1' or F_IsExamine is null)";
  1085. }
  1086. else
  1087. {
  1088. sql += " and F_IsExamine = '2' ";
  1089. }
  1090. }
  1091. sql += " and F_InfoSource = '2501' ";
  1092. }
  1093. else
  1094. sql += " and F_InfoSource != '1'and F_InfoSource != '2501' ";
  1095. }
  1096. else
  1097. {
  1098. sql += " and F_InfoSource = '1' ";
  1099. if (phoneType == 1)
  1100. sql += " and F_PhoneType != '12345' ";
  1101. else if (phoneType == 2)
  1102. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  1103. "or F_PhoneType is null ) ";
  1104. }
  1105. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  1106. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  1107. {
  1108. sql += " and F_PhoneType = '" + incomingcall + "' ";
  1109. }
  1110. if (strworkid.Trim() != "" && strworkid != "undefined")
  1111. {
  1112. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1113. }
  1114. if (strname.Trim() != "" && strname != "undefined")
  1115. {
  1116. sql += " and F_CusName like '%" + strname + "%' ";
  1117. }
  1118. if (islike > 0)
  1119. {
  1120. if (strtel.Trim() != "" && strtel != "undefined")
  1121. {
  1122. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1123. }
  1124. }
  1125. else
  1126. {
  1127. if (strtel.Trim() != "" && strtel != "undefined")
  1128. {
  1129. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1130. }
  1131. }
  1132. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1133. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1134. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1135. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1136. {
  1137. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1138. }
  1139. if (Result.Trim() != "" && Result != "undefined")
  1140. {
  1141. sql += " and F_Result like '%" + Result + "%' ";
  1142. }
  1143. if (ComContent.Trim() != "" && ComContent != "undefined")
  1144. {
  1145. sql += " and F_ComContent like '%" + ComContent + "%' ";
  1146. }
  1147. if (strkey.Trim() != "" && strkey != "undefined")
  1148. {
  1149. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1150. " or F_Result like '%" + strkey + "%' ) ";
  1151. }
  1152. #region 坐席&调度员
  1153. if (strusercode.Trim() != "" && strusercode != "undefined")
  1154. {//坐席
  1155. var usercode = strusercode.Trim().Split(',');
  1156. var newusercode = "";
  1157. foreach (var item in usercode)
  1158. {
  1159. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1160. newusercode += "'" + item + "',";
  1161. }
  1162. newusercode = newusercode.Trim(',');
  1163. if (newusercode.Trim() != "" && newusercode != "undefined")
  1164. {
  1165. sql += " and F_CreateUser in (" + newusercode + ") ";
  1166. }
  1167. }
  1168. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1169. {//调度员
  1170. var ddusercode = strddusercode.Trim().Split(',');
  1171. var newusercode = "";
  1172. foreach (var item in ddusercode)
  1173. {
  1174. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1175. newusercode += "'" + item + "',";
  1176. }
  1177. newusercode = newusercode.Trim(',');
  1178. if (newusercode.Trim() != "" && newusercode != "undefined")
  1179. {
  1180. sql += " and F_AssignUser in(" + newusercode + ") ";
  1181. }
  1182. }
  1183. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1184. //{
  1185. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1186. //}
  1187. #endregion
  1188. if (source != 0)
  1189. {
  1190. sql += " and F_InfoSource = '" + source + "' ";
  1191. }
  1192. string sqlwhere = ""; string value = "";
  1193. if (keyid != 0)
  1194. {
  1195. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1196. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  1197. // " or F_Key='" + keyid + "' )";
  1198. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  1199. }
  1200. if (type != 0)
  1201. {
  1202. sql += " and F_InfoType = '" + type + "' ";
  1203. }
  1204. if (bigtype != 0)
  1205. {
  1206. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1207. }
  1208. if (smalltype != 0)
  1209. {
  1210. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1211. }
  1212. if (sourcearea != 0)
  1213. {
  1214. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1215. }
  1216. if (deptid != 0)
  1217. {
  1218. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1219. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  1220. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1221. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1222. //if (deptlevel == 0)
  1223. //{
  1224. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  1225. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1226. //}
  1227. //else
  1228. //{
  1229. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  1230. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1231. //}
  1232. #endregion
  1233. }
  1234. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1235. {
  1236. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1237. }
  1238. if (strendtime.Trim() != "" && strendtime != "undefined")
  1239. {
  1240. sql += " and F_CreateTime<='" + strendtime + "' ";
  1241. }
  1242. if (strpageindex.Trim() != "")
  1243. {
  1244. pageindex = Convert.ToInt32(strpageindex);
  1245. }
  1246. if (strpagesize.Trim() != "")
  1247. {
  1248. pagesize = Convert.ToInt32(strpagesize);
  1249. }
  1250. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1251. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1252. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1253. 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,(select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  1254. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime,F_Identification";
  1255. if (isdc > 0)
  1256. {
  1257. var top = " "; var orderby = " order by F_CreateTime";
  1258. if (sql == " and F_IsDelete=0 ")
  1259. {
  1260. top = " top 1000 "; orderby += " desc ";
  1261. }
  1262. //20190715调整导出字段 zhengbingbing
  1263. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1264. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  1265. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1266. + " (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) 办理结果, "
  1267. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  1268. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " 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. int recordCount = 0;
  1280. dt = BLL.PagerBLL.GetListPager(
  1281. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  1282. "F_Id",
  1283. cols,
  1284. sql,
  1285. "ORDER BY F_CreateTime DESC",
  1286. pagesize,
  1287. pageindex,
  1288. true,
  1289. out recordCount);
  1290. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1291. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1292. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1293. dt.Columns.Add("OverState", typeof(string));//超时状态
  1294. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1295. dt.Columns.Add("GapTime", typeof(string));//时间差
  1296. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1297. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1298. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1299. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1300. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1301. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1302. foreach (DataRow dr in dt.Rows)
  1303. {
  1304. //获取最新交办信息
  1305. string iszbdw = "0";
  1306. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1307. if (state > 1)
  1308. {
  1309. 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";
  1310. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1311. if (dtjb.Rows.Count > 0)
  1312. {
  1313. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(User.F_DeptId.ToString())) { iszbdw = "1"; }
  1314. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  1315. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1316. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1317. {
  1318. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1319. }
  1320. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1321. #region
  1322. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1323. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1324. //if (deptinfo != null)
  1325. //{
  1326. // if (did == User.F_DeptId) { iszbdw = "1"; }
  1327. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1328. //}
  1329. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1330. //{
  1331. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1332. // string dns = string.Empty;
  1333. // foreach (string strid in strids)
  1334. // {
  1335. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1336. // if (dinfo != null)
  1337. // {
  1338. // if (string.IsNullOrEmpty(dns))
  1339. // {
  1340. // dns = dinfo.F_DeptName;//交办单位
  1341. // }
  1342. // else
  1343. // {
  1344. // dns += "," + dinfo.F_DeptName;//交办单位
  1345. // }
  1346. // }
  1347. // }
  1348. // dr["OtherDeptName"] = dns;
  1349. //}
  1350. #endregion
  1351. #region
  1352. //if (state < 6 || state == 8)
  1353. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1354. {
  1355. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1356. dr["LimitTime"] = lt;
  1357. if (!string.IsNullOrWhiteSpace(lt))
  1358. {
  1359. var ltime = DateTime.Parse(lt);
  1360. if (ltime > DateTime.Now)
  1361. {
  1362. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  1363. var SYSJ = DbHelperSQL.GetSingle(SY);
  1364. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  1365. {
  1366. try
  1367. {
  1368. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1369. }
  1370. catch
  1371. {
  1372. }
  1373. }
  1374. }
  1375. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1376. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1377. if (tss < 0) { tss = -tss; }
  1378. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1379. if (ltime > DateTime.Now)
  1380. {
  1381. if (configcs != null)
  1382. {
  1383. int cs = Int32.Parse(configcs.F_ParamValue);
  1384. if (ts.TotalHours > cs)
  1385. {
  1386. dr["OverState"] = 1;
  1387. }
  1388. else
  1389. {
  1390. dr["OverState"] = 2;
  1391. }
  1392. }
  1393. dr["GapTime"] = "剩余" + gshsj;
  1394. }
  1395. else
  1396. {
  1397. dr["OverState"] = 3;
  1398. dr["GapTime"] = "超时" + gshsj;
  1399. }
  1400. }
  1401. }
  1402. if (state == (int)EnumWorkState.finish)
  1403. {
  1404. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1405. var dttime = DateTime.Now;
  1406. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1407. else
  1408. {
  1409. var DealTime = dr["F_CloseTime"].ToString();
  1410. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  1411. }
  1412. //else
  1413. //{
  1414. // var DealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  1415. // if (!string.IsNullOrWhiteSpace(DealTime))
  1416. // dttime = DateTime.Parse(DealTime);
  1417. //}
  1418. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1419. dr["LimitTime"] = lt;
  1420. if (!string.IsNullOrWhiteSpace(lt))
  1421. {
  1422. var ltime = DateTime.Parse(lt);
  1423. TimeSpan ts = ltime.Subtract(dttime);
  1424. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1425. if (tss < 0) { tss = -tss; }
  1426. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1427. if (ltime < dttime)
  1428. {
  1429. dr["OverState"] = 3;
  1430. dr["GapTime"] = "超时" + gshsj;
  1431. }
  1432. }
  1433. }
  1434. #endregion
  1435. }
  1436. else
  1437. {
  1438. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  1439. }
  1440. }
  1441. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1442. {
  1443. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1444. }
  1445. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1446. {
  1447. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1448. }
  1449. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1450. if (Int32.Parse(strtab) == 0 || Int32.Parse(strtab) == 3)
  1451. {
  1452. btns.Clear();
  1453. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1454. #region 判断是否存在待督办
  1455. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1456. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1457. if (recount > 0 && butt != null)
  1458. btns.Remove(butt);
  1459. if (Int32.Parse(strtab) == 0 && state == 6)
  1460. {
  1461. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  1462. btns.Add(ButtonGroup.turnsee());
  1463. }
  1464. if (Int32.Parse(strtab) == 0 && state == 3)
  1465. {
  1466. if ( butt != null)
  1467. btns.Remove(butt);
  1468. }
  1469. #endregion
  1470. }
  1471. else if (Int32.Parse(strtab) == -1)
  1472. {
  1473. btns.Clear();
  1474. btns.Add(ButtonGroup.query());
  1475. btns.Add(ButtonGroup.edit());
  1476. }
  1477. else
  1478. {
  1479. btns.Clear();
  1480. btns.Add(ButtonGroup.query());
  1481. }
  1482. dr["Buttons"] = btns;
  1483. }
  1484. var obj = new
  1485. {
  1486. state = "success",
  1487. message = "成功",
  1488. rows = dt,
  1489. total = recordCount
  1490. };
  1491. return Content(obj.ToJson());
  1492. }
  1493. /// <summary>
  1494. /// 获取领导处理列表
  1495. /// </summary>发
  1496. /// <returns></returns>
  1497. //[Authority]
  1498. public ActionResult GetLDDealList(int isdc = 0)
  1499. {
  1500. DataTable dt = new DataTable();
  1501. string sql = " and F_IsDelete=0";
  1502. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1503. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1504. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1505. int islike = RequestString.GetInt("islike", 1);
  1506. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1507. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1508. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1509. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1510. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1511. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1512. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1513. int source = RequestString.GetInt("source", 0);
  1514. int keyid = RequestString.GetInt("keyid", 0);
  1515. int type = RequestString.GetInt("type", 0);
  1516. int bigtype = RequestString.GetInt("bigtype", 0);
  1517. int smalltype = RequestString.GetInt("smalltype", 0);
  1518. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1519. int deptid = RequestString.GetInt("deptid", 0);
  1520. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1521. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1522. int dealtype = RequestString.GetInt("dealtype", -1);//1当即办理,0转办办理,2按时办结,3超期办结
  1523. string order = "ORDER BY F_CreateTime DESC";
  1524. string strpageindex = RequestString.GetQueryString("page");
  1525. int pageindex = 1;
  1526. string strpagesize = RequestString.GetQueryString("pagesize");
  1527. int pagesize = 10;
  1528. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1529. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1530. int isopen = RequestString.GetInt("isopen", -1);
  1531. int IsExamine = RequestString.GetInt("IsExamine", -1);
  1532. if (isopen > -1)
  1533. sql += " and isnull(F_IsOpen,0) =" + isopen;
  1534. int business = RequestString.GetInt("business", 0);
  1535. if (business > 0)
  1536. sql += " and F_Business = '1'";
  1537. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1538. {
  1539. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1540. {
  1541. sql += " and F_DealTime between '" + dealstarttime +
  1542. "' AND '" + dealstrendtime + "'";
  1543. }
  1544. else
  1545. {
  1546. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1547. }
  1548. }
  1549. else
  1550. {
  1551. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1552. {
  1553. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  1554. }
  1555. }
  1556. switch (strtab)
  1557. {
  1558. case "0"://待处理工单
  1559. order = "order by a.F_Level desc, a.F_CreateTime desc";
  1560. sql += " and (F_IsRelease !='" + 3 + "' or " +
  1561. "F_IsRelease is null) ";
  1562. 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)";
  1563. if (strstate.Trim() != "" && strstate != "undefined")
  1564. {
  1565. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1566. {
  1567. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.resubmit + ") ";
  1568. }
  1569. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  1570. {
  1571. if (User.F_RoleCode == "ZXHWY")
  1572. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1573. else
  1574. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  1575. }
  1576. else
  1577. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1578. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1579. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  1580. {
  1581. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1582. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  1583. && User.F_RoleCode != "ZXLD " && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD")
  1584. {
  1585. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1586. }
  1587. else
  1588. {
  1589. sql += ")";
  1590. }
  1591. }
  1592. else
  1593. {
  1594. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1595. {
  1596. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  1597. + "and F_CreateUser = '" + User.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  1598. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  1599. sql += " and F_WorkState != '9' ";
  1600. }
  1601. if (User.F_RoleCode == "ZXHWY")
  1602. {
  1603. sql += " and F_CreateUser='" + User.F_UserCode + "' ";
  1604. }
  1605. }
  1606. }
  1607. else
  1608. {
  1609. int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.resubmit };
  1610. sql += "and F_WorkOrderID not 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 ) ";
  1611. sql += "and F_WorkState in(1,11) ";
  1612. }
  1613. break;
  1614. case "1"://已交办的工单
  1615. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  1616. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  1617. if (strstate.Trim() != "" && strstate != "undefined")
  1618. {
  1619. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1620. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1621. else
  1622. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1623. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1624. }
  1625. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 )";
  1626. sql += " and F_WorkState in (2,3,4,5,8)";
  1627. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  1628. {
  1629. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  1630. }
  1631. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  1632. {
  1633. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  1634. }
  1635. //if (deptid != 0)
  1636. //{
  1637. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1638. // sql += " and F_MainDeptId = '" + deptid + "'";
  1639. //}
  1640. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  1641. && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD")
  1642. {
  1643. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1644. }
  1645. break;
  1646. case "2"://已审核退回的工单
  1647. if (strstate.Trim() != "" && strstate != "undefined")
  1648. {
  1649. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1650. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1651. else
  1652. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1653. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1654. }
  1655. 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 ";
  1656. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1657. {
  1658. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  1659. }
  1660. else
  1661. {
  1662. sql += ")";
  1663. }
  1664. break;
  1665. case "3"://已审核延时的工单
  1666. if (strstate.Trim() != "" && strstate != "undefined")
  1667. {
  1668. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1669. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1670. else
  1671. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1672. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1673. }
  1674. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  1675. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1676. {
  1677. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  1678. }
  1679. else
  1680. {
  1681. sql += ")";
  1682. }
  1683. break;
  1684. case "4"://已重办的工单
  1685. if (strstate.Trim() != "" && strstate != "undefined")
  1686. {
  1687. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1688. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1689. else
  1690. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1691. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1692. }
  1693. 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 ";
  1694. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "ZXLD")
  1695. {
  1696. sql += " and F_ReloadUser='" + User.F_UserCode + "')";
  1697. }
  1698. else
  1699. {
  1700. sql += ")";
  1701. }
  1702. break;
  1703. case "5"://已结案的工单
  1704. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  1705. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  1706. if (issatisfie != -1)
  1707. {
  1708. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_State = 1 and 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 ) ) )";
  1709. }
  1710. if (dealtype > -1)
  1711. {
  1712. if (dealtype == 2)
  1713. {//按时
  1714. sql += " and F_IsResult=0 and isnull(F_DealTime,'')<>'' and F_LimitTime>=F_DealTime ";
  1715. }
  1716. else if (dealtype == 3)
  1717. {//超期
  1718. sql += " and isnull(F_DealTime,'')<>'' and F_LimitTime<F_DealTime ";
  1719. }
  1720. else
  1721. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1722. }
  1723. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  1724. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD" && User.F_RoleCode != "DBZY")
  1725. {
  1726. sql += " and F_CloseUser='" + User.F_UserCode + "'";
  1727. }
  1728. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  1729. {
  1730. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  1731. }
  1732. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  1733. {
  1734. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  1735. }
  1736. break;
  1737. case "6"://已督办的工单
  1738. if (strstate.Trim() != "" && strstate != "undefined")
  1739. {
  1740. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1741. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1742. else
  1743. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1744. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1745. }
  1746. 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 ";
  1747. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1748. {
  1749. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1750. }
  1751. else
  1752. {
  1753. sql += ")";
  1754. }
  1755. break;
  1756. case "7"://已监察的工单
  1757. if (strstate.Trim() != "" && strstate != "undefined")
  1758. {
  1759. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1760. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1761. else
  1762. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1763. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1764. }
  1765. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  1766. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  1767. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1768. {
  1769. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1770. }
  1771. else
  1772. {
  1773. sql += ")";
  1774. }
  1775. break;
  1776. case "8"://待督办列表
  1777. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  1778. if (strstate.Trim() != "" && strstate != "undefined")
  1779. {
  1780. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1781. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1782. else
  1783. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1784. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1785. }
  1786. 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 ";
  1787. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DDZG")
  1788. {
  1789. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1790. }
  1791. else
  1792. {
  1793. sql += ")";
  1794. }
  1795. break;
  1796. case "9"://重办驳回列表
  1797. sql += " and F_WorkState=" + (int)EnumWorkState.rejload;
  1798. 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)";
  1799. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1800. {
  1801. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1802. }
  1803. sql += ")";
  1804. break;
  1805. case "10"://
  1806. sql += " and (F_IsRelease !='" + 3 + "' or " +
  1807. "F_IsRelease is null) ";
  1808. sql += " and F_WorkState in(1,11)";
  1809. 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)";
  1810. // 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 ) ";
  1811. 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 ) ";
  1812. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD")
  1813. {
  1814. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1815. }
  1816. break;
  1817. }
  1818. int jianhang = RequestString.GetInt("jianhang", 0);
  1819. int phoneType = RequestString.GetInt("phoneType", 0);
  1820. if (jianhang > 0)
  1821. {
  1822. if (jianhang == 3)
  1823. {
  1824. if (IsExamine>-1)
  1825. {
  1826. if (IsExamine==0)
  1827. {
  1828. sql += " and (F_IsExamine =0 or F_IsExamine is null) ";
  1829. }
  1830. else
  1831. {
  1832. sql += " and F_IsExamine = '1' ";
  1833. }
  1834. }
  1835. sql += " and F_InfoSource = '2501' ";
  1836. }
  1837. else
  1838. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  1839. }
  1840. else
  1841. {
  1842. sql += " and F_InfoSource = '1' ";
  1843. if (phoneType == 1)
  1844. sql += " and F_PhoneType != '12345' ";
  1845. else if (phoneType == 2)
  1846. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  1847. "or F_PhoneType is null ) ";
  1848. }
  1849. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  1850. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  1851. {
  1852. sql += " and F_PhoneType = '" + incomingcall + "' ";
  1853. }
  1854. if (strworkid.Trim() != "" && strworkid != "undefined")
  1855. {
  1856. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1857. }
  1858. if (strname.Trim() != "" && strname != "undefined")
  1859. {
  1860. sql += " and F_CusName like '%" + strname + "%' ";
  1861. }
  1862. if (islike > 0)
  1863. {
  1864. if (strtel.Trim() != "" && strtel != "undefined")
  1865. {
  1866. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1867. }
  1868. }
  1869. else
  1870. {
  1871. if (strtel.Trim() != "" && strtel != "undefined")
  1872. {
  1873. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1874. }
  1875. }
  1876. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1877. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1878. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1879. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1880. {
  1881. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1882. }
  1883. if (Result.Trim() != "" && Result != "undefined")
  1884. {
  1885. sql += " and F_Result like '%" + Result + "%' ";
  1886. }
  1887. if (ComContent.Trim() != "" && ComContent != "undefined")
  1888. {
  1889. sql += " and F_ComContent like '%" + ComContent + "%' ";
  1890. }
  1891. if (strkey.Trim() != "" && strkey != "undefined")
  1892. {
  1893. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1894. " or F_Result like '%" + strkey + "%' ) ";
  1895. }
  1896. #region 坐席&调度员
  1897. if (strusercode.Trim() != "" && strusercode != "undefined")
  1898. {//坐席
  1899. var usercode = strusercode.Trim().Split(',');
  1900. var newusercode = "";
  1901. foreach (var item in usercode)
  1902. {
  1903. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1904. newusercode += "'" + item + "',";
  1905. }
  1906. newusercode = newusercode.Trim(',');
  1907. if (newusercode.Trim() != "" && newusercode != "undefined")
  1908. {
  1909. sql += " and F_CreateUser in (" + newusercode + ") ";
  1910. }
  1911. }
  1912. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1913. {//调度员
  1914. var ddusercode = strddusercode.Trim().Split(',');
  1915. var newusercode = "";
  1916. foreach (var item in ddusercode)
  1917. {
  1918. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1919. newusercode += "'" + item + "',";
  1920. }
  1921. newusercode = newusercode.Trim(',');
  1922. if (newusercode.Trim() != "" && newusercode != "undefined")
  1923. {
  1924. sql += " and F_AssignUser in(" + newusercode + ") ";
  1925. }
  1926. }
  1927. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1928. //{
  1929. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1930. //}
  1931. #endregion
  1932. if (source != 0)
  1933. {
  1934. sql += " and F_InfoSource = '" + source + "' ";
  1935. }
  1936. string sqlwheres = ""; string value = "";
  1937. if (keyid != 0)
  1938. {
  1939. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1940. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  1941. // " or F_Key='" + keyid + "' )";
  1942. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  1943. }
  1944. if (type != 0)
  1945. {
  1946. sql += " and F_InfoType = '" + type + "' ";
  1947. }
  1948. if (bigtype != 0)
  1949. {
  1950. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1951. }
  1952. if (smalltype != 0)
  1953. {
  1954. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1955. }
  1956. if (sourcearea != 0)
  1957. {
  1958. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1959. }
  1960. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1961. {
  1962. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1963. }
  1964. if (strendtime.Trim() != "" && strendtime != "undefined")
  1965. {
  1966. sql += " and F_CreateTime<='" + strendtime + "' ";
  1967. }
  1968. if (deptid != 0 && strtab != "1")
  1969. {
  1970. if (deptlevel == 0)
  1971. {
  1972. 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 ";
  1973. //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 ";
  1974. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1975. }
  1976. else
  1977. {
  1978. //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 ";
  1979. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  1980. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1981. }
  1982. }
  1983. if (deptid != 0)
  1984. {
  1985. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1986. }
  1987. if (strpageindex.Trim() != "")
  1988. {
  1989. pageindex = Convert.ToInt32(strpageindex);
  1990. }
  1991. if (strpagesize.Trim() != "")
  1992. {
  1993. pagesize = Convert.ToInt32(strpagesize);
  1994. }
  1995. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1996. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1997. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1998. string cols = "";
  1999. if (strtab == "10")
  2000. {
  2001. 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_ComContent,F_Identification";
  2002. }
  2003. else
  2004. {
  2005. 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.GetDeptNames(F_MainDeptId)as DeptNames,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification";
  2006. }
  2007. if (isdc > 0)
  2008. {
  2009. var top = " "; var orderby = " order by F_CreateTime";
  2010. if (sql == " and F_IsDelete=0 ")
  2011. {
  2012. top = " top 1000 "; orderby += " desc ";
  2013. }
  2014. //20190715调整导出字段 zhengbingbing
  2015. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2016. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2017. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  2018. + " (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) 办理结果, "
  2019. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  2020. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  2021. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2022. if (msg == "")
  2023. {
  2024. return Success("导出成功");
  2025. }
  2026. else
  2027. {
  2028. return Error("导出失败");
  2029. }
  2030. }
  2031. int recordCount = 0;
  2032. dt = BLL.PagerBLL.GetListPager(
  2033. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  2034. "F_Id",
  2035. cols,
  2036. sql,
  2037. order,
  2038. pagesize,
  2039. pageindex,
  2040. true,
  2041. out recordCount);
  2042. #region 声音文件
  2043. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2044. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2045. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2046. dt.Columns.Add("OverState", typeof(string));//超时状态
  2047. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2048. dt.Columns.Add("GapTime", typeof(string));//时间差
  2049. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2050. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2051. if (strtab == "10")
  2052. {
  2053. dt.Columns.Add("DeptNames", typeof(string));//退回部门
  2054. dt.Columns.Add("Backreason", typeof(object));//退回原因
  2055. }
  2056. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2057. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2058. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2059. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2060. foreach (DataRow dr in dt.Rows)
  2061. {
  2062. //获取最新交办信息
  2063. string iszbdw = "0";
  2064. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2065. if (state > 1 && state != 11)
  2066. {
  2067. 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";
  2068. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2069. if (dtjb.Rows.Count > 0)
  2070. {
  2071. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2072. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2073. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2074. {
  2075. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2076. }
  2077. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2078. #region
  2079. #endregion
  2080. #region
  2081. //if (state < 6 || state == 8)
  2082. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2083. {
  2084. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2085. dr["LimitTime"] = lt;
  2086. if (!string.IsNullOrWhiteSpace(lt))
  2087. {
  2088. var ltime = DateTime.Parse(lt);
  2089. if (ltime > DateTime.Now)
  2090. {
  2091. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  2092. var SYSJ = DbHelperSQL.GetSingle(SY);
  2093. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  2094. {
  2095. try
  2096. {
  2097. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2098. }
  2099. catch
  2100. {
  2101. }
  2102. }
  2103. }
  2104. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2105. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2106. if (tss < 0) { tss = -tss; }
  2107. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2108. if (ltime > DateTime.Now)
  2109. {
  2110. if (configcs != null)
  2111. {
  2112. int cs = Int32.Parse(configcs.F_ParamValue);
  2113. if (ts.TotalHours > cs)
  2114. {
  2115. dr["OverState"] = 1;
  2116. }
  2117. else
  2118. {
  2119. dr["OverState"] = 2;
  2120. }
  2121. }
  2122. dr["GapTime"] = "剩余" + gshsj;
  2123. }
  2124. else
  2125. {
  2126. dr["OverState"] = 3;
  2127. dr["GapTime"] = "超时" + gshsj;
  2128. }
  2129. }
  2130. }
  2131. if (state == (int)EnumWorkState.finish)
  2132. {
  2133. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2134. var dttime = DateTime.Now;
  2135. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2136. else
  2137. {
  2138. var dealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  2139. if (!string.IsNullOrWhiteSpace(dealTime)) { dttime = DateTime.Parse(dealTime); }
  2140. }
  2141. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2142. dr["LimitTime"] = lt;
  2143. if (!string.IsNullOrWhiteSpace(lt))
  2144. {
  2145. var ltime = DateTime.Parse(lt);
  2146. TimeSpan ts = ltime.Subtract(dttime);
  2147. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2148. if (tss < 0) { tss = -tss; }
  2149. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2150. if (ltime < dttime)
  2151. {
  2152. dr["OverState"] = 3;
  2153. dr["GapTime"] = "超时" + gshsj;
  2154. }
  2155. }
  2156. }
  2157. #endregion
  2158. }
  2159. else
  2160. {
  2161. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2162. }
  2163. }
  2164. if (strtab == "10")
  2165. {
  2166. 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";
  2167. var tu = DbHelperSQL.Query(strtu).Tables[0];
  2168. if (tu.Rows.Count > 0)
  2169. {
  2170. dr["DeptNames"] = tu.Rows[0]["DeptNames"].ToString();
  2171. dr["Backreason"] = tu.Rows[0]["F_Result"].ToString();
  2172. }
  2173. }
  2174. else
  2175. {
  2176. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2177. {
  2178. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2179. }
  2180. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2181. {
  2182. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2183. }
  2184. }
  2185. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2186. if (Int32.Parse(strtab) <= 1 || Int32.Parse(strtab) == 10)
  2187. {
  2188. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2189. #region 判断是否存在待督办
  2190. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2191. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2192. if (recount > 0 && butt != null)
  2193. btns.Remove(butt);
  2194. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "MTDD" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG")
  2195. {
  2196. btns.Add(ButtonGroup.turnsee());
  2197. // btns.Add(ButtonGroup.instruct());
  2198. }
  2199. #endregion
  2200. }
  2201. else
  2202. {
  2203. btns.Clear();
  2204. if (Int32.Parse(strtab) == 8)
  2205. btns = ButtonGroup.GetButtons("12", User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2206. else
  2207. btns.Add(ButtonGroup.query());
  2208. if (Int32.Parse(strtab) != 4)
  2209. {
  2210. if (state == 9)
  2211. {
  2212. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode.ToUpper() == "ZXHWY" || User.F_RoleCode.ToUpper() == "MTDD")
  2213. {
  2214. if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  2215. {
  2216. var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  2217. TimeSpan ts = DateTime.Now - closedttime;
  2218. if (ts.TotalDays < 20)
  2219. {
  2220. btns.Add(ButtonGroup.subreload());
  2221. }
  2222. }
  2223. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  2224. btns.Add(ButtonGroup.modify());
  2225. }
  2226. }
  2227. }
  2228. }
  2229. dr["Buttons"] = btns;
  2230. }
  2231. #endregion
  2232. var obj = new
  2233. {
  2234. state = "success",
  2235. message = "成功",
  2236. rows = dt,
  2237. total = recordCount
  2238. };
  2239. return Content(obj.ToJson());
  2240. }
  2241. /// <summary>
  2242. /// 获取单位处理列表
  2243. /// </summary>
  2244. /// <returns></returns>
  2245. //[Authority]
  2246. public ActionResult GetDWDealList(int isdc = 0)
  2247. {
  2248. DataTable dt = new DataTable();
  2249. string sql = " and F_IsDelete=0";
  2250. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2251. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2252. int islike = RequestString.GetInt("islike", 1);
  2253. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2254. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2255. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2256. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2257. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2258. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2259. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2260. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2261. int source = RequestString.GetInt("source", 0);
  2262. int keyid = RequestString.GetInt("keyid", 0);
  2263. int type = RequestString.GetInt("type", 0);
  2264. int bigtype = RequestString.GetInt("bigtype", 0);
  2265. int smalltype = RequestString.GetInt("smalltype", 0);
  2266. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2267. int deptid = RequestString.GetInt("deptid", 0);
  2268. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  2269. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2270. int distribute = RequestString.GetInt("distribute", -1);//0未派单1已派单
  2271. int blstate = RequestString.GetInt("blstate", 0);//办理状态0办理中1已办理
  2272. int isys = RequestString.GetInt("isys", -1);
  2273. string strpageindex = RequestString.GetQueryString("page");
  2274. int pageindex = 1;
  2275. string strpagesize = RequestString.GetQueryString("pagesize");
  2276. int pagesize = 10;
  2277. string order = "ORDER BY a.F_LimitTime";
  2278. #region 模块
  2279. switch (strtab)
  2280. {
  2281. case "0"://待处理工单
  2282. order = "order by F_Level desc, F_CreateTime desc ";
  2283. int isyq = RequestString.GetInt("isyq", -1);
  2284. if (strstate.Trim() != "" && strstate != "undefined")
  2285. {
  2286. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2287. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2288. else
  2289. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2290. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2291. }
  2292. else
  2293. {
  2294. if (distribute != 0)
  2295. {
  2296. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  2297. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2298. }
  2299. }
  2300. 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)";
  2301. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2302. {
  2303. if (distribute > -1)
  2304. {
  2305. if (distribute == 0)
  2306. {
  2307. 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 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) ) ";
  2308. if (isys > -1)
  2309. {
  2310. if (isys == 0)
  2311. {
  2312. sql += "and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0)";
  2313. }
  2314. else if (isys == 1)
  2315. {
  2316. sql += "and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0)";
  2317. }
  2318. }
  2319. }
  2320. else
  2321. {
  2322. 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 ) ";
  2323. }
  2324. }
  2325. else
  2326. {
  2327. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2328. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)) or "
  2329. //+ "(','+F_OtherDeptIds+',' like '%," + User.F_DeptId + ",%' and F_IsSure=1))";
  2330. //+ " ISNULL(F_FeedbackTime, '')='' and ',' + F_MainDeptID + ',' like '%," + User.F_DeptId + ",%' and F_IsSure in (0,1)";
  2331. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)";
  2332. }
  2333. if (isyq != -1)
  2334. {
  2335. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2336. }
  2337. else
  2338. {
  2339. sql += ")";
  2340. }
  2341. }
  2342. break;
  2343. case "1"://已查收的工单
  2344. if (strstate.Trim() != "" && strstate != "undefined")
  2345. {
  2346. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2347. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2348. else
  2349. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2350. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2351. }
  2352. 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 ";
  2353. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2354. {
  2355. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2356. }
  2357. else
  2358. {
  2359. sql += ")";
  2360. }
  2361. break;
  2362. case "2"://已申请退回的工单
  2363. if (strstate.Trim() != "" && strstate != "undefined")
  2364. {
  2365. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2366. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2367. else
  2368. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2369. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2370. }
  2371. 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 ";
  2372. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2373. {
  2374. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2375. }
  2376. else
  2377. {
  2378. sql += ")";
  2379. }
  2380. break;
  2381. case "3"://已申请延时的工单
  2382. if (strstate.Trim() != "" && strstate != "undefined")
  2383. {
  2384. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2385. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2386. else
  2387. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2388. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2389. }
  2390. else
  2391. {
  2392. if (blstate == 0)
  2393. {
  2394. sql += " and F_WorkState in (1,2,3,4,5,8,10,11,13) ";
  2395. }
  2396. else
  2397. {
  2398. sql += " and F_WorkState in (6,7,9) ";
  2399. }
  2400. }
  2401. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2402. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2403. {
  2404. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2405. }
  2406. else
  2407. {
  2408. sql += ")";
  2409. }
  2410. break;
  2411. case "4"://已办理的工单
  2412. if (strstate.Trim() != "" && strstate != "undefined")
  2413. {
  2414. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2415. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2416. else
  2417. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2418. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2419. }
  2420. 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' ";
  2421. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2422. {
  2423. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2424. }
  2425. else
  2426. {
  2427. sql += ")";
  2428. }
  2429. break;
  2430. case "5"://被督办的工单
  2431. if (strstate.Trim() != "" && strstate != "undefined")
  2432. {
  2433. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2434. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2435. else
  2436. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2437. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2438. }
  2439. 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 ";
  2440. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2441. {
  2442. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2443. }
  2444. else
  2445. {
  2446. sql += ")";
  2447. }
  2448. break;
  2449. case "6"://被监察的工单
  2450. if (strstate.Trim() != "" && strstate != "undefined")
  2451. {
  2452. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2453. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2454. else
  2455. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2456. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2457. }
  2458. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2459. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2460. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2461. {
  2462. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2463. }
  2464. else
  2465. {
  2466. sql += ")";
  2467. }
  2468. break;
  2469. case "7"://延时审核中的工单
  2470. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2471. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2472. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD")
  2473. {
  2474. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2475. }
  2476. else
  2477. {
  2478. sql += ")";
  2479. }
  2480. break;
  2481. case "8"://退回审核中的工单
  2482. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2483. 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,'')=''";
  2484. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2485. {
  2486. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2487. }
  2488. else
  2489. {
  2490. sql += ")";
  2491. }
  2492. break;
  2493. case "9"://需履职界定表
  2494. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2495. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2496. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and 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 ";
  2497. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2498. {
  2499. sql += " and F_MainDeptId='" + User.F_DeptId + "' ";
  2500. }
  2501. sql += "))";
  2502. break;
  2503. case "10"://履职界定待审核表
  2504. 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 )";
  2505. break;
  2506. case "11"://履职界定已审核表
  2507. 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 )";
  2508. break;
  2509. case "12"://退回重办
  2510. sql += " and F_WorkState = '" + (int)EnumWorkState.reload + "' ";
  2511. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2512. //{
  2513. // sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2514. // + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))";
  2515. //}
  2516. 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)";
  2517. sql += "and (F_Identification!=0 or F_Identification is null) ";
  2518. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2519. {
  2520. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2521. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)" +
  2522. "and ISNULL(F_FeedbackTime, '')='' and F_IsNext =0 ) and F_MainDeptId = " + User.F_DeptId;
  2523. }
  2524. break;
  2525. case "13"://下级单位退回
  2526. // int[] st = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  2527. sql += " and F_WorkState in (2,4,8)";
  2528. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2529. {
  2530. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext =4 and F_MainDeptId in (" + User.F_DeptId + ") and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  2531. }
  2532. break;
  2533. case "14"://正在办理
  2534. sql += " and F_WorkState in (2,4,8)";
  2535. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2536. {
  2537. 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 not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  2538. }
  2539. break;
  2540. case "15"://已办理提交
  2541. sql += " and F_WorkState in (4,8)";
  2542. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2543. {
  2544. 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 and F_MainDeptId =" + User.F_DeptId + " and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  2545. }
  2546. else
  2547. {
  2548. 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 and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  2549. }
  2550. break;
  2551. case "16"://退回被拒绝
  2552. sql += " and F_WorkState in (4,8)";
  2553. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2554. {
  2555. 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 where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  2556. }
  2557. break;
  2558. case "17"://延时被拒绝
  2559. sql += " and F_WorkState in (4,8)";
  2560. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2561. {
  2562. 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 where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) )";
  2563. }
  2564. break;
  2565. case "18"://已办理未果
  2566. sql += " and F_WorkState = '6' ";
  2567. sql += " and F_IsProResult = '2' ";
  2568. 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) ";
  2569. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2570. {
  2571. sql += " and F_MainDeptId='" + User.F_DeptId + "')";
  2572. }
  2573. else
  2574. {
  2575. sql += ")";
  2576. }
  2577. break;
  2578. }
  2579. #endregion
  2580. #region 条件
  2581. int business = RequestString.GetInt("business", 0);
  2582. if (business > 0)
  2583. sql += " and F_Business = '1'";
  2584. if (strworkid.Trim() != "" && strworkid != "undefined")
  2585. {
  2586. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2587. }
  2588. if (strname.Trim() != "" && strname != "undefined")
  2589. {
  2590. sql += " and F_CusName like '%" + strname + "%' ";
  2591. }
  2592. if (islike > 0)
  2593. {
  2594. if (strtel.Trim() != "" && strtel != "undefined")
  2595. {
  2596. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2597. }
  2598. }
  2599. else
  2600. {
  2601. if (strtel.Trim() != "" && strtel != "undefined")
  2602. {
  2603. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  2604. }
  2605. }
  2606. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2607. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2608. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2609. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2610. {
  2611. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2612. }
  2613. if (Result.Trim() != "" && Result != "undefined")
  2614. {
  2615. sql += " and F_Result like '%" + Result + "%' ";
  2616. }
  2617. if (ComContent.Trim() != "" && ComContent != "undefined")
  2618. {
  2619. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2620. }
  2621. if (strkey.Trim() != "" && strkey != "undefined")
  2622. {
  2623. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2624. " or F_Result like '%" + strkey + "%' ) ";
  2625. }
  2626. #region 坐席&调度员
  2627. if (strusercode.Trim() != "" && strusercode != "undefined")
  2628. {//坐席
  2629. var usercode = strusercode.Trim().Split(',');
  2630. var newusercode = "";
  2631. foreach (var item in usercode)
  2632. {
  2633. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2634. newusercode += "'" + item + "',";
  2635. }
  2636. newusercode = newusercode.Trim(',');
  2637. if (newusercode.Trim() != "" && newusercode != "undefined")
  2638. {
  2639. sql += " and F_CreateUser in (" + newusercode + ") ";
  2640. }
  2641. }
  2642. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2643. {//调度员
  2644. var ddusercode = strddusercode.Trim().Split(',');
  2645. var newusercode = "";
  2646. foreach (var item in ddusercode)
  2647. {
  2648. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2649. newusercode += "'" + item + "',";
  2650. }
  2651. newusercode = newusercode.Trim(',');
  2652. if (newusercode.Trim() != "" && newusercode != "undefined")
  2653. {
  2654. sql += " and F_AssignUser in(" + newusercode + ") ";
  2655. }
  2656. }
  2657. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2658. //{
  2659. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2660. //}
  2661. #endregion
  2662. if (source != 0)
  2663. {
  2664. sql += " and F_InfoSource = '" + source + "' ";
  2665. }
  2666. string sqlwhere = ""; string value = "";
  2667. if (keyid != 0)
  2668. {
  2669. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2670. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2671. // " or F_Key='" + keyid + "' )";
  2672. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  2673. }
  2674. int phoneType = RequestString.GetInt("phoneType", 0);
  2675. int jianhang = RequestString.GetInt("jianhang", 0);
  2676. if (jianhang == 2)
  2677. {
  2678. sql += " and F_InfoSource = '1' ";
  2679. if (phoneType == 1)
  2680. sql += " and F_PhoneType != '12345' ";
  2681. else if (phoneType == 2)
  2682. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  2683. "or F_PhoneType is null ) ";
  2684. }
  2685. else if (jianhang == 1)
  2686. {
  2687. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  2688. }
  2689. else if (jianhang == 3)
  2690. sql += " and F_InfoSource = '2501' ";
  2691. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  2692. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  2693. {
  2694. sql += " and F_PhoneType = '" + incomingcall + "' ";
  2695. }
  2696. if (type != 0)
  2697. {
  2698. sql += " and F_InfoType = '" + type + "' ";
  2699. }
  2700. if (bigtype != 0)
  2701. {
  2702. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2703. }
  2704. if (smalltype != 0)
  2705. {
  2706. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2707. }
  2708. if (sourcearea != 0)
  2709. {
  2710. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2711. }
  2712. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2713. {
  2714. if (strendtime.Trim() != "" && strendtime != "undefined")
  2715. {
  2716. sql += " and F_CreateTime between '" + strstarttime + "' and '" + strendtime + "'";
  2717. }
  2718. else
  2719. {
  2720. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2721. }
  2722. }
  2723. if (deptid != 0)
  2724. {
  2725. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2726. }
  2727. if (ejdeptid>0)
  2728. {
  2729. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  2730. }
  2731. if (strpageindex.Trim() != "")
  2732. {
  2733. pageindex = Convert.ToInt32(strpageindex);
  2734. }
  2735. if (strpagesize.Trim() != "")
  2736. {
  2737. pagesize = Convert.ToInt32(strpagesize);
  2738. }
  2739. #endregion
  2740. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2741. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2742. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2743. 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,dbo.GetDeptNames(F_MainDeptID3) AS EJDeptName,F_CloseTime,F_IsRelease,F_Identification";
  2744. if (isdc > 0)
  2745. {
  2746. var top = " "; var orderby = " order by F_CreateTime";
  2747. if (sql == " and F_IsDelete=0 ")
  2748. {
  2749. top = " top 1000 "; orderby += " desc ";
  2750. }
  2751. //20190715调整导出字段 zhengbingbing
  2752. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2753. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2754. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  2755. + " (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) 办理结果, "
  2756. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  2757. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  2758. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2759. if (msg == "")
  2760. {
  2761. return Success("导出成功");
  2762. }
  2763. else
  2764. {
  2765. return Error("导出失败");
  2766. }
  2767. }
  2768. int recordCount = 0;
  2769. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  2770. dt = BLL.PagerBLL.GetListPager(
  2771. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  2772. "F_Id",
  2773. cols,
  2774. sql,
  2775. order,
  2776. pagesize,
  2777. pageindex,
  2778. true,
  2779. out recordCount);
  2780. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  2781. #region 声音文件
  2782. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2783. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2784. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2785. dt.Columns.Add("OverState", typeof(string));//超时状态
  2786. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2787. dt.Columns.Add("GapTime", typeof(string));//时间差
  2788. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2789. dt.Columns.Add("PDState", typeof(string));//派单状态
  2790. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2791. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2792. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2793. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2794. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2795. foreach (DataRow dr in dt.Rows)
  2796. {
  2797. //获取最新交办信息
  2798. string iszbdw = "0";
  2799. string ispd = "";
  2800. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2801. if (state > 1)
  2802. {
  2803. 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";
  2804. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2805. if (dtjb.Rows.Count > 0)
  2806. {
  2807. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2808. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2809. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2810. {
  2811. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2812. }
  2813. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2814. #region
  2815. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2816. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2817. //if (deptinfo != null)
  2818. //{
  2819. // if (did == User.F_DeptId) { iszbdw = "1"; }
  2820. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2821. //}
  2822. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2823. //{
  2824. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2825. // string dns = string.Empty;
  2826. // foreach (string strid in strids)
  2827. // {
  2828. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2829. // if (dinfo != null)
  2830. // {
  2831. // if (string.IsNullOrEmpty(dns))
  2832. // {
  2833. // dns = dinfo.F_DeptName;//交办单位
  2834. // }
  2835. // else
  2836. // {
  2837. // dns += "," + dinfo.F_DeptName;//交办单位
  2838. // }
  2839. // }
  2840. // }
  2841. // dr["OtherDeptName"] = dns;
  2842. //}
  2843. #endregion
  2844. #region
  2845. //if (state < 6 || state == 8)
  2846. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2847. {
  2848. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2849. dr["LimitTime"] = lt;
  2850. if (!string.IsNullOrWhiteSpace(lt))
  2851. {
  2852. var ltime = DateTime.Parse(lt);
  2853. if (ltime > DateTime.Now)
  2854. {
  2855. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  2856. var SYSJ = DbHelperSQL.GetSingle(SY);
  2857. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  2858. {
  2859. try
  2860. {
  2861. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2862. }
  2863. catch
  2864. {
  2865. }
  2866. }
  2867. }
  2868. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2869. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2870. if (tss < 0) { tss = -tss; }
  2871. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2872. if (ltime > DateTime.Now)
  2873. {
  2874. if (configcs != null)
  2875. {
  2876. int cs = Int32.Parse(configcs.F_ParamValue);
  2877. if (ts.TotalHours > cs)
  2878. {
  2879. dr["OverState"] = 1;
  2880. }
  2881. else
  2882. {
  2883. dr["OverState"] = 2;
  2884. }
  2885. }
  2886. dr["GapTime"] = "剩余" + gshsj;
  2887. }
  2888. else
  2889. {
  2890. dr["OverState"] = 3;
  2891. dr["GapTime"] = "超时" + gshsj;
  2892. }
  2893. }
  2894. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  2895. dr["PDState"] = ispd;
  2896. }
  2897. if (state == (int)EnumWorkState.finish)
  2898. {
  2899. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2900. var dttime = DateTime.Now;
  2901. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2902. else
  2903. {
  2904. var DealTime = dr["F_CloseTime"].ToString();
  2905. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  2906. }
  2907. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2908. dr["LimitTime"] = lt;
  2909. if (!string.IsNullOrWhiteSpace(lt))
  2910. {
  2911. var ltime = DateTime.Parse(lt);
  2912. TimeSpan ts = ltime.Subtract(dttime);
  2913. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2914. if (tss < 0) { tss = -tss; }
  2915. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2916. if (ltime < dttime)
  2917. {
  2918. dr["OverState"] = 3;
  2919. dr["GapTime"] = "超时" + gshsj;
  2920. }
  2921. }
  2922. }
  2923. #endregion
  2924. }
  2925. else
  2926. {
  2927. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2928. }
  2929. }
  2930. if (User.F_RoleCode.ToUpper() == "WLDW" || User.F_RoleCode.ToUpper() == "EJWLDW")
  2931. {
  2932. if (dr["EJDeptName"] != null && dr["EJDeptName"].ToString() != "")
  2933. dr["DeptName"] = dr["EJDeptName"].ToString();
  2934. }
  2935. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2936. {
  2937. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2938. }
  2939. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2940. {
  2941. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2942. }
  2943. //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";
  2944. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  2945. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2946. if (Int32.Parse(strtab) < 1 || Int32.Parse(strtab) == 16 || Int32.Parse(strtab) == 17)
  2947. {
  2948. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2949. #region 判断是否存在待督办
  2950. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2951. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2952. if (recount > 0 && butt != null)
  2953. btns.Remove(butt);
  2954. #endregion
  2955. }
  2956. else
  2957. {
  2958. if (Int32.Parse(strtab) == 9)
  2959. {//需履职界定
  2960. btns.Add(ButtonGroup.query());
  2961. btns.Add(ButtonGroup.perform());
  2962. }
  2963. else if (Int32.Parse(strtab) == 10)
  2964. {//履职界定待审核
  2965. btns.Add(ButtonGroup.query());
  2966. btns.Add(ButtonGroup.performaudit());
  2967. }
  2968. else if (Int32.Parse(strtab) == 7)
  2969. {//履职界定待审核
  2970. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2971. }
  2972. else if (Int32.Parse(strtab) == 12)
  2973. {//退回重办
  2974. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString());
  2975. var reback = btns.Find(c => c.key == ButtonGroup.reback().key);
  2976. if (reback != null)
  2977. btns.Remove(reback);
  2978. }
  2979. else if (Int32.Parse(strtab) == 14)
  2980. {//正在办理
  2981. btns.Add(ButtonGroup.query());
  2982. btns.Add(ButtonGroup.withdraw());
  2983. }
  2984. else if (Int32.Parse(strtab) == 13)
  2985. {//下级单位退回
  2986. btns.Add(ButtonGroup.query());
  2987. btns.Add(ButtonGroup.split());//转派
  2988. btns.Add(ButtonGroup.reback());//
  2989. btns.Add(ButtonGroup.turndown());
  2990. }
  2991. else if (Int32.Parse(strtab) == 15)
  2992. {//已办理提交
  2993. if (ispd == "3")
  2994. {
  2995. btns.Add(ButtonGroup.auditdeal());
  2996. }
  2997. btns.Add(ButtonGroup.feedback());//
  2998. btns.Add(ButtonGroup.redo());//
  2999. btns.Add(ButtonGroup.query());
  3000. }
  3001. else
  3002. btns.Add(ButtonGroup.query());
  3003. }
  3004. dr["Buttons"] = btns;
  3005. }
  3006. #endregion
  3007. var obj = new
  3008. {
  3009. state = "success",
  3010. message = "成功",
  3011. rows = dt,
  3012. total = recordCount
  3013. };
  3014. return Content(obj.ToJson());
  3015. }
  3016. /// <summary>
  3017. /// 添加工单信息
  3018. /// </summary>
  3019. /// <returns></returns>
  3020. //[Authority]
  3021. public ActionResult AddWorkOrderOper()
  3022. {
  3023. string workorderid = RequestString.GetFormString("workorderid");
  3024. string remarks = RequestString.GetFormString("remarks");
  3025. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  3026. if (modelT_Bus_WorkOrder != null)
  3027. {
  3028. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  3029. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  3030. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  3031. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  3032. oper.F_File = modelT_Bus_WorkOrder.F_File;
  3033. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  3034. oper.F_Message = userinfo + " 办理了工单:" + remarks;
  3035. oper.F_CreateUser = User.F_UserCode;
  3036. oper.F_CreateTime = DateTime.Now;
  3037. oper.F_IsDelete = 0;
  3038. if (operBLL.Add(oper) > 0)
  3039. return Success("操作成功");
  3040. else
  3041. return Error("操作失败");
  3042. }
  3043. else
  3044. {
  3045. return Error("工单不存在");
  3046. }
  3047. }
  3048. /// <summary>
  3049. /// 获取单位处理列表
  3050. /// </summary>
  3051. /// <returns></returns>
  3052. //[Authority]
  3053. public ActionResult GetXBDWDealList(int isdc = 0)
  3054. {
  3055. DataTable dt = new DataTable();
  3056. string sql = " and F_IsDelete=0";
  3057. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3058. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3059. int islike = RequestString.GetInt("islike", 1);
  3060. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3061. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3062. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3063. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3064. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3065. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3066. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3067. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3068. int source = RequestString.GetInt("source", 0);
  3069. int keyid = RequestString.GetInt("keyid", 0);
  3070. int type = RequestString.GetInt("type", 0);
  3071. int bigtype = RequestString.GetInt("bigtype", 0);
  3072. int smalltype = RequestString.GetInt("smalltype", 0);
  3073. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3074. int deptid = RequestString.GetInt("deptid", 0);
  3075. string strpageindex = RequestString.GetQueryString("page");
  3076. int pageindex = 1;
  3077. string strpagesize = RequestString.GetQueryString("pagesize");
  3078. int pagesize = 10;
  3079. switch (strtab)
  3080. {
  3081. case "0"://待处理工单
  3082. int isyq = RequestString.GetInt("isyq", -1);
  3083. if (strstate.Trim() != "" && strstate != "undefined")
  3084. {
  3085. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3086. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3087. else
  3088. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3089. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3090. }
  3091. else
  3092. {
  3093. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  3094. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3095. //sql += " and F_WorkState in (2,4,8)";
  3096. }
  3097. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3098. + " ISNULL(F_FeedbackTime, '')='' ";
  3099. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3100. {
  3101. sql += " and F_DeptId =" + User.F_DeptId;
  3102. }
  3103. if (isyq != -1)
  3104. {
  3105. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3106. }
  3107. else
  3108. {
  3109. sql += ")";
  3110. }
  3111. break;
  3112. case "1"://已办理的工单
  3113. 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) ";
  3114. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3115. {
  3116. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3117. }
  3118. else
  3119. {
  3120. sql += ")";
  3121. }
  3122. break;
  3123. }
  3124. if (deptid != 0)
  3125. {
  3126. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3127. }
  3128. int business = RequestString.GetInt("business", 0);
  3129. if (business > 0)
  3130. sql += " and F_Business = '1'";
  3131. int jianhang = RequestString.GetInt("jianhang", 0);
  3132. int phoneType = RequestString.GetInt("phoneType", 0);
  3133. if (jianhang > 0)
  3134. {
  3135. if (jianhang == 3)
  3136. sql += " and F_InfoSource = '2501' ";
  3137. else
  3138. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  3139. }
  3140. else
  3141. {
  3142. sql += " and F_InfoSource = '1' ";
  3143. if (phoneType == 1)
  3144. sql += " and F_PhoneType != '12345' ";
  3145. else if (phoneType == 2)
  3146. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  3147. "or F_PhoneType is null ) ";
  3148. }
  3149. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  3150. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  3151. {
  3152. sql += " and F_PhoneType = '" + incomingcall + "' ";
  3153. }
  3154. if (strworkid.Trim() != "" && strworkid != "undefined")
  3155. {
  3156. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3157. }
  3158. if (strname.Trim() != "" && strname != "undefined")
  3159. {
  3160. sql += " and F_CusName like '%" + strname + "%' ";
  3161. }
  3162. if (islike > 0)
  3163. {
  3164. if (strtel.Trim() != "" && strtel != "undefined")
  3165. {
  3166. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3167. }
  3168. }
  3169. else
  3170. {
  3171. if (strtel.Trim() != "" && strtel != "undefined")
  3172. {
  3173. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3174. }
  3175. }
  3176. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3177. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3178. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3179. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3180. {
  3181. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3182. }
  3183. if (Result.Trim() != "" && Result != "undefined")
  3184. {
  3185. sql += " and F_Result like '%" + Result + "%' ";
  3186. }
  3187. if (ComContent.Trim() != "" && ComContent != "undefined")
  3188. {
  3189. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3190. }
  3191. if (strkey.Trim() != "" && strkey != "undefined")
  3192. {
  3193. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3194. " or F_Result like '%" + strkey + "%' ) ";
  3195. }
  3196. #region 坐席&调度员
  3197. if (strusercode.Trim() != "" && strusercode != "undefined")
  3198. {//坐席
  3199. var usercode = strusercode.Trim().Split(',');
  3200. var newusercode = "";
  3201. foreach (var item in usercode)
  3202. {
  3203. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3204. newusercode += "'" + item + "',";
  3205. }
  3206. newusercode = newusercode.Trim(',');
  3207. if (newusercode.Trim() != "" && newusercode != "undefined")
  3208. {
  3209. sql += " and F_CreateUser in (" + newusercode + ") ";
  3210. }
  3211. }
  3212. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3213. {//调度员
  3214. var ddusercode = strddusercode.Trim().Split(',');
  3215. var newusercode = "";
  3216. foreach (var item in ddusercode)
  3217. {
  3218. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3219. newusercode += "'" + item + "',";
  3220. }
  3221. newusercode = newusercode.Trim(',');
  3222. if (newusercode.Trim() != "" && newusercode != "undefined")
  3223. {
  3224. sql += " and F_AssignUser in(" + newusercode + ") ";
  3225. }
  3226. }
  3227. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3228. //{
  3229. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3230. //}
  3231. #endregion
  3232. if (source != 0)
  3233. {
  3234. sql += " and F_InfoSource = '" + source + "' ";
  3235. }
  3236. string sqlwhere = "";
  3237. if (keyid != 0)
  3238. {
  3239. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3240. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3241. // " or F_Key='" + keyid + "' )";
  3242. }
  3243. if (type != 0)
  3244. {
  3245. sql += " and F_InfoType = '" + type + "' ";
  3246. }
  3247. if (bigtype != 0)
  3248. {
  3249. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3250. }
  3251. if (smalltype != 0)
  3252. {
  3253. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3254. }
  3255. if (sourcearea != 0)
  3256. {
  3257. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3258. }
  3259. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3260. {
  3261. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3262. }
  3263. if (strendtime.Trim() != "" && strendtime != "undefined")
  3264. {
  3265. sql += " and F_CreateTime<='" + strendtime + "' ";
  3266. }
  3267. if (strpageindex.Trim() != "")
  3268. {
  3269. pageindex = Convert.ToInt32(strpageindex);
  3270. }
  3271. if (strpagesize.Trim() != "")
  3272. {
  3273. pagesize = Convert.ToInt32(strpagesize);
  3274. }
  3275. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3276. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3277. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3278. 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";
  3279. if (isdc > 0)
  3280. {
  3281. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3282. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3283. if (msg == "")
  3284. {
  3285. return Success("导出成功");
  3286. }
  3287. else
  3288. {
  3289. return Error("导出失败");
  3290. }
  3291. }
  3292. int recordCount = 0;
  3293. dt = BLL.PagerBLL.GetListPager(
  3294. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  3295. "F_Id",
  3296. cols,
  3297. sql,
  3298. "ORDER BY F_CreateTime DESC",
  3299. pagesize,
  3300. pageindex,
  3301. true,
  3302. out recordCount);
  3303. #region 声音文件
  3304. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3305. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3306. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3307. dt.Columns.Add("OverState", typeof(string));//超时状态
  3308. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3309. dt.Columns.Add("GapTime", typeof(string));//时间差
  3310. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3311. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3312. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3313. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3314. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3315. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3316. foreach (DataRow dr in dt.Rows)
  3317. {
  3318. //获取最新交办信息
  3319. string iszbdw = "0";
  3320. string ispd = "";
  3321. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3322. if (state > 1)
  3323. {
  3324. 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";
  3325. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3326. if (dtjb.Rows.Count > 0)
  3327. {
  3328. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3329. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3330. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3331. {
  3332. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3333. }
  3334. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3335. #region
  3336. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3337. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3338. //if (deptinfo != null)
  3339. //{
  3340. // if (did == User.F_DeptId) { iszbdw = "1"; }
  3341. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3342. //}
  3343. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3344. //{
  3345. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3346. // string dns = string.Empty;
  3347. // foreach (string strid in strids)
  3348. // {
  3349. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3350. // if (dinfo != null)
  3351. // {
  3352. // if (string.IsNullOrEmpty(dns))
  3353. // {
  3354. // dns = dinfo.F_DeptName;//交办单位
  3355. // }
  3356. // else
  3357. // {
  3358. // dns += "," + dinfo.F_DeptName;//交办单位
  3359. // }
  3360. // }
  3361. // }
  3362. // dr["OtherDeptName"] = dns;
  3363. //}
  3364. #endregion
  3365. #region
  3366. //if (state < 6 || state == 8)
  3367. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3368. {
  3369. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3370. dr["LimitTime"] = lt;
  3371. if (!string.IsNullOrWhiteSpace(lt))
  3372. {
  3373. var ltime = DateTime.Parse(lt);
  3374. if (ltime > DateTime.Now)
  3375. {
  3376. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  3377. var SYSJ = DbHelperSQL.GetSingle(SY);
  3378. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3379. {
  3380. try
  3381. {
  3382. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3383. }
  3384. catch
  3385. {
  3386. }
  3387. }
  3388. }
  3389. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3390. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3391. if (tss < 0) { tss = -tss; }
  3392. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3393. if (ltime > DateTime.Now)
  3394. {
  3395. if (configcs != null)
  3396. {
  3397. int cs = Int32.Parse(configcs.F_ParamValue);
  3398. if (ts.TotalHours > cs)
  3399. {
  3400. dr["OverState"] = 1;
  3401. }
  3402. else
  3403. {
  3404. dr["OverState"] = 2;
  3405. }
  3406. }
  3407. dr["GapTime"] = "剩余" + gshsj;
  3408. }
  3409. else
  3410. {
  3411. dr["OverState"] = 3;
  3412. dr["GapTime"] = "超时" + gshsj;
  3413. }
  3414. }
  3415. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3416. }
  3417. if (state == (int)EnumWorkState.finish)
  3418. {
  3419. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3420. var dttime = DateTime.Now;
  3421. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3422. else
  3423. {
  3424. var DealTime = dr["F_CloseTime"].ToString();
  3425. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3426. }
  3427. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3428. dr["LimitTime"] = lt;
  3429. if (!string.IsNullOrWhiteSpace(lt))
  3430. {
  3431. var ltime = DateTime.Parse(lt);
  3432. TimeSpan ts = ltime.Subtract(dttime);
  3433. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3434. if (tss < 0) { tss = -tss; }
  3435. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3436. if (ltime < dttime)
  3437. {
  3438. dr["OverState"] = 3;
  3439. dr["GapTime"] = "超时" + gshsj;
  3440. }
  3441. }
  3442. }
  3443. #endregion
  3444. }
  3445. else
  3446. {
  3447. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3448. }
  3449. }
  3450. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3451. {
  3452. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3453. }
  3454. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3455. {
  3456. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3457. }
  3458. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3459. if (Int32.Parse(strtab) < 1)
  3460. {
  3461. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3462. #region 判断是否存在待督办
  3463. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3464. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3465. if (recount > 0 && butt != null)
  3466. btns.Remove(butt);
  3467. #endregion
  3468. }
  3469. else
  3470. {
  3471. btns.Add(ButtonGroup.query());
  3472. }
  3473. dr["Buttons"] = btns;
  3474. }
  3475. #endregion
  3476. var obj = new
  3477. {
  3478. state = "success",
  3479. message = "成功",
  3480. rows = dt,
  3481. total = recordCount
  3482. };
  3483. return Content(obj.ToJson());
  3484. }
  3485. /// <summary>
  3486. /// 获取单位主办协办未处理工单列表
  3487. /// </summary>
  3488. /// <returns></returns>
  3489. //[Authority]
  3490. public ActionResult GetDWNoDealList(int isdc = 0)
  3491. {
  3492. DataTable dt = new DataTable();
  3493. string sql = " and F_IsDelete=0";
  3494. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3495. int islike = RequestString.GetInt("islike", 1);
  3496. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3497. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3498. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3499. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3500. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3501. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3502. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3503. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3504. int source = RequestString.GetInt("source", 0);
  3505. int keyid = RequestString.GetInt("keyid", 0);
  3506. int type = RequestString.GetInt("type", 0);
  3507. int bigtype = RequestString.GetInt("bigtype", 0);
  3508. int smalltype = RequestString.GetInt("smalltype", 0);
  3509. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3510. int deptid = RequestString.GetInt("deptid", 0);
  3511. string strpageindex = RequestString.GetQueryString("page");
  3512. int pageindex = 1;
  3513. string strpagesize = RequestString.GetQueryString("pagesize");
  3514. int pagesize = 10;
  3515. int business = RequestString.GetInt("business", 0);
  3516. if (business > 0)
  3517. sql += " and F_Business = '1'";
  3518. if (User.F_RoleCode == "ZXHWY")
  3519. {
  3520. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  3521. }
  3522. #region 坐席&调度员
  3523. if (strusercode.Trim() != "" && strusercode != "undefined")
  3524. {//坐席
  3525. var usercode = strusercode.Trim().Split(',');
  3526. var newusercode = "";
  3527. foreach (var item in usercode)
  3528. {
  3529. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3530. newusercode += "'" + item + "',";
  3531. }
  3532. newusercode = newusercode.Trim(',');
  3533. if (newusercode.Trim() != "" && newusercode != "undefined")
  3534. {
  3535. sql += " and F_CreateUser in (" + newusercode + ") ";
  3536. }
  3537. }
  3538. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3539. {//调度员
  3540. var ddusercode = strddusercode.Trim().Split(',');
  3541. var newusercode = "";
  3542. foreach (var item in ddusercode)
  3543. {
  3544. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3545. newusercode += "'" + item + "',";
  3546. }
  3547. newusercode = newusercode.Trim(',');
  3548. if (newusercode.Trim() != "" && newusercode != "undefined")
  3549. {
  3550. sql += " and F_AssignUser in(" + newusercode + ") ";
  3551. }
  3552. }
  3553. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3554. //{
  3555. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3556. //}
  3557. #endregion
  3558. int jianhang = RequestString.GetInt("jianhang", 0);
  3559. int phoneType = RequestString.GetInt("phoneType", 0);
  3560. if (jianhang > 0)
  3561. {
  3562. if (jianhang == 3)
  3563. sql += " and F_InfoSource = '2501' ";
  3564. else
  3565. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  3566. }
  3567. else
  3568. {
  3569. sql += " and F_InfoSource = '1' ";
  3570. if (phoneType == 1)
  3571. sql += " and F_PhoneType != '12345' ";
  3572. else if (phoneType == 2)
  3573. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  3574. "or F_PhoneType is null ) ";
  3575. }
  3576. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  3577. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  3578. {
  3579. sql += " and F_PhoneType = '" + incomingcall + "' ";
  3580. }
  3581. 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) ";
  3582. if (User.F_RoleCode == "WLDW")
  3583. {
  3584. sql += " and (F_MainDeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3585. }
  3586. else if (deptid != 0)
  3587. {
  3588. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3589. }
  3590. 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, '')='' ";
  3591. if (User.F_RoleCode == "WLDW")
  3592. {
  3593. sql += " and (F_DeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3594. }
  3595. else if (deptid != 0)
  3596. {
  3597. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3598. }
  3599. sql += "))";
  3600. if (strstate.Trim() != "" && strstate != "undefined")
  3601. {
  3602. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3603. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3604. else
  3605. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3606. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3607. }
  3608. else
  3609. {
  3610. sql += " and F_WorkState in (2,4,8)";
  3611. }
  3612. if (strworkid.Trim() != "" && strworkid != "undefined")
  3613. {
  3614. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3615. }
  3616. if (strname.Trim() != "" && strname != "undefined")
  3617. {
  3618. sql += " and F_CusName like '%" + strname + "%' ";
  3619. }
  3620. if (islike > 0)
  3621. {
  3622. if (strtel.Trim() != "" && strtel != "undefined")
  3623. {
  3624. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3625. }
  3626. }
  3627. else
  3628. {
  3629. if (strtel.Trim() != "" && strtel != "undefined")
  3630. {
  3631. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3632. }
  3633. }
  3634. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3635. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3636. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3637. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3638. {
  3639. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3640. }
  3641. if (Result.Trim() != "" && Result != "undefined")
  3642. {
  3643. sql += " and F_Result like '%" + Result + "%' ";
  3644. }
  3645. if (ComContent.Trim() != "" && ComContent != "undefined")
  3646. {
  3647. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3648. }
  3649. if (strkey.Trim() != "" && strkey != "undefined")
  3650. {
  3651. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3652. " or F_Result like '%" + strkey + "%' ) ";
  3653. }
  3654. if (source != 0)
  3655. {
  3656. sql += " and F_InfoSource = '" + source + "' ";
  3657. }
  3658. string sqlwhere = "";
  3659. if (keyid != 0)
  3660. {
  3661. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3662. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3663. // " or F_Key='" + keyid + "' )";
  3664. }
  3665. if (type != 0)
  3666. {
  3667. sql += " and F_InfoType = '" + type + "' ";
  3668. }
  3669. if (bigtype != 0)
  3670. {
  3671. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3672. }
  3673. if (smalltype != 0)
  3674. {
  3675. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3676. }
  3677. if (sourcearea != 0)
  3678. {
  3679. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3680. }
  3681. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3682. {
  3683. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3684. }
  3685. if (strendtime.Trim() != "" && strendtime != "undefined")
  3686. {
  3687. sql += " and F_CreateTime<='" + strendtime + "' ";
  3688. }
  3689. if (strpageindex.Trim() != "")
  3690. {
  3691. pageindex = Convert.ToInt32(strpageindex);
  3692. }
  3693. if (strpagesize.Trim() != "")
  3694. {
  3695. pagesize = Convert.ToInt32(strpagesize);
  3696. }
  3697. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3698. 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";
  3699. if (isdc > 0)
  3700. {
  3701. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3702. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3703. if (msg == "")
  3704. {
  3705. return Success("导出成功");
  3706. }
  3707. else
  3708. {
  3709. return Error("导出失败");
  3710. }
  3711. }
  3712. int recordCount = 0;
  3713. dt = BLL.PagerBLL.GetListPager(
  3714. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  3715. "F_Id",
  3716. cols,
  3717. sql,
  3718. "ORDER BY F_CreateTime DESC",
  3719. pagesize,
  3720. pageindex,
  3721. true,
  3722. out recordCount);
  3723. #region 声音文件
  3724. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3725. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3726. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3727. dt.Columns.Add("OverState", typeof(string));//超时状态
  3728. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3729. dt.Columns.Add("GapTime", typeof(string));//时间差
  3730. dt.Columns.Add("FilePath", typeof(string));
  3731. dt.Columns.Add("Buttons", typeof(object));
  3732. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3733. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3734. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3735. foreach (DataRow dr in dt.Rows)
  3736. {
  3737. //获取最新交办信息
  3738. string iszbdw = "0";
  3739. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3740. if (state > 1)
  3741. {
  3742. 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";
  3743. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3744. if (dtjb.Rows.Count > 0)
  3745. {
  3746. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3747. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3748. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3749. {
  3750. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3751. }
  3752. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3753. #region
  3754. //if (state < 6 || state == 8)
  3755. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3756. {
  3757. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3758. dr["LimitTime"] = lt;
  3759. if (!string.IsNullOrWhiteSpace(lt))
  3760. {
  3761. var ltime = DateTime.Parse(lt);
  3762. if (ltime > DateTime.Now)
  3763. {
  3764. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  3765. var SYSJ = DbHelperSQL.GetSingle(SY);
  3766. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3767. {
  3768. try
  3769. {
  3770. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3771. }
  3772. catch
  3773. {
  3774. }
  3775. }
  3776. }
  3777. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3778. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3779. if (tss < 0) { tss = -tss; }
  3780. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3781. if (ltime > DateTime.Now)
  3782. {
  3783. if (configcs != null)
  3784. {
  3785. int cs = Int32.Parse(configcs.F_ParamValue);
  3786. if (ts.TotalHours > cs)
  3787. {
  3788. dr["OverState"] = 1;
  3789. }
  3790. else
  3791. {
  3792. dr["OverState"] = 2;
  3793. }
  3794. }
  3795. dr["GapTime"] = "剩余" + gshsj;
  3796. }
  3797. else
  3798. {
  3799. dr["OverState"] = 3;
  3800. dr["GapTime"] = "超时" + gshsj;
  3801. }
  3802. }
  3803. }
  3804. if (state == (int)EnumWorkState.finish)
  3805. {
  3806. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3807. var dttime = DateTime.Now;
  3808. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3809. else
  3810. {
  3811. var DealTime = dr["F_CloseTime"].ToString();
  3812. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3813. }
  3814. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3815. dr["LimitTime"] = lt;
  3816. if (!string.IsNullOrWhiteSpace(lt))
  3817. {
  3818. var ltime = DateTime.Parse(lt);
  3819. TimeSpan ts = ltime.Subtract(dttime);
  3820. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3821. if (tss < 0) { tss = -tss; }
  3822. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3823. if (ltime < dttime)
  3824. {
  3825. dr["OverState"] = 3;
  3826. dr["GapTime"] = "超时" + gshsj;
  3827. }
  3828. }
  3829. }
  3830. #endregion
  3831. }
  3832. else
  3833. {
  3834. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3835. }
  3836. }
  3837. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3838. {
  3839. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3840. }
  3841. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3842. {
  3843. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3844. }
  3845. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3846. btns.Add(ButtonGroup.query());
  3847. dr["Buttons"] = btns;
  3848. }
  3849. #endregion
  3850. var obj = new
  3851. {
  3852. state = "success",
  3853. message = "成功",
  3854. rows = dt,
  3855. total = recordCount
  3856. };
  3857. return Content(obj.ToJson());
  3858. }
  3859. /// <summary>
  3860. /// 获取二级单位处理列表
  3861. /// </summary>
  3862. /// <returns></returns>
  3863. //[Authority]
  3864. public ActionResult GetEJDWDealList(int isdc = 0)
  3865. {
  3866. DataTable dt = new DataTable();
  3867. string sql = " and F_IsDelete=0";
  3868. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3869. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3870. int islike = RequestString.GetInt("islike", 1);
  3871. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3872. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3873. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3874. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3875. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3876. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3877. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3878. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3879. int source = RequestString.GetInt("source", 0);
  3880. int keyid = RequestString.GetInt("keyid", 0);
  3881. int type = RequestString.GetInt("type", 0);
  3882. int bigtype = RequestString.GetInt("bigtype", 0);
  3883. int smalltype = RequestString.GetInt("smalltype", 0);
  3884. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3885. int deptid = RequestString.GetInt("deptid", 0);
  3886. int isys = RequestString.GetInt("isys", -1);
  3887. string strpageindex = RequestString.GetQueryString("page");
  3888. int pageindex = 1;
  3889. string strpagesize = RequestString.GetQueryString("pagesize");
  3890. int pagesize = 10;
  3891. int jianhang = RequestString.GetInt("jianhang", 0);
  3892. if (jianhang == 3)
  3893. sql += " and F_InfoSource = '2501' ";
  3894. #region 模块
  3895. switch (strtab)
  3896. {
  3897. case "0"://待处理工单
  3898. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay
  3899. , (int)EnumWorkState.reload};
  3900. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3901. //sql += " and F_WorkState in (4,5) ";
  3902. if (isys > -1)
  3903. {
  3904. if (isys == 0)
  3905. {
  3906. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3907. + " 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_State=1 and F_IsDelete=0) ) " +
  3908. "and F_MainDeptID3='" + User.F_DeptId + "'";
  3909. }
  3910. else
  3911. {
  3912. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3913. + " 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_State=1 and F_IsDelete=0))"
  3914. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  3915. }
  3916. }
  3917. else
  3918. {
  3919. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3920. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))"
  3921. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  3922. }
  3923. break;
  3924. case "1"://已办理的工单
  3925. if (strstate.Trim() != "" && strstate != "undefined")
  3926. {
  3927. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3928. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3929. else
  3930. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3931. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3932. }
  3933. 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) ";
  3934. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3935. {
  3936. sql += " and F_CreateUser='" + User.F_UserCode + "') and F_MainDeptID3 = '" + User.F_DeptId + "'";
  3937. }
  3938. else
  3939. {
  3940. sql += ")";
  3941. }
  3942. break;
  3943. case "3"://已办未果
  3944. sql += " and F_WorkState = '6' ";
  3945. sql += " and F_IsProResult = '" + 2 + "' ";
  3946. 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) ";
  3947. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3948. {
  3949. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3950. }
  3951. else
  3952. {
  3953. sql += ")";
  3954. }
  3955. break;
  3956. //三级单位给已签收工单增加一个菜单
  3957. case "4"://已签收
  3958. // sql += " and F_WorkState in (4,5,8)";
  3959. 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))";
  3960. break;
  3961. case "5"://
  3962. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0)" +
  3963. "and F_MainDeptID3 ='" + User.F_DeptId + "'";
  3964. break;
  3965. case "6"://已完结
  3966. sql += " and F_WorkState = '9' ";
  3967. 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) ";
  3968. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3969. {
  3970. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3971. }
  3972. else
  3973. {
  3974. sql += ")";
  3975. }
  3976. break;
  3977. //
  3978. }
  3979. #endregion
  3980. int business = RequestString.GetInt("business", 0);
  3981. if (business > 0)
  3982. sql += " and F_Business = '1'";
  3983. #region 条件
  3984. if (strworkid.Trim() != "" && strworkid != "undefined")
  3985. {
  3986. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3987. }
  3988. if (strname.Trim() != "" && strname != "undefined")
  3989. {
  3990. sql += " and F_CusName like '%" + strname + "%' ";
  3991. }
  3992. if (islike > 0)
  3993. {
  3994. if (strtel.Trim() != "" && strtel != "undefined")
  3995. {
  3996. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3997. }
  3998. }
  3999. else
  4000. {
  4001. if (strtel.Trim() != "" && strtel != "undefined")
  4002. {
  4003. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4004. }
  4005. }
  4006. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4007. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4008. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4009. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4010. {
  4011. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4012. }
  4013. if (Result.Trim() != "" && Result != "undefined")
  4014. {
  4015. sql += " and F_Result like '%" + Result + "%' ";
  4016. }
  4017. if (ComContent.Trim() != "" && ComContent != "undefined")
  4018. {
  4019. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4020. }
  4021. if (strkey.Trim() != "" && strkey != "undefined")
  4022. {
  4023. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4024. " or F_Result like '%" + strkey + "%' ) ";
  4025. }
  4026. #region 坐席&调度员
  4027. if (strusercode.Trim() != "" && strusercode != "undefined")
  4028. {//坐席
  4029. var usercode = strusercode.Trim().Split(',');
  4030. var newusercode = "";
  4031. foreach (var item in usercode)
  4032. {
  4033. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4034. newusercode += "'" + item + "',";
  4035. }
  4036. newusercode = newusercode.Trim(',');
  4037. if (newusercode.Trim() != "" && newusercode != "undefined")
  4038. {
  4039. sql += " and F_CreateUser in (" + newusercode + ") ";
  4040. }
  4041. }
  4042. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4043. {//调度员
  4044. var ddusercode = strddusercode.Trim().Split(',');
  4045. var newusercode = "";
  4046. foreach (var item in ddusercode)
  4047. {
  4048. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4049. newusercode += "'" + item + "',";
  4050. }
  4051. newusercode = newusercode.Trim(',');
  4052. if (newusercode.Trim() != "" && newusercode != "undefined")
  4053. {
  4054. sql += " and F_AssignUser in(" + newusercode + ") ";
  4055. }
  4056. }
  4057. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4058. //{
  4059. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4060. //}
  4061. #endregion
  4062. if (source != 0)
  4063. {
  4064. sql += " and F_InfoSource = '" + source + "' ";
  4065. }
  4066. string sqlwhere = "";
  4067. if (keyid != 0)
  4068. {
  4069. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4070. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4071. // " or F_Key='" + keyid + "' )";
  4072. }
  4073. if (type != 0)
  4074. {
  4075. sql += " and F_InfoType = '" + type + "' ";
  4076. }
  4077. if (bigtype != 0)
  4078. {
  4079. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4080. }
  4081. if (smalltype != 0)
  4082. {
  4083. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4084. }
  4085. if (sourcearea != 0)
  4086. {
  4087. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4088. }
  4089. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4090. {
  4091. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4092. }
  4093. if (strendtime.Trim() != "" && strendtime != "undefined")
  4094. {
  4095. sql += " and F_CreateTime<='" + strendtime + "' ";
  4096. }
  4097. if (deptid != 0)
  4098. {
  4099. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4100. }
  4101. if (strpageindex.Trim() != "")
  4102. {
  4103. pageindex = Convert.ToInt32(strpageindex);
  4104. }
  4105. if (strpagesize.Trim() != "")
  4106. {
  4107. pagesize = Convert.ToInt32(strpagesize);
  4108. }
  4109. #endregion
  4110. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4111. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4112. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4113. 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"
  4114. ;
  4115. //(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
  4116. if (isdc > 0)
  4117. {
  4118. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4119. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4120. + " (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) 办理结果, "
  4121. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 "
  4122. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4123. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4124. if (msg == "")
  4125. {
  4126. return Success("导出成功");
  4127. }
  4128. else
  4129. {
  4130. return Error("导出失败");
  4131. }
  4132. }
  4133. int recordCount = 0;
  4134. dt = BLL.PagerBLL.GetListPager(
  4135. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4136. "F_Id",
  4137. cols,
  4138. sql,
  4139. "ORDER BY F_CreateTime DESC",
  4140. pagesize,
  4141. pageindex,
  4142. true,
  4143. out recordCount);
  4144. #region 声音文件
  4145. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4146. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4147. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4148. dt.Columns.Add("OverState", typeof(string));//超时状态
  4149. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4150. dt.Columns.Add("GapTime", typeof(string));//时间差
  4151. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4152. dt.Columns.Add("PDState", typeof(string));//派单状态
  4153. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4154. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4155. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4156. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4157. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4158. foreach (DataRow dr in dt.Rows)
  4159. {
  4160. //获取最新交办信息
  4161. string iszbdw = "0";
  4162. string ispd = "";
  4163. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4164. if (state > 1)
  4165. {
  4166. 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";
  4167. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4168. if (dtjb.Rows.Count > 0)
  4169. {
  4170. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4171. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4172. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4173. {
  4174. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4175. }
  4176. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4177. var lt = dr["F_LimitTime"].ToString();//限制时间
  4178. dr["LimitTime"] = lt;
  4179. #region
  4180. //if (state < 6 || state == 8)
  4181. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4182. {
  4183. if (!string.IsNullOrWhiteSpace(lt))
  4184. {
  4185. var ltime = DateTime.Parse(lt);
  4186. if (ltime > DateTime.Now)
  4187. {
  4188. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4189. var SYSJ = DbHelperSQL.GetSingle(SY);
  4190. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4191. {
  4192. try
  4193. {
  4194. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4195. }
  4196. catch
  4197. {
  4198. }
  4199. }
  4200. }
  4201. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4202. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4203. if (tss < 0) { tss = -tss; }
  4204. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4205. if (ltime > DateTime.Now)
  4206. {
  4207. if (configcs != null)
  4208. {
  4209. int cs = Int32.Parse(configcs.F_ParamValue);
  4210. if (ts.TotalHours > cs)
  4211. {
  4212. dr["OverState"] = 1;
  4213. }
  4214. else
  4215. {
  4216. dr["OverState"] = 2;
  4217. }
  4218. }
  4219. dr["GapTime"] = "剩余" + gshsj;
  4220. }
  4221. else
  4222. {
  4223. dr["OverState"] = 3;
  4224. dr["GapTime"] = "超时" + gshsj;
  4225. }
  4226. }
  4227. }
  4228. if (state == (int)EnumWorkState.finish)
  4229. {
  4230. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4231. var dttime = DateTime.Now;
  4232. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4233. else
  4234. {
  4235. var DealTime = dr["F_CloseTime"].ToString();
  4236. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4237. }
  4238. if (!string.IsNullOrWhiteSpace(lt))
  4239. {
  4240. var ltime = DateTime.Parse(lt);
  4241. TimeSpan ts = ltime.Subtract(dttime);
  4242. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4243. if (tss < 0) { tss = -tss; }
  4244. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4245. if (ltime < dttime)
  4246. {
  4247. dr["OverState"] = 3;
  4248. dr["GapTime"] = "超时" + gshsj;
  4249. }
  4250. }
  4251. }
  4252. #endregion
  4253. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4254. dr["PDState"] = ispd;
  4255. }
  4256. else
  4257. {
  4258. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4259. }
  4260. }
  4261. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4262. {
  4263. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4264. }
  4265. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4266. {
  4267. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4268. }
  4269. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4270. if (Int32.Parse(strtab) < 1)
  4271. {
  4272. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4273. #region 判断是否存在待督办
  4274. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4275. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4276. if (recount > 0 && butt != null)
  4277. btns.Remove(butt);
  4278. #endregion
  4279. }
  4280. else
  4281. {
  4282. btns.Add(ButtonGroup.query());
  4283. }
  4284. dr["Buttons"] = btns;
  4285. }
  4286. #endregion
  4287. var obj = new
  4288. {
  4289. state = "success",
  4290. message = "成功",
  4291. rows = dt,
  4292. total = recordCount
  4293. };
  4294. return Content(obj.ToJson());
  4295. }
  4296. /// <summary>
  4297. /// 获取三级单位处理列表
  4298. /// </summary>
  4299. /// <returns></returns>
  4300. //[Authority]
  4301. public ActionResult GetSJDWDealList(int isdc = 0)
  4302. {
  4303. DataTable dt = new DataTable();
  4304. string sql = " and F_IsDelete=0";
  4305. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4306. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4307. int islike = RequestString.GetInt("islike", 1);
  4308. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4309. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4310. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4311. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4312. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4313. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4314. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4315. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4316. int source = RequestString.GetInt("source", 0);
  4317. int keyid = RequestString.GetInt("keyid", 0);
  4318. int type = RequestString.GetInt("type", 0);
  4319. int bigtype = RequestString.GetInt("bigtype", 0);
  4320. int smalltype = RequestString.GetInt("smalltype", 0);
  4321. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4322. int deptid = RequestString.GetInt("deptid", 0);
  4323. string strpageindex = RequestString.GetQueryString("page");
  4324. int pageindex = 1;
  4325. string strpagesize = RequestString.GetQueryString("pagesize");
  4326. int pagesize = 10;
  4327. #region 模块
  4328. switch (strtab)
  4329. {
  4330. case "0"://待处理工单
  4331. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  4332. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4333. //if (User.F_RoleCode == "EJWLDW")
  4334. // {
  4335. // sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4336. // }
  4337. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  4338. {
  4339. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4340. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='" + User.F_DeptId + "' and F_IsSure in (0,1)))";
  4341. if (User.F_RoleCode == "WLDW")
  4342. {
  4343. sql += " or (F_MainDeptID3 ='" + User.F_DeptId + "')"
  4344. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + "))";
  4345. }
  4346. sql += ")";
  4347. }
  4348. else
  4349. {
  4350. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4351. }
  4352. break;
  4353. case "1"://已办理的工单
  4354. if (strstate.Trim() != "" && strstate != "undefined")
  4355. {
  4356. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4357. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4358. else
  4359. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4360. }
  4361. 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) ";
  4362. if (User.F_RoleCode == "EJWLDW")
  4363. {
  4364. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4365. }
  4366. else if (User.F_RoleCode == "WLDW")
  4367. {
  4368. sql += " and( (F_MainDeptID3 ='" + User.F_DeptId + "')"
  4369. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + ")) )";
  4370. }
  4371. else if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  4372. {
  4373. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4374. }
  4375. else
  4376. {
  4377. sql += ")";
  4378. }
  4379. break;
  4380. }
  4381. #endregion
  4382. int business = RequestString.GetInt("business", 0);
  4383. if (business > 0)
  4384. sql += " and F_Business = '1'";
  4385. int jianhang = RequestString.GetInt("jianhang", 0);
  4386. int phoneType = RequestString.GetInt("phoneType", 0);
  4387. if (jianhang > 0)
  4388. {
  4389. if (jianhang == 3)
  4390. sql += " and F_InfoSource = '2501' ";
  4391. else
  4392. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  4393. }
  4394. else
  4395. {
  4396. sql += " and F_InfoSource = '1' ";
  4397. if (phoneType == 1)
  4398. sql += " and F_PhoneType != '12345' ";
  4399. else if (phoneType == 2)
  4400. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  4401. "or F_PhoneType is null ) ";
  4402. }
  4403. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  4404. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  4405. {
  4406. sql += " and F_PhoneType = '" + incomingcall + "' ";
  4407. }
  4408. #region 条件
  4409. if (strworkid.Trim() != "" && strworkid != "undefined")
  4410. {
  4411. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4412. }
  4413. if (strname.Trim() != "" && strname != "undefined")
  4414. {
  4415. sql += " and F_CusName like '%" + strname + "%' ";
  4416. }
  4417. if (islike > 0)
  4418. {
  4419. if (strtel.Trim() != "" && strtel != "undefined")
  4420. {
  4421. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4422. }
  4423. }
  4424. else
  4425. {
  4426. if (strtel.Trim() != "" && strtel != "undefined")
  4427. {
  4428. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4429. }
  4430. }
  4431. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4432. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4433. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4434. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4435. {
  4436. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4437. }
  4438. if (Result.Trim() != "" && Result != "undefined")
  4439. {
  4440. sql += " and F_Result like '%" + Result + "%' ";
  4441. }
  4442. if (ComContent.Trim() != "" && ComContent != "undefined")
  4443. {
  4444. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4445. }
  4446. if (strkey.Trim() != "" && strkey != "undefined")
  4447. {
  4448. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4449. " or F_Result like '%" + strkey + "%' ) ";
  4450. }
  4451. #region 坐席&调度员
  4452. if (strusercode.Trim() != "" && strusercode != "undefined")
  4453. {//坐席
  4454. var usercode = strusercode.Trim().Split(',');
  4455. var newusercode = "";
  4456. foreach (var item in usercode)
  4457. {
  4458. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4459. newusercode += "'" + item + "',";
  4460. }
  4461. newusercode = newusercode.Trim(',');
  4462. if (newusercode.Trim() != "" && newusercode != "undefined")
  4463. {
  4464. sql += " and F_CreateUser in (" + newusercode + ") ";
  4465. }
  4466. }
  4467. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4468. {//调度员
  4469. var ddusercode = strddusercode.Trim().Split(',');
  4470. var newusercode = "";
  4471. foreach (var item in ddusercode)
  4472. {
  4473. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4474. newusercode += "'" + item + "',";
  4475. }
  4476. newusercode = newusercode.Trim(',');
  4477. if (newusercode.Trim() != "" && newusercode != "undefined")
  4478. {
  4479. sql += " and F_AssignUser in(" + newusercode + ") ";
  4480. }
  4481. }
  4482. #endregion
  4483. if (source != 0)
  4484. {
  4485. sql += " and F_InfoSource = '" + source + "' ";
  4486. }
  4487. string sqlwhere = "";
  4488. if (keyid != 0)
  4489. {
  4490. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4491. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4492. // " or F_Key='" + keyid + "' )";
  4493. }
  4494. if (type != 0)
  4495. {
  4496. sql += " and F_InfoType = '" + type + "' ";
  4497. }
  4498. if (bigtype != 0)
  4499. {
  4500. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4501. }
  4502. if (smalltype != 0)
  4503. {
  4504. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4505. }
  4506. if (sourcearea != 0)
  4507. {
  4508. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4509. }
  4510. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4511. {
  4512. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4513. }
  4514. if (strendtime.Trim() != "" && strendtime != "undefined")
  4515. {
  4516. sql += " and F_CreateTime<='" + strendtime + "' ";
  4517. }
  4518. if (deptid != 0)
  4519. {
  4520. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4521. }
  4522. if (strpageindex.Trim() != "")
  4523. {
  4524. pageindex = Convert.ToInt32(strpageindex);
  4525. }
  4526. if (strpagesize.Trim() != "")
  4527. {
  4528. pagesize = Convert.ToInt32(strpagesize);
  4529. }
  4530. #endregion
  4531. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4532. 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";
  4533. if (isdc > 0)
  4534. {
  4535. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4536. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4537. if (msg == "")
  4538. {
  4539. return Success("导出成功");
  4540. }
  4541. else
  4542. {
  4543. return Error("导出失败");
  4544. }
  4545. }
  4546. int recordCount = 0;
  4547. dt = BLL.PagerBLL.GetListPager(
  4548. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4549. "F_Id",
  4550. cols,
  4551. sql,
  4552. "ORDER BY F_CreateTime DESC",
  4553. pagesize,
  4554. pageindex,
  4555. true,
  4556. out recordCount);
  4557. #region 声音文件
  4558. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4559. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4560. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4561. dt.Columns.Add("OverState", typeof(string));//超时状态
  4562. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4563. dt.Columns.Add("GapTime", typeof(string));//时间差
  4564. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4565. dt.Columns.Add("PDState", typeof(string));//派单状态
  4566. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4567. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4568. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4569. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4570. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4571. foreach (DataRow dr in dt.Rows)
  4572. {
  4573. //获取最新交办信息
  4574. string iszbdw = "0";
  4575. string ispd = "";
  4576. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4577. if (state > 1)
  4578. {
  4579. 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";
  4580. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4581. if (dtjb.Rows.Count > 0)
  4582. {
  4583. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4584. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4585. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4586. {
  4587. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4588. }
  4589. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4590. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4591. dr["LimitTime"] = lt;
  4592. #region
  4593. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4594. {
  4595. if (!string.IsNullOrWhiteSpace(lt))
  4596. {
  4597. var ltime = DateTime.Parse(lt);
  4598. if (ltime > DateTime.Now)
  4599. {
  4600. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4601. var SYSJ = DbHelperSQL.GetSingle(SY);
  4602. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4603. {
  4604. try
  4605. {
  4606. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4607. }
  4608. catch
  4609. {
  4610. }
  4611. }
  4612. }
  4613. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4614. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4615. if (tss < 0) { tss = -tss; }
  4616. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4617. if (ltime > DateTime.Now)
  4618. {
  4619. if (configcs != null)
  4620. {
  4621. int cs = Int32.Parse(configcs.F_ParamValue);
  4622. if (ts.TotalHours > cs)
  4623. {
  4624. dr["OverState"] = 1;
  4625. }
  4626. else
  4627. {
  4628. dr["OverState"] = 2;
  4629. }
  4630. }
  4631. dr["GapTime"] = "剩余" + gshsj;
  4632. }
  4633. else
  4634. {
  4635. dr["OverState"] = 3;
  4636. dr["GapTime"] = "超时" + gshsj;
  4637. }
  4638. }
  4639. }
  4640. if (state == (int)EnumWorkState.finish)
  4641. {
  4642. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4643. var dttime = DateTime.Now;
  4644. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4645. else
  4646. {
  4647. var DealTime = dr["F_CloseTime"].ToString();
  4648. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4649. }
  4650. if (!string.IsNullOrWhiteSpace(lt))
  4651. {
  4652. var ltime = DateTime.Parse(lt);
  4653. TimeSpan ts = ltime.Subtract(dttime);
  4654. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4655. if (tss < 0) { tss = -tss; }
  4656. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4657. if (ltime < dttime)
  4658. {
  4659. dr["OverState"] = 3;
  4660. dr["GapTime"] = "超时" + gshsj;
  4661. }
  4662. }
  4663. }
  4664. #endregion
  4665. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4666. dr["PDState"] = ispd;
  4667. }
  4668. else
  4669. {
  4670. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4671. }
  4672. }
  4673. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4674. {
  4675. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4676. }
  4677. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4678. {
  4679. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4680. }
  4681. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4682. if (Int32.Parse(strtab) < 1)
  4683. {
  4684. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4685. #region 判断是否存在待督办
  4686. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4687. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4688. if (recount > 0 && butt != null)
  4689. btns.Remove(butt);
  4690. #endregion
  4691. }
  4692. else
  4693. {
  4694. btns.Add(ButtonGroup.query());
  4695. }
  4696. dr["Buttons"] = btns;
  4697. }
  4698. #endregion
  4699. var obj = new
  4700. {
  4701. state = "success",
  4702. message = "成功",
  4703. rows = dt,
  4704. total = recordCount
  4705. };
  4706. return Content(obj.ToJson());
  4707. }
  4708. /// <summary>
  4709. /// 获取自己提交工单
  4710. /// </summary>
  4711. /// <param name="isdc"></param>
  4712. /// <returns></returns>
  4713. //[Authority]
  4714. public ActionResult GetSelfList(int isdc = 0)
  4715. {
  4716. DataTable dt = new DataTable();
  4717. string sql = " and F_IsDelete=0 ";
  4718. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4719. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4720. int islike = RequestString.GetInt("islike", 1);
  4721. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4722. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4723. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4724. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4725. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4726. int source = RequestString.GetInt("source", 0);
  4727. int keyid = RequestString.GetInt("keyid", 0);
  4728. int type = RequestString.GetInt("type", 0);
  4729. int bigtype = RequestString.GetInt("bigtype", 0);
  4730. int smalltype = RequestString.GetInt("smalltype", 0);
  4731. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4732. int deptid = RequestString.GetInt("deptid", 0);
  4733. int dealtype = RequestString.GetInt("dealtype", -1);
  4734. int issend = RequestString.GetInt("issend", -1);
  4735. int deptlevel = RequestString.GetInt("deptlevel", 0);
  4736. string strpageindex = RequestString.GetQueryString("page");
  4737. int pageindex = 1;
  4738. string strpagesize = RequestString.GetQueryString("pagesize");
  4739. int pagesize = 10;
  4740. #region sql 语句相关处理
  4741. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  4742. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  4743. if (strstate.Trim() != "" && strstate != "undefined")
  4744. {
  4745. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4746. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4747. else
  4748. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4749. }
  4750. if (strworkid.Trim() != "" && strworkid != "undefined")
  4751. {
  4752. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4753. }
  4754. int jianhang = RequestString.GetInt("jianhang", 0);
  4755. int phoneType = RequestString.GetInt("phoneType", 0);
  4756. if (jianhang > 0)
  4757. {
  4758. if (jianhang == 3)
  4759. sql += " and F_InfoSource = '2501' ";
  4760. else
  4761. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  4762. }
  4763. else
  4764. {
  4765. sql += " and F_InfoSource = '1' ";
  4766. if (phoneType == 1)
  4767. sql += " and F_PhoneType != '12345' ";
  4768. else if (phoneType == 2)
  4769. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  4770. "or F_PhoneType is null ) ";
  4771. }
  4772. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  4773. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  4774. {
  4775. sql += " and F_PhoneType = '" + incomingcall + "' ";
  4776. }
  4777. if (strname.Trim() != "" && strname != "undefined")
  4778. {
  4779. sql += " and F_CusName like '%" + strname + "%' ";
  4780. }
  4781. if (islike > 0)
  4782. {
  4783. if (strtel.Trim() != "" && strtel != "undefined")
  4784. {
  4785. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4786. }
  4787. }
  4788. else
  4789. {
  4790. if (strtel.Trim() != "" && strtel != "undefined")
  4791. {
  4792. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4793. }
  4794. }
  4795. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4796. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4797. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4798. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4799. {
  4800. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4801. }
  4802. if (Result.Trim() != "" && Result != "undefined")
  4803. {
  4804. sql += " and F_Result like '%" + Result + "%' ";
  4805. }
  4806. if (ComContent.Trim() != "" && ComContent != "undefined")
  4807. {
  4808. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4809. }
  4810. if (strkey.Trim() != "" && strkey != "undefined")
  4811. {
  4812. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4813. " or F_Result like '%" + strkey + "%' ) ";
  4814. }
  4815. if (source != 0)
  4816. {
  4817. sql += " and F_InfoSource = '" + source + "' ";
  4818. }
  4819. string sqlwhere = "";
  4820. if (keyid != 0)
  4821. {
  4822. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4823. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4824. // " or F_Key='" + keyid + "' )";
  4825. }
  4826. if (type != 0)
  4827. {
  4828. sql += " and F_InfoType = '" + type + "' ";
  4829. }
  4830. if (bigtype != 0)
  4831. {
  4832. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4833. }
  4834. if (smalltype != 0)
  4835. {
  4836. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4837. }
  4838. if (sourcearea != 0)
  4839. {
  4840. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4841. }
  4842. if (deptid != 0)
  4843. {
  4844. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4845. }
  4846. if (dealtype != -1)
  4847. {
  4848. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  4849. }
  4850. if (issend != -1)
  4851. {
  4852. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  4853. }
  4854. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4855. {
  4856. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4857. }
  4858. if (strendtime.Trim() != "" && strendtime != "undefined")
  4859. {
  4860. sql += " and F_CreateTime<='" + strendtime + "' ";
  4861. }
  4862. #endregion
  4863. if (strpageindex.Trim() != "")
  4864. {
  4865. pageindex = Convert.ToInt32(strpageindex);
  4866. }
  4867. if (strpagesize.Trim() != "")
  4868. {
  4869. pagesize = Convert.ToInt32(strpagesize);
  4870. }
  4871. 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";
  4872. #region 导出
  4873. if (isdc > 0)
  4874. {
  4875. var top = " "; var orderby = " order by F_CreateTime";
  4876. if (sql == " and F_IsDelete=0 ")
  4877. {
  4878. top = " top 1000 "; orderby += " desc ";
  4879. }
  4880. //20190715调整导出字段 zhengbingbing
  4881. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4882. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4883. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4884. + " (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) 办理结果, "
  4885. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  4886. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  4887. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4888. if (msg == "")
  4889. {
  4890. return Success("导出成功");
  4891. }
  4892. else
  4893. {
  4894. return Error("导出失败");
  4895. }
  4896. }
  4897. #endregion
  4898. int recordCount = 0;
  4899. dt = BLL.PagerBLL.GetListPager(
  4900. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4901. "F_Id",
  4902. cols,
  4903. sql,
  4904. "ORDER BY F_CreateTime DESC",
  4905. pagesize,
  4906. pageindex,
  4907. true,
  4908. out recordCount);
  4909. #region 声音文件和交办超时
  4910. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4911. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4912. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4913. dt.Columns.Add("OverState", typeof(string));//超时状态
  4914. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4915. dt.Columns.Add("GapTime", typeof(string));//时间差
  4916. dt.Columns.Add("PDState", typeof(string));//派单状态
  4917. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4918. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4919. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4920. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4921. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4922. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4923. foreach (DataRow dr in dt.Rows)
  4924. {
  4925. string iszbdw = "0";
  4926. string ispd = "";
  4927. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4928. if (state > 1)
  4929. {
  4930. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4931. //获取最新交办信息
  4932. 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";
  4933. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4934. if (dtjb.Rows.Count > 0)
  4935. {
  4936. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4937. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  4938. {
  4939. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  4940. }
  4941. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4942. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4943. dr["LimitTime"] = lt;
  4944. #region 超时时限
  4945. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4946. {
  4947. if (!string.IsNullOrWhiteSpace(lt))
  4948. {
  4949. var ltime = DateTime.Parse(lt);
  4950. if (ltime > DateTime.Now)
  4951. {
  4952. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4953. var SYSJ = DbHelperSQL.GetSingle(SY);
  4954. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4955. {
  4956. try
  4957. {
  4958. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4959. }
  4960. catch
  4961. {
  4962. }
  4963. }
  4964. }
  4965. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4966. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4967. if (tss < 0) { tss = -tss; }
  4968. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4969. if (ltime > DateTime.Now)
  4970. {
  4971. if (configcs != null)
  4972. {
  4973. int cs = Int32.Parse(configcs.F_ParamValue);
  4974. if (ts.TotalHours > cs)
  4975. {
  4976. dr["OverState"] = 1;
  4977. }
  4978. else
  4979. {
  4980. dr["OverState"] = 2;
  4981. }
  4982. }
  4983. dr["GapTime"] = "剩余" + gshsj;
  4984. }
  4985. else
  4986. {
  4987. dr["OverState"] = 3;
  4988. dr["GapTime"] = "超时" + gshsj;
  4989. }
  4990. }
  4991. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4992. dr["PDState"] = ispd;
  4993. }
  4994. if (state == (int)EnumWorkState.finish)
  4995. {
  4996. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4997. var dttime = DateTime.Now;
  4998. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4999. else
  5000. {
  5001. var DealTime = dr["F_CloseTime"].ToString();
  5002. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5003. }
  5004. if (!string.IsNullOrWhiteSpace(lt))
  5005. {
  5006. var ltime = DateTime.Parse(lt);
  5007. TimeSpan ts = ltime.Subtract(dttime);
  5008. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5009. if (tss < 0) { tss = -tss; }
  5010. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5011. if (ltime < dttime)
  5012. {
  5013. dr["OverState"] = 3;
  5014. dr["GapTime"] = "超时" + gshsj;
  5015. }
  5016. }
  5017. }
  5018. #endregion
  5019. }
  5020. }
  5021. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5022. {
  5023. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5024. }
  5025. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5026. {
  5027. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5028. }
  5029. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5030. #region 判断是否存在待督办
  5031. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  5032. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  5033. if (recount > 0 && butt != null)
  5034. buttons.Remove(butt);
  5035. #endregion
  5036. dr["Buttons"] = buttons;
  5037. }
  5038. #endregion
  5039. var obj = new
  5040. {
  5041. state = "success",
  5042. message = "成功",
  5043. rows = dt,
  5044. total = recordCount
  5045. };
  5046. return Content(obj.ToJson());
  5047. }
  5048. /// <summary>
  5049. /// 获取逾期未回复工单列表
  5050. /// </summary>
  5051. /// <returns></returns>
  5052. //[Authority]
  5053. public ActionResult GetTimeOutList(int isdc = 0)
  5054. {
  5055. DataTable dt = new DataTable();
  5056. string sql = " and F_IsDelete=0";
  5057. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5058. int islike = RequestString.GetInt("islike", 1);
  5059. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5060. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5061. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5062. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5063. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5064. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5065. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5066. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5067. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  5068. int source = RequestString.GetInt("source", 0);
  5069. int keyid = RequestString.GetInt("keyid", 0);
  5070. int type = RequestString.GetInt("type", 0);
  5071. int bigtype = RequestString.GetInt("bigtype", 0);
  5072. int smalltype = RequestString.GetInt("smalltype", 0);
  5073. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5074. int deptid = RequestString.GetInt("deptid", 0);
  5075. int soon = RequestString.GetInt("soon", 0);
  5076. string strpageindex = RequestString.GetQueryString("page");
  5077. int pageindex = 1;
  5078. string strpagesize = RequestString.GetQueryString("pagesize");
  5079. int pagesize = 10;
  5080. #region 坐席&调度员
  5081. if (strusercode.Trim() != "" && strusercode != "undefined")
  5082. {//坐席
  5083. var usercode = strusercode.Trim().Split(',');
  5084. var newusercode = "";
  5085. foreach (var item in usercode)
  5086. {
  5087. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5088. newusercode += "'" + item + "',";
  5089. }
  5090. newusercode = newusercode.Trim(',');
  5091. if (newusercode.Trim() != "" && newusercode != "undefined")
  5092. {
  5093. sql += " and F_CreateUser in (" + newusercode + ") ";
  5094. }
  5095. }
  5096. if (ejdeptid > 0)
  5097. {
  5098. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  5099. }
  5100. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5101. {//调度员
  5102. var ddusercode = strddusercode.Trim().Split(',');
  5103. var newusercode = "";
  5104. foreach (var item in ddusercode)
  5105. {
  5106. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5107. newusercode += "'" + item + "',";
  5108. }
  5109. newusercode = newusercode.Trim(',');
  5110. if (newusercode.Trim() != "" && newusercode != "undefined")
  5111. {
  5112. sql += " and F_AssignUser in(" + newusercode + ") ";
  5113. }
  5114. }
  5115. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5116. //{
  5117. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5118. //}
  5119. #endregion
  5120. int business = RequestString.GetInt("business", 0);
  5121. if (business > 0)
  5122. sql += " and F_Business = '1'";
  5123. int phoneType = RequestString.GetInt("phoneType", 0);
  5124. int jianhang = RequestString.GetInt("jianhang", 0);
  5125. if (jianhang == 2)
  5126. {
  5127. sql += " and F_InfoSource = '1' ";
  5128. if (phoneType == 1)
  5129. sql += " and F_PhoneType != '12345' ";
  5130. else if (phoneType == 2)
  5131. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  5132. "or F_PhoneType is null ) ";
  5133. }
  5134. else if (jianhang == 1)
  5135. {
  5136. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  5137. }
  5138. else if (jianhang == 3)
  5139. sql += " and F_InfoSource = '2501' ";
  5140. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  5141. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  5142. {
  5143. sql += " and F_PhoneType = '" + incomingcall + "' ";
  5144. }
  5145. string sqlwhere = ""; string sqlwhere1 = "";
  5146. if (User.F_RoleCode == "WLDW")
  5147. {
  5148. if (soon == 1)
  5149. {
  5150. sqlwhere += " and (F_LimitTime<getdate() or " +
  5151. " F_LimitTime<(dateadd(dd,-1,GETDATE()))) ";
  5152. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  5153. //+ " where F_State=1 and F_IsDelete=0 and and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  5154. }
  5155. else
  5156. {
  5157. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  5158. //+ " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  5159. sqlwhere += " and F_LimitTime<getdate() ";
  5160. }
  5161. //sqlwhere1 += " and F_MainDeptId = '" + User.F_DeptId + "'";
  5162. sql += " and F_MainDeptId = '" + User.F_DeptId + "' " +
  5163. "and F_WorkState NOT IN (6,7,9)";
  5164. // sqlwhere += "))";
  5165. }
  5166. else if (User.F_RoleCode == "EJWLDW")
  5167. {
  5168. 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) ";
  5169. 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 "
  5170. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)))";
  5171. }
  5172. else if (deptid != 0)
  5173. {
  5174. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN(6,7,9)";
  5175. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  5176. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  5177. }
  5178. else
  5179. {
  5180. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN (6,7,9) ";
  5181. }
  5182. //if (User.F_RoleCode == "ZXLD")
  5183. //{
  5184. // sqlwhere += " and F_CreateUser = '" + User.F_UserCode + "' ";
  5185. // sqlwhere1 += " and F_CreateUser = '" + User.F_UserCode + "'";
  5186. //}
  5187. if (strstate.Trim() != "" && strstate != "undefined")
  5188. {
  5189. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5190. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5191. else
  5192. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5193. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  5194. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  5195. else
  5196. sql += sqlwhere;
  5197. }
  5198. else
  5199. {
  5200. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  5201. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  5202. sql += sqlwhere;
  5203. //sql += " and F_WorkState in (2,4,8)";
  5204. }
  5205. if (strworkid.Trim() != "" && strworkid != "undefined")
  5206. {
  5207. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5208. }
  5209. if (strname.Trim() != "" && strname != "undefined")
  5210. {
  5211. sql += " and F_CusName like '%" + strname + "%' ";
  5212. }
  5213. if (islike > 0)
  5214. {
  5215. if (strtel.Trim() != "" && strtel != "undefined")
  5216. {
  5217. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5218. }
  5219. }
  5220. else
  5221. {
  5222. if (strtel.Trim() != "" && strtel != "undefined")
  5223. {
  5224. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5225. }
  5226. }
  5227. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5228. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5229. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5230. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5231. {
  5232. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5233. }
  5234. if (Result.Trim() != "" && Result != "undefined")
  5235. {
  5236. sql += " and F_Result like '%" + Result + "%' ";
  5237. }
  5238. if (ComContent.Trim() != "" && ComContent != "undefined")
  5239. {
  5240. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5241. }
  5242. if (strkey.Trim() != "" && strkey != "undefined")
  5243. {
  5244. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5245. " or F_Result like '%" + strkey + "%' ) ";
  5246. }
  5247. if (source != 0)
  5248. {
  5249. sql += " and F_InfoSource = '" + source + "' ";
  5250. }
  5251. string sqlwheres = ""; string value = "";
  5252. if (keyid != 0)
  5253. {
  5254. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5255. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5256. // " or F_Key='" + keyid + "' )";
  5257. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  5258. }
  5259. if (type != 0)
  5260. {
  5261. sql += " and F_InfoType = '" + type + "' ";
  5262. }
  5263. if (bigtype != 0)
  5264. {
  5265. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5266. }
  5267. if (smalltype != 0)
  5268. {
  5269. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5270. }
  5271. if (sourcearea != 0)
  5272. {
  5273. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5274. }
  5275. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5276. {
  5277. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5278. }
  5279. if (strendtime.Trim() != "" && strendtime != "undefined")
  5280. {
  5281. sql += " and F_CreateTime<='" + strendtime + "' ";
  5282. }
  5283. if (strpageindex.Trim() != "")
  5284. {
  5285. pageindex = Convert.ToInt32(strpageindex);
  5286. }
  5287. if (strpagesize.Trim() != "")
  5288. {
  5289. pagesize = Convert.ToInt32(strpagesize);
  5290. }
  5291. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5292. 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";
  5293. if (isdc > 0)
  5294. {
  5295. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5296. var top = " "; var orderby = " order by F_CreateTime";
  5297. if (sql == " and F_IsDelete=0 ")
  5298. {
  5299. top = " top 1000 "; orderby += " desc ";
  5300. }
  5301. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  5302. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  5303. + " (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) 办理结果, "
  5304. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  5305. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  5306. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5307. if (msg == "")
  5308. {
  5309. return Success("导出成功");
  5310. }
  5311. else
  5312. {
  5313. return Error("导出失败");
  5314. }
  5315. }
  5316. int recordCount = 0;
  5317. dt = BLL.PagerBLL.GetListPager(
  5318. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  5319. "F_Id",
  5320. cols,
  5321. sql,
  5322. "ORDER BY F_CreateTime DESC",
  5323. pagesize,
  5324. pageindex,
  5325. true,
  5326. out recordCount);
  5327. #region 声音文件
  5328. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5329. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5330. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5331. dt.Columns.Add("OverState", typeof(string));//超时状态
  5332. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5333. dt.Columns.Add("GapTime", typeof(string));//时间差
  5334. dt.Columns.Add("FilePath", typeof(string));
  5335. dt.Columns.Add("Buttons", typeof(object));
  5336. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5337. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5338. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5339. foreach (DataRow dr in dt.Rows)
  5340. {
  5341. //获取最新交办信息
  5342. string iszbdw = "0";
  5343. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5344. string ispd = "";
  5345. if (state > 1)
  5346. {
  5347. 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";
  5348. string sqlej = "";
  5349. if (User.F_RoleCode == "EJWLDW")
  5350. {
  5351. 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";
  5352. }
  5353. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5354. if (dtjb.Rows.Count > 0)
  5355. {
  5356. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5357. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5358. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5359. {
  5360. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5361. }
  5362. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5363. #region 时限
  5364. //if (state < 6 || state == 8)
  5365. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5366. {
  5367. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5368. if (User.F_RoleCode == "EJWLDW")
  5369. {
  5370. 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";
  5371. var dtej = DbHelperSQL.Query(sqljb).Tables[0];
  5372. lt = dtej.Rows[0]["F_LimitTime"].ToString();
  5373. }
  5374. dr["LimitTime"] = lt;
  5375. if (!string.IsNullOrWhiteSpace(lt))
  5376. {
  5377. var ltime = DateTime.Parse(lt);
  5378. if (ltime > DateTime.Now)
  5379. {
  5380. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  5381. var SYSJ = DbHelperSQL.GetSingle(SY);
  5382. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  5383. {
  5384. try
  5385. {
  5386. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5387. }
  5388. catch
  5389. {
  5390. }
  5391. }
  5392. }
  5393. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5394. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5395. if (tss < 0) { tss = -tss; }
  5396. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5397. if (ltime > DateTime.Now)
  5398. {
  5399. if (configcs != null)
  5400. {
  5401. int cs = Int32.Parse(configcs.F_ParamValue);
  5402. if (ts.TotalHours > cs)
  5403. {
  5404. dr["OverState"] = 1;
  5405. }
  5406. else
  5407. {
  5408. dr["OverState"] = 2;
  5409. }
  5410. }
  5411. dr["GapTime"] = "剩余" + gshsj;
  5412. }
  5413. else
  5414. {
  5415. dr["OverState"] = 3;
  5416. dr["GapTime"] = "超时" + gshsj;
  5417. }
  5418. }
  5419. }
  5420. if (state == (int)EnumWorkState.finish)
  5421. {
  5422. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5423. var dttime = DateTime.Now;
  5424. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5425. else
  5426. {
  5427. var DealTime = dr["F_CloseTime"].ToString();
  5428. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5429. }
  5430. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5431. dr["LimitTime"] = lt;
  5432. if (!string.IsNullOrWhiteSpace(lt))
  5433. {
  5434. var ltime = DateTime.Parse(lt);
  5435. TimeSpan ts = ltime.Subtract(dttime);
  5436. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5437. if (tss < 0) { tss = -tss; }
  5438. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5439. if (ltime < dttime)
  5440. {
  5441. dr["OverState"] = 3;
  5442. dr["GapTime"] = "超时" + gshsj;
  5443. }
  5444. }
  5445. }
  5446. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  5447. #endregion
  5448. }
  5449. }
  5450. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5451. {
  5452. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5453. }
  5454. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5455. {
  5456. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5457. }
  5458. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5459. if (User.F_RoleCode == "EJWLDW")
  5460. {
  5461. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5462. }
  5463. else
  5464. {
  5465. btns.Add(ButtonGroup.query());
  5466. }
  5467. dr["Buttons"] = btns;
  5468. }
  5469. #endregion
  5470. var obj = new
  5471. {
  5472. state = "success",
  5473. message = "成功",
  5474. rows = dt,
  5475. total = recordCount
  5476. };
  5477. return Content(obj.ToJson());
  5478. }
  5479. /// <summary>
  5480. /// 获取公开工单列表
  5481. /// </summary>
  5482. /// <returns></returns>
  5483. //[Authority]
  5484. public ActionResult GetMediaList(int isdc = 0)
  5485. {
  5486. DataTable dt = new DataTable();
  5487. string sql = " and F_IsDelete=0";
  5488. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5489. int islike = RequestString.GetInt("islike", 1);
  5490. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5491. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5492. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5493. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5494. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5495. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5496. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5497. int source = RequestString.GetInt("source", 0);
  5498. int keyid = RequestString.GetInt("keyid", 0);
  5499. int type = RequestString.GetInt("type", 0);
  5500. int bigtype = RequestString.GetInt("bigtype", 0);
  5501. int smalltype = RequestString.GetInt("smalltype", 0);
  5502. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5503. int deptid = RequestString.GetInt("deptid", 0);
  5504. string strpageindex = RequestString.GetQueryString("page");
  5505. int pageindex = 1;
  5506. string strpagesize = RequestString.GetQueryString("pagesize");
  5507. int pagesize = 10;
  5508. sql += " and isnull(F_IsOpen,0) =1 ";
  5509. int business = RequestString.GetInt("business", 0);
  5510. if (business > 0)
  5511. sql += " and F_Business = '1'";
  5512. if (strworkid.Trim() != "" && strworkid != "undefined")
  5513. {
  5514. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5515. }
  5516. if (strname.Trim() != "" && strname != "undefined")
  5517. {
  5518. sql += " and F_CusName like '%" + strname + "%' ";
  5519. }
  5520. if (islike > 0)
  5521. {
  5522. if (strtel.Trim() != "" && strtel != "undefined")
  5523. {
  5524. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5525. }
  5526. }
  5527. else
  5528. {
  5529. if (strtel.Trim() != "" && strtel != "undefined")
  5530. {
  5531. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5532. }
  5533. }
  5534. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5535. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5536. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5537. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5538. {
  5539. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5540. }
  5541. if (Result.Trim() != "" && Result != "undefined")
  5542. {
  5543. sql += " and F_Result like '%" + Result + "%' ";
  5544. }
  5545. if (ComContent.Trim() != "" && ComContent != "undefined")
  5546. {
  5547. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5548. }
  5549. if (strkey.Trim() != "" && strkey != "undefined")
  5550. {
  5551. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5552. " or F_Result like '%" + strkey + "%' ) ";
  5553. }
  5554. #region 坐席&调度员
  5555. if (strusercode.Trim() != "" && strusercode != "undefined")
  5556. {//坐席
  5557. var usercode = strusercode.Trim().Split(',');
  5558. var newusercode = "";
  5559. foreach (var item in usercode)
  5560. {
  5561. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5562. newusercode += "'" + item + "',";
  5563. }
  5564. newusercode = newusercode.Trim(',');
  5565. if (newusercode.Trim() != "" && newusercode != "undefined")
  5566. {
  5567. sql += " and F_CreateUser in (" + newusercode + ") ";
  5568. }
  5569. }
  5570. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5571. {//调度员
  5572. var ddusercode = strddusercode.Trim().Split(',');
  5573. var newusercode = "";
  5574. foreach (var item in ddusercode)
  5575. {
  5576. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5577. newusercode += "'" + item + "',";
  5578. }
  5579. newusercode = newusercode.Trim(',');
  5580. if (newusercode.Trim() != "" && newusercode != "undefined")
  5581. {
  5582. sql += " and F_AssignUser in(" + newusercode + ") ";
  5583. }
  5584. }
  5585. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5586. //{
  5587. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5588. //}
  5589. #endregion
  5590. if (source != 0)
  5591. {
  5592. sql += " and F_InfoSource = '" + source + "' ";
  5593. }
  5594. string sqlwheres = "";
  5595. if (keyid != 0)
  5596. {
  5597. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5598. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5599. // " or F_Key='" + keyid + "' )";
  5600. }
  5601. if (type != 0)
  5602. {
  5603. sql += " and F_InfoType = '" + type + "' ";
  5604. }
  5605. if (bigtype != 0)
  5606. {
  5607. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5608. }
  5609. if (smalltype != 0)
  5610. {
  5611. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5612. }
  5613. if (sourcearea != 0)
  5614. {
  5615. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5616. }
  5617. if (deptid != 0)
  5618. {
  5619. 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 ";
  5620. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5621. }
  5622. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5623. {
  5624. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5625. }
  5626. if (strendtime.Trim() != "" && strendtime != "undefined")
  5627. {
  5628. sql += " and F_CreateTime<='" + strendtime + "' ";
  5629. }
  5630. if (strpageindex.Trim() != "")
  5631. {
  5632. pageindex = Convert.ToInt32(strpageindex);
  5633. }
  5634. if (strpagesize.Trim() != "")
  5635. {
  5636. pagesize = Convert.ToInt32(strpagesize);
  5637. }
  5638. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5639. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5640. 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";
  5641. if (isdc > 0)
  5642. {
  5643. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5644. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5645. if (msg == "")
  5646. {
  5647. return Success("导出成功");
  5648. }
  5649. else
  5650. {
  5651. return Error("导出失败");
  5652. }
  5653. }
  5654. int recordCount = 0;
  5655. dt = BLL.PagerBLL.GetListPager(
  5656. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  5657. "F_Id",
  5658. cols,
  5659. sql,
  5660. "ORDER BY F_CreateTime DESC",
  5661. pagesize,
  5662. pageindex,
  5663. true,
  5664. out recordCount);
  5665. #region 声音文件
  5666. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5667. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5668. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5669. dt.Columns.Add("IsReturnMedia", typeof(string));
  5670. dt.Columns.Add("Buttons", typeof(object));
  5671. int IsReturnMedia = 0;
  5672. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  5673. {
  5674. IsReturnMedia = 1;
  5675. }
  5676. foreach (DataRow dr in dt.Rows)
  5677. {
  5678. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5679. if (state > 1)
  5680. {
  5681. //获取最新交办信息
  5682. 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";
  5683. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5684. if (dtjb.Rows.Count > 0)
  5685. {
  5686. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5687. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5688. {
  5689. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5690. }
  5691. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5692. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5693. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5694. //if (deptinfo != null)
  5695. //{
  5696. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5697. //}
  5698. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5699. //{
  5700. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5701. // string dns = string.Empty;
  5702. // foreach (string strid in strids)
  5703. // {
  5704. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5705. // if (dinfo != null)
  5706. // {
  5707. // if (string.IsNullOrEmpty(dns))
  5708. // {
  5709. // dns = dinfo.F_DeptName;//交办单位
  5710. // }
  5711. // else
  5712. // {
  5713. // dns += "," + dinfo.F_DeptName;//交办单位
  5714. // }
  5715. // }
  5716. // }
  5717. // dr["OtherDeptName"] = dns;
  5718. //}
  5719. }
  5720. }
  5721. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5722. btns.Add(ButtonGroup.query());
  5723. dr["Buttons"] = btns;
  5724. dr["IsReturnMedia"] = IsReturnMedia;
  5725. }
  5726. #endregion
  5727. var obj = new
  5728. {
  5729. state = "success",
  5730. message = "成功",
  5731. rows = dt,
  5732. total = recordCount
  5733. };
  5734. return Content(obj.ToJson());
  5735. }
  5736. /// <summary>
  5737. /// 获取媒体工单列表
  5738. /// </summary>
  5739. /// <returns></returns>
  5740. //[Authority]
  5741. public ActionResult GetMassList(int isdc = 0)
  5742. {
  5743. DataTable dt = new DataTable();
  5744. string sql = " and F_IsDelete=0";
  5745. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5746. int islike = RequestString.GetInt("islike", 1);
  5747. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5748. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5749. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5750. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5751. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5752. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5753. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5754. int source = RequestString.GetInt("source", 0);
  5755. int keyid = RequestString.GetInt("keyid", 0);
  5756. int type = RequestString.GetInt("type", 0);
  5757. int bigtype = RequestString.GetInt("bigtype", 0);
  5758. int smalltype = RequestString.GetInt("smalltype", 0);
  5759. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5760. int deptid = RequestString.GetInt("deptid", 0);
  5761. string strpageindex = RequestString.GetQueryString("page");
  5762. int pageindex = 1;
  5763. string strpagesize = RequestString.GetQueryString("pagesize");
  5764. int pagesize = 10;
  5765. sql += " and isnull(F_IsMedia,0) =1 ";
  5766. int business = RequestString.GetInt("business", 0);
  5767. if (business > 0)
  5768. sql += " and F_Business = '1'";
  5769. if (strworkid.Trim() != "" && strworkid != "undefined")
  5770. {
  5771. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5772. }
  5773. if (strname.Trim() != "" && strname != "undefined")
  5774. {
  5775. sql += " and F_CusName like '%" + strname + "%' ";
  5776. }
  5777. if (islike > 0)
  5778. {
  5779. if (strtel.Trim() != "" && strtel != "undefined")
  5780. {
  5781. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5782. }
  5783. }
  5784. else
  5785. {
  5786. if (strtel.Trim() != "" && strtel != "undefined")
  5787. {
  5788. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5789. }
  5790. }
  5791. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5792. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5793. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5794. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5795. {
  5796. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5797. }
  5798. if (Result.Trim() != "" && Result != "undefined")
  5799. {
  5800. sql += " and F_Result like '%" + Result + "%' ";
  5801. }
  5802. if (ComContent.Trim() != "" && ComContent != "undefined")
  5803. {
  5804. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5805. }
  5806. if (strkey.Trim() != "" && strkey != "undefined")
  5807. {
  5808. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5809. " or F_Result like '%" + strkey + "%' ) ";
  5810. }
  5811. #region 坐席&调度员
  5812. if (strusercode.Trim() != "" && strusercode != "undefined")
  5813. {//坐席
  5814. var usercode = strusercode.Trim().Split(',');
  5815. var newusercode = "";
  5816. foreach (var item in usercode)
  5817. {
  5818. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5819. newusercode += "'" + item + "',";
  5820. }
  5821. newusercode = newusercode.Trim(',');
  5822. if (newusercode.Trim() != "" && newusercode != "undefined")
  5823. {
  5824. sql += " and F_CreateUser in (" + newusercode + ") ";
  5825. }
  5826. }
  5827. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5828. {//调度员
  5829. var ddusercode = strddusercode.Trim().Split(',');
  5830. var newusercode = "";
  5831. foreach (var item in ddusercode)
  5832. {
  5833. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5834. newusercode += "'" + item + "',";
  5835. }
  5836. newusercode = newusercode.Trim(',');
  5837. if (newusercode.Trim() != "" && newusercode != "undefined")
  5838. {
  5839. sql += " and F_AssignUser in(" + newusercode + ") ";
  5840. }
  5841. }
  5842. #endregion
  5843. if (source != 0)
  5844. {
  5845. sql += " and F_InfoSource = '" + source + "' ";
  5846. }
  5847. string sqlwheres = "";
  5848. if (keyid != 0)
  5849. {
  5850. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5851. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5852. // " or F_Key='" + keyid + "' )";
  5853. }
  5854. if (type != 0)
  5855. {
  5856. sql += " and F_InfoType = '" + type + "' ";
  5857. }
  5858. if (bigtype != 0)
  5859. {
  5860. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5861. }
  5862. if (smalltype != 0)
  5863. {
  5864. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5865. }
  5866. if (sourcearea != 0)
  5867. {
  5868. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5869. }
  5870. if (deptid != 0)
  5871. {
  5872. 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 ";
  5873. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5874. }
  5875. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5876. {
  5877. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5878. }
  5879. if (strendtime.Trim() != "" && strendtime != "undefined")
  5880. {
  5881. sql += " and F_CreateTime<='" + strendtime + "' ";
  5882. }
  5883. if (strpageindex.Trim() != "")
  5884. {
  5885. pageindex = Convert.ToInt32(strpageindex);
  5886. }
  5887. if (strpagesize.Trim() != "")
  5888. {
  5889. pagesize = Convert.ToInt32(strpagesize);
  5890. }
  5891. 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";
  5892. if (isdc > 0)
  5893. {
  5894. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5895. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5896. if (msg == "")
  5897. {
  5898. return Success("导出成功");
  5899. }
  5900. else
  5901. {
  5902. return Error("导出失败");
  5903. }
  5904. }
  5905. int recordCount = 0;
  5906. dt = BLL.PagerBLL.GetListPager(
  5907. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  5908. "F_Id",
  5909. cols,
  5910. sql,
  5911. "ORDER BY F_CreateTime DESC",
  5912. pagesize,
  5913. pageindex,
  5914. true,
  5915. out recordCount);
  5916. #region 声音文件
  5917. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5918. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5919. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5920. dt.Columns.Add("IsReturnMedia", typeof(string));
  5921. dt.Columns.Add("Buttons", typeof(object));
  5922. int IsReturnMedia = 0;
  5923. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  5924. {
  5925. IsReturnMedia = 1;
  5926. }
  5927. foreach (DataRow dr in dt.Rows)
  5928. {
  5929. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5930. if (state > 1)
  5931. {
  5932. //获取最新交办信息
  5933. 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";
  5934. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5935. if (dtjb.Rows.Count > 0)
  5936. {
  5937. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5938. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5939. {
  5940. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5941. }
  5942. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5943. }
  5944. }
  5945. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5946. btns.Add(ButtonGroup.query());
  5947. dr["Buttons"] = btns;
  5948. dr["IsReturnMedia"] = IsReturnMedia;
  5949. }
  5950. #endregion
  5951. var obj = new
  5952. {
  5953. state = "success",
  5954. message = "成功",
  5955. rows = dt,
  5956. total = recordCount
  5957. };
  5958. return Content(obj.ToJson());
  5959. }
  5960. ///// <summary>
  5961. ///// 获取通报工单列表
  5962. ///// </summary>
  5963. ///// <returns></returns>
  5964. ////[Authority]
  5965. //public ActionResult GetNoticeList(int isdc = 0)
  5966. //{
  5967. // DataTable dt = new DataTable();
  5968. //
  5969. //
  5970. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  5971. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5972. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5973. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5974. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5975. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5976. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5977. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5978. // int source = RequestString.GetInt("source", 0);
  5979. // int keyid = RequestString.GetInt("keyid", 0);
  5980. // int type = RequestString.GetInt("type", 0);
  5981. // int bigtype = RequestString.GetInt("bigtype", 0);
  5982. // int smalltype = RequestString.GetInt("smalltype", 0);
  5983. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  5984. // int deptid = RequestString.GetInt("deptid", 0);
  5985. // string strpageindex = RequestString.GetQueryString("page");
  5986. // int pageindex = 1;
  5987. // string strpagesize = RequestString.GetQueryString("pagesize");
  5988. // int pagesize = 10;
  5989. // if (strworkid.Trim() != "" && strworkid != "undefined")
  5990. // {
  5991. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5992. // }
  5993. // if (strname.Trim() != "" && strname != "undefined")
  5994. // {
  5995. // sql += " and F_CusName like '%" + strname + "%' ";
  5996. // }
  5997. // if (strtel.Trim() != "" && strtel != "undefined")
  5998. // {
  5999. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6000. // }
  6001. // if (strkey.Trim() != "" && strkey != "undefined")
  6002. // {
  6003. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  6004. // }
  6005. // if (strusercode.Trim() != "" && strusercode != "undefined")
  6006. // {
  6007. // sql += " and F_CreateUser = '" + strusercode + "' ";
  6008. // }
  6009. // if (source != 0)
  6010. // {
  6011. // sql += " and F_InfoSource = '" + source + "' ";
  6012. // }
  6013. // if (keyid != 0)
  6014. // {
  6015. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  6016. // }
  6017. // if (type != 0)
  6018. // {
  6019. // sql += " and F_InfoType = '" + type + "' ";
  6020. // }
  6021. // if (bigtype != 0)
  6022. // {
  6023. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6024. // }
  6025. // if (smalltype != 0)
  6026. // {
  6027. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6028. // }
  6029. // if (sourcearea != 0)
  6030. // {
  6031. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  6032. // }
  6033. // if (deptid != 0)
  6034. // {
  6035. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  6036. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6037. // }
  6038. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6039. // {
  6040. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  6041. // }
  6042. // if (strendtime.Trim() != "" && strendtime != "undefined")
  6043. // {
  6044. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  6045. // }
  6046. // if (strpageindex.Trim() != "")
  6047. // {
  6048. // pageindex = Convert.ToInt32(strpageindex);
  6049. // }
  6050. // if (strpagesize.Trim() != "")
  6051. // {
  6052. // pagesize = Convert.ToInt32(strpagesize);
  6053. // }
  6054. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6055. // if (isdc > 0)
  6056. // {
  6057. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  6058. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6059. // if (msg == "")
  6060. // {
  6061. // return Success("导出成功");
  6062. // }
  6063. // else
  6064. // {
  6065. // return Error("导出失败");
  6066. // }
  6067. // }
  6068. // int recordCount = 0;
  6069. // dt = BLL.PagerBLL.GetListPager(
  6070. // "T_Bus_WorkOrder",
  6071. // "F_WorkOrderId",
  6072. // cols,
  6073. // sql,
  6074. // "ORDER BY F_CreateTime DESC",
  6075. // pagesize,
  6076. // pageindex,
  6077. // true,
  6078. // out recordCount);
  6079. // #region 声音文件
  6080. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  6081. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6082. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  6083. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  6084. // dt.Columns.Add("IsReturnNotice", typeof(string));
  6085. // dt.Columns.Add("FilePath", typeof(string));
  6086. // dt.Columns.Add("Buttons", typeof(object));
  6087. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6088. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6089. // int IsReturnNotice = 0;
  6090. // if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" ||User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY")
  6091. // {
  6092. // IsReturnNotice = 1;
  6093. // }
  6094. // foreach (DataRow dr in dt.Rows)
  6095. // {
  6096. // //获取最新交办信息
  6097. // //string iszbdw = "0";
  6098. // string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  6099. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6100. // if (dtjb.Rows.Count > 0)
  6101. // {
  6102. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6103. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6104. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6105. // {
  6106. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6107. // }
  6108. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  6109. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  6110. // //if (deptinfo != null)
  6111. // //{
  6112. // // //if (did == User.F_DeptId) { iszbdw = "1"; }
  6113. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  6114. // //}
  6115. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6116. // //{
  6117. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  6118. // // string dns = string.Empty;
  6119. // // foreach (string strid in strids)
  6120. // // {
  6121. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  6122. // // if (dinfo != null)
  6123. // // {
  6124. // // if (string.IsNullOrEmpty(dns))
  6125. // // {
  6126. // // dns = dinfo.F_DeptName;//交办单位
  6127. // // }
  6128. // // else
  6129. // // {
  6130. // // dns += "," + dinfo.F_DeptName;//交办单位
  6131. // // }
  6132. // // }
  6133. // // }
  6134. // // dr["OtherDeptName"] = dns;
  6135. // //}
  6136. // }
  6137. // //获取最新通报信息
  6138. // string sqltb = "SELECT TOP 1 * FROM T_Bus_NoticeCriticism WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  6139. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  6140. // if (dttb.Rows.Count > 0)
  6141. // {
  6142. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  6143. // {
  6144. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  6145. // }
  6146. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  6147. // }
  6148. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6149. // {
  6150. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6151. // }
  6152. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6153. // {
  6154. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6155. // }
  6156. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6157. // btns.Add(ButtonGroup.query());
  6158. // dr["Buttons"] = btns;
  6159. // dr["IsReturnNotice"] = IsReturnNotice;
  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 GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  6177. {
  6178. DataTable dt = new DataTable();
  6179. //int userId = 8000;
  6180. string sql = " and F_IsDelete=0 ";
  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. int source = RequestString.GetInt("source", 0);
  6191. int keyid = RequestString.GetInt("keyid", 0);
  6192. int type = RequestString.GetInt("type", 0);
  6193. int bigtype = RequestString.GetInt("bigtype", 0);
  6194. int smalltype = RequestString.GetInt("smalltype", 0);
  6195. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6196. int deptid = RequestString.GetInt("deptid", 0);
  6197. string strpageindex = RequestString.GetQueryString("page");
  6198. int pageindex = 1;
  6199. string strpagesize = RequestString.GetQueryString("pagesize");
  6200. int pagesize = 10;
  6201. int jianhang = RequestString.GetInt("jianhang", 0);
  6202. int phoneType = RequestString.GetInt("phoneType", 0);
  6203. if (jianhang > 0)
  6204. {
  6205. if (jianhang == 3)
  6206. sql += " and F_InfoSource = '2501' ";
  6207. else
  6208. sql += " and F_InfoSource != '1'and F_InfoSource != '2501' ";
  6209. }
  6210. else
  6211. {
  6212. sql += " and F_InfoSource = '1' ";
  6213. if (phoneType == 1)
  6214. sql += " and F_PhoneType != '12345' ";
  6215. else if (phoneType == 2)
  6216. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  6217. "or F_PhoneType is null ) ";
  6218. }
  6219. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  6220. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  6221. {
  6222. sql += " and F_PhoneType = '" + incomingcall + "' ";
  6223. }
  6224. if (strworkid.Trim() != "" && strworkid != "undefined")
  6225. {
  6226. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6227. }
  6228. if (strname.Trim() != "" && strname != "undefined")
  6229. {
  6230. sql += " and F_CusName like '%" + strname + "%' ";
  6231. }
  6232. if (islike > 0)
  6233. {
  6234. if (strtel.Trim() != "" && strtel != "undefined")
  6235. {
  6236. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6237. }
  6238. }
  6239. else
  6240. {
  6241. if (strtel.Trim() != "" && strtel != "undefined")
  6242. {
  6243. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6244. }
  6245. }
  6246. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6247. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6248. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6249. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6250. {
  6251. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6252. }
  6253. if (Result.Trim() != "" && Result != "undefined")
  6254. {
  6255. sql += " and F_Result like '%" + Result + "%' ";
  6256. }
  6257. if (ComContent.Trim() != "" && ComContent != "undefined")
  6258. {
  6259. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6260. }
  6261. if (strkey.Trim() != "" && strkey != "undefined")
  6262. {
  6263. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6264. " or F_Result like '%" + strkey + "%' ) ";
  6265. }
  6266. #region 坐席&调度员
  6267. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  6268. {//坐席
  6269. var usercode = strusercode.Trim().Split(',');
  6270. var newusercode = "";
  6271. foreach (var item in usercode)
  6272. {
  6273. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6274. newusercode += "'" + item + "',";
  6275. }
  6276. newusercode = newusercode.Trim(',');
  6277. if (newusercode.Trim() != "" && newusercode != "undefined")
  6278. {
  6279. sql += " and F_CreateUser in (" + newusercode + ") ";
  6280. }
  6281. }*/
  6282. #region
  6283. if (usercode != null && usercode.Length > 0)
  6284. {
  6285. var newusercode = "";
  6286. //string codes = "";
  6287. for (int i = 0; i < usercode.Length; i++)
  6288. {
  6289. if (usercode[i] != "")
  6290. {
  6291. newusercode += "'" + usercode[i] + "',";
  6292. }
  6293. }
  6294. newusercode = newusercode.Trim(',');
  6295. if (newusercode.Trim() != "" && newusercode != "undefined")
  6296. {
  6297. sql += " and F_CreateUser in (" + newusercode + ") ";
  6298. }
  6299. }
  6300. if (ddusercode != null && ddusercode.Length > 0)
  6301. {
  6302. var newusercode = "";
  6303. //string codes = "";
  6304. for (int i = 0; i < ddusercode.Length; i++)
  6305. {
  6306. if (ddusercode[i] != "")
  6307. {
  6308. newusercode += "'" + ddusercode[i] + "',";
  6309. }
  6310. }
  6311. newusercode = newusercode.Trim(',');
  6312. if (newusercode.Trim() != "" && newusercode != "undefined")
  6313. {
  6314. sql += " and F_AssignUser in (" + newusercode + ") ";
  6315. }
  6316. }
  6317. #endregion
  6318. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6319. {//调度员
  6320. var ddusercode = strddusercode.Trim().Split(',');
  6321. var newusercode = "";
  6322. foreach (var item in ddusercode)
  6323. {
  6324. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6325. newusercode += "'" + item + "',";
  6326. }
  6327. newusercode = newusercode.Trim(',');
  6328. if (newusercode.Trim() != "" && newusercode != "undefined")
  6329. {
  6330. sql += " and F_AssignUser in(" + newusercode + ") ";
  6331. }
  6332. }*/
  6333. //if (strusercode.Trim() != "" && strusercode != "undefined")
  6334. //{
  6335. // sql += " and F_CreateUser = '" + strusercode + "' ";
  6336. //}
  6337. #endregion
  6338. if (source != 0)
  6339. {
  6340. sql += " and F_InfoSource = '" + source + "' ";
  6341. }
  6342. string sqlwheres = "";
  6343. if (keyid != 0)
  6344. {
  6345. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6346. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6347. // " or F_Key='" + keyid + "' )";
  6348. }
  6349. if (type != 0)
  6350. {
  6351. sql += " and F_InfoType = '" + type + "' ";
  6352. }
  6353. if (bigtype != 0)
  6354. {
  6355. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6356. }
  6357. if (smalltype != 0)
  6358. {
  6359. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6360. }
  6361. if (sourcearea != 0)
  6362. {
  6363. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6364. }
  6365. if (deptid != 0)
  6366. {
  6367. 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 ";
  6368. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6369. }
  6370. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6371. {
  6372. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6373. }
  6374. if (strendtime.Trim() != "" && strendtime != "undefined")
  6375. {
  6376. sql += " and F_CreateTime<='" + strendtime + "' ";
  6377. }
  6378. if (User.F_RoleCode == "WLDW")
  6379. {
  6380. 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 ";
  6381. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6382. }
  6383. else
  6384. {
  6385. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  6386. }
  6387. if (strpageindex.Trim() != "")
  6388. {
  6389. pageindex = Convert.ToInt32(strpageindex);
  6390. }
  6391. if (strpagesize.Trim() != "")
  6392. {
  6393. pagesize = Convert.ToInt32(strpagesize);
  6394. }
  6395. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6396. 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";
  6397. if (isdc > 0)
  6398. {
  6399. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6400. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6401. if (msg == "")
  6402. {
  6403. return Success("导出成功");
  6404. }
  6405. else
  6406. {
  6407. return Error("导出失败");
  6408. }
  6409. }
  6410. int recordCount = 0;
  6411. dt = BLL.PagerBLL.GetListPager(
  6412. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6413. "F_Id",
  6414. cols,
  6415. sql,
  6416. "ORDER BY F_CreateTime DESC",
  6417. pagesize,
  6418. pageindex,
  6419. true,
  6420. out recordCount);
  6421. #region 声音文件
  6422. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6423. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6424. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6425. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  6426. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  6427. dt.Columns.Add("IsReturnNotice", typeof(string));
  6428. dt.Columns.Add("FilePath", typeof(string));
  6429. dt.Columns.Add("Buttons", typeof(object));
  6430. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6431. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6432. int IsReturnNotice = 0;
  6433. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  6434. {
  6435. IsReturnNotice = 1;
  6436. }
  6437. foreach (DataRow dr in dt.Rows)
  6438. {
  6439. //获取最新交办信息
  6440. //string iszbdw = "0";
  6441. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6442. if (state > 1)
  6443. {
  6444. 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";
  6445. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6446. if (dtjb.Rows.Count > 0)
  6447. {
  6448. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6449. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6450. {
  6451. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6452. }
  6453. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6454. }
  6455. else
  6456. {
  6457. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6458. }
  6459. }
  6460. //获取最新通报信息
  6461. 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";
  6462. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  6463. if (dttb.Rows.Count > 0)
  6464. {
  6465. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  6466. {
  6467. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  6468. }
  6469. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  6470. }
  6471. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6472. {
  6473. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6474. }
  6475. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6476. {
  6477. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6478. }
  6479. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6480. btns.Add(ButtonGroup.query());
  6481. dr["Buttons"] = btns;
  6482. dr["IsReturnNotice"] = IsReturnNotice;
  6483. }
  6484. #endregion
  6485. var obj = new
  6486. {
  6487. state = "success",
  6488. message = "成功",
  6489. rows = dt,
  6490. total = recordCount
  6491. };
  6492. return Content(obj.ToJson());
  6493. }
  6494. /// <summary>
  6495. /// 督办列表
  6496. /// </summary>
  6497. /// <param name="isdc"></param>
  6498. /// <returns></returns>
  6499. //[Authority]
  6500. public ActionResult GetSupervList(int isdc = 0)
  6501. {
  6502. DataTable dt = new DataTable();
  6503. string sql = " and F_IsDelete=0";
  6504. #region 参数
  6505. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  6506. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  6507. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6508. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6509. int islike = RequestString.GetInt("islike", 1);
  6510. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6511. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6512. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6513. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6514. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6515. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6516. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6517. int source = RequestString.GetInt("source", 0);
  6518. int keyid = RequestString.GetInt("keyid", 0);
  6519. int type = RequestString.GetInt("type", 0);
  6520. int bigtype = RequestString.GetInt("bigtype", 0);
  6521. int smalltype = RequestString.GetInt("smalltype", 0);
  6522. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6523. int deptid = RequestString.GetInt("deptid", 0);
  6524. int deptlevel = RequestString.GetInt("deptlevel", 0);
  6525. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  6526. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  6527. int pageindex = RequestString.GetInt("page", 1);
  6528. int pagesize = RequestString.GetInt("pagesize", 10);
  6529. int business = RequestString.GetInt("business", 0);
  6530. int Supervisor = RequestString.GetInt("Supervisor", 0);
  6531. int isExamine = RequestString.GetInt("isExamine", 0);
  6532. string result = HttpUtility.UrlDecode(RequestString.GetQueryString("result"));//办理结果
  6533. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  6534. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  6535. string dbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstarttime"));
  6536. string dbstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstrendtime"));
  6537. string comtitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6538. string comContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6539. if (keyid != 0)
  6540. {
  6541. sql += "and a.F_Key in(select F_ValueId from dbo.GetValueId(" + keyid + ")) ";
  6542. }
  6543. if (comtitle.Trim() != "" && comtitle != "undefined")
  6544. {
  6545. sql += " and F_ComTitle like '%" + comtitle + "%' ";
  6546. }
  6547. if (comContent.Trim() != "" && comContent != "undefined")
  6548. {
  6549. sql += " and (F_ComContent like '%" + comContent + "%' " +
  6550. "or F_Content like '%" + comContent + "%' )";
  6551. }
  6552. if (ejdeptid > 0)
  6553. {
  6554. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  6555. }
  6556. if (result.Trim() != "" && result != "undefined")
  6557. {
  6558. sql += " and F_Result like'%" + result + "%' ";
  6559. }
  6560. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  6561. {
  6562. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  6563. {
  6564. sql += " and F_DealTime between '" + dealstarttime +
  6565. "' AND '" + dealstrendtime + "'";
  6566. }
  6567. else
  6568. {
  6569. sql += " and F_DealTime>='" + dealstarttime + "' ";
  6570. }
  6571. }
  6572. else
  6573. {
  6574. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  6575. {
  6576. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  6577. }
  6578. }
  6579. int iscb = RequestString.GetInt("iscb", -1);
  6580. if (business > 0)
  6581. sql += " and F_Business = '1'";
  6582. string Remind = "";
  6583. if (User.F_RoleCode == "DBZY")
  6584. {
  6585. if (Supervisor == 1)
  6586. {
  6587. if (strtab == "0")
  6588. Remind += "and Supervisor='" + User.F_UserCode + "'";
  6589. else
  6590. Remind += "and (Supervisor ='' or Supervisor is null " +
  6591. "or Supervisor='" + User.F_UserCode + "' )";
  6592. }
  6593. else if (Supervisor == 2)
  6594. {
  6595. Remind += "and (Supervisor ='' or Supervisor is null )";
  6596. }
  6597. }
  6598. else
  6599. {
  6600. if (Supervisor == 1)
  6601. {
  6602. if (strtab == "0")
  6603. Remind += "and Supervisor !='' and Supervisor is not null";
  6604. }
  6605. else if (Supervisor == 2)
  6606. {
  6607. Remind += "and (Supervisor ='' or Supervisor is null )";
  6608. }
  6609. }
  6610. if (dbstarttime.Trim() != "" && dbstarttime != "undefined")
  6611. {
  6612. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  6613. {
  6614. Remind += " and F_CreateTime between '" + dbstarttime +
  6615. "' AND '" + dbstrendtime + "'";
  6616. }
  6617. else
  6618. {
  6619. Remind += " and F_CreateTime>='" + dbstarttime + "' ";
  6620. }
  6621. }
  6622. else
  6623. {
  6624. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  6625. {
  6626. Remind += " and F_CreateTime<='" + dbstrendtime + "' ";
  6627. }
  6628. }
  6629. if (isExamine == 1)
  6630. {
  6631. Remind += "and F_IsExamine='1'";
  6632. }
  6633. else if (isExamine == 2)
  6634. {
  6635. Remind += "and (F_IsExamine !='1' or F_IsExamine is null) ";
  6636. }
  6637. #endregion
  6638. #region 筛选
  6639. //存在有督办记录的工单
  6640. var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0" + Remind;
  6641. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  6642. switch (strtab)
  6643. {
  6644. case "0"://督办-待办
  6645. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  6646. sql += "and F_WorkState !='9'";
  6647. break;
  6648. case "1"://督办-办理中
  6649. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState " +
  6650. "not in (6,9)";
  6651. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  6652. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  6653. if (strstate.Trim() != "" && strstate != "undefined")
  6654. {
  6655. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6656. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6657. else
  6658. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6659. }
  6660. if (iscb>-1)
  6661. {
  6662. if (iscb==0)
  6663. {
  6664. sql += " and F_WorkState != '8' ";
  6665. }
  6666. else
  6667. {
  6668. sql += " and F_WorkState = '8' ";
  6669. }
  6670. }
  6671. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  6672. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  6673. {
  6674. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  6675. }
  6676. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  6677. {
  6678. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  6679. }
  6680. sql += ")";
  6681. break;
  6682. case "2"://督办-超期未完结
  6683. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' and F_LimitTime<F_DealTime";
  6684. if (strstate.Trim() != "" && strstate != "undefined")
  6685. {
  6686. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6687. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6688. else
  6689. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6690. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6691. }
  6692. break;
  6693. case "3"://督办-已退回
  6694. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  6695. break;
  6696. case "4"://督办-已完结的工单
  6697. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State !=2 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  6698. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  6699. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  6700. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  6701. {
  6702. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  6703. }
  6704. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  6705. {
  6706. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  6707. }
  6708. break;
  6709. default:
  6710. sql += " and F_WorkOrderID in(" + sqlsup + " )";
  6711. break;
  6712. case "6"://督办-待审核回复
  6713. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_WorkState =6 and F_IsDelete=0 ";
  6714. break;
  6715. }
  6716. //int jianhang = RequestString.GetInt("jianhang", 0);
  6717. //int phoneType = RequestString.GetInt("phoneType", 0);
  6718. //if (jianhang > 0)
  6719. //{
  6720. // if (jianhang == 3)
  6721. // sql += " and F_InfoSource = '2501' ";
  6722. // else
  6723. // sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  6724. //}
  6725. //else
  6726. //{
  6727. // sql += " and F_InfoSource = '1' ";
  6728. // if (phoneType == 1)
  6729. // sql += " and F_PhoneType != '12345' ";
  6730. // else if (phoneType == 2)
  6731. // sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  6732. // "or F_PhoneType is null ) ";
  6733. //}
  6734. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  6735. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  6736. {
  6737. sql += " and F_PhoneType = '" + incomingcall + "' ";
  6738. }
  6739. if (strworkid.Trim() != "" && strworkid != "undefined")
  6740. {
  6741. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6742. }
  6743. if (strname.Trim() != "" && strname != "undefined")
  6744. {
  6745. sql += " and F_CusName like '%" + strname + "%' ";
  6746. }
  6747. if (islike > 0)
  6748. {
  6749. if (strtel.Trim() != "" && strtel != "undefined")
  6750. {
  6751. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6752. }
  6753. }
  6754. else
  6755. {
  6756. if (strtel.Trim() != "" && strtel != "undefined")
  6757. {
  6758. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6759. }
  6760. }
  6761. if (User.F_RoleCode == "WLDW")
  6762. {
  6763. deptid = User.F_DeptId;
  6764. }
  6765. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6766. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6767. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6768. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6769. {
  6770. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6771. }
  6772. if (Result.Trim() != "" && Result != "undefined")
  6773. {
  6774. sql += " and F_Result like '%" + Result + "%' ";
  6775. }
  6776. if (ComContent.Trim() != "" && ComContent != "undefined")
  6777. {
  6778. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6779. }
  6780. if (strkey.Trim() != "" && strkey != "undefined")
  6781. {
  6782. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6783. " or F_Result like '%" + strkey + "%' ) ";
  6784. }
  6785. #region 坐席&调度员
  6786. if (strusercode.Trim() != "" && strusercode != "undefined")
  6787. {//坐席
  6788. var usercode = strusercode.Trim().Split(',');
  6789. var newusercode = "";
  6790. foreach (var item in usercode)
  6791. {
  6792. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6793. newusercode += "'" + item + "',";
  6794. }
  6795. newusercode = newusercode.Trim(',');
  6796. if (newusercode.Trim() != "" && newusercode != "undefined")
  6797. {
  6798. sql += " and F_CreateUser in (" + newusercode + ") ";
  6799. }
  6800. }
  6801. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6802. {//调度员
  6803. var ddusercode = strddusercode.Trim().Split(',');
  6804. var newusercode = "";
  6805. foreach (var item in ddusercode)
  6806. {
  6807. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6808. newusercode += "'" + item + "',";
  6809. }
  6810. newusercode = newusercode.Trim(',');
  6811. if (newusercode.Trim() != "" && newusercode != "undefined")
  6812. {
  6813. sql += " and F_AssignUser in(" + newusercode + ") ";
  6814. }
  6815. }
  6816. #endregion
  6817. if (source != 0)
  6818. {
  6819. sql += " and F_InfoSource = '" + source + "' ";
  6820. }
  6821. string sqlwheres = ""; string value = "";
  6822. if (keyid != 0)
  6823. {
  6824. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6825. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  6826. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6827. // " or F_Key='" + keyid + "' )";
  6828. }
  6829. if (type != 0)
  6830. {
  6831. sql += " and F_InfoType = '" + type + "' ";
  6832. }
  6833. if (bigtype != 0)
  6834. {
  6835. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6836. }
  6837. if (smalltype != 0)
  6838. {
  6839. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6840. }
  6841. if (sourcearea != 0)
  6842. {
  6843. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6844. }
  6845. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6846. {
  6847. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6848. }
  6849. if (strendtime.Trim() != "" && strendtime != "undefined")
  6850. {
  6851. sql += " and F_CreateTime<='" + strendtime + "' ";
  6852. }
  6853. if (deptid != 0)
  6854. {
  6855. if (deptlevel == 0)
  6856. {
  6857. 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 ";
  6858. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6859. }
  6860. else
  6861. {
  6862. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  6863. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6864. }
  6865. }
  6866. if (deptid != 0)
  6867. {
  6868. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  6869. }
  6870. #endregion
  6871. #region 导出
  6872. 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";
  6873. if (isdc > 0)
  6874. {
  6875. var top = " "; var orderby = " order by F_CreateTime";
  6876. if (sql == " and F_IsDelete=0 ")
  6877. {
  6878. top = " top 1000 "; orderby += " desc ";
  6879. }
  6880. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  6881. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  6882. + " (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) 办理结果, "
  6883. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  6884. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  6885. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6886. if (msg == "")
  6887. {
  6888. return Success("导出成功");
  6889. }
  6890. else
  6891. {
  6892. return Error("导出失败");
  6893. }
  6894. }
  6895. #endregion
  6896. int recordCount = 0;
  6897. dt = BLL.PagerBLL.GetListPager(
  6898. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6899. "F_Id",
  6900. cols,
  6901. sql,
  6902. "ORDER BY F_CreateTime DESC",
  6903. pagesize,
  6904. pageindex,
  6905. true,
  6906. out recordCount);
  6907. #region 附加展示
  6908. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6909. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6910. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6911. dt.Columns.Add("OverState", typeof(string));//超时状态
  6912. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6913. dt.Columns.Add("GapTime", typeof(string));//时间差
  6914. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  6915. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  6916. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6917. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6918. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6919. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  6920. foreach (DataRow dr in dt.Rows)
  6921. {
  6922. //获取最新交办信息
  6923. string iszbdw = "0";
  6924. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6925. string ispd = "";
  6926. if (state > 1 && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DBGLY")
  6927. {
  6928. 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";
  6929. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6930. if (dtjb.Rows.Count > 0)
  6931. {
  6932. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6933. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6934. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6935. {
  6936. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6937. }
  6938. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6939. #region
  6940. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6941. {
  6942. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6943. dr["LimitTime"] = lt;
  6944. if (!string.IsNullOrWhiteSpace(lt))
  6945. {
  6946. var ltime = DateTime.Parse(lt);
  6947. if (ltime > DateTime.Now)
  6948. {
  6949. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  6950. var SYSJ = DbHelperSQL.GetSingle(SY);
  6951. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  6952. {
  6953. try
  6954. {
  6955. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6956. }
  6957. catch
  6958. {
  6959. }
  6960. }
  6961. }
  6962. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6963. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6964. if (tss < 0) { tss = -tss; }
  6965. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6966. if (ltime > DateTime.Now)
  6967. {
  6968. if (configcs != null)
  6969. {
  6970. int cs = Int32.Parse(configcs.F_ParamValue);
  6971. if (ts.TotalHours > cs)
  6972. {
  6973. dr["OverState"] = 1;
  6974. }
  6975. else
  6976. {
  6977. dr["OverState"] = 2;
  6978. }
  6979. }
  6980. dr["GapTime"] = "剩余" + gshsj;
  6981. }
  6982. else
  6983. {
  6984. dr["OverState"] = 3;
  6985. dr["GapTime"] = "超时" + gshsj;
  6986. }
  6987. }
  6988. }
  6989. if (state == (int)EnumWorkState.finish)
  6990. {
  6991. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6992. var dttime = DateTime.Now;
  6993. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6994. else
  6995. {
  6996. var DealTime = dr["F_CloseTime"].ToString();
  6997. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6998. }
  6999. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7000. dr["LimitTime"] = lt;
  7001. if (!string.IsNullOrWhiteSpace(lt))
  7002. {
  7003. var ltime = DateTime.Parse(lt);
  7004. TimeSpan ts = ltime.Subtract(dttime);
  7005. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7006. if (tss < 0) { tss = -tss; }
  7007. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7008. if (ltime < dttime)
  7009. {
  7010. dr["OverState"] = 3;
  7011. dr["GapTime"] = "超时" + gshsj;
  7012. }
  7013. }
  7014. }
  7015. #endregion
  7016. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  7017. }
  7018. else
  7019. {
  7020. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7021. }
  7022. }
  7023. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7024. {
  7025. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7026. }
  7027. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7028. {
  7029. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7030. }
  7031. #region 按钮
  7032. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7033. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  7034. btns.Clear();
  7035. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  7036. {
  7037. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  7038. #region 判断是否存在待督办
  7039. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  7040. if ( butt != null)
  7041. btns.Remove(butt);
  7042. var delay = btns.Find(c => c.key == ButtonGroup.delay().key);
  7043. if (delay != null)
  7044. btns.Remove(delay);
  7045. #endregion
  7046. }
  7047. else
  7048. {
  7049. switch (strtab)
  7050. {
  7051. case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  7052. if (Supervisor == 1)
  7053. {
  7054. btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  7055. btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  7056. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DBGLY")
  7057. btns.Add(ButtonGroup.forceend());
  7058. }
  7059. else if (Supervisor == 2)
  7060. {
  7061. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7062. btns.Add(ButtonGroup.Check());
  7063. }
  7064. break;
  7065. case "1"://督办-办理中 操作为:查看工单、短信催办
  7066. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7067. {
  7068. if (state ==3)
  7069. {
  7070. btns.Add(ButtonGroup.auditreback());
  7071. }
  7072. else
  7073. {
  7074. btns.Add(ButtonGroup.forceend());
  7075. }
  7076. }
  7077. break;
  7078. case "2"://督办-超期未完结 操作为:查看工单、短信催办
  7079. //if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY")
  7080. // btns.Add(ButtonGroup.forceend());
  7081. break;
  7082. case "3"://督办-已退回:查看
  7083. break;
  7084. case "4"://督办-已完结:查看
  7085. break;
  7086. case "6"://督办-办理中 操作为:查看工单、短信催办
  7087. if (isExamine!=1)
  7088. {
  7089. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7090. {
  7091. btns.Add(ButtonGroup.Approved());
  7092. btns.Add(ButtonGroup.Auditreject());
  7093. }
  7094. }
  7095. else
  7096. {
  7097. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7098. {
  7099. btns.Add(ButtonGroup.forceend());
  7100. }
  7101. }
  7102. break;
  7103. }
  7104. btns.Add(ButtonGroup.query());
  7105. }
  7106. dr["Buttons"] = btns;
  7107. #endregion
  7108. }
  7109. #endregion
  7110. var obj = new
  7111. {
  7112. state = "success",
  7113. message = "成功",
  7114. rows = dt,
  7115. total = recordCount
  7116. };
  7117. return Content(obj.ToJson());
  7118. }
  7119. public ActionResult GetNoticeListOLD(int isdc = 0)
  7120. {
  7121. DataTable dt = new DataTable();
  7122. string sql = " and F_IsDelete=0 ";
  7123. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7124. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7125. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7126. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7127. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7128. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7129. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7130. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7131. int source = RequestString.GetInt("source", 0);
  7132. int keyid = RequestString.GetInt("keyid", 0);
  7133. int type = RequestString.GetInt("type", 0);
  7134. int bigtype = RequestString.GetInt("bigtype", 0);
  7135. int smalltype = RequestString.GetInt("smalltype", 0);
  7136. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7137. int deptid = RequestString.GetInt("deptid", 0);
  7138. string strpageindex = RequestString.GetQueryString("page");
  7139. int pageindex = 1;
  7140. string strpagesize = RequestString.GetQueryString("pagesize");
  7141. int pagesize = 10;
  7142. int jianhang = RequestString.GetInt("jianhang", 0);
  7143. int phoneType = RequestString.GetInt("phoneType", 0);
  7144. int business = RequestString.GetInt("business", 0);
  7145. if (business > 0)
  7146. sql += " and F_Business = '1'";
  7147. if (jianhang > 0)
  7148. {
  7149. if (jianhang == 3)
  7150. sql += " and F_InfoSource = '2501' ";
  7151. else
  7152. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  7153. }
  7154. else
  7155. {
  7156. sql += " and F_InfoSource = '1' ";
  7157. if (phoneType == 1)
  7158. sql += " and F_PhoneType != '12345' ";
  7159. else if (phoneType == 2)
  7160. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  7161. "or F_PhoneType is null ) ";
  7162. }
  7163. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  7164. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  7165. {
  7166. sql += " and F_PhoneType = '" + incomingcall + "' ";
  7167. }
  7168. if (strworkid.Trim() != "" && strworkid != "undefined")
  7169. {
  7170. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7171. }
  7172. if (strname.Trim() != "" && strname != "undefined")
  7173. {
  7174. sql += " and F_CusName like '%" + strname + "%' ";
  7175. }
  7176. if (strtel.Trim() != "" && strtel != "undefined")
  7177. {
  7178. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7179. }
  7180. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7181. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7182. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7183. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7184. {
  7185. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7186. }
  7187. if (Result.Trim() != "" && Result != "undefined")
  7188. {
  7189. sql += " and F_Result like '%" + Result + "%' ";
  7190. }
  7191. if (ComContent.Trim() != "" && ComContent != "undefined")
  7192. {
  7193. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7194. }
  7195. if (strkey.Trim() != "" && strkey != "undefined")
  7196. {
  7197. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7198. " or F_Result like '%" + strkey + "%' ) ";
  7199. }
  7200. #region 坐席&调度员
  7201. if (strusercode.Trim() != "" && strusercode != "undefined")
  7202. {//坐席
  7203. var usercode = strusercode.Trim().Split(',');
  7204. var newusercode = "";
  7205. foreach (var item in usercode)
  7206. {
  7207. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7208. newusercode += "'" + item + "',";
  7209. }
  7210. newusercode = newusercode.Trim(',');
  7211. if (newusercode.Trim() != "" && newusercode != "undefined")
  7212. {
  7213. sql += " and F_CreateUser in (" + newusercode + ") ";
  7214. }
  7215. }
  7216. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7217. {//调度员
  7218. var ddusercode = strddusercode.Trim().Split(',');
  7219. var newusercode = "";
  7220. foreach (var item in ddusercode)
  7221. {
  7222. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7223. newusercode += "'" + item + "',";
  7224. }
  7225. newusercode = newusercode.Trim(',');
  7226. if (newusercode.Trim() != "" && newusercode != "undefined")
  7227. {
  7228. sql += " and F_AssignUser in(" + newusercode + ") ";
  7229. }
  7230. }
  7231. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7232. //{
  7233. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7234. //}
  7235. #endregion
  7236. if (source != 0)
  7237. {
  7238. sql += " and F_InfoSource = '" + source + "' ";
  7239. }
  7240. string sqlwheres = "";
  7241. if (keyid != 0)
  7242. {
  7243. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7244. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7245. // " or F_Key='" + keyid + "' )";
  7246. }
  7247. if (type != 0)
  7248. {
  7249. sql += " and F_InfoType = '" + type + "' ";
  7250. }
  7251. if (bigtype != 0)
  7252. {
  7253. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7254. }
  7255. if (smalltype != 0)
  7256. {
  7257. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7258. }
  7259. if (sourcearea != 0)
  7260. {
  7261. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7262. }
  7263. if (deptid != 0)
  7264. {
  7265. 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 ";
  7266. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7267. }
  7268. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7269. {
  7270. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7271. }
  7272. if (strendtime.Trim() != "" && strendtime != "undefined")
  7273. {
  7274. sql += " and F_CreateTime<='" + strendtime + "' ";
  7275. }
  7276. if (User.F_RoleCode == "WLDW")
  7277. {
  7278. 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 ";
  7279. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7280. }
  7281. else
  7282. {
  7283. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  7284. }
  7285. if (strpageindex.Trim() != "")
  7286. {
  7287. pageindex = Convert.ToInt32(strpageindex);
  7288. }
  7289. if (strpagesize.Trim() != "")
  7290. {
  7291. pagesize = Convert.ToInt32(strpagesize);
  7292. }
  7293. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  7294. 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";
  7295. if (isdc > 0)
  7296. {
  7297. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7298. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7299. if (msg == "")
  7300. {
  7301. return Success("导出成功");
  7302. }
  7303. else
  7304. {
  7305. return Error("导出失败");
  7306. }
  7307. }
  7308. int recordCount = 0;
  7309. dt = BLL.PagerBLL.GetListPager(
  7310. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7311. "F_Id",
  7312. cols,
  7313. sql,
  7314. "ORDER BY F_CreateTime DESC",
  7315. pagesize,
  7316. pageindex,
  7317. true,
  7318. out recordCount);
  7319. #region 声音文件
  7320. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7321. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7322. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7323. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  7324. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  7325. dt.Columns.Add("IsReturnNotice", typeof(string));
  7326. dt.Columns.Add("FilePath", typeof(string));
  7327. dt.Columns.Add("Buttons", typeof(object));
  7328. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7329. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7330. int IsReturnNotice = 0;
  7331. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  7332. {
  7333. IsReturnNotice = 1;
  7334. }
  7335. foreach (DataRow dr in dt.Rows)
  7336. {
  7337. //获取最新交办信息
  7338. //string iszbdw = "0";
  7339. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7340. if (state > 1)
  7341. {
  7342. 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";
  7343. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7344. if (dtjb.Rows.Count > 0)
  7345. {
  7346. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7347. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7348. {
  7349. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7350. }
  7351. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7352. }
  7353. else
  7354. {
  7355. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7356. }
  7357. }
  7358. //获取最新通报信息
  7359. 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";
  7360. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  7361. if (dttb.Rows.Count > 0)
  7362. {
  7363. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  7364. {
  7365. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  7366. }
  7367. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  7368. }
  7369. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7370. {
  7371. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7372. }
  7373. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7374. {
  7375. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7376. }
  7377. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7378. btns.Add(ButtonGroup.query());
  7379. dr["Buttons"] = btns;
  7380. dr["IsReturnNotice"] = IsReturnNotice;
  7381. }
  7382. #endregion
  7383. var obj = new
  7384. {
  7385. state = "success",
  7386. message = "成功",
  7387. rows = dt,
  7388. total = recordCount
  7389. };
  7390. return Content(obj.ToJson());
  7391. }
  7392. public ActionResult GetWorkorderSimp()
  7393. {
  7394. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7395. if (!string.IsNullOrEmpty(strworkorderid))
  7396. {
  7397. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  7398. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7399. var dt = DbHelperSQL.Query(sql).Tables[0];
  7400. if (dt.Rows.Count > 0)
  7401. {
  7402. return Success("成功", dt);
  7403. }
  7404. return Error("获取失败");
  7405. }
  7406. return Error("参数错误");
  7407. }
  7408. /// <summary>
  7409. /// 获取工单信息
  7410. /// </summary>
  7411. /// <returns></returns>
  7412. //[Authority]
  7413. public ActionResult GetWorkOrder()
  7414. {
  7415. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7416. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  7417. if (!string.IsNullOrEmpty(strworkorderid))
  7418. {
  7419. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  7420. + "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)"
  7421. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7422. var dt = DbHelperSQL.Query(sql).Tables[0];
  7423. if (dt.Rows.Count > 0)
  7424. {
  7425. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  7426. {
  7427. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7428. if (isp == "1")
  7429. {
  7430. dt.Rows[0]["F_CusName"] = "";
  7431. dt.Rows[0]["F_CusPhone"] = "";
  7432. dt.Rows[0]["F_ConPhone"] = "";
  7433. }
  7434. }
  7435. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7436. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7437. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7438. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7439. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  7440. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7441. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7442. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7443. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7444. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7445. + "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";
  7446. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7447. + "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";
  7448. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7449. + "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";
  7450. 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 "
  7451. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7452. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  7453. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7454. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7455. + "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";
  7456. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7457. + "from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7458. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7459. + "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";
  7460. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7461. + "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";
  7462. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7463. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  7464. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7465. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  7466. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7467. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7468. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  7469. #region 声音文件
  7470. dt.Columns.Add("FilePath", typeof(string));
  7471. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  7472. {
  7473. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7474. }
  7475. else if (dt.Rows[0]["F_CallRecordId"] != null)
  7476. {
  7477. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  7478. }
  7479. #endregion
  7480. #region 附件
  7481. if (configfj != null)
  7482. {
  7483. dt = BindFileData(dt, configfj.F_ParamValue);
  7484. }
  7485. #endregion
  7486. #region 监察信息
  7487. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  7488. if (configfj != null)
  7489. {
  7490. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  7491. }
  7492. #endregion
  7493. #region 批示信息
  7494. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  7495. if (configfj != null)
  7496. {
  7497. psdt = BindFileData(psdt, configfj.F_ParamValue);
  7498. }
  7499. #endregion
  7500. #region 指示信息
  7501. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  7502. if (configfj != null)
  7503. {
  7504. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  7505. }
  7506. #endregion
  7507. #region 回退信息
  7508. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  7509. #endregion
  7510. #region 督办信息
  7511. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  7512. if (configfj != null)
  7513. {
  7514. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  7515. }
  7516. #endregion
  7517. #region 交办信息
  7518. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7519. if (configfj != null)
  7520. {
  7521. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  7522. }
  7523. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  7524. if (configfj != null)
  7525. {
  7526. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  7527. }
  7528. #endregion
  7529. #region 退回信息
  7530. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  7531. #endregion
  7532. #region 延时信息
  7533. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  7534. if (configfj != null)
  7535. {
  7536. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  7537. }
  7538. #endregion
  7539. #region 办理情况
  7540. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  7541. if (configfj != null)
  7542. {
  7543. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  7544. }
  7545. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  7546. if (configfj != null)
  7547. {
  7548. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  7549. }
  7550. #endregion
  7551. #region 回访信息
  7552. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  7553. hfdt.Columns.Add("FilePath", typeof(string));
  7554. foreach (DataRow bldr in hfdt.Rows)
  7555. {
  7556. if (bldr["F_CallRecordId"] != null && config != null)
  7557. {
  7558. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7559. }
  7560. }
  7561. #endregion
  7562. #region 市民催单
  7563. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  7564. cbdt.Columns.Add("FilePath", typeof(string));
  7565. foreach (DataRow bldr in cbdt.Rows)
  7566. {
  7567. if (bldr["F_CallRecordId"] != null && config != null)
  7568. {
  7569. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7570. }
  7571. }
  7572. #endregion
  7573. #region 市民评议
  7574. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  7575. #endregion
  7576. #region 办理过程
  7577. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  7578. gcdt.Columns.Add("File", typeof(object));
  7579. gcdt.Columns.Add("FilePath", typeof(string));
  7580. if (configfj != null || configly != null || config != null)
  7581. {
  7582. foreach (DataRow bldr in gcdt.Rows)
  7583. {
  7584. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  7585. {
  7586. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  7587. }
  7588. if (bldr["F_LeaveRecordId"] != null && configly != null)
  7589. {
  7590. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7591. }
  7592. else if (bldr["F_CallRecordId"] != null && config != null)
  7593. {
  7594. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7595. }
  7596. }
  7597. }
  7598. #endregion
  7599. #region 操作按钮
  7600. var btns = new List<ButtonGroup.button>();
  7601. if (jbdt.Rows.Count > 0)
  7602. {
  7603. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  7604. string ispd = jbzx["F_IsNext"].ToString();
  7605. string iszbdw = "0";
  7606. string fmd = jbzx["F_MainDeptId"].ToString();
  7607. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  7608. if (fmd == User.F_DeptId.ToString())
  7609. { iszbdw = "1"; }
  7610. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  7611. {
  7612. iszbdw = "2";
  7613. }
  7614. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  7615. {
  7616. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  7617. }
  7618. }
  7619. else
  7620. {
  7621. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  7622. }
  7623. #region 判断是否存在待督办
  7624. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  7625. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  7626. if (recount > 0)
  7627. {
  7628. if (butt != null)
  7629. btns.Remove(butt);
  7630. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  7631. {
  7632. btns.Add(ButtonGroup.oversee());
  7633. btns.Add(ButtonGroup.turnnosee());
  7634. }
  7635. }
  7636. if (btns == null)
  7637. {
  7638. btns.Add(ButtonGroup.query());
  7639. }
  7640. else
  7641. {
  7642. if (btns.Count == 0)
  7643. btns.Add(ButtonGroup.query());
  7644. }
  7645. #endregion
  7646. #endregion
  7647. #region 其他权限
  7648. int issend = 0;
  7649. //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"))
  7650. //{
  7651. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  7652. // {
  7653. // issend = 1;
  7654. // }
  7655. //}
  7656. int isnotice = 0;
  7657. 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 == "DDZG"))
  7658. {
  7659. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  7660. {
  7661. isnotice = 1;
  7662. }
  7663. }
  7664. int isedit = 0;
  7665. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  7666. //{
  7667. // isedit = 1;
  7668. //}
  7669. #endregion
  7670. var obj = new
  7671. {
  7672. data = dt,
  7673. jcdata = jcdt,
  7674. psdata = psdt,
  7675. zsdata = zsdt,
  7676. htdata = htdt,
  7677. dbdata = dbdt,
  7678. jbdata = jbdt,
  7679. ejjbdata = ejjbdt,
  7680. thdata = thdt,
  7681. ysdata = ysdt,
  7682. bldata = bldt,
  7683. ejbldata = ejbldt,
  7684. hfdata = hfdt,
  7685. cbdata = cbdt,
  7686. gcdata = gcdt,
  7687. issend = issend,
  7688. isedit = isedit,
  7689. isnotice = isnotice,
  7690. btndata = btns,
  7691. pydt
  7692. };
  7693. return Success("获取成功", obj);
  7694. }
  7695. else
  7696. {
  7697. return Error("获取失败");
  7698. }
  7699. }
  7700. else
  7701. {
  7702. return Error("参数传输失败");
  7703. }
  7704. }
  7705. /// <summary>
  7706. /// 导出word
  7707. /// </summary>
  7708. /// <returns></returns>
  7709. //[Authority]
  7710. public ActionResult ExportWorkOrder()
  7711. {
  7712. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7713. if (!string.IsNullOrEmpty(strworkorderid))
  7714. {
  7715. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  7716. + "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)"
  7717. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7718. var dt = DbHelperSQL.Query(sql).Tables[0];
  7719. if (dt.Rows.Count > 0)
  7720. {
  7721. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  7722. {
  7723. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7724. if (isp == "1")
  7725. {
  7726. dt.Rows[0]["F_CusName"] = "";
  7727. dt.Rows[0]["F_CusPhone"] = "";
  7728. dt.Rows[0]["F_ConPhone"] = "";
  7729. }
  7730. }
  7731. 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 "
  7732. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  7733. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7734. //ExportWord np = new ExportWord();
  7735. //np.CreateWord(dt ,jbdt,User .F_UserCode );
  7736. //string url = dt.Rows[0]["F_WorkOrderId"].ToString();
  7737. //url = "http://192.168.8.9:1042//Upload/Word/工单" + url + ".doc";
  7738. //return Success(url);
  7739. var aw = new AsposeWord();
  7740. aw.OpenWithTemplate(Server.MapPath("/Upload/Word/热线工单模版.doc"));
  7741. aw.Builder();
  7742. aw.CreateAssignWord(dt, jbdt, User.F_UserCode);
  7743. var bt = aw.ExportAs();
  7744. Response.AppendHeader("Access-Control-Expose-Headers", "Content-Disposition");
  7745. return File(bt, "application/msword", "工单" + strworkorderid + ".doc");
  7746. }
  7747. else
  7748. {
  7749. return Error("获取失败");
  7750. }
  7751. }
  7752. else
  7753. {
  7754. return Error("参数传输失败");
  7755. }
  7756. }
  7757. /// <summary>
  7758. /// 获取工单信息
  7759. /// </summary>
  7760. /// <returns></returns>
  7761. //[Authority]
  7762. public ActionResult GetWorkOrderNew()
  7763. {
  7764. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7765. int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  7766. if (!string.IsNullOrEmpty(strworkorderid))
  7767. {
  7768. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7769. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7770. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7771. switch (type)
  7772. {
  7773. case 0:
  7774. #region 基本信息
  7775. 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 ,F_DeptIdIsSms = (select F_IsSms from T_Sys_Department WITH(NOLOCK) where F_DeptId =a.F_MainDeptId) from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7776. var dt = DbHelperSQL.Query(sql).Tables[0];
  7777. if (dt.Rows.Count > 0)
  7778. {
  7779. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  7780. {
  7781. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7782. if (isp == "1")
  7783. {
  7784. dt.Rows[0]["F_CusName"] = "";
  7785. dt.Rows[0]["F_CusPhone"] = "";
  7786. dt.Rows[0]["F_ConPhone"] = "";
  7787. }
  7788. }
  7789. #region 声音文件
  7790. dt.Columns.Add("FilePath", typeof(string));
  7791. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  7792. {
  7793. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7794. }
  7795. else if (dt.Rows[0]["F_CallRecordId"] != null)
  7796. {
  7797. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  7798. }
  7799. #endregion
  7800. #region 附件
  7801. if (configfj != null)
  7802. {
  7803. dt = BindFileData(dt, configfj.F_ParamValue);
  7804. }
  7805. #endregion
  7806. #region 操作按钮
  7807. var btns = new List<ButtonGroup.button>();
  7808. string jbsql1 = "select top 1 * from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7809. var jbdt1 = DbHelperSQL.Query(jbsql1).Tables[0];
  7810. if (jbdt1.Rows.Count > 0)
  7811. {
  7812. var jbzx = jbdt1.Rows[0];
  7813. string ispd = jbzx["F_IsNext"].ToString();
  7814. string iszbdw = "0";
  7815. string fmd = jbzx["F_MainDeptId"].ToString();
  7816. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  7817. if (fmd == User.F_DeptId.ToString())
  7818. { iszbdw = "1"; }
  7819. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  7820. {
  7821. iszbdw = "2";
  7822. }
  7823. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  7824. {
  7825. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  7826. }
  7827. }
  7828. else
  7829. {
  7830. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  7831. }
  7832. #region 判断是否存在待督办
  7833. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  7834. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  7835. if (recount > 0)
  7836. {
  7837. if (butt != null)
  7838. btns.Remove(butt);
  7839. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  7840. {
  7841. btns.Add(ButtonGroup.oversee());
  7842. btns.Add(ButtonGroup.turnnosee());
  7843. }
  7844. }
  7845. if (btns == null)
  7846. {
  7847. btns.Add(ButtonGroup.query());
  7848. }
  7849. else
  7850. {
  7851. if (btns.Count == 0)
  7852. btns.Add(ButtonGroup.query());
  7853. }
  7854. #endregion
  7855. #endregion
  7856. #region 其他权限
  7857. int issend = 0;
  7858. //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"))
  7859. //{
  7860. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  7861. // {
  7862. // issend = 1;
  7863. // }
  7864. //}
  7865. int isnotice = 0;
  7866. 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 == "DDZG"))
  7867. {
  7868. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  7869. {
  7870. isnotice = 1;
  7871. }
  7872. }
  7873. int isedit = 0;
  7874. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  7875. //{
  7876. // isedit = 1;
  7877. //}
  7878. #endregion
  7879. var obj = new
  7880. {
  7881. data = dt,
  7882. issend,
  7883. isedit,
  7884. isnotice,
  7885. btndata = btns
  7886. };
  7887. return Success("获取成功", obj);
  7888. }
  7889. else
  7890. {
  7891. return Error("获取失败");
  7892. }
  7893. #endregion
  7894. case 1:
  7895. #region 交办信息
  7896. 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";
  7897. 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";
  7898. 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";
  7899. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7900. if (configfj != null)
  7901. {
  7902. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  7903. }
  7904. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  7905. if (configfj != null)
  7906. {
  7907. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  7908. }
  7909. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  7910. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  7911. {
  7912. BindFileData(thdt, configfj.F_ParamValue);
  7913. }
  7914. var obj1 = new
  7915. {
  7916. jbdata = jbdt,
  7917. ejjbdata = ejjbdt,
  7918. thdata = thdt
  7919. };
  7920. return Success("获取成功", obj1);
  7921. #endregion
  7922. case 2:
  7923. #region 指示信息
  7924. 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";
  7925. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  7926. if (configfj != null)
  7927. {
  7928. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  7929. }
  7930. return Success("获取成功", zsdt);
  7931. #endregion
  7932. case 3:
  7933. #region 回退信息
  7934. 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";
  7935. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  7936. return Success("获取成功", htdt);
  7937. #endregion
  7938. case 4:
  7939. #region 办理情况
  7940. string 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";
  7941. string 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";
  7942. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  7943. if (configfj != null)
  7944. {
  7945. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  7946. }
  7947. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  7948. if (configfj != null)
  7949. {
  7950. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  7951. }
  7952. var obj5 = new
  7953. {
  7954. bldata = bldt,
  7955. ejbldata = ejbldt
  7956. };
  7957. return Success("获取成功", obj5);
  7958. #endregion
  7959. case 5:
  7960. #region 延时信息
  7961. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7962. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  7963. if (configfj != null)
  7964. {
  7965. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  7966. }
  7967. return Success("获取成功", ysdt);
  7968. #endregion
  7969. case 6:
  7970. #region 回访信息
  7971. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  7972. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  7973. hfdt.Columns.Add("FilePath", typeof(string));
  7974. foreach (DataRow bldr in hfdt.Rows)
  7975. {
  7976. if (bldr["F_CallRecordId"] != null && config != null)
  7977. {
  7978. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7979. }
  7980. }
  7981. return Success("获取成功", hfdt);
  7982. #endregion
  7983. case 7:
  7984. #region 督办信息
  7985. 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";
  7986. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  7987. if (configfj != null)
  7988. {
  7989. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  7990. }
  7991. return Success("获取成功", dbdt);
  7992. #endregion
  7993. case 8:
  7994. #region 市民催单
  7995. 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";
  7996. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  7997. cbdt.Columns.Add("FilePath", typeof(string));
  7998. foreach (DataRow bldr in cbdt.Rows)
  7999. {
  8000. if (bldr["F_CallRecordId"] != null && config != null)
  8001. {
  8002. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8003. }
  8004. }
  8005. return Success("获取成功", cbdt);
  8006. #endregion
  8007. case 9:
  8008. #region 办理过程
  8009. 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 ";
  8010. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  8011. gcdt.Columns.Add("File", typeof(object));
  8012. gcdt.Columns.Add("FilePath", typeof(string));
  8013. if (configfj != null || configly != null || config != null)
  8014. {
  8015. foreach (DataRow bldr in gcdt.Rows)
  8016. {
  8017. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  8018. {
  8019. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  8020. }
  8021. if (bldr["F_LeaveRecordId"] != null && configly != null)
  8022. {
  8023. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  8024. }
  8025. else if (bldr["F_CallRecordId"] != null && config != null)
  8026. {
  8027. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8028. }
  8029. }
  8030. }
  8031. return Success("获取成功", gcdt);
  8032. #endregion
  8033. case 10:
  8034. #region 市民评议
  8035. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  8036. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  8037. return Success("获取成功", pydt);
  8038. #endregion
  8039. case 11:
  8040. #region 监察信息
  8041. 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";
  8042. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  8043. if (configfj != null)
  8044. {
  8045. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  8046. }
  8047. return Success("获取成功", jcdt);
  8048. #endregion
  8049. case 12:
  8050. #region 批示信息
  8051. 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";
  8052. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  8053. if (configfj != null)
  8054. {
  8055. psdt = BindFileData(psdt, configfj.F_ParamValue);
  8056. }
  8057. return Success("获取成功", psdt);
  8058. #endregion
  8059. }
  8060. return Error("获取失败");
  8061. }
  8062. else
  8063. {
  8064. return Error("参数传输失败");
  8065. }
  8066. }
  8067. /// <summary>
  8068. /// 获取草稿信息
  8069. /// </summary>
  8070. /// <returns></returns>
  8071. //[Authority]
  8072. public ActionResult GetDraftInfo()
  8073. {
  8074. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8075. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  8076. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  8077. {
  8078. string sql = string.Empty;
  8079. switch (type)
  8080. {
  8081. case 1:
  8082. 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;
  8083. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  8084. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  8085. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  8086. }
  8087. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + User.F_UserCode + " order by F_CreateTime desc";
  8088. var dt = DbHelperSQL.Query(sql).Tables[0];
  8089. if (dt.Rows.Count > 0)
  8090. {
  8091. #region 附件
  8092. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8093. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  8094. {
  8095. BindFileData(dt, configfj.F_ParamValue);
  8096. }
  8097. #endregion
  8098. }
  8099. return Success("获取成功", dt);
  8100. }
  8101. else
  8102. {
  8103. return Error("参数传输失败");
  8104. }
  8105. }
  8106. /// <summary>
  8107. /// 获取审核信息
  8108. /// </summary>
  8109. /// <returns></returns>
  8110. //[Authority]
  8111. public ActionResult GetAuditInfo()
  8112. {
  8113. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8114. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  8115. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  8116. {
  8117. string sql = string.Empty;
  8118. switch (type)
  8119. {
  8120. 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 "; break;
  8121. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  8122. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where "; break;
  8123. }
  8124. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  8125. var dt = DbHelperSQL.Query(sql).Tables[0];
  8126. if (dt.Rows.Count > 0)
  8127. {
  8128. #region 附件
  8129. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8130. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  8131. {
  8132. BindFileData(dt, configfj.F_ParamValue);
  8133. }
  8134. #endregion
  8135. }
  8136. return Success("获取成功", dt);
  8137. }
  8138. else
  8139. {
  8140. return Error("参数传输失败");
  8141. }
  8142. }
  8143. /// <summary>
  8144. /// 获取所有交办单位
  8145. /// </summary>
  8146. /// <returns></returns>
  8147. //[Authority]
  8148. public ActionResult GetAllAssignDept()
  8149. {
  8150. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8151. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  8152. if (modelT_Bus_WorkOrder != null)
  8153. {
  8154. string ids = string.Empty;
  8155. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  8156. foreach (var assign in Assigns)
  8157. {
  8158. if (string.IsNullOrEmpty(ids))
  8159. {
  8160. ids = assign.F_MainDeptId.Value.ToString();
  8161. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  8162. {
  8163. ids += "," + assign.F_OtherDeptIds;
  8164. }
  8165. }
  8166. else
  8167. {
  8168. ids += "," + assign.F_MainDeptId.Value.ToString();
  8169. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  8170. {
  8171. ids += "," + assign.F_OtherDeptIds;
  8172. }
  8173. }
  8174. }
  8175. if (string.IsNullOrEmpty(ids))
  8176. {
  8177. ids = "0";
  8178. }
  8179. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  8180. return Success("获取成功", dt);
  8181. }
  8182. else
  8183. {
  8184. return Error("操作失败");
  8185. }
  8186. }
  8187. /// <summary>
  8188. /// 获取二级单位处理信息
  8189. /// </summary>
  8190. /// <returns></returns>
  8191. //[Authority]
  8192. public ActionResult GetSecondDealInfo()
  8193. {
  8194. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8195. if (!string.IsNullOrEmpty(strworkorderid))
  8196. {
  8197. //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, ";
  8198. //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, ";
  8199. //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, ";
  8200. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  8201. //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";
  8202. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  8203. //var dt = DbHelperSQL.Query(sql).Tables[0];
  8204. 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";
  8205. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  8206. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  8207. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8208. if (configfj != null)
  8209. {
  8210. bldt = BindFileData(bldt, configfj.F_ParamValue);
  8211. }
  8212. var obj = new
  8213. {
  8214. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  8215. fkinfo = bldt
  8216. };
  8217. return Success("获取成功", obj);
  8218. }
  8219. else
  8220. {
  8221. return Error("参数传输失败");
  8222. }
  8223. }
  8224. /// <summary>
  8225. /// 获取二级单位最新处理信息
  8226. /// </summary>
  8227. /// <returns></returns>
  8228. //[Authority]
  8229. public ActionResult GetNewSecondDealInfo()
  8230. {
  8231. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8232. if (!string.IsNullOrEmpty(strworkorderid))
  8233. {
  8234. 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";
  8235. var bldt = DbHelperSQL.Query(sql).Tables[0];
  8236. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8237. if (configfj != null)
  8238. {
  8239. bldt = BindFileData(bldt, configfj.F_ParamValue);
  8240. }
  8241. return Success("获取成功", bldt);
  8242. }
  8243. else
  8244. {
  8245. return Error("参数传输失败");
  8246. }
  8247. }
  8248. /// <summary>
  8249. /// 修改工单内容和处理结果
  8250. /// </summary>
  8251. /// <returns></returns>
  8252. //[Authority]
  8253. public ActionResult EditResult()
  8254. {
  8255. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  8256. {
  8257. string workorderid = RequestString.GetFormString("workorderid");
  8258. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8259. string result = RequestString.GetFormString("result");
  8260. string content = RequestString.GetFormString("content");
  8261. if (modelT_Bus_WorkOrder != null)
  8262. {
  8263. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8264. if (!string.IsNullOrEmpty(content))
  8265. {
  8266. string message = "";
  8267. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Content))
  8268. message = modelT_Bus_WorkOrder.F_Content;
  8269. else
  8270. message = modelT_Bus_WorkOrder.F_ComTitle;
  8271. if (content != message)
  8272. {
  8273. modelT_Bus_WorkOrder.F_Content = content;
  8274. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8275. oper.F_WorkOrderId = workorderid;
  8276. oper.F_AssignedId = 0;
  8277. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8278. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  8279. oper.F_CreateUser = User.F_UserCode;
  8280. oper.F_CreateTime = DateTime.Now;
  8281. oper.F_IsDelete = 0;
  8282. operBLL.Add(oper);
  8283. }
  8284. }
  8285. if (!string.IsNullOrEmpty(result))
  8286. {
  8287. string message = "";
  8288. message = modelT_Bus_WorkOrder.F_Result;
  8289. if (result != message)
  8290. {
  8291. modelT_Bus_WorkOrder.F_Result = result;
  8292. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8293. oper.F_WorkOrderId = workorderid;
  8294. oper.F_AssignedId = 0;
  8295. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8296. oper.F_Message = userinfo + " 修改了办理结果,原结果:" + message;
  8297. oper.F_CreateUser = User.F_UserCode;
  8298. oper.F_CreateTime = DateTime.Now;
  8299. oper.F_IsDelete = 0;
  8300. operBLL.Add(oper);
  8301. }
  8302. }
  8303. bool n = new BLL.T_Bus_WorkOrder().Update(modelT_Bus_WorkOrder);
  8304. if (n)
  8305. return Success("操作成功");
  8306. else
  8307. return Error("修改失败");
  8308. }
  8309. else
  8310. {
  8311. return Error("操作失败");
  8312. }
  8313. }
  8314. else
  8315. {
  8316. return Error("权限不足");
  8317. }
  8318. }
  8319. /// <summary>
  8320. /// 修改下级单位处理内容
  8321. /// </summary>
  8322. /// <returns></returns>
  8323. //[Authority]
  8324. public ActionResult EditDealWorkOrder()
  8325. {
  8326. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8327. {
  8328. string workorderid = RequestString.GetFormString("workorderid");
  8329. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8330. string result = RequestString.GetFormString("result");
  8331. string flies = RequestString.GetFormString("flies");
  8332. var modelT_Bus_Feedback_Nexts = new BLL.T_Bus_Feedback_Next()
  8333. .GetModelList("F_WorkOrderId='" + workorderid + "' and F_IsDelete = 0 order by F_CreateTime desc");
  8334. if (modelT_Bus_Feedback_Nexts != null && modelT_Bus_WorkOrder != null && modelT_Bus_Feedback_Nexts.Count > 0)
  8335. {
  8336. string message = modelT_Bus_Feedback_Nexts[0].F_Result;
  8337. modelT_Bus_Feedback_Nexts[0].F_Result = result;//反馈内容
  8338. modelT_Bus_Feedback_Nexts[0].F_File = flies;
  8339. bool n = new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Nexts[0]);
  8340. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8341. oper.F_WorkOrderId = workorderid;
  8342. oper.F_AssignedId = modelT_Bus_Feedback_Nexts[0].F_Id;
  8343. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8344. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8345. oper.F_Message = userinfo + " 修改了下级单位办理内容,原内容:" + message;
  8346. oper.F_CreateUser = User.F_UserCode;
  8347. oper.F_CreateTime = DateTime.Now;
  8348. oper.F_IsDelete = 0;
  8349. operBLL.Add(oper);
  8350. return Success("操作成功");
  8351. }
  8352. else
  8353. {
  8354. return Error("操作失败");
  8355. }
  8356. }
  8357. else
  8358. {
  8359. return Error("权限不足");
  8360. }
  8361. }
  8362. /// <summary>
  8363. /// 查看回访信息
  8364. /// </summary>
  8365. /// <returns></returns>
  8366. //[Authority]
  8367. public ActionResult GetVisitInfo()
  8368. {
  8369. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8370. if (!string.IsNullOrEmpty(strworkorderid))
  8371. {
  8372. string sqlvisit = "select * from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsSatisfie=0 order by F_CreateTime";
  8373. 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";
  8374. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  8375. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  8376. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8377. dtvisit.Columns.Add("FilePath", typeof(string));
  8378. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  8379. if (dtvisit.Rows.Count > 0)
  8380. {
  8381. foreach (DataRow bldr in dtvisit.Rows)
  8382. {
  8383. #region 是否可勾选
  8384. var IsShowCheck = 0;
  8385. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  8386. if (drass.Length > 0)
  8387. {
  8388. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  8389. if (ass > 0)
  8390. {
  8391. if (ass == User.F_DeptId)
  8392. IsShowCheck = 1;
  8393. }
  8394. }
  8395. bldr["IsShowCheck"] = IsShowCheck;
  8396. #endregion
  8397. #region 录音
  8398. if (bldr["F_CallRecordId"] != null && config != null)
  8399. {
  8400. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8401. }
  8402. #endregion
  8403. }
  8404. }
  8405. return Success("获取成功", dtvisit);
  8406. }
  8407. else
  8408. {
  8409. return Error("参数传输失败");
  8410. }
  8411. }
  8412. ///// <summary>
  8413. ///// 督办列表
  8414. ///// </summary>
  8415. ///// <param name="isdc"></param>
  8416. ///// <returns></returns>
  8417. ////[Authority]
  8418. //public ActionResult GetSupervList(int isdc = 0)
  8419. //{
  8420. // DataTable dt = new DataTable();
  8421. //
  8422. //
  8423. // string sql = " and F_IsDelete=0";
  8424. // #region 参数
  8425. // //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  8426. // string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  8427. // string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  8428. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  8429. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  8430. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  8431. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  8432. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  8433. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  8434. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  8435. // string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  8436. // int source = RequestString.GetInt("source", 0);
  8437. // int keyid = RequestString.GetInt("keyid", 0);
  8438. // int type = RequestString.GetInt("type", 0);
  8439. // int bigtype = RequestString.GetInt("bigtype", 0);
  8440. // int smalltype = RequestString.GetInt("smalltype", 0);
  8441. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  8442. // int deptid = RequestString.GetInt("deptid", 0);
  8443. // int deptlevel = RequestString.GetInt("deptlevel", 0);
  8444. // int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  8445. // int pageindex = RequestString.GetInt("page", 1);
  8446. // int pagesize = RequestString.GetInt("pagesize", 10);
  8447. // #endregion
  8448. // #region 筛选
  8449. // //存在有督办记录的工单
  8450. // var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0";
  8451. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  8452. // switch (strtab)
  8453. // {
  8454. // case "0"://督办-待办
  8455. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  8456. // break;
  8457. // case "1"://督办-办理中
  8458. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' ";
  8459. // string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  8460. // string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  8461. // if (strstate.Trim() != "" && strstate != "undefined")
  8462. // {
  8463. // if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  8464. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  8465. // else
  8466. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8467. // }
  8468. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  8469. // if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  8470. // {
  8471. // sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  8472. // }
  8473. // if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  8474. // {
  8475. // sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  8476. // }
  8477. // sql += ")";
  8478. // break;
  8479. // case "2"://督办-超期未完结
  8480. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' and F_LimitTime<F_DealTime";
  8481. // if (strstate.Trim() != "" && strstate != "undefined")
  8482. // {
  8483. // if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  8484. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  8485. // else
  8486. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8487. // //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  8488. // }
  8489. // break;
  8490. // case "3"://督办-已退回
  8491. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  8492. // break;
  8493. // case "4"://督办-已完结的工单
  8494. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  8495. // string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  8496. // string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  8497. // if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  8498. // {
  8499. // sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  8500. // }
  8501. // if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  8502. // {
  8503. // sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  8504. // }
  8505. // break;
  8506. // default:
  8507. // sql += " and F_WorkOrderID in(" + sqlsup + " )";
  8508. // break;
  8509. // }
  8510. // if (strworkid.Trim() != "" && strworkid != "undefined")
  8511. // {
  8512. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  8513. // }
  8514. // if (strname.Trim() != "" && strname != "undefined")
  8515. // {
  8516. // sql += " and F_CusName like '%" + strname + "%' ";
  8517. // }
  8518. // if (strtel.Trim() != "" && strtel != "undefined")
  8519. // {
  8520. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  8521. // }
  8522. // if (strkey.Trim() != "" && strkey != "undefined")
  8523. // {
  8524. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  8525. // }
  8526. // #region 坐席&调度员
  8527. // if (strusercode.Trim() != "" && strusercode != "undefined")
  8528. // {//坐席
  8529. // var usercode = strusercode.Trim().Split(',');
  8530. // var newusercode = "";
  8531. // foreach (var item in usercode)
  8532. // {
  8533. // if (!string.IsNullOrWhiteSpace(item.Trim()))
  8534. // newusercode += "'" + item + "',";
  8535. // }
  8536. // newusercode = newusercode.Trim(',');
  8537. // if (newusercode.Trim() != "" && newusercode != "undefined")
  8538. // {
  8539. // sql += " and F_CreateUser in (" + newusercode + ") ";
  8540. // }
  8541. // }
  8542. // if (strddusercode.Trim() != "" && strddusercode != "undefined")
  8543. // {//调度员
  8544. // var ddusercode = strddusercode.Trim().Split(',');
  8545. // var newusercode = "";
  8546. // foreach (var item in ddusercode)
  8547. // {
  8548. // if (!string.IsNullOrWhiteSpace(item.Trim()))
  8549. // newusercode += "'" + item + "',";
  8550. // }
  8551. // newusercode = newusercode.Trim(',');
  8552. // if (newusercode.Trim() != "" && newusercode != "undefined")
  8553. // {
  8554. // sql += " and F_AssignUser in(" + newusercode + ") ";
  8555. // }
  8556. // }
  8557. // #endregion
  8558. // if (source != 0)
  8559. // {
  8560. // sql += " and F_InfoSource = '" + source + "' ";
  8561. // }
  8562. // if (keyid != 0)
  8563. // {
  8564. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  8565. // }
  8566. // if (type != 0)
  8567. // {
  8568. // sql += " and F_InfoType = '" + type + "' ";
  8569. // }
  8570. // if (bigtype != 0)
  8571. // {
  8572. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  8573. // }
  8574. // if (smalltype != 0)
  8575. // {
  8576. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  8577. // }
  8578. // if (sourcearea != 0)
  8579. // {
  8580. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  8581. // }
  8582. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  8583. // {
  8584. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  8585. // }
  8586. // if (strendtime.Trim() != "" && strendtime != "undefined")
  8587. // {
  8588. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  8589. // }
  8590. // if (deptid != 0)
  8591. // {
  8592. // if (deptlevel == 0)
  8593. // {
  8594. // 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 ";
  8595. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8596. // }
  8597. // else
  8598. // {
  8599. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  8600. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  8601. // }
  8602. // }
  8603. // if (deptid != 0)
  8604. // {
  8605. // sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  8606. // }
  8607. // #endregion
  8608. // #region 导出
  8609. // 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";
  8610. // if (isdc > 0)
  8611. // {
  8612. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  8613. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  8614. // if (msg == "")
  8615. // {
  8616. // return Success("导出成功");
  8617. // }
  8618. // else
  8619. // {
  8620. // return Error("导出失败");
  8621. // }
  8622. // }
  8623. // #endregion
  8624. // int recordCount = 0;
  8625. // dt = BLL.PagerBLL.GetListPager(
  8626. // "T_Bus_WorkOrder WITH(NOLOCK)",
  8627. // "F_WorkOrderId",
  8628. // cols,
  8629. // sql,
  8630. // "ORDER BY F_CreateTime DESC",
  8631. // pagesize,
  8632. // pageindex,
  8633. // true,
  8634. // out recordCount);
  8635. // #region 附加展示
  8636. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  8637. // dt.Columns.Add("AssignTime", typeof(string));//交办时间
  8638. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  8639. // dt.Columns.Add("OverState", typeof(string));//超时状态
  8640. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  8641. // dt.Columns.Add("GapTime", typeof(string));//时间差
  8642. // dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  8643. // dt.Columns.Add("Buttons", typeof(object));//操作按钮
  8644. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  8645. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8646. // var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  8647. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  8648. // foreach (DataRow dr in dt.Rows)
  8649. // {
  8650. // //获取最新交办信息
  8651. // string iszbdw = "0";
  8652. // int state = Int32.Parse(dr["F_WorkState"].ToString());
  8653. // if (state > 1)
  8654. // {
  8655. // 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";
  8656. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  8657. // if (dtjb.Rows.Count > 0)
  8658. // {
  8659. // if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  8660. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  8661. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  8662. // {
  8663. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  8664. // }
  8665. // dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  8666. // #region
  8667. // if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  8668. // {
  8669. // var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8670. // dr["LimitTime"] = lt;
  8671. // if (!string.IsNullOrWhiteSpace(lt))
  8672. // {
  8673. // var ltime = DateTime.Parse(lt);
  8674. // TimeSpan ts = ltime.Subtract(DateTime.Now);
  8675. // int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8676. // if (tss < 0) { tss = -tss; }
  8677. // string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8678. // if (ltime > DateTime.Now)
  8679. // {
  8680. // if (configcs != null)
  8681. // {
  8682. // int cs = Int32.Parse(configcs.F_ParamValue);
  8683. // if (ts.TotalHours > cs)
  8684. // {
  8685. // dr["OverState"] = 1;
  8686. // }
  8687. // else
  8688. // {
  8689. // dr["OverState"] = 2;
  8690. // }
  8691. // }
  8692. // dr["GapTime"] = "剩余" + gshsj;
  8693. // }
  8694. // else
  8695. // {
  8696. // dr["OverState"] = 3;
  8697. // dr["GapTime"] = "超时" + gshsj;
  8698. // }
  8699. // }
  8700. // }
  8701. // if (state == (int)EnumWorkState.finish)
  8702. // {
  8703. // var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  8704. // var dttime = DateTime.Now;
  8705. // if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  8706. // var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  8707. // dr["LimitTime"] = lt;
  8708. // if (!string.IsNullOrWhiteSpace(lt))
  8709. // {
  8710. // var ltime = DateTime.Parse(lt);
  8711. // TimeSpan ts = ltime.Subtract(dttime);
  8712. // int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  8713. // if (tss < 0) { tss = -tss; }
  8714. // string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  8715. // if (ltime < dttime)
  8716. // {
  8717. // dr["OverState"] = 3;
  8718. // dr["GapTime"] = "超时" + gshsj;
  8719. // }
  8720. // }
  8721. // }
  8722. // #endregion
  8723. // }
  8724. // else
  8725. // {
  8726. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  8727. // }
  8728. // }
  8729. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  8730. // {
  8731. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  8732. // }
  8733. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  8734. // {
  8735. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8736. // }
  8737. // #region 按钮
  8738. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  8739. // //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  8740. // btns.Clear();
  8741. // var nrem = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).OrderByDescending(o => o.F_Id).FirstOrDefault();
  8742. // switch (strtab)
  8743. // {
  8744. // case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  8745. // btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  8746. // btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  8747. // break;
  8748. // case "1"://督办-办理中 操作为:查看工单、短信催办
  8749. // case "2"://督办-超期未完结 操作为:查看工单、短信催办
  8750. // break;
  8751. // case "3"://督办-已退回:查看
  8752. // case "4"://督办-已完结:查看
  8753. // break;
  8754. // }
  8755. // btns.Add(ButtonGroup.query());
  8756. // dr["Buttons"] = btns;
  8757. // #endregion
  8758. // }
  8759. // #endregion
  8760. // var obj = new
  8761. // {
  8762. // state = "success",
  8763. // message = "成功",
  8764. // rows = dt,
  8765. // total = recordCount
  8766. // };
  8767. // return Content(obj.ToJson());
  8768. //}
  8769. #endregion
  8770. #region 新增工单
  8771. /// <summary>
  8772. /// 上传附件
  8773. /// </summary>
  8774. /// <returns></returns>
  8775. //[Authority]
  8776. public ActionResult UploadFile()
  8777. {
  8778. #region 单个上传 no use
  8779. //string path = string.Empty;
  8780. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  8781. //if (_upfile != null)
  8782. //{
  8783. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  8784. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  8785. // string name = string.Empty;
  8786. // FileUp fu = new FileUp();
  8787. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  8788. // if (model != null)
  8789. // {
  8790. // name = fu.Upload(_upfile, model.F_ParamValue);
  8791. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  8792. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  8793. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  8794. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  8795. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  8796. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  8797. // model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  8798. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  8799. // return Success("成功", model_T_Sys_Accessories);
  8800. // }
  8801. // else
  8802. // {
  8803. // return Error("上传失败");
  8804. // }
  8805. //}
  8806. //else
  8807. //{
  8808. // return Error("请选择要上传的文件");
  8809. //}
  8810. #endregion
  8811. #region 多个上传
  8812. HttpFileCollection files = RequestString.GetFiles();
  8813. if (files.Count > 0)
  8814. {
  8815. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  8816. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  8817. for (int i = 0; i < files.Count; i++)
  8818. {
  8819. HttpPostedFile file = files[i];
  8820. FileUp fu = new FileUp();
  8821. string name = fu.Upload(file, path);
  8822. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  8823. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  8824. model_T_Sys_Accessories.F_FileName = name;//附件名称
  8825. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  8826. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  8827. model_T_Sys_Accessories.F_Size = file.ContentLength;
  8828. model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  8829. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  8830. model_T_Sys_Accessories.F_FileId = id;
  8831. acs.Add(model_T_Sys_Accessories);
  8832. }
  8833. return Success("成功", acs);
  8834. }
  8835. else
  8836. {
  8837. return Error("请选择要上传的文件");
  8838. }
  8839. #endregion
  8840. }
  8841. /// <summary>
  8842. /// 添加工单信息
  8843. /// </summary>
  8844. /// <returns></returns>
  8845. //[Authority]
  8846. public ActionResult AddWorkOrder()
  8847. {
  8848. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  8849. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY"
  8850. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY"
  8851. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  8852. || User.F_RoleCode == "DFZF" || User.F_RoleCode == "MTDD") //增加新闻媒体(编号11)的添加工单权限
  8853. {
  8854. int source = RequestString.GetInt("source", 0);
  8855. string cusname = RequestString.GetFormString("cusname");
  8856. string cussex = RequestString.GetFormString("cussex");
  8857. string cusphone = RequestString.GetFormString("cusphone");
  8858. string cusaddress = RequestString.GetFormString("cusaddress");
  8859. string email = RequestString.GetFormString("email");
  8860. string zipcode = RequestString.GetFormString("zipcode");
  8861. string conname = RequestString.GetFormString("conname");
  8862. string conphone = RequestString.GetFormString("conphone");
  8863. string title = RequestString.GetFormString("title");
  8864. string content = RequestString.GetFormString("content");
  8865. string files = RequestString.GetFormString("files");
  8866. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8867. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8868. int isresult = RequestString.GetInt("isresult", 0);
  8869. string result = RequestString.GetFormString("result");
  8870. string keys = RequestString.GetFormString("keys");
  8871. string splituser = RequestString.GetFormString("splituser");
  8872. int type = RequestString.GetInt("type", 0);
  8873. int bigtype = RequestString.GetInt("bigtype", 0);
  8874. int smalltype = RequestString.GetInt("smalltype", 0);
  8875. int isprotect = RequestString.GetInt("isprotect", 0);
  8876. int level = RequestString.GetInt("level", 0);
  8877. int issubmit = RequestString.GetInt("issubmit", 0);
  8878. string callid = RequestString.GetFormString("callid");
  8879. string longitude = RequestString.GetFormString("longitude");//经度
  8880. string latitude = RequestString.GetFormString("latitude");//纬度
  8881. int business = RequestString.GetInt("business", 0); ;//
  8882. int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
  8883. int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
  8884. string phonetype = RequestString.GetFormString("phonetype");//电话类型
  8885. int deptid = 0;
  8886. var modeldept = new Model.T_Sys_Department();
  8887. var premodeldept = new Model.T_Sys_Department();
  8888. if (ispd > 0)
  8889. {
  8890. if (string.IsNullOrEmpty(keys))
  8891. return Error("自动派单失败,请选择反映类别!");
  8892. try
  8893. {
  8894. var model = new BLL.T_Sys_DictionaryValue().GetModel
  8895. (int.Parse(keys));
  8896. if (model != null)
  8897. {
  8898. if (model.F_Deptid != null)
  8899. deptid = (int)model.F_Deptid;
  8900. else
  8901. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  8902. }
  8903. else
  8904. return Error("自动派单失败,请选择反映类别.");
  8905. }
  8906. catch
  8907. {
  8908. return Error("自动派单失败,请选择反映类别");
  8909. }
  8910. modeldept = new BLL.T_Sys_Department().GetModel(deptid);
  8911. if (modeldept == null)
  8912. return Error("自动派单失败,派单单位不存在");
  8913. if (modeldept.F_IsDept == 2)
  8914. {
  8915. if (modeldept.F_PartentId > 0)
  8916. {
  8917. premodeldept = department((int)modeldept.F_PartentId);
  8918. if (premodeldept == null)
  8919. return Error("该单位没有上级单位,派单失败");
  8920. }
  8921. else
  8922. {
  8923. return Error("该单位没有上级单位,派单失败");
  8924. }
  8925. }
  8926. else
  8927. {
  8928. premodeldept = modeldept;
  8929. }
  8930. }
  8931. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  8932. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  8933. {
  8934. #region 保存工单信息
  8935. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  8936. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  8937. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  8938. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8939. modelT_Bus_WorkOrder.F_PhoneType = phonetype;//电话类型
  8940. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8941. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8942. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8943. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8944. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8945. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8946. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8947. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8948. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8949. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8950. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8951. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8952. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8953. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8954. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8955. modelT_Bus_WorkOrder.F_File = files;//附件
  8956. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8957. modelT_Bus_WorkOrder.F_Key = keys;
  8958. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  8959. modelT_Bus_WorkOrder.F_Level = level;
  8960. modelT_Bus_WorkOrder.F_VisitType = visittype;
  8961. Task.Run(() =>
  8962. {
  8963. saveCus(cusname, cusphone, cusaddress);
  8964. });
  8965. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  8966. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  8967. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  8968. //是否直办(即时答复)0:,否1: 是
  8969. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8970. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8971. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  8972. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  8973. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  8974. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  8975. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  8976. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  8977. modelT_Bus_WorkOrder.F_ToBereply = 0;
  8978. modelT_Bus_WorkOrder.F_Business = business;
  8979. //如果选择即刻答复:是,即为直办,工单结束
  8980. if (isresult == 1)
  8981. {
  8982. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8983. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  8984. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8985. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8986. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8987. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8988. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8989. }
  8990. else if (issubmit == 1)
  8991. {
  8992. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8993. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//
  8994. }
  8995. #region
  8996. #endregion
  8997. if (!string.IsNullOrEmpty(callid))
  8998. {
  8999. modelT_Bus_WorkOrder.F_CallId = callid;
  9000. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  9001. if (rd != null)
  9002. {
  9003. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9004. rd.IsExitWorkOrder = true;
  9005. new BLL.T_Call_CallRecords().Update(rd);
  9006. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  9007. }
  9008. }
  9009. modelT_Bus_WorkOrder.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder);
  9010. #endregion
  9011. trans.Complete();
  9012. }
  9013. if (modelT_Bus_WorkOrder.F_Id <= 0)
  9014. return Error("添加失败");
  9015. else
  9016. {
  9017. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9018. string message = "";
  9019. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  9020. {
  9021. message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9022. }
  9023. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9024. {
  9025. message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9026. }
  9027. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  9028. {
  9029. message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9030. }
  9031. var curuser = User;
  9032. Task.Run(() =>
  9033. {
  9034. #region 插入操作记录
  9035. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9036. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9037. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9038. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9039. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9040. oper.F_Message = message;
  9041. oper.F_CreateUser = curuser.F_UserCode;
  9042. oper.F_CreateTime = DateTime.Now;
  9043. oper.F_IsDelete = 0;
  9044. operBLL.Add(oper);
  9045. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.finish)
  9046. {
  9047. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  9048. string msg = "";
  9049. bool n = SMSController.AddSmS(0, msg, count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  9050. }
  9051. #endregion
  9052. }).ContinueWith(p => {
  9053. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9054. });
  9055. Task.Run(() =>
  9056. {
  9057. #region 插入推送消息
  9058. //推送消息表
  9059. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)
  9060. {
  9061. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9062. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9063. foreach (var u in users)
  9064. {
  9065. msg.AddInternalMessagesInfo("工单消息", message, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  9066. }
  9067. }
  9068. #endregion
  9069. }).ContinueWith(p => {
  9070. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9071. });
  9072. Task.Run(async () =>
  9073. {
  9074. #region 自动派单
  9075. if (ispd > 0)
  9076. {
  9077. //时限
  9078. string resdatetime = "";
  9079. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  9080. DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  9081. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  9082. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  9083. //交办信息
  9084. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9085. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9086. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9087. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;
  9088. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  9089. modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
  9090. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  9091. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  9092. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9093. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9094. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9095. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9096. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9097. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9098. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9099. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  9100. //工单信息
  9101. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  9102. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  9103. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  9104. modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  9105. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9106. workorderBLL.Update(modelT_Bus_WorkOrder);
  9107. var msgss = userinfo + " 交办了工单,主办单位:" + premodeldept.F_DeptName;
  9108. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  9109. if (modeldept.F_IsDept == 2)
  9110. {
  9111. await SplitOrderNew(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单", curuser).ContinueWith(p =>
  9112. {
  9113. });
  9114. }
  9115. else
  9116. {
  9117. modelT_Bus_WorkOrder.F_WorkState = 2;
  9118. new BLL.T_Bus_WorkOrder().Update(modelT_Bus_WorkOrder);
  9119. await Task.Run(() =>
  9120. {
  9121. //addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  9122. });
  9123. }
  9124. await Task.Run(() => {
  9125. //推送消息表
  9126. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  9127. foreach (var u in users)
  9128. {
  9129. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  9130. if(u .F_RoleCode =="WLDW"&&u .F_IsSms ==1)
  9131. {
  9132. continue;
  9133. }
  9134. else
  9135. {
  9136. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  9137. string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
  9138. bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
  9139. }
  9140. }
  9141. });
  9142. }
  9143. #endregion
  9144. }).ContinueWith(p => {
  9145. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9146. });
  9147. }
  9148. return Success("操作成功");
  9149. }
  9150. else
  9151. {
  9152. return Error("权限不足");
  9153. }
  9154. }
  9155. /// <summary>
  9156. /// 添加工单信息
  9157. /// </summary>
  9158. /// <returns></returns>
  9159. //[Authority]
  9160. public ActionResult AddWorkOrder1()
  9161. {
  9162. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  9163. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY"
  9164. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY"
  9165. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  9166. || User.F_RoleCode == "DFZF" || User.F_RoleCode == "MTDD") //增加新闻媒体(编号11)的添加工单权限
  9167. {
  9168. int source = RequestString.GetInt("source", 0);
  9169. string cusname = RequestString.GetFormString("cusname");
  9170. string cussex = RequestString.GetFormString("cussex");
  9171. string cusphone = RequestString.GetFormString("cusphone");
  9172. string cusaddress = RequestString.GetFormString("cusaddress");
  9173. string email = RequestString.GetFormString("email");
  9174. string zipcode = RequestString.GetFormString("zipcode");
  9175. string conname = RequestString.GetFormString("conname");
  9176. string conphone = RequestString.GetFormString("conphone");
  9177. string title = RequestString.GetFormString("title");
  9178. string content = RequestString.GetFormString("content");
  9179. string files = RequestString.GetFormString("files");
  9180. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9181. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9182. int isresult = RequestString.GetInt("isresult", 0);
  9183. string result = RequestString.GetFormString("result");
  9184. string keys = RequestString.GetFormString("keys");
  9185. string splituser = RequestString.GetFormString("splituser");
  9186. int type = RequestString.GetInt("type", 0);
  9187. int bigtype = RequestString.GetInt("bigtype", 0);
  9188. int smalltype = RequestString.GetInt("smalltype", 0);
  9189. int isprotect = RequestString.GetInt("isprotect", 0);
  9190. int level = RequestString.GetInt("level", 0);
  9191. int issubmit = RequestString.GetInt("issubmit", 0);
  9192. string callid = RequestString.GetFormString("callid");
  9193. string longitude = RequestString.GetFormString("longitude");//经度
  9194. string latitude = RequestString.GetFormString("latitude");//纬度
  9195. int business = RequestString.GetInt("business", 0); ;//
  9196. int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
  9197. int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
  9198. string phonetype = RequestString.GetFormString("phonetype");//电话类型
  9199. lock (_MyLock)
  9200. {
  9201. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9202. {
  9203. #region 保存工单信息
  9204. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  9205. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  9206. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  9207. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  9208. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9209. modelT_Bus_WorkOrder.F_PhoneType = phonetype;//电话类型
  9210. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9211. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9212. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9213. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9214. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9215. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9216. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9217. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9218. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9219. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9220. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9221. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9222. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9223. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9224. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9225. modelT_Bus_WorkOrder.F_File = files;//附件
  9226. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9227. modelT_Bus_WorkOrder.F_Key = keys;
  9228. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  9229. modelT_Bus_WorkOrder.F_Level = level;
  9230. modelT_Bus_WorkOrder.F_VisitType = visittype;
  9231. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  9232. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  9233. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  9234. //是否直办(即时答复)0:,否1: 是
  9235. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9236. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9237. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  9238. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  9239. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  9240. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  9241. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  9242. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  9243. modelT_Bus_WorkOrder.F_ToBereply = 0;
  9244. modelT_Bus_WorkOrder.F_Business = business;
  9245. //如果选择即刻答复:是,即为直办,工单结束
  9246. if (isresult == 1)
  9247. {
  9248. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9249. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  9250. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9251. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9252. modelT_Bus_WorkOrder.F_IsClosed = 1;
  9253. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9254. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  9255. }
  9256. else if (issubmit == 1)
  9257. {
  9258. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9259. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//
  9260. }
  9261. #region
  9262. #region
  9263. #endregion
  9264. #endregion
  9265. if (!string.IsNullOrEmpty(callid))
  9266. {
  9267. modelT_Bus_WorkOrder.F_CallId = callid;
  9268. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  9269. if (rd != null)
  9270. {
  9271. rd.IsExitWorkOrder = true;
  9272. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9273. new BLL.T_Call_CallRecords().Update(rd);
  9274. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  9275. }
  9276. }
  9277. int a = workorderBLL.Add(modelT_Bus_WorkOrder);
  9278. if (a <= 0)
  9279. return Error("添加失败");
  9280. #endregion
  9281. #region 插入操作记录
  9282. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9283. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9284. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9285. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9286. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9287. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9288. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  9289. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  9290. {
  9291. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9292. }
  9293. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  9294. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9295. {
  9296. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9297. }
  9298. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  9299. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  9300. {
  9301. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9302. }
  9303. else
  9304. {
  9305. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  9306. string msg = "";
  9307. bool n = SMSController.AddSmS(0, msg, count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  9308. }
  9309. oper.F_CreateUser = User.F_UserCode;
  9310. oper.F_CreateTime = DateTime.Now;
  9311. oper.F_IsDelete = 0;
  9312. operBLL.Add(oper);
  9313. #region 自动派单
  9314. if (ispd > 0)
  9315. {
  9316. if (string.IsNullOrEmpty(keys))
  9317. return Error("自动派单失败,请选择反映类别!");
  9318. int deptid = 0;
  9319. try
  9320. {
  9321. var model = new BLL.T_Sys_DictionaryValue().GetModel
  9322. (int.Parse(keys));
  9323. if (model != null)
  9324. {
  9325. if (model.F_Deptid != null)
  9326. deptid = (int)model.F_Deptid;
  9327. else
  9328. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  9329. }
  9330. else
  9331. return Error("自动派单失败,请选择反映类别.");
  9332. }
  9333. catch
  9334. {
  9335. return Error("自动派单失败,请选择反映类别");
  9336. }
  9337. var modeldept = new BLL.T_Sys_Department().GetModel(deptid);
  9338. if (modeldept == null)
  9339. return Error("自动派单失败,派单单位不存在");
  9340. int typedept = 1;
  9341. var maindept = modeldept;
  9342. if (modeldept.F_IsDept == 2)
  9343. {
  9344. typedept = 2;
  9345. if (modeldept.F_PartentId > 0)
  9346. {
  9347. maindept = department((int)modeldept.F_PartentId);
  9348. if (maindept == null)
  9349. return Error("该单位没有上级单位,派单失败");
  9350. }
  9351. else
  9352. {
  9353. return Error("该单位没有上级单位,派单失败");
  9354. }
  9355. }
  9356. string resdatetime = "";
  9357. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  9358. DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  9359. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  9360. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  9361. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9362. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9363. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9364. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  9365. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  9366. modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
  9367. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  9368. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9369. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9370. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9371. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9372. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9373. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9374. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9375. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9376. int aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9377. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  9378. modelT_Bus_WorkOrder.F_WorkState = 2;
  9379. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  9380. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  9381. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9382. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9383. if (typedept == 2)
  9384. {
  9385. if (SplitOrder(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单") == "操作失败")
  9386. {
  9387. return Error("一键通达失败");
  9388. }
  9389. else
  9390. {
  9391. modelT_Bus_WorkOrder.F_MainDeptID3 = modeldept.F_DeptId.ToString();
  9392. modelT_Bus_WorkOrder.F_WorkState = 4;
  9393. }
  9394. }
  9395. workorderBLL.Update(modelT_Bus_WorkOrder);
  9396. var msgss = userinfo + " 交办了工单,主办单位:" + maindept.F_DeptName;
  9397. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  9398. //推送消息表
  9399. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  9400. foreach (var u in users)
  9401. {
  9402. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9403. if (u.F_RoleCode == "WLDW" && u.F_IsSms == 1)
  9404. {
  9405. continue;
  9406. }
  9407. else
  9408. {
  9409. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  9410. string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
  9411. bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
  9412. }
  9413. }
  9414. //var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindept.F_DeptId + ") ");
  9415. }
  9416. #endregion
  9417. //推送消息表
  9418. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  9419. {
  9420. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9421. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9422. foreach (var u in users)
  9423. {
  9424. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9425. }
  9426. }
  9427. #endregion
  9428. trans.Complete();
  9429. }
  9430. }
  9431. return Success("操作成功");
  9432. }
  9433. else
  9434. {
  9435. return Error("权限不足");
  9436. }
  9437. }
  9438. /// <summary>
  9439. /// 添加工单信息
  9440. /// </summary>
  9441. /// <returns></returns>
  9442. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  9443. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  9444. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  9445. {
  9446. string workorderid = string.Empty;
  9447. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9448. {
  9449. #region 保存工单信息
  9450. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  9451. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  9452. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  9453. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea
  9454. , creattime, endtime);
  9455. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9456. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9457. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9458. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9459. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9460. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9461. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9462. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9463. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9464. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9465. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9466. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9467. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9468. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9469. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9470. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9471. modelT_Bus_WorkOrder.F_File = files;//附件
  9472. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9473. modelT_Bus_WorkOrder.F_Key = keys;
  9474. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  9475. modelT_Bus_WorkOrder.F_Level = level;
  9476. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  9477. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  9478. //modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  9479. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  9480. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  9481. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  9482. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  9483. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  9484. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  9485. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  9486. workorderBLL.Add(modelT_Bus_WorkOrder);
  9487. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  9488. #endregion
  9489. #region 插入操作记录
  9490. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9491. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9492. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9493. string userinfo = "";
  9494. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  9495. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  9496. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  9497. {
  9498. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9499. }
  9500. //oper.F_CreateUser = User.F_UserCode;
  9501. oper.F_CreateTime = DateTime.Now;
  9502. oper.F_IsDelete = 0;
  9503. operBLL.Add(oper);
  9504. #endregion
  9505. trans.Complete();
  9506. }
  9507. return workorderid;
  9508. }
  9509. /// <summary>
  9510. /// 添加工单信息留言
  9511. /// </summary>
  9512. /// <returns></returns>
  9513. //[Authority]
  9514. public ActionResult AddWorkOrderByLY()
  9515. {
  9516. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9517. {
  9518. int source = RequestString.GetInt("source", 0);
  9519. string cusname = RequestString.GetFormString("cusname");
  9520. string cussex = RequestString.GetFormString("cussex");
  9521. string cusphone = RequestString.GetFormString("cusphone");
  9522. string cusaddress = RequestString.GetFormString("cusaddress");
  9523. string email = RequestString.GetFormString("email");
  9524. string zipcode = RequestString.GetFormString("zipcode");
  9525. string conname = RequestString.GetFormString("conname");
  9526. string conphone = RequestString.GetFormString("conphone");
  9527. string title = RequestString.GetFormString("title");
  9528. string content = RequestString.GetFormString("content");
  9529. string files = RequestString.GetFormString("files");
  9530. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9531. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9532. int isresult = RequestString.GetInt("isresult", 0);
  9533. string result = RequestString.GetFormString("result");
  9534. string keys = RequestString.GetFormString("keys");
  9535. string splituser = RequestString.GetFormString("splituser");
  9536. int type = RequestString.GetInt("type", 0);
  9537. int bigtype = RequestString.GetInt("bigtype", 0);
  9538. int smalltype = RequestString.GetInt("smalltype", 0);
  9539. int isprotect = RequestString.GetInt("isprotect", 0);
  9540. int level = RequestString.GetInt("level", 0);
  9541. int issubmit = RequestString.GetInt("issubmit", 0);
  9542. int lyid = RequestString.GetInt("lyid", 0);
  9543. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9544. {
  9545. #region 保存工单信息
  9546. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  9547. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  9548. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  9549. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  9550. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9551. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9552. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9553. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9554. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9555. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9556. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9557. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9558. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9559. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9560. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9561. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9562. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9563. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9564. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9565. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9566. modelT_Bus_WorkOrder.F_File = files;//附件
  9567. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9568. modelT_Bus_WorkOrder.F_Key = keys;
  9569. modelT_Bus_WorkOrder.F_Level = level;
  9570. //是否直办(即时答复)0:,否1: 是
  9571. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9572. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9573. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  9574. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  9575. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  9576. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  9577. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  9578. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  9579. //如果选择即刻答复:是,即为直办,工单结束
  9580. if (isresult == 1)
  9581. {
  9582. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9583. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9584. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9585. modelT_Bus_WorkOrder.F_IsClosed = 1;
  9586. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9587. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  9588. }
  9589. else if (issubmit == 1)
  9590. {
  9591. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9592. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9593. }
  9594. #region
  9595. //20190715去掉审核环节
  9596. //else
  9597. //{
  9598. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  9599. //}
  9600. //else if (issubmit == 1)
  9601. //{
  9602. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9603. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9604. //}
  9605. #endregion
  9606. if (lyid != 0)
  9607. {
  9608. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  9609. if (rd != null)
  9610. {
  9611. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  9612. }
  9613. }
  9614. workorderBLL.Add(modelT_Bus_WorkOrder);
  9615. #endregion
  9616. #region 插入操作记录
  9617. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9618. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9619. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9620. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9621. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9622. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9623. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  9624. {
  9625. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9626. }
  9627. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9628. {
  9629. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9630. }
  9631. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9632. {
  9633. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9634. }
  9635. oper.F_CreateUser = User.F_UserCode;
  9636. oper.F_CreateTime = DateTime.Now;
  9637. oper.F_IsDelete = 0;
  9638. operBLL.Add(oper);
  9639. //推送消息表
  9640. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  9641. {
  9642. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9643. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9644. foreach (var u in users)
  9645. {
  9646. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9647. }
  9648. }
  9649. #endregion
  9650. trans.Complete();
  9651. }
  9652. return Success("操作成功");
  9653. }
  9654. else
  9655. {
  9656. return Error("权限不足");
  9657. }
  9658. }
  9659. /// <summary>
  9660. /// 添加工单信息
  9661. /// </summary>
  9662. /// <returns></returns>
  9663. //[Authority]
  9664. public ActionResult AddWorkOrderByAPP()
  9665. {
  9666. int source = RequestString.GetInt("source", 6);
  9667. string cusname = RequestString.GetFormString("cusname");
  9668. string cussex = RequestString.GetFormString("cussex");
  9669. string cusphone = RequestString.GetFormString("cusphone");
  9670. string cusaddress = RequestString.GetFormString("cusaddress");
  9671. string email = RequestString.GetFormString("email");
  9672. string zipcode = RequestString.GetFormString("zipcode");
  9673. string conname = RequestString.GetFormString("conname");
  9674. string conphone = RequestString.GetFormString("conphone");
  9675. string title = RequestString.GetFormString("title");
  9676. string content = RequestString.GetFormString("content");
  9677. string files = RequestString.GetFormString("files");
  9678. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9679. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9680. int isresult = RequestString.GetInt("isresult", 0);
  9681. string result = RequestString.GetFormString("result");
  9682. string keys = RequestString.GetFormString("keys");
  9683. string splituser = RequestString.GetFormString("splituser");
  9684. int type = RequestString.GetInt("type", 0);
  9685. int bigtype = RequestString.GetInt("bigtype", 0);
  9686. int smalltype = RequestString.GetInt("smalltype", 0);
  9687. int isprotect = RequestString.GetInt("isprotect", 0);
  9688. int level = RequestString.GetInt("level", 0);
  9689. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  9690. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  9691. if (!string.IsNullOrEmpty(workorderid))
  9692. {
  9693. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9694. {
  9695. #region 保存用户工单信息
  9696. var model = new BLL.T_Sys_Users().GetModel(User.F_UserCode);
  9697. if (model == null)
  9698. {
  9699. model = new Model.T_Sys_Users();
  9700. model.F_OpenId = User.F_UserCode;
  9701. model.F_Type = (int)EnumUserType.app;//3;
  9702. model.F_CreateTime = DateTime.Now;
  9703. model.F_Id = new BLL.T_Sys_Users().Add(model);
  9704. }
  9705. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  9706. tbu.F_UserId = model.F_Id;
  9707. tbu.F_WorkOrderId = workorderid;
  9708. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  9709. #endregion
  9710. trans.Complete();
  9711. }
  9712. return Success("操作成功");
  9713. }
  9714. else
  9715. {
  9716. return Error("操作失败");
  9717. }
  9718. }
  9719. #endregion
  9720. #region 操作工单
  9721. /// <summary>
  9722. /// 修改工单信息
  9723. /// </summary>
  9724. /// <returns></returns>
  9725. //[Authority]
  9726. public ActionResult EditWorkOrder()
  9727. {
  9728. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  9729. {
  9730. string workorderid = RequestString.GetFormString("workorderid");
  9731. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9732. int source = RequestString.GetInt("source", 0);
  9733. string cusname = RequestString.GetFormString("cusname");
  9734. string cussex = RequestString.GetFormString("cussex");
  9735. string cusphone = RequestString.GetFormString("cusphone");
  9736. string cusaddress = RequestString.GetFormString("cusaddress");
  9737. string email = RequestString.GetFormString("email");
  9738. string zipcode = RequestString.GetFormString("zipcode");
  9739. string conname = RequestString.GetFormString("conname");
  9740. string conphone = RequestString.GetFormString("conphone");
  9741. int state = RequestString.GetInt("state", 0);
  9742. string title = RequestString.GetFormString("title");
  9743. string content = RequestString.GetFormString("content");
  9744. string files = RequestString.GetFormString("files");
  9745. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9746. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9747. int isresult = RequestString.GetInt("isresult", 0);
  9748. string result = RequestString.GetFormString("result");
  9749. string keys = RequestString.GetFormString("keys");
  9750. string splituser = RequestString.GetFormString("splituser");
  9751. int type = RequestString.GetInt("type", 0);
  9752. int bigtype = RequestString.GetInt("bigtype", 0);
  9753. int smalltype = RequestString.GetInt("smalltype", 0);
  9754. int isprotect = RequestString.GetInt("isprotect", 0);
  9755. int level = RequestString.GetInt("level", 0);
  9756. int issubmit = RequestString.GetInt("issubmit", 0);
  9757. int isopen = RequestString.GetInt("isopen", 0);
  9758. int business = RequestString.GetInt("business", 0);
  9759. string workcontent = RequestString.GetFormString("workcontent");
  9760. lock (_MyLock)
  9761. {
  9762. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9763. {
  9764. #region 保存工单信息
  9765. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9766. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9767. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9768. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9769. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9770. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9771. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9772. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9773. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9774. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9775. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9776. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9777. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9778. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9779. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9780. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9781. modelT_Bus_WorkOrder.F_File = files;//附件
  9782. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9783. modelT_Bus_WorkOrder.F_Content = workcontent;
  9784. modelT_Bus_WorkOrder.F_Key = keys;
  9785. modelT_Bus_WorkOrder.F_Level = level;
  9786. modelT_Bus_WorkOrder.F_ToBereply = 0;
  9787. //是否直办(即时答复)0:,否1: 是
  9788. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9789. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9790. if (isopen > 0)
  9791. modelT_Bus_WorkOrder.F_IsOpen = isopen;
  9792. modelT_Bus_WorkOrder.F_Business = business;
  9793. //如果选择即刻答复:是,即为直办,工单结束
  9794. if (isresult == 1)
  9795. {
  9796. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9797. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  9798. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9799. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9800. modelT_Bus_WorkOrder.F_IsClosed = 1;
  9801. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9802. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  9803. }
  9804. else if (issubmit == 1)
  9805. {
  9806. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9807. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9808. }
  9809. #region
  9810. #endregion
  9811. if (state > 0)
  9812. {
  9813. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  9814. {
  9815. int assignid = RequestString.GetInt("assignid", 0);
  9816. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9817. //string maindeptid = RequestString.GetFormString("maindeptid");
  9818. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9819. DateTime limittime = DateTime.Now;
  9820. try
  9821. {
  9822. limittime = DateTime.Now.AddDays(int.Parse(RequestString.GetFormString("limittime")));
  9823. }
  9824. catch
  9825. {
  9826. limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  9827. }
  9828. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9829. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  9830. if (!string.IsNullOrEmpty(otherdeptids))
  9831. {
  9832. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  9833. {
  9834. return Error("主办单位不能出现在协办单位");
  9835. }
  9836. }
  9837. if (limittime < DateTime.Now)
  9838. {
  9839. return Error("办理时限不能小于当前时间");
  9840. }
  9841. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9842. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  9843. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  9844. {
  9845. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  9846. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9847. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9848. {
  9849. int aid = 0;
  9850. using (TransactionScope tran = new TransactionScope())
  9851. {
  9852. if (assignid == 0)
  9853. {
  9854. #region 插入交办记录
  9855. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9856. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9857. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9858. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9859. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9860. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9861. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9862. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9863. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9864. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9865. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9866. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9867. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9868. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9869. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9870. #endregion
  9871. }
  9872. else
  9873. {
  9874. #region 修改交办记录
  9875. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  9876. if (modelT_Bus_AssignedInfo != null)
  9877. {
  9878. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9879. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9880. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9881. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9882. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9883. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9884. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9885. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9886. assignBLL.Update(modelT_Bus_AssignedInfo);
  9887. aid = modelT_Bus_AssignedInfo.F_Id;
  9888. }
  9889. #endregion
  9890. }
  9891. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9892. {
  9893. #region 保存工单信息
  9894. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9895. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9896. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  9897. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  9898. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  9899. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9900. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9901. workorderBLL.Update(modelT_Bus_WorkOrder);
  9902. #endregion
  9903. #region 删除草稿信息
  9904. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9905. foreach (var cg in cglist)
  9906. {
  9907. cg.F_IsDelete = 1;
  9908. cg.F_DeleteUser = User.F_UserCode;
  9909. cg.F_DeleteTime = DateTime.Now;
  9910. assignBLL.Update(cg);
  9911. }
  9912. #endregion
  9913. #region 插入操作记录
  9914. Model.T_Bus_Operation opers = new Model.T_Bus_Operation();
  9915. opers.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9916. opers.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9917. opers.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9918. string userinfos = User.depname + "(" + User.F_UserCode + ")";
  9919. opers.F_Message = userinfos + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9920. if (!string.IsNullOrEmpty(otherdeptids))
  9921. {
  9922. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9923. opers.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9924. }
  9925. opers.F_CreateUser = User.F_UserCode;
  9926. opers.F_CreateTime = DateTime.Now;
  9927. opers.F_IsDelete = 0;
  9928. operBLL.Add(opers);
  9929. //推送消息表
  9930. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9931. foreach (var u in users)
  9932. {
  9933. msg.AddInternalMessagesInfo("工单消息", opers.F_Message + ",工单编号:" + opers.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9934. }
  9935. #endregion
  9936. }
  9937. tran.Complete();
  9938. }
  9939. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  9940. }
  9941. else
  9942. {
  9943. return Error("已经交办过了");
  9944. }
  9945. }
  9946. else
  9947. {
  9948. return Error("操作失败");
  9949. }
  9950. }
  9951. else
  9952. {
  9953. return Error("权限不足");
  9954. }
  9955. }
  9956. workorderBLL.Update(modelT_Bus_WorkOrder);
  9957. #endregion
  9958. #region 插入操作记录
  9959. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9960. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9961. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9962. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9963. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9964. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9965. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)//0)
  9966. {
  9967. oper.F_Message = userinfo + " 修改了工单";
  9968. }
  9969. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9970. {
  9971. oper.F_Message = userinfo + " 修改并提交了工单";
  9972. }
  9973. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)//1)
  9974. {
  9975. oper.F_Message = userinfo + " 修改了重办工单";
  9976. }
  9977. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9978. {
  9979. oper.F_Message = userinfo + " 修改并结案了工单";
  9980. }
  9981. oper.F_CreateUser = User.F_UserCode;
  9982. oper.F_CreateTime = DateTime.Now;
  9983. oper.F_IsDelete = 0;
  9984. operBLL.Add(oper);
  9985. Task.Run(() =>
  9986. {//推送消息表
  9987. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9988. {
  9989. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY'or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9990. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9991. foreach (var u in users)
  9992. {
  9993. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9994. }
  9995. }
  9996. });
  9997. //调用科大讯飞
  9998. #endregion
  9999. trans.Complete();
  10000. }
  10001. }
  10002. return Success("操作成功");
  10003. }
  10004. else
  10005. {
  10006. return Success("权限不足");
  10007. }
  10008. }
  10009. /// <summary>
  10010. /// 修改工单信息
  10011. /// </summary>
  10012. /// <returns></returns>
  10013. //[Authority]
  10014. public ActionResult EditWorkOrderBySource()
  10015. {
  10016. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10017. {
  10018. string workorderid = RequestString.GetFormString("workorderid");
  10019. int source = RequestString.GetInt("source", 0);
  10020. string cusname = RequestString.GetFormString("cusname");
  10021. string cussex = RequestString.GetFormString("cussex");
  10022. string cusphone = RequestString.GetFormString("cusphone");
  10023. string cusaddress = RequestString.GetFormString("cusaddress");
  10024. string email = RequestString.GetFormString("email");
  10025. string zipcode = RequestString.GetFormString("zipcode");
  10026. string conname = RequestString.GetFormString("conname");
  10027. string conphone = RequestString.GetFormString("conphone");
  10028. string title = RequestString.GetFormString("title");
  10029. string content = RequestString.GetFormString("content");
  10030. string files = RequestString.GetFormString("files");
  10031. int sourcearea = RequestString.GetInt("sourcearea", 0);
  10032. string sourceaddress = RequestString.GetFormString("sourceaddress");
  10033. string workcontent = RequestString.GetFormString("workcontent");
  10034. int isresult = RequestString.GetInt("isresult", 0);
  10035. string result = RequestString.GetFormString("result");
  10036. string keys = RequestString.GetFormString("keys");
  10037. string splituser = RequestString.GetFormString("splituser");
  10038. int type = RequestString.GetInt("type", 0);
  10039. int bigtype = RequestString.GetInt("bigtype", 0);
  10040. int smalltype = RequestString.GetInt("smalltype", 0);
  10041. int isprotect = RequestString.GetInt("isprotect", 0);
  10042. int level = RequestString.GetInt("level", 0);
  10043. int issubmit = RequestString.GetInt("issubmit", 0);
  10044. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10045. if (modelT_Bus_WorkOrder != null)
  10046. {
  10047. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  10048. {
  10049. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10050. {
  10051. #region 保存工单信息
  10052. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  10053. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  10054. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  10055. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  10056. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  10057. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  10058. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  10059. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  10060. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  10061. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  10062. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  10063. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  10064. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  10065. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  10066. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  10067. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  10068. modelT_Bus_WorkOrder.F_File = files;//附件
  10069. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  10070. modelT_Bus_WorkOrder.F_Key = keys;
  10071. modelT_Bus_WorkOrder.F_Level = level;
  10072. //是否直办(即时答复)0:,否1: 是
  10073. modelT_Bus_WorkOrder.F_IsResult = isresult;
  10074. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  10075. modelT_Bus_WorkOrder.F_Content = workcontent;
  10076. //如果选择即刻答复:是,即为直办,工单结束
  10077. if (isresult == 1)
  10078. {
  10079. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  10080. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  10081. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  10082. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10083. modelT_Bus_WorkOrder.F_IsClosed = 1;
  10084. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10085. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  10086. }
  10087. else if (issubmit == 1)
  10088. {
  10089. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10090. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  10091. }
  10092. #region
  10093. //20190715 去掉审核环节 zhengbingbing
  10094. //else
  10095. //{
  10096. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10097. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  10098. //}
  10099. //20190329
  10100. //else if (issubmit == 1)
  10101. //{
  10102. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10103. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  10104. //}
  10105. #endregion
  10106. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  10107. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  10108. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  10109. modelT_Bus_WorkOrder.F_IsDelete = 0;
  10110. workorderBLL.Update(modelT_Bus_WorkOrder);
  10111. #endregion
  10112. #region 插入操作记录
  10113. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10114. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10115. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10116. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  10117. oper.F_File = modelT_Bus_WorkOrder.F_File;
  10118. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10119. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  10120. {
  10121. oper.F_Message = userinfo + " 处理了工单";
  10122. }
  10123. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  10124. {
  10125. oper.F_Message = userinfo + " 处理并提交了工单";
  10126. }
  10127. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  10128. {
  10129. oper.F_Message = userinfo + " 处理并结案了工单";
  10130. }
  10131. oper.F_CreateUser = User.F_UserCode;
  10132. oper.F_CreateTime = DateTime.Now;
  10133. oper.F_IsDelete = 0;
  10134. operBLL.Add(oper);
  10135. //推送消息表
  10136. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  10137. {
  10138. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10139. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10140. foreach (var u in users)
  10141. {
  10142. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10143. }
  10144. }
  10145. //调用科大讯飞
  10146. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  10147. {
  10148. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  10149. 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());
  10150. if (bl)
  10151. {
  10152. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  10153. }
  10154. else
  10155. {
  10156. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  10157. }
  10158. }
  10159. #endregion
  10160. trans.Complete();
  10161. }
  10162. return Success("操作成功");
  10163. }
  10164. else
  10165. {
  10166. return Error("已经处理过了");
  10167. }
  10168. }
  10169. else
  10170. {
  10171. return Error("操作失败");
  10172. }
  10173. }
  10174. else
  10175. {
  10176. return Success("权限不足");
  10177. }
  10178. }
  10179. #region 新增审核工单流程
  10180. /// <summary>
  10181. /// 20190315需求变动,新增审核工单,由组长审核
  10182. /// </summary>
  10183. /// <param name="ids"></param>
  10184. /// <returns></returns>
  10185. //[Authority]
  10186. public ActionResult AuditWorkOrder()
  10187. {
  10188. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10189. {
  10190. string workorderid = RequestString.GetFormString("workorderid");
  10191. int state = RequestString.GetInt("state", 0);
  10192. string reason = RequestString.GetFormString("reason");
  10193. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10194. if (modelT_Bus_WorkOrder != null)
  10195. {
  10196. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10197. {
  10198. if (modelT_Bus_WorkOrder != null)
  10199. {
  10200. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10201. {
  10202. var opt = "审核并提交"; var re = "";
  10203. #region 保存工单信息
  10204. if (state == 1)
  10205. {
  10206. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10207. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  10208. }
  10209. else
  10210. {
  10211. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  10212. opt = "审核并退回";
  10213. re = ",退回原因:" + reason;
  10214. }
  10215. workorderBLL.Update(modelT_Bus_WorkOrder);
  10216. #endregion
  10217. #region 插入操作记录
  10218. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10219. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10220. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10221. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10222. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  10223. oper.F_CreateUser = User.F_UserCode;
  10224. oper.F_CreateTime = DateTime.Now;
  10225. oper.F_IsDelete = 0;
  10226. operBLL.Add(oper);
  10227. //推送消息表
  10228. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  10229. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10230. {
  10231. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10232. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10233. foreach (var u in users)
  10234. {
  10235. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10236. }
  10237. }
  10238. #endregion
  10239. }
  10240. }
  10241. trans.Complete();
  10242. }
  10243. return Success("操作成功");
  10244. }
  10245. else
  10246. {
  10247. return Error("操作失败");
  10248. }
  10249. }
  10250. else
  10251. {
  10252. return Error("权限不足");
  10253. }
  10254. }
  10255. #endregion
  10256. /// <summary>
  10257. /// 提交工单
  10258. /// </summary>
  10259. /// <param name="ids"></param>
  10260. /// <returns></returns>
  10261. //[Authority]
  10262. public ActionResult SubmitWorkOrder(string[] ids)
  10263. {
  10264. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  10265. {
  10266. if (ids != null && ids.Length > 0)
  10267. {
  10268. foreach (string str in ids)
  10269. {
  10270. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10271. {
  10272. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  10273. if (modelT_Bus_WorkOrder != null)
  10274. {
  10275. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  10276. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10277. {
  10278. #region 保存工单信息
  10279. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10280. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  10281. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  10282. workorderBLL.Update(modelT_Bus_WorkOrder);
  10283. #endregion
  10284. #region 插入操作记录
  10285. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10286. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10287. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10288. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10289. oper.F_Message = userinfo + " 提交了工单";
  10290. oper.F_CreateUser = User.F_UserCode;
  10291. oper.F_CreateTime = DateTime.Now;
  10292. oper.F_IsDelete = 0;
  10293. operBLL.Add(oper);
  10294. //推送消息表
  10295. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  10296. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10297. {
  10298. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10299. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10300. foreach (var u in users)
  10301. {
  10302. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10303. }
  10304. }
  10305. #endregion
  10306. }
  10307. }
  10308. trans.Complete();
  10309. }
  10310. }
  10311. return Success("操作成功");
  10312. }
  10313. else
  10314. {
  10315. return Error("操作失败");
  10316. }
  10317. }
  10318. else
  10319. {
  10320. return Error("权限不足");
  10321. }
  10322. }
  10323. /// <summary>
  10324. /// 回退工单
  10325. /// </summary>
  10326. /// <returns></returns>
  10327. //[Authority]
  10328. public ActionResult ReturnWorkOrder()
  10329. {
  10330. string workorderid = RequestString.GetFormString("workorderid");
  10331. string backuser = RequestString.GetFormString("backuser");
  10332. string backreason = RequestString.GetFormString("backreason");
  10333. string files = RequestString.GetFormString("files");
  10334. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  10335. if (modelT_Bus_WorkOrder != null)
  10336. {
  10337. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  10338. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  10339. {
  10340. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10341. {
  10342. #region 保存工单信息
  10343. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  10344. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  10345. modelT_Bus_WorkOrder.F_IsResult = 0;
  10346. modelT_Bus_WorkOrder.F_IsReturn = 1;
  10347. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  10348. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10349. modelT_Bus_WorkOrder.F_Prevaricate += 1;
  10350. //if (modelT_Bus_WorkOrder .F_Prevaricate >=3)
  10351. //{
  10352. // Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  10353. // modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10354. // modelT_Bus_RemindRecord.F_AssignedId = 0;
  10355. // modelT_Bus_RemindRecord.F_Type = 1;
  10356. // modelT_Bus_RemindRecord.F_Content = "推诿工单";
  10357. // modelT_Bus_RemindRecord.F_State =0;
  10358. // modelT_Bus_RemindRecord.F_IsDelete = 0;
  10359. // modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  10360. // modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  10361. // new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  10362. //}
  10363. workorderBLL.Update(modelT_Bus_WorkOrder);
  10364. #endregion
  10365. #region 插入批示记录
  10366. //批示记录
  10367. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  10368. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  10369. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  10370. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  10371. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  10372. model_T_Bus_SubmitSuper.F_File = files;//附件
  10373. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  10374. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  10375. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  10376. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  10377. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  10378. #endregion
  10379. #region 插入操作记录
  10380. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10381. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10382. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10383. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10384. oper.F_Message = userinfo + " 回退了工单";
  10385. oper.F_CreateUser = User.F_UserCode;
  10386. oper.F_CreateTime = DateTime.Now;
  10387. oper.F_IsDelete = 0;
  10388. operBLL.Add(oper);
  10389. #endregion
  10390. trans.Complete();
  10391. }
  10392. return Success("操作成功");
  10393. }
  10394. else
  10395. {
  10396. return Error("已经处理过了");
  10397. }
  10398. }
  10399. else
  10400. {
  10401. return Error("操作失败");
  10402. }
  10403. }
  10404. /// <summary>
  10405. /// 领导批示/市长指示
  10406. /// </summary>
  10407. /// <param name="ids"></param>
  10408. /// <returns></returns>
  10409. //[Authority]
  10410. public ActionResult SuperWorkOrder()
  10411. {
  10412. string workorderid = RequestString.GetFormString("workorderid");
  10413. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  10414. string superuser = RequestString.GetFormString("superuser");
  10415. string superopinion = RequestString.GetFormString("superopinion");
  10416. string files = RequestString.GetFormString("files");
  10417. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10418. if (modelT_Bus_WorkOrder != null)
  10419. {
  10420. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10421. {
  10422. #region 保存工单信息 no use
  10423. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  10424. //workorderBLL.Update(modelT_Bus_WorkOrder);
  10425. #endregion
  10426. #region 插入批示记录
  10427. //批示记录
  10428. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  10429. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  10430. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  10431. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  10432. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  10433. model_T_Bus_SubmitSuper.F_File = files;//附件
  10434. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  10435. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  10436. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  10437. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  10438. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  10439. #endregion
  10440. #region 插入操作记录
  10441. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10442. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10443. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10444. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10445. oper.F_Message = userinfo + " 批示了工单";
  10446. oper.F_CreateUser = User.F_UserCode;
  10447. oper.F_CreateTime = DateTime.Now;
  10448. oper.F_IsDelete = 0;
  10449. operBLL.Add(oper);
  10450. #endregion
  10451. trans.Complete();
  10452. }
  10453. return Success("操作成功");
  10454. }
  10455. else
  10456. {
  10457. return Error("操作失败");
  10458. }
  10459. }
  10460. /// <summary>
  10461. /// 办理中交办
  10462. /// </summary>
  10463. /// <returns></returns>
  10464. //[Authority]
  10465. public ActionResult HandleAssign()
  10466. {
  10467. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "MTDD")
  10468. {
  10469. string workorderid = RequestString.GetFormString("workorderid");
  10470. int state = RequestString.GetInt("state", 0);
  10471. int assignid = RequestString.GetInt("assignid", 0);
  10472. string maindeptid = RequestString.GetFormString("maindeptid");
  10473. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10474. int limittime = RequestString.GetInt("limittime", 0);
  10475. string limittimes = RequestString.GetFormString("limittimes");
  10476. string resdatetime = "";
  10477. if (limittime > 0)
  10478. {
  10479. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10480. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  10481. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10482. }
  10483. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10484. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10485. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10486. if (!string.IsNullOrEmpty(otherdeptids))
  10487. {
  10488. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  10489. if (both.Count() > 0)
  10490. {
  10491. return Error("主办单位不能出现在协办单位");
  10492. }
  10493. }
  10494. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10495. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10496. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10497. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  10498. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  10499. {
  10500. int aid = 0; var rre = "";
  10501. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10502. {
  10503. string newids = ""; string errdeptid = ""; string deptname = "";
  10504. foreach (var deptinfo in deptlist)
  10505. {
  10506. deptname += deptinfo.F_DeptName + ",";
  10507. #region 新增工单
  10508. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  10509. modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  10510. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  10511. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  10512. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  10513. modelT_Bus_WorkOrder1.F_MainWorkorder1 = workorderid;
  10514. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  10515. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  10516. {
  10517. errdeptid += deptinfo.F_DeptName + ",";
  10518. continue;
  10519. }
  10520. #endregion
  10521. #region 交办
  10522. #region 插入交办记录
  10523. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10524. if (modelT_Bus_WorkOrder.F_Level == 2)
  10525. {
  10526. try
  10527. {
  10528. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10529. }
  10530. catch
  10531. {
  10532. return Error("请选择正确的时间");
  10533. }
  10534. }
  10535. else
  10536. {
  10537. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10538. }
  10539. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10540. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10541. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10542. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10543. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10544. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10545. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10546. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10547. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10548. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10549. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10550. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10551. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10552. #endregion
  10553. #endregion
  10554. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10555. {
  10556. #region 保存工单信息
  10557. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  10558. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  10559. if (modelT_Bus_WorkOrder1.F_Level == 2)
  10560. {
  10561. try
  10562. {
  10563. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  10564. }
  10565. catch
  10566. {
  10567. return Error("请选择正确的时间");
  10568. }
  10569. }
  10570. else
  10571. {
  10572. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  10573. }
  10574. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  10575. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  10576. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  10577. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  10578. workorderBLL.Update(modelT_Bus_WorkOrder1);
  10579. #endregion
  10580. #region 插入操作记录
  10581. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10582. if (!string.IsNullOrEmpty(otherdeptids))
  10583. {
  10584. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10585. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10586. }
  10587. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  10588. //推送消息表
  10589. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  10590. foreach (var u in users)
  10591. {
  10592. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10593. }
  10594. #endregion
  10595. }
  10596. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  10597. }
  10598. newids = newids.Trim(','); deptname = deptname.Trim(',');
  10599. var msgs = "";
  10600. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder1 = workorderBLL.GetModel(workorderid);
  10601. tempT_Bus_WorkOrder1.F_SubWorkorder1 = newids;
  10602. workorderBLL.Update(tempT_Bus_WorkOrder1);
  10603. if (errdeptid == "")
  10604. {
  10605. msgs = userinfo + " 交办多单位生成新工单,新工单编号为:" + newids;
  10606. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  10607. }
  10608. else
  10609. {
  10610. errdeptid = errdeptid.Trim(',');
  10611. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  10612. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  10613. }
  10614. #region 插入操作记录
  10615. #endregion
  10616. trans.Complete();
  10617. #region
  10618. #endregion
  10619. }
  10620. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  10621. if (user != null && user.Count > 0)
  10622. {
  10623. foreach (var it in user)
  10624. {
  10625. if (it.F_RoleCode == "WLDW" && it.F_IsSms == 1)
  10626. {
  10627. continue;
  10628. }
  10629. else
  10630. {
  10631. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  10632. string msg = workorderid;
  10633. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  10634. }
  10635. }
  10636. }
  10637. //审核员给二级单位转派
  10638. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  10639. }
  10640. else
  10641. {
  10642. return Error("操作失败");
  10643. }
  10644. }
  10645. else
  10646. {
  10647. return Error("权限不足");
  10648. }
  10649. }
  10650. private Model.T_Sys_Department department(int PartentId)
  10651. {
  10652. var model = new BLL.T_Sys_Department().GetModel(PartentId);
  10653. if (model.F_IsDept == 1)
  10654. {
  10655. return model;
  10656. }
  10657. else
  10658. {
  10659. if (model.F_PartentId > 0)
  10660. model = department((int)model.F_PartentId);
  10661. else
  10662. return null;
  10663. }
  10664. return model;
  10665. }
  10666. /// <summary>
  10667. ///
  10668. /// </summary>
  10669. /// <returns></returns>
  10670. //[Authority]
  10671. public ActionResult AssignWorkOrderNew()
  10672. {
  10673. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "MTDD")
  10674. {
  10675. string workorderid = RequestString.GetFormString("workorderid");
  10676. int state = RequestString.GetInt("state", 0);
  10677. int assignid = RequestString.GetInt("assignid", 0);
  10678. string maindeptid = RequestString.GetFormString("maindeptid");
  10679. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10680. int limittime = RequestString.GetInt("limittime", 0);
  10681. string limittimes = RequestString.GetFormString("limittimes");
  10682. string resdatetime = "";
  10683. if (limittime > 0)
  10684. {
  10685. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10686. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  10687. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10688. }
  10689. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10690. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10691. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10692. if (!string.IsNullOrEmpty(otherdeptids))
  10693. {
  10694. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  10695. if (both.Count() > 0)
  10696. {
  10697. return Error("主办单位不能出现在协办单位");
  10698. }
  10699. }
  10700. var premodeldept = new Model.T_Sys_Department();
  10701. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  10702. if (deptlist.Count == 1)
  10703. {
  10704. var deptinfo = deptlist.FirstOrDefault();
  10705. if (deptinfo.F_IsDept == 2)
  10706. {
  10707. if (deptinfo.F_PartentId > 0)
  10708. {
  10709. premodeldept = department((int)deptinfo.F_PartentId);
  10710. if (premodeldept == null)
  10711. return Error("该单位没有上级单位,派单失败");
  10712. }
  10713. else
  10714. {
  10715. return Error("该单位没有上级单位,派单失败");
  10716. }
  10717. }
  10718. }
  10719. else
  10720. {
  10721. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  10722. return Error("派单多单位不能派给三级单位");
  10723. }
  10724. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10725. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10726. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  10727. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10728. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  10729. {
  10730. if (modelT_Bus_WorkOrder.F_Level == 2)
  10731. {
  10732. try
  10733. {
  10734. Convert.ToDateTime(limittimes);
  10735. }
  10736. catch
  10737. {
  10738. return Error("请选择正确的时间");
  10739. }
  10740. }
  10741. int aid = 0;
  10742. var curuser = User;
  10743. if (deptlist.Count == 1)
  10744. {
  10745. #region 交办一个单位
  10746. var maindept = deptlist.FirstOrDefault();
  10747. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10748. {
  10749. if (assignid == 0)
  10750. {
  10751. #region 插入交办记录
  10752. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10753. if (modelT_Bus_WorkOrder.F_Level == 2)
  10754. {
  10755. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10756. }
  10757. else
  10758. {
  10759. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10760. }
  10761. if (maindept.F_IsDept == 2)
  10762. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  10763. else
  10764. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  10765. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10766. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10767. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10768. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10769. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10770. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10771. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10772. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10773. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10774. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10775. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10776. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  10777. #endregion
  10778. }
  10779. else
  10780. {
  10781. #region 修改交办记录
  10782. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  10783. if (modelT_Bus_AssignedInfo != null)
  10784. {
  10785. if (modelT_Bus_WorkOrder.F_Level == 2)
  10786. {
  10787. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10788. }
  10789. else
  10790. {
  10791. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10792. }
  10793. if (maindept.F_IsDept == 2)
  10794. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  10795. else
  10796. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  10797. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10798. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10799. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10800. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10801. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10802. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10803. assignBLL.Update(modelT_Bus_AssignedInfo);
  10804. aid = modelT_Bus_AssignedInfo.F_Id;
  10805. }
  10806. #endregion
  10807. }
  10808. trans.Complete();
  10809. }
  10810. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10811. {
  10812. Task.Run(() =>
  10813. {
  10814. #region 保存工单信息
  10815. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  10816. if (modelT_Bus_WorkOrder.F_Level == 2)
  10817. {
  10818. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  10819. }
  10820. else
  10821. {
  10822. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  10823. }
  10824. if (maindept.F_IsDept == 2)
  10825. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  10826. else
  10827. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  10828. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  10829. modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  10830. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10831. if (maindept.F_IsDept == 2)
  10832. modelT_Bus_WorkOrder.F_WorkState = 4;
  10833. else
  10834. modelT_Bus_WorkOrder.F_WorkState = 2;
  10835. workorderBLL.Update(modelT_Bus_WorkOrder);
  10836. #endregion
  10837. }).ContinueWith(q =>
  10838. {
  10839. string DeptName = "";
  10840. if (maindept.F_IsDept == 2)
  10841. {
  10842. DeptName = premodeldept.F_DeptName;
  10843. }
  10844. else
  10845. DeptName = maindept.F_DeptName;
  10846. var msgss = userinfo + " 交办了工单,主办单位:" + DeptName;
  10847. if (!string.IsNullOrEmpty(otherdeptids))
  10848. {
  10849. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10850. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10851. }
  10852. if (maindept.F_IsDept == 2)
  10853. {
  10854. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10855. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion, curuser).ContinueWith(p =>
  10856. {
  10857. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10858. });
  10859. }
  10860. else
  10861. {
  10862. Task.Run(() =>
  10863. {
  10864. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  10865. }).ContinueWith(p =>
  10866. {
  10867. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10868. });
  10869. }
  10870. #region 插入推送消息
  10871. if (maindept.F_IsDept == 2)
  10872. {
  10873. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  10874. foreach (var u in users)
  10875. {
  10876. if (curuser.F_RoleCode == "DBZY")
  10877. {
  10878. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10879. string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10880. bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  10881. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10882. }
  10883. else
  10884. {
  10885. if (u.F_RoleCode == "WLDW" && u.F_IsSms == 1)
  10886. {
  10887. continue;
  10888. }
  10889. else
  10890. {
  10891. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10892. string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10893. bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  10894. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10895. }
  10896. }
  10897. }
  10898. }
  10899. else
  10900. {
  10901. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  10902. foreach (var u in users)
  10903. {
  10904. if (curuser.F_RoleCode == "DBZY")
  10905. {
  10906. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10907. string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10908. bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  10909. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10910. }
  10911. else
  10912. {
  10913. if (u.F_RoleCode == "WLDW" && u.F_IsSms == 1)
  10914. {
  10915. continue;
  10916. }
  10917. else
  10918. {
  10919. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10920. string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10921. bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  10922. }
  10923. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10924. }
  10925. }
  10926. }
  10927. #endregion
  10928. });
  10929. }
  10930. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  10931. #endregion
  10932. }
  10933. else
  10934. {
  10935. Task.Run(() =>
  10936. {
  10937. string newids = ""; string errdeptid = ""; string deptname = "";
  10938. object obj = new object();
  10939. List<Task> taskList = new List<Task>();
  10940. foreach (var deptinfo in deptlist)
  10941. {
  10942. deptname += deptinfo.F_DeptName + ",";
  10943. #region 新增工单
  10944. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  10945. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  10946. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  10947. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  10948. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  10949. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  10950. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  10951. #endregion
  10952. if (modelT_Bus_WorkOrder1.F_Id > 0)
  10953. {
  10954. #region 插入交办记录
  10955. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10956. if (modelT_Bus_WorkOrder.F_Level == 2)
  10957. {
  10958. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10959. }
  10960. else
  10961. {
  10962. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10963. }
  10964. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10965. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10966. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10967. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10968. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10969. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10970. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10971. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10972. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10973. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10974. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10975. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10976. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10977. #endregion
  10978. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10979. {
  10980. #region 保存工单信息
  10981. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  10982. if (modelT_Bus_WorkOrder1.F_Level == 2)
  10983. {
  10984. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  10985. }
  10986. else
  10987. {
  10988. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  10989. }
  10990. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  10991. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  10992. modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  10993. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  10994. workorderBLL.Update(modelT_Bus_WorkOrder1);
  10995. #endregion
  10996. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10997. if (!string.IsNullOrEmpty(otherdeptids))
  10998. {
  10999. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  11000. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  11001. }
  11002. #region 插入操作记录
  11003. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  11004. #endregion
  11005. #region 插入推送消息
  11006. //推送消息表
  11007. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11008. foreach (var u in users)
  11009. {
  11010. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  11011. }
  11012. #endregion
  11013. #region 发短信
  11014. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  11015. if (user != null && user.Count > 0)
  11016. {
  11017. foreach (var it in user)
  11018. {
  11019. if (curuser.F_RoleCode == "DBZY")
  11020. {
  11021. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  11022. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11023. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  11024. }
  11025. else
  11026. {
  11027. if (it.F_RoleCode == "WLDW" && it.F_IsSms == 1)
  11028. {
  11029. continue;
  11030. }
  11031. else
  11032. {
  11033. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  11034. string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  11035. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11036. }
  11037. }
  11038. }
  11039. }
  11040. #endregion
  11041. }
  11042. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  11043. }
  11044. else
  11045. {
  11046. errdeptid += deptinfo.F_DeptName + ",";
  11047. }
  11048. }
  11049. newids = newids.Trim(','); deptname = deptname.Trim(',');
  11050. var msgs = "";
  11051. if (errdeptid == "")
  11052. {
  11053. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  11054. workorderBLL.Update(modelT_Bus_WorkOrder);
  11055. msgs = userinfo + " 交办多单位,生成新工单,新工单编号为:" + newids;
  11056. }
  11057. else
  11058. {
  11059. errdeptid = errdeptid.Trim(',');
  11060. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  11061. }
  11062. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode);
  11063. }).ContinueWith(p =>
  11064. {
  11065. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11066. });
  11067. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  11068. workorderBLL.Update(modelT_Bus_WorkOrder);
  11069. return Success("操作成功");
  11070. }
  11071. }
  11072. else
  11073. {
  11074. return Error("操作失败");
  11075. }
  11076. }
  11077. else
  11078. {
  11079. return Error("权限不足");
  11080. }
  11081. }
  11082. /// <summary>
  11083. ///
  11084. /// </summary>
  11085. /// <returns></returns>
  11086. //[Authority]
  11087. public ActionResult AssignWorkOrderNew1()
  11088. {
  11089. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "MTDD")
  11090. {
  11091. string workorderid = RequestString.GetFormString("workorderid");
  11092. int state = RequestString.GetInt("state", 0);
  11093. int assignid = RequestString.GetInt("assignid", 0);
  11094. string maindeptid = RequestString.GetFormString("maindeptid");
  11095. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11096. int limittime = RequestString.GetInt("limittime", 0);
  11097. string limittimes = RequestString.GetFormString("limittimes");
  11098. string resdatetime = "";
  11099. if (limittime > 0)
  11100. {
  11101. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  11102. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  11103. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  11104. }
  11105. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  11106. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11107. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11108. if (!string.IsNullOrEmpty(otherdeptids))
  11109. {
  11110. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  11111. if (both.Count() > 0)
  11112. {
  11113. return Error("主办单位不能出现在协办单位");
  11114. }
  11115. }
  11116. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11117. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11118. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11119. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11120. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  11121. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  11122. {
  11123. int aid = 0; var rre = "";
  11124. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11125. {
  11126. if (deptlist.Count == 1)
  11127. {
  11128. var deptinfo = deptlist.FirstOrDefault();
  11129. int type = 1;
  11130. var maindept = deptinfo;
  11131. if (deptinfo.F_IsDept == 2)
  11132. {
  11133. type = 2;
  11134. if (deptinfo.F_PartentId > 0)
  11135. {
  11136. maindept = department((int)deptinfo.F_PartentId);
  11137. if (maindept == null)
  11138. return Error("该单位没有上级单位派单失败");
  11139. }
  11140. else
  11141. {
  11142. return Error("该单位没有上级单位派单失败");
  11143. }
  11144. }
  11145. if (assignid == 0)
  11146. {
  11147. #region 插入交办记录
  11148. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11149. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  11150. if (modelT_Bus_WorkOrder.F_Level == 2)
  11151. {
  11152. try
  11153. {
  11154. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  11155. }
  11156. catch
  11157. {
  11158. return Error("请选择正确的时间");
  11159. }
  11160. }
  11161. else
  11162. {
  11163. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  11164. }
  11165. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;//主办单位id
  11166. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11167. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11168. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11169. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11170. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11171. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11172. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11173. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11174. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11175. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11176. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11177. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11178. #endregion
  11179. }
  11180. else
  11181. {
  11182. #region 修改交办记录
  11183. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  11184. if (modelT_Bus_AssignedInfo != null)
  11185. {
  11186. //modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  11187. if (modelT_Bus_WorkOrder.F_Level == 2)
  11188. {
  11189. try
  11190. {
  11191. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  11192. }
  11193. catch
  11194. {
  11195. return Error("请选择正确的时间");
  11196. }
  11197. }
  11198. else
  11199. {
  11200. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  11201. }
  11202. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;//主办单位id
  11203. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11204. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11205. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11206. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11207. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11208. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11209. assignBLL.Update(modelT_Bus_AssignedInfo);
  11210. aid = modelT_Bus_AssignedInfo.F_Id;
  11211. }
  11212. #endregion
  11213. }
  11214. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11215. {
  11216. #region 保存工单信息
  11217. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  11218. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  11219. if (modelT_Bus_WorkOrder.F_Level == 2)
  11220. {
  11221. try
  11222. {
  11223. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  11224. }
  11225. catch
  11226. {
  11227. return Error("请选择正确的时间");
  11228. }
  11229. }
  11230. else
  11231. {
  11232. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  11233. }
  11234. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  11235. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  11236. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11237. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11238. if (type == 2)
  11239. {
  11240. if (SplitOrder(modelT_Bus_WorkOrder, deptinfo, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion) == "操作失败")
  11241. {
  11242. return Error("一键通达失败");
  11243. }
  11244. else
  11245. {
  11246. modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
  11247. modelT_Bus_WorkOrder.F_WorkState = 4;
  11248. }
  11249. }
  11250. workorderBLL.Update(modelT_Bus_WorkOrder);
  11251. #endregion
  11252. #region 删除草稿信息
  11253. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11254. foreach (var cg in cglist)
  11255. {
  11256. cg.F_IsDelete = 1;
  11257. cg.F_DeleteUser = User.F_UserCode;
  11258. cg.F_DeleteTime = DateTime.Now;
  11259. assignBLL.Update(cg);
  11260. }
  11261. #endregion
  11262. #region 插入操作记录
  11263. var msgss = userinfo + " 交办了工单,主办单位:" + maindept.F_DeptName;
  11264. if (!string.IsNullOrEmpty(otherdeptids))
  11265. {
  11266. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  11267. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  11268. }
  11269. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  11270. //推送消息表
  11271. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  11272. foreach (var u in users)
  11273. {
  11274. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11275. }
  11276. #endregion
  11277. }
  11278. }
  11279. else
  11280. {
  11281. string newids = ""; string errdeptid = ""; string deptname = "";
  11282. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  11283. return Error("派单多单位不能派给三级单位");
  11284. foreach (var deptinfo in deptlist)
  11285. {
  11286. deptname += deptinfo.F_DeptName + ",";
  11287. #region 新增工单
  11288. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  11289. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  11290. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  11291. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  11292. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  11293. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  11294. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  11295. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  11296. {
  11297. errdeptid += deptinfo.F_DeptName + ",";
  11298. continue;
  11299. }
  11300. #endregion
  11301. #region 交办
  11302. #region 插入交办记录
  11303. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  11304. if (modelT_Bus_WorkOrder.F_Level == 2)
  11305. {
  11306. try
  11307. {
  11308. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  11309. }
  11310. catch
  11311. {
  11312. return Error("请选择正确的时间");
  11313. }
  11314. }
  11315. else
  11316. {
  11317. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  11318. }
  11319. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11320. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11321. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11322. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11323. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11324. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11325. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11326. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11327. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11328. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11329. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11330. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11331. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11332. #endregion
  11333. #endregion
  11334. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11335. {
  11336. #region 保存工单信息
  11337. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  11338. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  11339. if (modelT_Bus_WorkOrder1.F_Level == 2)
  11340. {
  11341. try
  11342. {
  11343. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  11344. }
  11345. catch
  11346. {
  11347. return Error("请选择正确的时间");
  11348. }
  11349. }
  11350. else
  11351. {
  11352. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  11353. }
  11354. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  11355. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  11356. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  11357. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  11358. workorderBLL.Update(modelT_Bus_WorkOrder1);
  11359. #endregion
  11360. #region 删除草稿信息
  11361. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  11362. foreach (var cg in cglist)
  11363. {
  11364. cg.F_IsDelete = 1;
  11365. cg.F_DeleteUser = User.F_UserCode;
  11366. cg.F_DeleteTime = DateTime.Now;
  11367. assignBLL.Update(cg);
  11368. }
  11369. #endregion
  11370. #region 插入操作记录
  11371. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  11372. if (!string.IsNullOrEmpty(otherdeptids))
  11373. {
  11374. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  11375. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  11376. }
  11377. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  11378. //推送消息表
  11379. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11380. foreach (var u in users)
  11381. {
  11382. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11383. }
  11384. #endregion
  11385. }
  11386. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  11387. }
  11388. newids = newids.Trim(','); deptname = deptname.Trim(',');
  11389. var msgs = "";
  11390. if (errdeptid == "")
  11391. {
  11392. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  11393. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//
  11394. workorderBLL.Update(modelT_Bus_WorkOrder);
  11395. msgs = userinfo + " 交办多单位,生成新工单,新工单编号为:" + newids;
  11396. }
  11397. else
  11398. {
  11399. errdeptid = errdeptid.Trim(',');
  11400. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  11401. }
  11402. #region 插入操作记录
  11403. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  11404. #endregion
  11405. }
  11406. trans.Complete();
  11407. #region
  11408. #endregion
  11409. }
  11410. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  11411. if (user != null && user.Count > 0)
  11412. {
  11413. foreach (var it in user)
  11414. {
  11415. if (it.F_RoleCode == "WLDW" && it.F_IsSms == 1)
  11416. {
  11417. continue;
  11418. }
  11419. else
  11420. {
  11421. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  11422. string msg = workorderid;
  11423. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11424. }
  11425. }
  11426. }
  11427. //审核员给二级单位转派
  11428. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  11429. }
  11430. else
  11431. {
  11432. return Error("操作失败");
  11433. }
  11434. }
  11435. else
  11436. {
  11437. return Error("权限不足");
  11438. }
  11439. }
  11440. /// <summary>
  11441. /// 交办工单
  11442. /// </summary>
  11443. /// <returns></returns>
  11444. //[Authority]
  11445. public ActionResult AssignWorkOrder()
  11446. {
  11447. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  11448. {
  11449. string workorderid = RequestString.GetFormString("workorderid");
  11450. int state = RequestString.GetInt("state", 0);
  11451. int assignid = RequestString.GetInt("assignid", 0);
  11452. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11453. //string maindeptid = RequestString.GetFormString("maindeptid");
  11454. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11455. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11456. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11457. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11458. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  11459. {
  11460. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  11461. {
  11462. return Error("操作失败");
  11463. }
  11464. }
  11465. if (!string.IsNullOrEmpty(otherdeptids))
  11466. {
  11467. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  11468. {
  11469. return Error("主办单位不能出现在协办单位");
  11470. }
  11471. }
  11472. if (limittime < DateTime.Now)
  11473. {
  11474. return Error("办理时限不能小于当前时间");
  11475. }
  11476. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11477. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11478. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11479. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  11480. {
  11481. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  11482. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11483. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11484. {
  11485. int aid = 0;
  11486. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11487. {
  11488. if (assignid == 0)
  11489. {
  11490. #region 插入交办记录
  11491. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11492. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11493. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11494. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11495. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11496. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11497. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11498. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11499. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11500. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11501. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11502. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11503. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11504. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11505. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11506. #endregion
  11507. }
  11508. else
  11509. {
  11510. #region 修改交办记录
  11511. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  11512. if (modelT_Bus_AssignedInfo != null)
  11513. {
  11514. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11515. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11516. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11517. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11518. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11519. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11520. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11521. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11522. assignBLL.Update(modelT_Bus_AssignedInfo);
  11523. aid = modelT_Bus_AssignedInfo.F_Id;
  11524. }
  11525. #endregion
  11526. }
  11527. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11528. {
  11529. #region 保存工单信息
  11530. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  11531. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  11532. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  11533. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  11534. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  11535. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11536. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11537. workorderBLL.Update(modelT_Bus_WorkOrder);
  11538. #endregion
  11539. #region 删除草稿信息
  11540. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11541. foreach (var cg in cglist)
  11542. {
  11543. cg.F_IsDelete = 1;
  11544. cg.F_DeleteUser = User.F_UserCode;
  11545. cg.F_DeleteTime = DateTime.Now;
  11546. assignBLL.Update(cg);
  11547. }
  11548. #endregion
  11549. #region 插入操作记录
  11550. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11551. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11552. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11553. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11554. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11555. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  11556. if (!string.IsNullOrEmpty(otherdeptids))
  11557. {
  11558. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  11559. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  11560. }
  11561. oper.F_CreateUser = User.F_UserCode;
  11562. oper.F_CreateTime = DateTime.Now;
  11563. oper.F_IsDelete = 0;
  11564. operBLL.Add(oper);
  11565. //推送消息表
  11566. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11567. foreach (var u in users)
  11568. {
  11569. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11570. }
  11571. #endregion
  11572. }
  11573. trans.Complete();
  11574. }
  11575. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  11576. }
  11577. else
  11578. {
  11579. return Error("已经交办过了");
  11580. }
  11581. }
  11582. else
  11583. {
  11584. return Error("操作失败");
  11585. }
  11586. }
  11587. else
  11588. {
  11589. return Error("权限不足");
  11590. }
  11591. }
  11592. /// <summary>
  11593. /// 派工单
  11594. /// </summary>
  11595. /// <returns></returns>
  11596. //[Authority]
  11597. public string SplitOrder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  11598. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion)
  11599. {
  11600. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11601. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11602. {
  11603. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11604. {
  11605. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11606. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11607. {
  11608. #region 插入派单记录
  11609. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11610. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11611. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  11612. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11613. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11614. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11615. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  11616. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11617. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11618. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11619. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11620. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11621. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11622. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11623. #endregion
  11624. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  11625. {
  11626. #region 保存交办信息
  11627. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11628. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  11629. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11630. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11631. #endregion
  11632. #region 插入操作记录
  11633. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11634. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11635. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11636. oper.F_State = 4;
  11637. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11638. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11639. oper.F_CreateUser = User.F_UserCode;
  11640. oper.F_CreateTime = DateTime.Now;
  11641. oper.F_IsDelete = 0;
  11642. operBLL.Add(oper);
  11643. //推送消息表
  11644. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11645. #endregion
  11646. }
  11647. trans.Complete();
  11648. }
  11649. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  11650. if (user != null && user.Count > 0)
  11651. {
  11652. foreach (var it in user)
  11653. {
  11654. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  11655. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11656. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11657. }
  11658. }
  11659. //二级单位给三级单位转派都有短信提醒
  11660. return ("操作成功");
  11661. }
  11662. else
  11663. {
  11664. return ("操作失败");
  11665. }
  11666. }
  11667. else
  11668. {
  11669. return ("操作失败");
  11670. }
  11671. }
  11672. public async Task SplitOrderNew(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  11673. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion, Model.T_Sys_UserAccount User)
  11674. {
  11675. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11676. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11677. {
  11678. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11679. {
  11680. #region 插入派单记录
  11681. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11682. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11683. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11684. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11685. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11686. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  11687. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11688. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11689. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11690. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11691. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11692. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11693. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11694. #endregion
  11695. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11696. string message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11697. if (modelT_Bus_AssignedInfo_Next.F_Id > 0)
  11698. {
  11699. await Task.Run(() =>
  11700. {
  11701. #region 保存工单信息
  11702. modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
  11703. modelT_Bus_WorkOrder.F_WorkState = 4;
  11704. new BLL.T_Bus_WorkOrder().Update(modelT_Bus_WorkOrder);
  11705. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11706. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  11707. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11708. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11709. #endregion
  11710. });
  11711. await Task.Run(() =>
  11712. {
  11713. #region 插入操作记录
  11714. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11715. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11716. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11717. oper.F_State = 4;
  11718. oper.F_Message = message;
  11719. oper.F_CreateUser = User.F_UserCode;
  11720. oper.F_CreateTime = DateTime.Now;
  11721. oper.F_IsDelete = 0;
  11722. operBLL.Add(oper);
  11723. #region 短信通知
  11724. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  11725. if (user != null && user.Count > 0)
  11726. {
  11727. foreach (var it in user)
  11728. {
  11729. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  11730. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11731. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11732. }
  11733. }
  11734. #endregion
  11735. #endregion
  11736. });
  11737. await Task.Run(() =>
  11738. {
  11739. #region 插入推送消息
  11740. msg.AddInternalMessagesInfo("工单消息", message + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11741. #endregion
  11742. });
  11743. }
  11744. }
  11745. }
  11746. }
  11747. /// <summary>
  11748. /// 派工单
  11749. /// </summary>
  11750. /// <returns></returns>
  11751. //[Authority]
  11752. public ActionResult SplitWorkOrder()
  11753. {
  11754. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11755. {
  11756. string workorderid = RequestString.GetFormString("workorderid");
  11757. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11758. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11759. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11760. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11761. string files = RequestString.GetFormString("files");
  11762. int state = RequestString.GetInt("state", 0);
  11763. int nextid = RequestString.GetInt("nextid", 0);
  11764. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11765. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11766. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11767. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11768. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11769. {
  11770. if (limittime > modelT_Bus_AssignedInfo.F_LimitTime)
  11771. {
  11772. return Error("办理时限不能大于当前办理时限");
  11773. }
  11774. int type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  11775. 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"))
  11776. {
  11777. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11778. {
  11779. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11780. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11781. {
  11782. if (nextid == 0)
  11783. {
  11784. #region 插入派单记录
  11785. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11786. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11787. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  11788. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11789. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  11790. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11791. else
  11792. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11793. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11794. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11795. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11796. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11797. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11798. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11799. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11800. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11801. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11802. #endregion
  11803. }
  11804. else
  11805. {
  11806. #region 修改派单记录
  11807. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  11808. if (modelT_Bus_AssignedInfo_Next != null)
  11809. {
  11810. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11811. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  11812. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11813. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  11814. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11815. else
  11816. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11817. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11818. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11819. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11820. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11821. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11822. }
  11823. #endregion
  11824. }
  11825. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  11826. {
  11827. #region 保存交办信息
  11828. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11829. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  11830. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11831. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11832. #endregion
  11833. #region 保存工单信息
  11834. modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  11835. workorderBLL.Update(modelT_Bus_WorkOrder);
  11836. #endregion
  11837. #region 插入操作记录
  11838. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11839. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11840. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11841. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11842. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11843. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11844. oper.F_CreateUser = User.F_UserCode;
  11845. oper.F_CreateTime = DateTime.Now;
  11846. oper.F_IsDelete = 0;
  11847. operBLL.Add(oper);
  11848. //推送消息表
  11849. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11850. #endregion
  11851. }
  11852. trans.Complete();
  11853. }
  11854. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + maindeptid + " ");
  11855. if (user != null && user.Count > 0)
  11856. {
  11857. foreach (var it in user)
  11858. {
  11859. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  11860. string msg = workorderid;
  11861. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11862. }
  11863. }
  11864. //二级单位给三级单位转派都有短信提醒
  11865. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11866. }
  11867. else
  11868. {
  11869. return Error("已经派过单了");
  11870. }
  11871. }
  11872. else
  11873. {
  11874. return Error("操作失败");
  11875. }
  11876. }
  11877. else
  11878. {
  11879. return Error("操作失败");
  11880. }
  11881. }
  11882. else
  11883. {
  11884. return Error("权限不足");
  11885. }
  11886. }
  11887. /// <summary>
  11888. ///催单短信
  11889. /// </summary>
  11890. /// <returns></returns>
  11891. //[Authority]
  11892. public ActionResult Reminders(string workorderid)
  11893. {
  11894. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  11895. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11896. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11897. if (modelT_Bus_AssignedInfo.F_IsNext == 1 || modelT_Bus_AssignedInfo.F_IsNext == 2)
  11898. {
  11899. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11900. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_AssignedInfo_Next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  11901. if (user != null)
  11902. {
  11903. foreach (var iv in user)
  11904. {
  11905. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  11906. if (!string.IsNullOrEmpty(iv.F_Mobile))
  11907. {
  11908. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  11909. string msg = workorderid;
  11910. bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "", workorderid);
  11911. }
  11912. }
  11913. }
  11914. }
  11915. else
  11916. {
  11917. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_WorkOrder.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  11918. if (user != null)
  11919. {
  11920. foreach (var iv in user)
  11921. {
  11922. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  11923. if (!string.IsNullOrEmpty(iv.F_Mobile))
  11924. {
  11925. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  11926. string msg = workorderid;
  11927. bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "", workorderid);
  11928. }
  11929. }
  11930. }
  11931. }
  11932. return Success("发送成功");
  11933. }
  11934. /// <summary>
  11935. /// 工单提醒
  11936. /// </summary>
  11937. /// <param name="workordercode"></param>
  11938. /// <param name="deptid"></param>
  11939. /// <param name="type"></param>
  11940. /// <returns></returns>
  11941. [HttpPost]
  11942. public ActionResult SendSms(string workordercode, string deptid, int type = 0, int isfs = 0)
  11943. {
  11944. if (string.IsNullOrEmpty(deptid))
  11945. return Error("请选择部门");
  11946. string msg = "";
  11947. try
  11948. {
  11949. var deptsprit = deptid.Split(',');
  11950. if (deptsprit != null)
  11951. {
  11952. foreach (var iv in deptsprit)
  11953. {
  11954. var dept = new BLL.T_Sys_Department().GetModel(int.Parse(iv));
  11955. if (dept.F_IsSms == 1 || isfs == 1)
  11956. {
  11957. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + iv + "and F_DeleteFlag=0");
  11958. if (user != null)
  11959. {
  11960. foreach (var it in user)
  11961. {
  11962. if (!string.IsNullOrEmpty(it.F_Mobile))
  11963. {
  11964. string count = "";
  11965. string templetid = "";
  11966. if (type == 0)
  11967. {
  11968. templetid = "43683";
  11969. count = "您有新的工单,请及时查收处理,工单编号" + workordercode + ",(如通过手机APP登陆,若待查收中无工单,请注意查看重办中列表)";
  11970. }
  11971. else if (type == 1)
  11972. {
  11973. templetid = "26155";
  11974. count = "您有工单正在被督办,请及时处理,工单编号" + workordercode;
  11975. }
  11976. else if (type == 2)
  11977. {
  11978. templetid = "26154";
  11979. count = "您有紧急工单,请及时处理,工单编号" + workordercode;
  11980. }
  11981. else
  11982. {
  11983. templetid = "29265";
  11984. count = "您有工单已经超时,请尽快处理,工单编号" + workordercode;
  11985. }
  11986. bool n = SMSController.AddSmS(User.F_UserId, count, workordercode, it.F_Mobile, templetid);
  11987. if (n == false)
  11988. msg += it.F_UserName + "发送短信失败。";
  11989. }
  11990. }
  11991. }
  11992. }
  11993. }
  11994. }
  11995. }
  11996. catch
  11997. {
  11998. return Error("发送失败");
  11999. }
  12000. if (msg != "")
  12001. return Error(msg);
  12002. else
  12003. return Success("发送成功");
  12004. return Error("暂无人员");
  12005. }
  12006. /// <summary>
  12007. /// 办理结果通知
  12008. /// </summary>
  12009. /// <param name="msg1"></param>
  12010. /// <param name="msg2"></param>
  12011. /// <param name="msg3"></param>
  12012. /// <param name="msg4"></param>
  12013. /// <param name="mobile"></param>
  12014. /// <returns></returns>
  12015. public ActionResult SmsHand(string msg1, string msg2, string msg3, string msg4, string mobile)
  12016. {
  12017. string msg = msg1 + "," + msg2 + "," + msg3 + "," + msg4;
  12018. string count = "尊敬的市民,您于" + msg1 + "反映的" + msg2 + "问题,工单号:" + msg3 + ",处理结果如下:" + msg4 + "。如有异议,请您再次致电12345,感谢您的支持。";
  12019. bool n = SMSController.AddSmS(User.F_UserId, count, msg, mobile, "26213");
  12020. if (n)
  12021. return Success("发送成功");
  12022. else
  12023. return Error("发送失败");
  12024. }
  12025. public ActionResult SmsOverTime()
  12026. {
  12027. var workorder = new BLL.T_Bus_WorkOrder().GetModelList("F_IsDelete=0 and F_WorkState in (2,4) and (F_IsSms!=1 or F_IsSms is null)");
  12028. if (workorder != null)
  12029. {
  12030. foreach (var it in workorder)
  12031. {
  12032. System.TimeSpan time = DateTime.Parse(it.F_LimitTime.ToString()) - DateTime.Now;
  12033. if (time.TotalHours <= 6)
  12034. {
  12035. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  12036. if (user != null)
  12037. {
  12038. foreach (var iv in user)
  12039. {
  12040. if (!string.IsNullOrEmpty(iv.F_Mobile))
  12041. {
  12042. string count = " 您有工单6小时后超期,请及时处理,工单号" + it.F_WorkOrderId;
  12043. bool n = SMSController.AddSmS(0, count, it.F_WorkOrderId, iv.F_Mobile, "26147");
  12044. if (n)
  12045. {
  12046. it.F_IsSms = 1;
  12047. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  12048. }
  12049. }
  12050. }
  12051. }
  12052. }
  12053. }
  12054. }
  12055. return Success("发送成功");
  12056. }
  12057. /// <summary>
  12058. /// 撤回待审核转办
  12059. /// 话务员操作撤回自己提交的工单
  12060. /// </summary>
  12061. /// <returns></returns>
  12062. //[Authority]
  12063. public ActionResult WithdrawDWorkOrder()
  12064. {
  12065. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY")
  12066. {
  12067. string workorderid = RequestString.GetFormString("workorderid");
  12068. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12069. if (modelT_Bus_WorkOrder != null && modelT_Bus_WorkOrder.F_CreateUser == User.F_UserCode && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12070. {
  12071. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12072. {
  12073. #region 保存工单信息
  12074. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  12075. workorderBLL.Update(modelT_Bus_WorkOrder);
  12076. #endregion
  12077. #region 插入操作记录
  12078. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12079. string msg = userinfo + " 撤回了工单";
  12080. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msg, User.F_UserCode);
  12081. #endregion
  12082. trans.Complete();
  12083. }
  12084. return Success("操作成功");
  12085. }
  12086. else
  12087. {
  12088. return Error("操作失败");
  12089. }
  12090. }
  12091. else
  12092. {
  12093. return Error("权限不足");
  12094. }
  12095. }
  12096. /// <summary>
  12097. /// 收回工单
  12098. /// </summary>
  12099. /// <returns></returns>
  12100. //[Authority]
  12101. public ActionResult TakeBackWorkOrder()
  12102. {
  12103. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  12104. {
  12105. string workorderid = RequestString.GetFormString("workorderid");
  12106. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12107. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12108. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  12109. {
  12110. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  12111. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  12112. {
  12113. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12114. {
  12115. #region 插入交办记录
  12116. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12117. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12118. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12119. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12120. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12121. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12122. AssignedInfo.F_State = 0;//0草稿 1正式
  12123. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12124. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12125. AssignedInfo.F_IsDelete = 0;
  12126. AssignedInfo.F_IsOverdue = 0;
  12127. AssignedInfo.F_IsSure = 0;
  12128. AssignedInfo.F_IsReload = 0;
  12129. AssignedInfo.F_IsNext = 0;
  12130. assignBLL.Add(AssignedInfo);
  12131. #endregion
  12132. #region 保存工单信息
  12133. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  12134. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  12135. modelT_Bus_WorkOrder.F_MainDeptId = null;
  12136. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12137. workorderBLL.Update(modelT_Bus_WorkOrder);
  12138. #endregion
  12139. #region 删除交办信息
  12140. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  12141. modelT_Bus_AssignedInfo.F_DeleteUser = User.F_UserCode;
  12142. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  12143. assignBLL.Update(modelT_Bus_AssignedInfo);
  12144. #endregion
  12145. #region 删除派单信息
  12146. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  12147. foreach (var cg in pdlist)
  12148. {
  12149. cg.F_IsDelete = 1;
  12150. cg.F_DeleteUser = User.F_UserCode;
  12151. cg.F_DeleteTime = DateTime.Now;
  12152. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  12153. }
  12154. #endregion
  12155. #region 删除二级单位处理信息
  12156. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  12157. foreach (var cg in cglist)
  12158. {
  12159. cg.F_IsDelete = 1;
  12160. cg.F_DeleteUser = User.F_UserCode;
  12161. cg.F_DeleteTime = DateTime.Now;
  12162. new BLL.T_Bus_Feedback_Next().Update(cg);
  12163. }
  12164. #endregion
  12165. #region 插入操作记录
  12166. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12167. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12168. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12169. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12170. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12171. oper.F_Message = userinfo + " 收回了工单";
  12172. oper.F_CreateUser = User.F_UserCode;
  12173. oper.F_CreateTime = DateTime.Now;
  12174. oper.F_IsDelete = 0;
  12175. operBLL.Add(oper);
  12176. #endregion
  12177. trans.Complete();
  12178. }
  12179. return Success("操作成功");
  12180. }
  12181. else
  12182. {
  12183. return Error("单位已查收,不能收回");
  12184. }
  12185. }
  12186. else
  12187. {
  12188. return Error("操作失败");
  12189. }
  12190. }
  12191. else
  12192. {
  12193. return Error("权限不足");
  12194. }
  12195. }
  12196. /// <summary>
  12197. /// 查收工单
  12198. /// </summary>
  12199. /// <returns></returns>
  12200. //[Authority]
  12201. public ActionResult ReceiveWorkOrder()
  12202. {
  12203. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12204. {
  12205. string workorderid = RequestString.GetFormString("workorderid");
  12206. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12207. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12208. //操作前新增判断状态
  12209. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12210. 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)
  12211. {
  12212. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  12213. {
  12214. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12215. {
  12216. #region 保存工单信息
  12217. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  12218. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  12219. workorderBLL.Update(modelT_Bus_WorkOrder);
  12220. #endregion
  12221. #region 保存查收信息
  12222. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  12223. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  12224. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  12225. assignBLL.Update(modelT_Bus_AssignedInfo);
  12226. #endregion
  12227. #region 保存明细信息
  12228. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  12229. {
  12230. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  12231. foreach (string strid in strids)
  12232. {
  12233. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  12234. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12235. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  12236. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  12237. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  12238. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  12239. modelT_Bus_AssignedItemInfo.F_State = 1;
  12240. modelT_Bus_AssignedItemInfo.F_Type = 2;
  12241. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  12242. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  12243. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  12244. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  12245. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  12246. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  12247. }
  12248. }
  12249. #endregion
  12250. #region 插入操作记录
  12251. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12252. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12253. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12254. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12255. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12256. oper.F_Message = userinfo + " 查收了工单";
  12257. oper.F_CreateUser = User.F_UserCode;
  12258. oper.F_CreateTime = DateTime.Now;
  12259. oper.F_IsDelete = 0;
  12260. operBLL.Add(oper);
  12261. #endregion
  12262. trans.Complete();
  12263. }
  12264. return Success("操作成功");
  12265. }
  12266. else
  12267. {
  12268. return Error("单位已查收,不能再次查收");
  12269. }
  12270. }
  12271. else
  12272. {
  12273. return Error("操作失败");
  12274. }
  12275. }
  12276. else
  12277. {
  12278. return Error("权限不足");
  12279. }
  12280. }
  12281. /// <summary>
  12282. /// 退回工单
  12283. /// </summary>
  12284. /// <returns></returns>
  12285. //[Authority]
  12286. public ActionResult RebackWorkOrder()
  12287. {
  12288. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12289. {
  12290. string workorderid = RequestString.GetFormString("workorderid");
  12291. string backreason = RequestString.GetFormString("backreason");
  12292. string file = RequestString.GetFormString("file");
  12293. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12294. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12295. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12296. {
  12297. // if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  12298. // {
  12299. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12300. {
  12301. #region 保存工单信息
  12302. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  12303. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  12304. workorderBLL.Update(modelT_Bus_WorkOrder);
  12305. #endregion
  12306. #region 插入退回申请信息
  12307. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  12308. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  12309. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  12310. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  12311. model_T_Bus_Feedback.F_IsAudit = 0;
  12312. model_T_Bus_Feedback.F_IsDelete = 0;
  12313. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  12314. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  12315. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  12316. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  12317. model_T_Bus_Feedback.F_State = 1;
  12318. model_T_Bus_Feedback.F_Type = 3;
  12319. model_T_Bus_Feedback.F_File = file;
  12320. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  12321. #endregion
  12322. #region 保存交办信息
  12323. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  12324. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  12325. //{
  12326. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  12327. //}
  12328. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  12329. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  12330. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  12331. assignBLL.Update(modelT_Bus_AssignedInfo);
  12332. #endregion
  12333. #region 插入操作记录
  12334. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12335. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12336. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12337. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12338. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12339. oper.F_Message = userinfo + " 申请退回了工单";
  12340. oper.F_CreateUser = User.F_UserCode;
  12341. oper.F_CreateTime = DateTime.Now;
  12342. oper.F_IsDelete = 0;
  12343. operBLL.Add(oper);
  12344. //推送消息表
  12345. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12346. #endregion
  12347. trans.Complete();
  12348. }
  12349. return Success("操作成功");
  12350. // }
  12351. // else
  12352. // {
  12353. // return Error("单位已查收,不能退回");
  12354. // }
  12355. }
  12356. else
  12357. {
  12358. return Error("操作失败");
  12359. }
  12360. }
  12361. else
  12362. {
  12363. return Error("权限不足");
  12364. }
  12365. }
  12366. /// <summary>
  12367. /// 审核退回工单
  12368. /// </summary>
  12369. /// <returns></returns>
  12370. //[Authority]
  12371. public ActionResult AuditRebackWorkOrder()
  12372. {
  12373. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  12374. {
  12375. string workorderid = RequestString.GetFormString("workorderid");
  12376. int state = RequestString.GetInt("state", 0);
  12377. string reason = RequestString.GetFormString("reason");
  12378. int isjb = RequestString.GetInt("isjb", 0);
  12379. int rebackid = RequestString.GetInt("rebackid", 0);
  12380. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12381. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  12382. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12383. Model.T_Bus_AssignedInfo_Next modelAssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12384. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  12385. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  12386. {
  12387. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  12388. //{
  12389. // return Error("操作失败");
  12390. //}
  12391. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  12392. {
  12393. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12394. {
  12395. var rre = "";
  12396. #region 保存查收信息
  12397. modelT_Bus_Feedback.F_IsAudit = state;//审核
  12398. modelT_Bus_Feedback.F_AuditUser = User.F_UserCode;
  12399. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  12400. modelT_Bus_Feedback.F_AuditReason = reason;
  12401. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  12402. #endregion
  12403. string strmsg = "同意";
  12404. if (modelT_Bus_Feedback.F_IsAudit == 1)
  12405. {
  12406. #region 插入交办记录
  12407. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12408. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12409. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12410. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12411. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12412. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12413. AssignedInfo.F_State = 0;//0草稿 1正式
  12414. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12415. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12416. AssignedInfo.F_IsDelete = 0;
  12417. AssignedInfo.F_IsOverdue = 0;
  12418. AssignedInfo.F_IsSure = 0;
  12419. AssignedInfo.F_IsNext = 0;
  12420. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  12421. assignBLL.Add(AssignedInfo);
  12422. #endregion
  12423. #region 保存交办信息
  12424. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  12425. assignBLL.Update(modelT_Bus_AssignedInfo);
  12426. #endregion
  12427. #region 保存工单信息
  12428. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  12429. modelT_Bus_WorkOrder.F_MainDeptId = null;
  12430. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  12431. workorderBLL.Update(modelT_Bus_WorkOrder);
  12432. #endregion
  12433. if (modelAssignedInfo_Next != null)
  12434. {
  12435. modelAssignedInfo_Next.F_State = 2;
  12436. new BLL.T_Bus_AssignedInfo_Next().Update(modelAssignedInfo_Next);
  12437. }
  12438. }
  12439. else
  12440. {
  12441. #region 保存工单信息
  12442. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  12443. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_Feedback.F_CreateTime.Value);
  12444. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12445. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  12446. .Value.AddHours(tss);
  12447. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//待查收
  12448. workorderBLL.Update(modelT_Bus_WorkOrder);
  12449. 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");
  12450. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  12451. assignBLL.Update(modelT_Bus_AssignedInfo);
  12452. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12453. {
  12454. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12455. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12456. .AddHours(tss);
  12457. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12458. }
  12459. #endregion
  12460. #region 保存交办信息
  12461. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  12462. modelT_Bus_AssignedInfo.F_IsSure = 4;
  12463. modelT_Bus_AssignedInfo.F_SureUser = "";
  12464. modelT_Bus_AssignedInfo.F_SureTime = null;
  12465. assignBLL.Update(modelT_Bus_AssignedInfo);
  12466. if (modelT_Bus_RemindRecord!=null )
  12467. {
  12468. if (modelT_Bus_RemindRecord.F_State ==1)
  12469. {
  12470. modelT_Bus_RemindRecord.F_State = 0;
  12471. remindBLL.Update(modelT_Bus_RemindRecord);
  12472. }
  12473. }
  12474. #endregion
  12475. strmsg = "拒绝";
  12476. }
  12477. #region 插入操作记录
  12478. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12479. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12480. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12481. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12482. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12483. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  12484. oper.F_CreateUser = User.F_UserCode;
  12485. oper.F_CreateTime = DateTime.Now;
  12486. oper.F_IsDelete = 0;
  12487. operBLL.Add(oper);
  12488. //推送消息表
  12489. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12490. #endregion
  12491. if (modelT_Bus_AssignedInfo.F_MainDeptId == 304)
  12492. {
  12493. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(), reason, User.F_UserCode).ToString();
  12494. }
  12495. if (isjb > 0)
  12496. {
  12497. if (modelT_Bus_Feedback.F_IsAudit == 1)
  12498. {
  12499. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  12500. {
  12501. string maindeptid = RequestString.GetFormString("maindeptid");
  12502. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12503. int limittime = RequestString.GetInt("limittime", 0);
  12504. string limittimes = RequestString.GetString("limittimes");
  12505. string resdatetime = "";
  12506. if (limittime > 0)
  12507. {
  12508. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  12509. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  12510. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12511. }
  12512. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  12513. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12514. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  12515. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  12516. {
  12517. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  12518. {
  12519. return Error("操作失败");
  12520. }
  12521. }
  12522. if (!string.IsNullOrEmpty(otherdeptids))
  12523. {
  12524. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  12525. if (both.Count() > 0)
  12526. {
  12527. return Error("主办单位不能出现在协办单位");
  12528. }
  12529. }
  12530. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12531. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12532. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  12533. {
  12534. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12535. {
  12536. int aid = 0;
  12537. if (deptlist.Count == 1)
  12538. {
  12539. var deptinfo = deptlist.FirstOrDefault();
  12540. #region 插入交办记录
  12541. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12542. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  12543. if (modelT_Bus_WorkOrder.F_Level == 2)
  12544. {
  12545. try
  12546. {
  12547. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12548. }
  12549. catch
  12550. {
  12551. return Error("请选择正确的时间");
  12552. }
  12553. }
  12554. else
  12555. {
  12556. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12557. }
  12558. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12559. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12560. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12561. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12562. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12563. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12564. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12565. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12566. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12567. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12568. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12569. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12570. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12571. #endregion
  12572. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12573. {
  12574. #region 保存工单信息
  12575. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  12576. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  12577. if (modelT_Bus_WorkOrder.F_Level == 2)
  12578. {
  12579. try
  12580. {
  12581. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  12582. }
  12583. catch
  12584. {
  12585. return Error("请选择正确的时间");
  12586. }
  12587. }
  12588. else
  12589. {
  12590. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  12591. }
  12592. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  12593. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12594. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12595. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12596. workorderBLL.Update(modelT_Bus_WorkOrder);
  12597. #endregion
  12598. #region 删除草稿信息
  12599. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12600. foreach (var cg in cglist)
  12601. {
  12602. cg.F_IsDelete = 1;
  12603. cg.F_DeleteUser = User.F_UserCode;
  12604. cg.F_DeleteTime = DateTime.Now;
  12605. assignBLL.Update(cg);
  12606. }
  12607. #endregion
  12608. #region 插入操作记录
  12609. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12610. if (!string.IsNullOrEmpty(otherdeptids))
  12611. {
  12612. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12613. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12614. }
  12615. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  12616. //推送消息表
  12617. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12618. foreach (var u in users)
  12619. {
  12620. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12621. }
  12622. #endregion
  12623. }
  12624. }
  12625. else
  12626. {
  12627. string newids = ""; string errdeptid = ""; string deptname = "";
  12628. foreach (var deptinfo in deptlist)
  12629. {
  12630. deptname += deptinfo.F_DeptName + ",";
  12631. #region 新增工单
  12632. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  12633. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  12634. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  12635. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  12636. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  12637. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  12638. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  12639. {
  12640. errdeptid += deptinfo.F_DeptName + ",";
  12641. continue;
  12642. }
  12643. #endregion
  12644. #region 交办
  12645. #region 插入交办记录
  12646. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12647. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  12648. if (modelT_Bus_WorkOrder.F_Level == 2)
  12649. {
  12650. try
  12651. {
  12652. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12653. }
  12654. catch
  12655. {
  12656. return Error("请选择正确的时间");
  12657. }
  12658. }
  12659. else
  12660. {
  12661. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12662. }
  12663. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12664. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12665. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12666. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12667. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  12668. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12669. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12670. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12671. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12672. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12673. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12674. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12675. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12676. #endregion
  12677. #endregion
  12678. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12679. {
  12680. #region 保存工单信息
  12681. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  12682. if (modelT_Bus_WorkOrder.F_Level == 2)
  12683. {
  12684. try
  12685. {
  12686. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  12687. }
  12688. catch
  12689. {
  12690. return Error("请选择正确的时间");
  12691. }
  12692. }
  12693. else
  12694. {
  12695. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  12696. }
  12697. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12698. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12699. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  12700. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  12701. workorderBLL.Update(modelT_Bus_WorkOrder1);
  12702. #endregion
  12703. #region 删除草稿信息
  12704. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  12705. foreach (var cg in cglist)
  12706. {
  12707. cg.F_IsDelete = 1;
  12708. cg.F_DeleteUser = User.F_UserCode;
  12709. cg.F_DeleteTime = DateTime.Now;
  12710. assignBLL.Update(cg);
  12711. }
  12712. #endregion
  12713. #region 插入操作记录
  12714. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12715. if (!string.IsNullOrEmpty(otherdeptids))
  12716. {
  12717. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12718. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12719. }
  12720. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  12721. //推送消息表
  12722. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12723. foreach (var u in users)
  12724. {
  12725. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12726. }
  12727. #endregion
  12728. }
  12729. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  12730. }
  12731. newids = newids.Trim(','); deptname = deptname.Trim(',');
  12732. var msgs = "";
  12733. if (errdeptid == "")
  12734. {
  12735. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  12736. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12737. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  12738. workorderBLL.Update(modelT_Bus_WorkOrder);
  12739. msgs = userinfo + " 交办多单位,关闭此工单并生成新工单,新工单编号为:" + newids;
  12740. }
  12741. else
  12742. {
  12743. errdeptid = errdeptid.Trim(',');
  12744. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  12745. }
  12746. #region 插入操作记录
  12747. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  12748. #endregion
  12749. }
  12750. #region
  12751. #endregion
  12752. }
  12753. else
  12754. {
  12755. return Error("已经交办过了");
  12756. }
  12757. }
  12758. else
  12759. {
  12760. return Error("操作失败");
  12761. }
  12762. }
  12763. else
  12764. {
  12765. return Error("权限不足");
  12766. }
  12767. }
  12768. }
  12769. trans.Complete();
  12770. }
  12771. return Success("操作成功");
  12772. }
  12773. else
  12774. {
  12775. return Error("此审核已经处理");
  12776. }
  12777. }
  12778. else
  12779. {
  12780. return Error("操作失败");
  12781. }
  12782. }
  12783. else
  12784. {
  12785. return Error("权限不足");
  12786. }
  12787. }
  12788. /// <summary>
  12789. /// 申请延时
  12790. /// </summary>
  12791. /// <returns></returns>
  12792. //[Authority]
  12793. public ActionResult DelayWorkOrder()
  12794. {
  12795. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12796. {
  12797. string workorderid = RequestString.GetFormString("workorderid");
  12798. //int state = RequestString.GetInt("state", 0);
  12799. int newlimittime = RequestString.GetInt("newlimittime", 0);
  12800. //从工作日管理中取得时间判断
  12801. string resdatetime = "";
  12802. string reason = RequestString.GetFormString("reason");
  12803. string files = RequestString.GetFormString("files");
  12804. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12805. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12806. var Delay = new BLL.T_Bus_DelayTime().GetModelList("F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit in (0,1) and F_CreateUser='"+User .F_UserCode +"'");
  12807. if (Delay != null && Delay.Count > 0)
  12808. return Error("只能申请一次延时");
  12809. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12810. {
  12811. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12812. {
  12813. #region 保存工单信息
  12814. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  12815. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  12816. workorderBLL.Update(modelT_Bus_WorkOrder);
  12817. #endregion
  12818. #region 插入申请延时信息
  12819. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  12820. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12821. //delay.F_State = state;
  12822. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  12823. if (newlimittime > 0)
  12824. {
  12825. DataTable dt = DbHelperSQL.Query("select top " + newlimittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + modelT_Bus_AssignedInfo.F_LimitTime + "' order by F_OffDate").Tables[0];
  12826. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12827. }
  12828. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  12829. // delay.F_NewTime =DateTime .Now .AddDays ( newlimittime);
  12830. delay.F_NewTime = Convert.ToDateTime(resdatetime);
  12831. delay.F_Reason = reason;
  12832. delay.F_State = 1;
  12833. delay.F_IsAudit = 0;
  12834. delay.F_IsDelete = 0;
  12835. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12836. delay.F_CreateUser = User.F_UserCode;
  12837. delay.F_CreateTime = DateTime.Now;
  12838. delay.F_File = files;
  12839. new BLL.T_Bus_DelayTime().Add(delay);
  12840. #endregion
  12841. #region 插入操作记录
  12842. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12843. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12844. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12845. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12846. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12847. oper.F_Message = userinfo + " 申请了延时处理";
  12848. oper.F_CreateUser = User.F_UserCode;
  12849. oper.F_CreateTime = DateTime.Now;
  12850. oper.F_IsDelete = 0;
  12851. operBLL.Add(oper);
  12852. //推送消息表
  12853. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12854. #endregion
  12855. trans.Complete();
  12856. }
  12857. return Success("操作成功");
  12858. }
  12859. else
  12860. {
  12861. return Error("操作失败");
  12862. }
  12863. }
  12864. else
  12865. {
  12866. return Error("权限不足");
  12867. }
  12868. }
  12869. /// <summary>
  12870. /// 审核延时工单
  12871. /// </summary>
  12872. /// <returns></returns>
  12873. //[Authority]
  12874. public ActionResult AuditDelayWorkOrder()
  12875. {
  12876. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  12877. {
  12878. string workorderid = RequestString.GetFormString("workorderid");
  12879. int state = RequestString.GetInt("state", 0);
  12880. string reason = RequestString.GetFormString("reason");
  12881. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  12882. int delayid = RequestString.GetInt("delayid", 0);
  12883. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12884. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  12885. 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");
  12886. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12887. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  12888. {
  12889. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  12890. //{
  12891. // return Error("操作失败");
  12892. //}
  12893. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  12894. {
  12895. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12896. {
  12897. #region 保存工单信息
  12898. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  12899. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  12900. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  12901. workorderBLL.Update(modelT_Bus_WorkOrder);
  12902. #endregion
  12903. #region 保存审核信息
  12904. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  12905. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  12906. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  12907. modelT_Bus_DelayTime.F_RefuseReason = reason;
  12908. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  12909. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  12910. #endregion
  12911. string type = "同意"; string des = "";
  12912. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  12913. {
  12914. #region 修改交办记录
  12915. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  12916. assignBLL.Update(modelT_Bus_AssignedInfo);
  12917. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12918. {
  12919. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  12920. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12921. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12922. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12923. .AddHours(tss);
  12924. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12925. }
  12926. #endregion
  12927. #region 处理协办单位
  12928. //var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12929. //foreach (var xb in xblist)
  12930. //{
  12931. // //xb.F_LimitTime = DateTime.Now;
  12932. // xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  12933. // assignItemBLL.Update(xb);
  12934. //}
  12935. #endregion
  12936. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  12937. }
  12938. else
  12939. {
  12940. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  12941. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12942. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  12943. .Value.AddHours(tss);
  12944. workorderBLL.Update(modelT_Bus_WorkOrder);
  12945. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  12946. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12947. {
  12948. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12949. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12950. .AddHours(tss);
  12951. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12952. }
  12953. modelT_Bus_AssignedInfo.F_IsSure = 5;
  12954. assignBLL.Update(modelT_Bus_AssignedInfo);
  12955. type = "拒绝";
  12956. }
  12957. #region 插入操作记录
  12958. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12959. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12960. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12961. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12962. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12963. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  12964. oper.F_CreateUser = User.F_UserCode;
  12965. oper.F_CreateTime = DateTime.Now;
  12966. oper.F_IsDelete = 0;
  12967. operBLL.Add(oper);
  12968. //推送消息表
  12969. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12970. #endregion
  12971. trans.Complete();
  12972. }
  12973. return Success("操作成功");
  12974. }
  12975. else
  12976. {
  12977. return Error("此审核已经处理");
  12978. }
  12979. }
  12980. else
  12981. {
  12982. return Error("操作失败");
  12983. }
  12984. }
  12985. else
  12986. {
  12987. return Error("权限不足");
  12988. }
  12989. }
  12990. /// <summary>
  12991. /// 批量审核延时
  12992. /// </summary>
  12993. /// <param name="ids"></param>
  12994. /// <returns></returns>
  12995. //[Authority]
  12996. public ActionResult AuditDelayWorkOrderBatch(string ids)
  12997. {
  12998. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  12999. {
  13000. int state = RequestString.GetInt("state", 0);
  13001. string reason = RequestString.GetFormString("reason");
  13002. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13003. string errids = ""; string errids1 = "";
  13004. if (!string.IsNullOrEmpty(ids))
  13005. {
  13006. string[] strids = ids.Split(',');
  13007. foreach (string str in strids)
  13008. {
  13009. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13010. {
  13011. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  13012. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModelList(" F_WorkOrderId = '" + str + "' and F_State = 1 and F_IsDelete = 0 and F_IsAudit = 0 order by F_CreateTime desc").FirstOrDefault();
  13013. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  13014. 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");
  13015. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13016. {
  13017. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13018. {
  13019. #region 保存工单信息
  13020. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13021. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  13022. workorderBLL.Update(modelT_Bus_WorkOrder);
  13023. #endregion
  13024. #region 保存审核信息
  13025. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13026. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  13027. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13028. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13029. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  13030. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13031. #endregion
  13032. string type = "同意"; string des = "";
  13033. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13034. {
  13035. #region 修改交办记录
  13036. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13037. assignBLL.Update(modelT_Bus_AssignedInfo);
  13038. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  13039. {
  13040. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  13041. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  13042. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  13043. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  13044. .AddHours(tss);
  13045. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  13046. }
  13047. #endregion
  13048. #region 处理协办单位
  13049. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13050. foreach (var xb in xblist)
  13051. {
  13052. //xb.F_LimitTime = DateTime.Now;
  13053. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13054. assignItemBLL.Update(xb);
  13055. }
  13056. #endregion
  13057. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13058. }
  13059. else
  13060. {
  13061. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  13062. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  13063. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  13064. .Value.AddHours(tss);
  13065. workorderBLL.Update(modelT_Bus_WorkOrder);
  13066. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  13067. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  13068. {
  13069. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  13070. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  13071. .AddHours(tss);
  13072. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  13073. }
  13074. modelT_Bus_AssignedInfo.F_IsSure = 5;
  13075. assignBLL.Update(modelT_Bus_AssignedInfo);
  13076. type = "拒绝";
  13077. }
  13078. #region 插入操作记录
  13079. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13080. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13081. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13082. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13083. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13084. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13085. oper.F_CreateUser = User.F_UserCode;
  13086. oper.F_CreateTime = DateTime.Now;
  13087. oper.F_IsDelete = 0;
  13088. operBLL.Add(oper);
  13089. //推送消息表
  13090. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13091. #endregion
  13092. }
  13093. else
  13094. errids1 += str + ",";
  13095. }
  13096. trans.Complete();
  13097. }
  13098. }
  13099. if (errids1 == "" && errids == "")
  13100. return Success("操作成功");
  13101. else
  13102. {
  13103. string msg = "";
  13104. if (errids1 != "")
  13105. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  13106. if (errids != "")
  13107. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  13108. return Error("部分工单操作失败" + msg);
  13109. }
  13110. }
  13111. else
  13112. {
  13113. return Error("参数获取失败");
  13114. }
  13115. }
  13116. else
  13117. {
  13118. return Error("权限不足");
  13119. }
  13120. }
  13121. /// <summary>
  13122. /// 办理工单
  13123. /// </summary>
  13124. /// <returns></returns>
  13125. //[Authority]
  13126. public ActionResult FeedBackWorkOrder()
  13127. {
  13128. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13129. {
  13130. string workorderid = RequestString.GetFormString("workorderid");
  13131. string dealman = RequestString.GetFormString("dealman");
  13132. string result = RequestString.GetFormString("result");
  13133. string files = RequestString.GetFormString("files");
  13134. int state = RequestString.GetInt("state", 0);
  13135. int feedbackid = RequestString.GetInt("feedbackid", 0);
  13136. int isproresult = RequestString.GetInt("isproresult", 0);//是否向当事人反馈
  13137. string prosituation = RequestString.GetFormString("prosituation");
  13138. string dealcontact = RequestString.GetFormString("dealcontact");
  13139. string connecttime = RequestString.GetFormString("connecttime");
  13140. string connectmode = RequestString.GetFormString("connectmode");
  13141. string replycontent = RequestString.GetFormString("replycontent");
  13142. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  13143. string duties = RequestString.GetFormString("duties");
  13144. string situation = RequestString.GetFormString("situation");
  13145. string IsProResultState = RequestString.GetFormString("IsProResultState ");
  13146. string Unsuccessful = RequestString.GetFormString("Unsuccessful");
  13147. string AuditUser = RequestString.GetFormString("AuditUser");//审核领导
  13148. string post = RequestString.GetFormString("post");//审核领导职务
  13149. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  13150. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13151. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13152. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  13153. int type = 0;
  13154. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  13155. {
  13156. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13157. if (type > 0)
  13158. {
  13159. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  13160. if (modelT_Bus_WorkOrder.F_WorkState >= (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_IsProResult == 0)
  13161. {
  13162. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13163. {
  13164. if (feedbackid == 0)
  13165. {
  13166. #region 插入反馈记录
  13167. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13168. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13169. modelT_Bus_Feedback.F_AuditPost = post;
  13170. modelT_Bus_Feedback.F_AuditContact = auditContact;
  13171. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  13172. modelT_Bus_Feedback.F_DealUser = dealman;
  13173. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13174. #region 20200114新增字段 zhengbingbing
  13175. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13176. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13177. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13178. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13179. DateTime contime = DateTime.Now;
  13180. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13181. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13182. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13183. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13184. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13185. modelT_Bus_Feedback.F_Duties = duties;//职务
  13186. modelT_Bus_Feedback.F_Situation = situation;
  13187. modelT_Bus_Feedback.F_IsProResult = isproresult;
  13188. #endregion
  13189. modelT_Bus_Feedback.F_File = files;
  13190. modelT_Bus_Feedback.F_IsAudit = 0;
  13191. modelT_Bus_Feedback.F_IsDelete = 0;
  13192. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13193. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13194. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13195. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13196. modelT_Bus_Feedback.F_State = state;
  13197. modelT_Bus_Feedback.F_Type = type;
  13198. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  13199. #endregion
  13200. }
  13201. else
  13202. {
  13203. #region 修改反馈记录
  13204. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  13205. if (modelT_Bus_Feedback != null)
  13206. {
  13207. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13208. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13209. modelT_Bus_Feedback.F_DealUser = dealman;
  13210. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13211. modelT_Bus_Feedback.F_File = files;
  13212. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  13213. #region 20200114新增字段 zhengbingbing
  13214. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13215. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13216. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13217. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13218. DateTime contime = DateTime.Now;
  13219. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13220. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13221. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13222. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13223. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13224. modelT_Bus_Feedback.F_Duties = duties;//职务
  13225. modelT_Bus_Feedback.F_Situation = situation;
  13226. #endregion
  13227. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13228. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13229. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13230. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13231. modelT_Bus_Feedback.F_State = state;
  13232. modelT_Bus_Feedback.F_IsProResult = isproresult;
  13233. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13234. {
  13235. modelT_Bus_Feedback.F_Type = 1;
  13236. }
  13237. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  13238. {
  13239. modelT_Bus_Feedback.F_Type = 2;
  13240. }
  13241. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  13242. }
  13243. #endregion
  13244. }
  13245. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  13246. {
  13247. string typemsg = "办理";
  13248. if (type == 1)
  13249. {
  13250. int iscs = 0;
  13251. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13252. {
  13253. iscs = 1;
  13254. }
  13255. #region 保存工单信息
  13256. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  13257. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  13258. modelT_Bus_WorkOrder.F_Result = result;
  13259. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  13260. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  13261. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  13262. modelT_Bus_WorkOrder.F_ToBereply = 1;
  13263. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  13264. modelT_Bus_WorkOrder.F_IsProResult = isproresult;
  13265. workorderBLL.Update(modelT_Bus_WorkOrder);
  13266. #endregion
  13267. #region 保存交办信息
  13268. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  13269. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13270. {
  13271. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  13272. }
  13273. assignBLL.Update(modelT_Bus_AssignedInfo);
  13274. #endregion
  13275. #region 删除草稿信息
  13276. 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 + "'");
  13277. foreach (var cg in cglist)
  13278. {
  13279. cg.F_IsDelete = 1;
  13280. cg.F_DeleteUser = User.F_UserCode;
  13281. cg.F_DeleteTime = DateTime.Now;
  13282. new BLL.T_Bus_Feedback().Update(cg);
  13283. }
  13284. #endregion
  13285. #region 删除二级单位未办理信息
  13286. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13287. foreach (var ej in ejlist)
  13288. {
  13289. ej.F_IsDelete = 1;
  13290. ej.F_DeleteUser = User.F_UserCode;
  13291. ej.F_DeleteTime = DateTime.Now;
  13292. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  13293. }
  13294. #endregion
  13295. #region 处理协办单位
  13296. 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 + "'");
  13297. foreach (var xb in xblist)
  13298. {
  13299. xb.F_State = 2;
  13300. xb.F_SureUser = User.F_UserCode;
  13301. xb.F_SureTime = DateTime.Now;
  13302. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  13303. }
  13304. #endregion
  13305. typemsg = "主办";
  13306. }
  13307. else if (type == 2)
  13308. {
  13309. #region 保存明细信息
  13310. 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();
  13311. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  13312. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  13313. {
  13314. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  13315. }
  13316. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  13317. #endregion
  13318. #region 删除草稿信息
  13319. 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 + "'");
  13320. foreach (var cg in cglist)
  13321. {
  13322. cg.F_IsDelete = 1;
  13323. cg.F_DeleteUser = User.F_UserCode;
  13324. cg.F_DeleteTime = DateTime.Now;
  13325. new BLL.T_Bus_Feedback().Update(cg);
  13326. }
  13327. #endregion
  13328. typemsg = "协办";
  13329. }
  13330. #region 插入操作记录
  13331. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13332. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13333. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13334. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13335. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13336. oper.F_Message = userinfo + " " + typemsg + "了工单";
  13337. oper.F_CreateUser = User.F_UserCode;
  13338. oper.F_CreateTime = DateTime.Now;
  13339. oper.F_IsDelete = 0;
  13340. operBLL.Add(oper);
  13341. //推送消息表
  13342. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13343. #endregion
  13344. }
  13345. trans.Complete();
  13346. }
  13347. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  13348. }
  13349. else
  13350. {
  13351. return Error("已经办理过了");
  13352. }
  13353. }
  13354. else
  13355. {
  13356. return Error("权限不足");
  13357. }
  13358. }
  13359. else
  13360. {
  13361. return Error("操作失败");
  13362. }
  13363. }
  13364. else
  13365. {
  13366. return Error("权限不足");
  13367. }
  13368. }
  13369. /// <summary>
  13370. ///追问回复
  13371. /// </summary>
  13372. /// <returns></returns>
  13373. //[Authority]
  13374. public ActionResult ReplyWorkOrder()
  13375. {
  13376. 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")
  13377. {
  13378. string workorderid = RequestString.GetFormString("workorderid");
  13379. string files = RequestString.GetFormString("files");
  13380. string replycount = RequestString.GetFormString("replycount");
  13381. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13382. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13383. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL
  13384. .GetNewModelByWorkOrderID(workorderid);
  13385. int type = 0;
  13386. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  13387. && modelT_Bus_Feedback != null)
  13388. {
  13389. // type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13390. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  13391. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed && modelT_Bus_WorkOrder.F_IsProResult == 2)
  13392. {
  13393. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13394. {
  13395. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_AdditionalReply))
  13396. modelT_Bus_WorkOrder.F_AdditionalReply = replycount + "; ";
  13397. else
  13398. modelT_Bus_WorkOrder.F_AdditionalReply += replycount + "; ";
  13399. modelT_Bus_WorkOrder.F_IsProResult = 3;
  13400. bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  13401. if (!string.IsNullOrEmpty(files))
  13402. {
  13403. if (!string.IsNullOrEmpty(modelT_Bus_Feedback.F_Files))
  13404. modelT_Bus_Feedback.F_Files += "," + files;
  13405. else
  13406. modelT_Bus_Feedback.F_Files = files;
  13407. bool f = feedbackBLL.Update(modelT_Bus_Feedback);
  13408. }
  13409. #region 插入操作记录
  13410. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13411. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13412. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13413. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13414. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13415. oper.F_Message = userinfo + " " + "回复" + "了工单";
  13416. oper.F_CreateUser = User.F_UserCode;
  13417. oper.F_CreateTime = DateTime.Now;
  13418. oper.F_IsDelete = 0;
  13419. operBLL.Add(oper);
  13420. #endregion
  13421. trans.Complete();
  13422. }
  13423. return Success("操作成功");
  13424. }
  13425. else
  13426. {
  13427. return Error("已经办理过了");
  13428. }
  13429. }
  13430. else
  13431. {
  13432. return Error("操作失败");
  13433. }
  13434. }
  13435. else
  13436. {
  13437. return Error("权限不足");
  13438. }
  13439. }
  13440. /// <summary>
  13441. /// 转办回访
  13442. /// </summary>
  13443. /// <returns></returns>
  13444. //[Authority]
  13445. public ActionResult Transfer()
  13446. {
  13447. string workorderid = RequestString.GetFormString("workorderid");
  13448. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "MTDD")
  13449. {
  13450. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13451. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  13452. if (modelT_Bus_WorkOrder != null)
  13453. {
  13454. modelT_Bus_WorkOrder.F_ToBereply = 0;
  13455. modelT_Bus_WorkOrder.F_IsProResult = 2;
  13456. #region 插入操作记录
  13457. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13458. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13459. if (modelT_Bus_WorkOrder.F_MainDeptId>0)
  13460. {
  13461. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  13462. if (user != null && user.Count > 0)
  13463. {
  13464. foreach (var it in user)
  13465. {
  13466. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  13467. string msg = workorderid;
  13468. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  13469. }
  13470. }
  13471. if (modelT_Bus_AssignedInfo_Next != null)
  13472. {
  13473. var modelT_Bus_Feedback_Next
  13474. = new BLL.T_Bus_Feedback_Next().GetModelList
  13475. ("F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "' and F_WorkOrderId='" +
  13476. workorderid + "' ORDER BY F_CreateTime DESC ");
  13477. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next
  13478. .Count > 0)
  13479. {
  13480. if(modelT_Bus_Feedback_Next[0].F_CreateDeptId >0)
  13481. {
  13482. var users = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_Feedback_Next[0].F_CreateDeptId + " ");
  13483. if (users != null && users.Count > 0)
  13484. {
  13485. foreach (var it in users)
  13486. {
  13487. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  13488. string msg = workorderid;
  13489. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  13490. }
  13491. }
  13492. }
  13493. }
  13494. }
  13495. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13496. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13497. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13498. oper.F_Message = userinfo + " " + "提交了已办未果";
  13499. oper.F_CreateUser = User.F_UserCode;
  13500. oper.F_CreateTime = DateTime.Now;
  13501. oper.F_IsDelete = 0;
  13502. operBLL.Add(oper);
  13503. #endregion
  13504. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  13505. return Success("转办成功");
  13506. else
  13507. return Error("转办失败");
  13508. }
  13509. else
  13510. return Error("该工单没有承办单位");
  13511. }
  13512. else
  13513. {
  13514. return Error("工单不存在");
  13515. }
  13516. }
  13517. return Error("权限不足");
  13518. }
  13519. #region 网格化对接
  13520. /// <summary>
  13521. /// 对接网格化
  13522. /// 工单查收操作
  13523. /// </summary>
  13524. /// <param name="usercode"></param>
  13525. /// <param name="workorderid"></param>
  13526. /// <returns></returns>
  13527. public string ReceiveWorkOrderByDock(string usercode, string workorderid, string content)
  13528. {
  13529. var returns = "";
  13530. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13531. {
  13532. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  13533. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13534. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13535. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13536. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  13537. if (User != null)
  13538. {
  13539. if (modelT_Bus_WorkOrder == null)
  13540. msgss = "要办理的工单已不存在";
  13541. else if (modelT_Bus_AssignedInfo == null)
  13542. {
  13543. msgss = "工单无法处理或已被处理";
  13544. }
  13545. else
  13546. {
  13547. 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)
  13548. {
  13549. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13550. {
  13551. #region 保存工单信息
  13552. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13553. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13554. workorderBLL.Update(modelT_Bus_WorkOrder);
  13555. #endregion
  13556. #region 保存查收信息
  13557. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  13558. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13559. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13560. assignBLL.Update(modelT_Bus_AssignedInfo);
  13561. #endregion
  13562. #region 保存明细信息
  13563. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  13564. {
  13565. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  13566. foreach (string strid in strids)
  13567. {
  13568. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  13569. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13570. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  13571. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  13572. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13573. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  13574. modelT_Bus_AssignedItemInfo.F_State = 1;
  13575. modelT_Bus_AssignedItemInfo.F_Type = 2;
  13576. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13577. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  13578. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  13579. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  13580. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  13581. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  13582. }
  13583. }
  13584. #endregion
  13585. retbool = "true";
  13586. optmsg = " 查收了工单";
  13587. msgss = optmsg;
  13588. }
  13589. else
  13590. msgss = "工单已被查收";
  13591. assid = modelT_Bus_AssignedInfo.F_Id;
  13592. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  13593. }
  13594. else
  13595. msgss = "工单已办理或已被重新指派";
  13596. }
  13597. userinfo = User.depname + "(" + User.F_UserCode + ")";
  13598. }
  13599. else
  13600. {
  13601. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  13602. msgss = "无法获取工号信息";
  13603. }
  13604. #region 插入操作记录
  13605. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13606. oper.F_WorkOrderId = workorderid;
  13607. oper.F_AssignedId = assid;
  13608. oper.F_State = state;
  13609. oper.F_Message = userinfo + " " + msgss + msgend;
  13610. oper.F_CreateUser = usercode;
  13611. oper.F_CreateTime = DateTime.Now;
  13612. oper.F_IsDelete = 0;
  13613. oper.F_Type = 1;
  13614. optid = operBLL.Add(oper).ToString();
  13615. #endregion
  13616. trans.Complete();
  13617. returns = retbool + "|" + optid + "|" + msgss;
  13618. }
  13619. return returns;
  13620. }
  13621. /// <summary>
  13622. /// 对接网格化 工单退回操作
  13623. /// </summary>
  13624. /// <returns></returns>
  13625. public string RebackWorkOrderByDock(string usercode, string workorderid, string backreason, string content)
  13626. {
  13627. var returns = "";
  13628. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13629. {
  13630. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  13631. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  13632. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13633. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13634. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13635. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  13636. if (User != null)
  13637. {
  13638. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  13639. if (modelT_Bus_WorkOrder == null)
  13640. msgss = "要办理的工单已不存在";
  13641. else if (modelT_Bus_AssignedInfo == null)
  13642. {
  13643. msgss = "工单无法处理或已被处理";
  13644. }
  13645. else
  13646. {
  13647. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13648. {
  13649. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13650. {
  13651. #region 保存工单信息
  13652. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  13653. workorderBLL.Update(modelT_Bus_WorkOrder);
  13654. #endregion
  13655. #region 插入退回申请信息
  13656. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  13657. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13658. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13659. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  13660. model_T_Bus_Feedback.F_IsAudit = 0;
  13661. model_T_Bus_Feedback.F_IsDelete = 0;
  13662. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  13663. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  13664. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  13665. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  13666. model_T_Bus_Feedback.F_State = 1;
  13667. model_T_Bus_Feedback.F_Type = 3;
  13668. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  13669. #endregion
  13670. #region 保存交办信息
  13671. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  13672. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13673. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13674. assignBLL.Update(modelT_Bus_AssignedInfo);
  13675. #endregion
  13676. #region 推送消息
  13677. retbool = "true";
  13678. optmsg = " 申请退回了工单";
  13679. //推送消息表
  13680. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13681. #endregion
  13682. msgss = optmsg;
  13683. }
  13684. else
  13685. msgss = "工单已被查收,不能退回";
  13686. assid = modelT_Bus_AssignedInfo.F_Id;
  13687. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  13688. }
  13689. else
  13690. msgss = "工单已办理或已被重新指派";
  13691. }
  13692. }
  13693. else
  13694. {
  13695. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  13696. msgss = "无法获取工号信息";
  13697. }
  13698. #region 插入操作记录
  13699. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13700. oper.F_WorkOrderId = workorderid;
  13701. oper.F_AssignedId = assid;
  13702. oper.F_State = state;
  13703. oper.F_Message = userinfo + " " + msgss + msgend;
  13704. oper.F_CreateUser = usercode;
  13705. oper.F_CreateTime = DateTime.Now;
  13706. oper.F_IsDelete = 0;
  13707. oper.F_Type = 1;
  13708. optid = operBLL.Add(oper).ToString();
  13709. #endregion
  13710. trans.Complete();
  13711. returns = retbool + "|" + optid + "|" + msgss;
  13712. }
  13713. return returns;
  13714. }
  13715. /// <summary>
  13716. /// 对接网格化办理
  13717. /// </summary>
  13718. /// <param name="usercode">工号</param>
  13719. /// <param name="workorderid">工单编号</param>
  13720. /// <param name="dealman">承办人人</param>
  13721. /// <param name="result">反馈内容</param>
  13722. /// <param name="files">附件</param>
  13723. /// <param name="prosituation">处理情况/方案/进程</param>
  13724. /// <param name="dealcontact">承办人联系方式</param>
  13725. /// <param name="connecttime">沟通时间</param>
  13726. /// <param name="connectmode">沟通方式</param>
  13727. /// <param name="replycontent">答复内容</param>
  13728. /// <param name="duties">职务</param>
  13729. /// <param name="situation">处理情况</param>
  13730. /// <param name="state">0保存,1保存并办理</param>
  13731. /// <param name="feedbackid"></param>
  13732. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  13733. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  13734. /// <returns></returns>
  13735. 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)
  13736. {
  13737. var returns = "";
  13738. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13739. {
  13740. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  13741. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13742. if (User != null)
  13743. {
  13744. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  13745. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13746. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13747. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  13748. msgend = ",工单编号:" + workorderid;
  13749. int type = 0; var resmsg = ""; string typemsg = "办理";
  13750. if (modelT_Bus_WorkOrder == null)
  13751. msgss = "要办理的工单已不存在";
  13752. else if (modelT_Bus_AssignedInfo == null)
  13753. {
  13754. msgss = "工单无法处理";
  13755. }
  13756. else
  13757. {
  13758. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13759. if (type > 0)
  13760. {
  13761. #region 办理结果合成
  13762. result = "";
  13763. #region 获取部门
  13764. var deptname = "";
  13765. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  13766. {
  13767. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  13768. if (deptmodel != null)
  13769. deptname = deptmodel.F_DeptName;
  13770. }
  13771. #endregion
  13772. #region 获取来源
  13773. var sourcename = "";
  13774. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  13775. {
  13776. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  13777. if (dicmodel != null)
  13778. sourcename = dicmodel.F_Value;
  13779. }
  13780. #endregion
  13781. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  13782. var bljg = ""; var endstr = "";
  13783. if (isproresult == 1)
  13784. {
  13785. bljg = "已办理";
  13786. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  13787. {
  13788. var isStaisfiedRadioData = "未评价";
  13789. if (isstaisfied == 1)
  13790. {
  13791. isStaisfiedRadioData = "满意";
  13792. }
  13793. else if (isstaisfied == 2)
  13794. {
  13795. isStaisfiedRadioData = "基本满意";
  13796. }
  13797. else if (isstaisfied == 3)
  13798. {
  13799. isStaisfiedRadioData = "不满意";
  13800. }
  13801. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  13802. }
  13803. }
  13804. else if (isproresult == 2)
  13805. {
  13806. bljg = "未办理";
  13807. endstr = "; 处理方案/进程:" + prosituation;
  13808. }
  13809. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  13810. #endregion
  13811. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  13812. {
  13813. #region 处理办理
  13814. if (feedbackid == 0)
  13815. {
  13816. #region 插入反馈记录
  13817. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13818. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13819. modelT_Bus_Feedback.F_DealUser = dealman;
  13820. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13821. #region 20200114新增字段 zhengbingbing
  13822. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13823. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13824. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13825. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13826. DateTime contime = DateTime.Now;
  13827. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13828. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13829. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13830. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13831. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13832. modelT_Bus_Feedback.F_Duties = duties;//职务
  13833. modelT_Bus_Feedback.F_Situation = situation;
  13834. #endregion
  13835. modelT_Bus_Feedback.F_File = files;
  13836. modelT_Bus_Feedback.F_IsAudit = 0;
  13837. modelT_Bus_Feedback.F_IsDelete = 0;
  13838. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13839. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13840. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13841. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13842. modelT_Bus_Feedback.F_State = state;
  13843. modelT_Bus_Feedback.F_Type = type;
  13844. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  13845. #endregion
  13846. }
  13847. else
  13848. {
  13849. #region 修改反馈记录
  13850. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  13851. if (modelT_Bus_Feedback != null)
  13852. {
  13853. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13854. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13855. modelT_Bus_Feedback.F_DealUser = dealman;
  13856. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13857. modelT_Bus_Feedback.F_File = files;
  13858. #region 20200114新增字段 zhengbingbing
  13859. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13860. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13861. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13862. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13863. DateTime contime = DateTime.Now;
  13864. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13865. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13866. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13867. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13868. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13869. modelT_Bus_Feedback.F_Duties = duties;//职务
  13870. modelT_Bus_Feedback.F_Situation = situation;
  13871. #endregion
  13872. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13873. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13874. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13875. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13876. modelT_Bus_Feedback.F_State = state;
  13877. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13878. {
  13879. modelT_Bus_Feedback.F_Type = 1;
  13880. }
  13881. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  13882. {
  13883. modelT_Bus_Feedback.F_Type = 2;
  13884. }
  13885. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  13886. }
  13887. #endregion
  13888. }
  13889. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  13890. {
  13891. if (type == 1)
  13892. {
  13893. int iscs = 0;
  13894. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13895. {
  13896. iscs = 1;
  13897. }
  13898. #region 保存工单信息
  13899. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  13900. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  13901. modelT_Bus_WorkOrder.F_Result = result;
  13902. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  13903. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  13904. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  13905. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  13906. workorderBLL.Update(modelT_Bus_WorkOrder);
  13907. #endregion
  13908. #region 保存交办信息
  13909. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  13910. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13911. {
  13912. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  13913. }
  13914. assignBLL.Update(modelT_Bus_AssignedInfo);
  13915. #endregion
  13916. #region 删除草稿信息
  13917. 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 + "'");
  13918. foreach (var cg in cglist)
  13919. {
  13920. cg.F_IsDelete = 1;
  13921. cg.F_DeleteUser = User.F_UserCode;
  13922. cg.F_DeleteTime = DateTime.Now;
  13923. new BLL.T_Bus_Feedback().Update(cg);
  13924. }
  13925. #endregion
  13926. #region 删除二级单位未办理信息
  13927. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13928. foreach (var ej in ejlist)
  13929. {
  13930. ej.F_IsDelete = 1;
  13931. ej.F_DeleteUser = User.F_UserCode;
  13932. ej.F_DeleteTime = DateTime.Now;
  13933. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  13934. }
  13935. #endregion
  13936. #region 处理协办单位
  13937. 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 + "'");
  13938. foreach (var xb in xblist)
  13939. {
  13940. xb.F_State = 2;
  13941. xb.F_SureUser = User.F_UserCode;
  13942. xb.F_SureTime = DateTime.Now;
  13943. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  13944. }
  13945. #endregion
  13946. typemsg = "主办";
  13947. }
  13948. else if (type == 2)
  13949. {
  13950. #region 保存明细信息
  13951. 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();
  13952. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  13953. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  13954. {
  13955. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  13956. }
  13957. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  13958. #endregion
  13959. #region 删除草稿信息
  13960. 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 + "'");
  13961. foreach (var cg in cglist)
  13962. {
  13963. cg.F_IsDelete = 1;
  13964. cg.F_DeleteUser = User.F_UserCode;
  13965. cg.F_DeleteTime = DateTime.Now;
  13966. new BLL.T_Bus_Feedback().Update(cg);
  13967. }
  13968. #endregion
  13969. typemsg = "协办";
  13970. }
  13971. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  13972. //推送消息表
  13973. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13974. }
  13975. #endregion
  13976. retbool = "true";
  13977. }
  13978. else
  13979. msgss = "工单已办理";
  13980. backid = modelT_Bus_Feedback.F_Id.ToString();
  13981. }
  13982. else
  13983. msgss = "工单已办理或已被重新指派";
  13984. assid = modelT_Bus_AssignedInfo.F_Id;
  13985. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  13986. }
  13987. msgend = resmsg + " " + typemsg + "了工单";
  13988. }
  13989. else
  13990. {
  13991. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  13992. msgss = "无法获取工号信息";
  13993. }
  13994. #region 插入操作记录
  13995. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13996. oper.F_WorkOrderId = workorderid;
  13997. oper.F_AssignedId = assid;
  13998. oper.F_State = wostate;
  13999. oper.F_Message = userinfo + msgend;
  14000. oper.F_CreateUser = usercode;
  14001. oper.F_CreateTime = DateTime.Now;
  14002. oper.F_IsDelete = 0;
  14003. oper.F_Type = 1;
  14004. oper.F_File = files;
  14005. operBLL.Add(oper);
  14006. #endregion
  14007. trans.Complete();
  14008. returns = retbool + "|" + backid + "|" + msgss;
  14009. }
  14010. return returns;
  14011. }
  14012. /// <summary>
  14013. /// 对接网格化,记录办理过程
  14014. /// </summary>
  14015. /// <param name="usercode"></param>
  14016. /// <param name="workorderid"></param>
  14017. /// <param name="content"></param>
  14018. /// <returns></returns>
  14019. public string DealProcessWorkOrderByDock(string usercode, string workorderid, string content)
  14020. {
  14021. var returns = "";
  14022. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14023. {
  14024. var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  14025. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  14026. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14027. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14028. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  14029. if (User != null)
  14030. {
  14031. if (modelT_Bus_WorkOrder == null)
  14032. msgss = "要办理的工单已不存在";
  14033. else if (modelT_Bus_AssignedInfo == null)
  14034. {
  14035. msgss = "工单无法处理或已被处理";
  14036. }
  14037. else
  14038. {
  14039. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14040. {
  14041. msgss = "办理工单";
  14042. retbool = "true";
  14043. assid = modelT_Bus_AssignedInfo.F_Id;
  14044. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  14045. }
  14046. else
  14047. {
  14048. msgss = "工单无法处理";
  14049. }
  14050. }
  14051. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  14052. }
  14053. else
  14054. {
  14055. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  14056. msgss = "无法获取工号信息";
  14057. }
  14058. #region 插入操作记录
  14059. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14060. oper.F_WorkOrderId = workorderid;
  14061. oper.F_AssignedId = assid;
  14062. oper.F_State = state;
  14063. oper.F_Message = userinfo + msgend;
  14064. oper.F_CreateUser = usercode;
  14065. oper.F_CreateTime = DateTime.Now;
  14066. oper.F_IsDelete = 0;
  14067. oper.F_Type = 1;
  14068. optid = operBLL.Add(oper).ToString();
  14069. #endregion
  14070. trans.Complete();
  14071. returns = retbool + "|" + optid + "|" + msgss;
  14072. }
  14073. return returns;
  14074. }
  14075. #endregion
  14076. /// <summary>
  14077. /// 撤回工单
  14078. /// </summary>
  14079. /// <returns></returns>
  14080. //[Authority]
  14081. public ActionResult WithdrawWorkOrder()
  14082. {
  14083. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  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. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14089. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14090. {
  14091. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14092. {
  14093. #region 保存撤单信息
  14094. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  14095. modelT_Bus_AssignedInfo_Next.F_DeleteUser = User.F_UserCode;
  14096. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  14097. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14098. #endregion
  14099. #region 删除处理信息
  14100. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  14101. foreach (var cg in cglist)
  14102. {
  14103. cg.F_IsDelete = 1;
  14104. cg.F_DeleteUser = User.F_UserCode;
  14105. cg.F_DeleteTime = DateTime.Now;
  14106. new BLL.T_Bus_Feedback_Next().Update(cg);
  14107. }
  14108. #endregion
  14109. #region 保存交办信息
  14110. modelT_Bus_AssignedInfo.F_IsNext = 0;
  14111. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14112. #endregion
  14113. #region 保存工单信息
  14114. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14115. workorderBLL.Update(modelT_Bus_WorkOrder);
  14116. #endregion
  14117. #region 插入操作记录
  14118. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14119. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14120. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14121. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14122. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14123. oper.F_Message = userinfo + " 撤回了工单";
  14124. oper.F_CreateUser = User.F_UserCode;
  14125. oper.F_CreateTime = DateTime.Now;
  14126. oper.F_IsDelete = 0;
  14127. operBLL.Add(oper);
  14128. #endregion
  14129. trans.Complete();
  14130. }
  14131. return Success("操作成功");
  14132. }
  14133. else
  14134. {
  14135. return Error("操作失败");
  14136. }
  14137. }
  14138. else
  14139. {
  14140. return Error("权限不足");
  14141. }
  14142. }
  14143. /// <summary>
  14144. /// 签收工单
  14145. /// </summary>
  14146. /// <returns></returns>
  14147. //[Authority]
  14148. public ActionResult SignWorkOrder()
  14149. {
  14150. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14151. {
  14152. string workorderid = RequestString.GetFormString("workorderid");
  14153. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14154. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14155. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14156. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  14157. {
  14158. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  14159. {
  14160. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14161. {
  14162. #region 保存签收信息
  14163. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  14164. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14165. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14166. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14167. #endregion
  14168. #region 保存交办信息
  14169. modelT_Bus_AssignedInfo.F_IsNext = 2;
  14170. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14171. #endregion
  14172. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo_Next.F_OtherDeptIds))
  14173. {
  14174. if (modelT_Bus_AssignedInfo_Next.F_OtherDeptIds != "null")
  14175. {
  14176. string[] strids = modelT_Bus_AssignedInfo_Next.F_OtherDeptIds.TrimEnd(',').Split(',');
  14177. foreach (string strid in strids)
  14178. {
  14179. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  14180. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14181. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo_Next.F_AssignedOpinion;
  14182. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  14183. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo_Next.F_LimitTime;
  14184. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo_Next.F_Remark;
  14185. modelT_Bus_AssignedItemInfo.F_State = 1;
  14186. modelT_Bus_AssignedItemInfo.F_Type = 2;
  14187. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo_Next.F_WorkOrderId;
  14188. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  14189. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  14190. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  14191. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  14192. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  14193. }
  14194. }
  14195. }
  14196. #region 插入操作记录
  14197. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14198. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14199. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14200. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14201. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14202. oper.F_Message = userinfo + " 签收了工单";
  14203. oper.F_CreateUser = User.F_UserCode;
  14204. oper.F_CreateTime = DateTime.Now;
  14205. oper.F_IsDelete = 0;
  14206. operBLL.Add(oper);
  14207. #endregion
  14208. trans.Complete();
  14209. }
  14210. return Success("操作成功");
  14211. }
  14212. else
  14213. {
  14214. return Error("单位已签收,不能再次签收");
  14215. }
  14216. }
  14217. else
  14218. {
  14219. return Error("操作失败");
  14220. }
  14221. }
  14222. else
  14223. {
  14224. return Error("权限不足");
  14225. }
  14226. }
  14227. /// <summary>
  14228. /// 拒收工单
  14229. /// </summary>
  14230. /// <returns></returns>
  14231. //[Authority]
  14232. public ActionResult RefuseWorkOrder()
  14233. {
  14234. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14235. {
  14236. string workorderid = RequestString.GetFormString("workorderid");
  14237. string reason = RequestString.GetFormString("reason");
  14238. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14239. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14240. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14241. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  14242. {
  14243. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0
  14244. || modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  14245. {
  14246. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14247. {
  14248. #region 保存签收信息
  14249. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  14250. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14251. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14252. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14253. #endregion
  14254. #region 保存交办信息
  14255. //三级单位退单
  14256. modelT_Bus_AssignedInfo.F_IsNext = 4;
  14257. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14258. #endregion
  14259. #region 保存工单信息
  14260. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14261. workorderBLL.Update(modelT_Bus_WorkOrder);
  14262. #endregion
  14263. #region 插入操作记录
  14264. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14265. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14266. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14267. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14268. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14269. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  14270. oper.F_CreateUser = User.F_UserCode;
  14271. oper.F_CreateTime = DateTime.Now;
  14272. oper.F_IsDelete = 0;
  14273. operBLL.Add(oper);
  14274. #endregion
  14275. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  14276. if (user != null && user.Count > 0)
  14277. {
  14278. foreach (var it in user)
  14279. {
  14280. string count = "工单" + workorderid + "已被退回至本单位,请及时转派处理!";
  14281. string msg = workorderid;
  14282. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "181769", "");
  14283. }
  14284. }
  14285. //三级单位退回工单给二级单位时,增加短信提醒
  14286. //三级单位退回工单给二级单位时,增加短信提醒
  14287. trans.Complete();
  14288. }
  14289. return Success("操作成功");
  14290. }
  14291. else
  14292. {
  14293. return Error("单位未拒收");
  14294. }
  14295. }
  14296. else
  14297. {
  14298. return Error("操作失败");
  14299. }
  14300. }
  14301. else
  14302. {
  14303. return Error("权限不足");
  14304. }
  14305. }
  14306. /// <summary>
  14307. /// 拒绝工单
  14308. /// </summary>
  14309. /// <returns></returns>
  14310. //[Authority]
  14311. public ActionResult RejectWorkOrder()
  14312. {
  14313. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14314. {
  14315. string workorderid = RequestString.GetFormString("workorderid");
  14316. string reason = RequestString.GetFormString("reason");
  14317. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14318. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14319. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14320. ;
  14321. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  14322. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14323. {
  14324. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 3)
  14325. {
  14326. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14327. {
  14328. #region 保存签收信息
  14329. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  14330. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14331. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14332. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14333. #endregion
  14334. #region 保存交办信息
  14335. //三级单位退单
  14336. modelT_Bus_AssignedInfo.F_IsNext = 1;
  14337. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14338. #endregion
  14339. #region 保存工单信息
  14340. modelT_Bus_WorkOrder.F_MainDeptID3 = modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString();
  14341. workorderBLL.Update(modelT_Bus_WorkOrder);
  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_Next.F_Id;
  14347. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14348. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14349. oper.F_Message = userinfo + " 拒绝了工单,原因:" + reason;
  14350. oper.F_CreateUser = User.F_UserCode;
  14351. oper.F_CreateTime = DateTime.Now;
  14352. oper.F_IsDelete = 0;
  14353. operBLL.Add(oper);
  14354. #endregion
  14355. trans.Complete();
  14356. }
  14357. return Success("操作成功");
  14358. }
  14359. else
  14360. {
  14361. return Error("单位已签收,不能再次签收");
  14362. }
  14363. }
  14364. else
  14365. {
  14366. return Error("操作失败");
  14367. }
  14368. }
  14369. else
  14370. {
  14371. return Error("权限不足");
  14372. }
  14373. }
  14374. /// <summary>
  14375. /// 二级单位退回工单
  14376. /// </summary>
  14377. /// <returns></returns>
  14378. //[Authority]
  14379. public ActionResult BackWorkOrder()
  14380. {
  14381. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "EJWLDW")
  14382. {
  14383. string workorderid = RequestString.GetFormString("workorderid");
  14384. string reason = RequestString.GetFormString("reason");
  14385. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14386. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14387. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14388. ;
  14389. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  14390. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14391. {
  14392. if (modelT_Bus_AssignedInfo_Next.F_FeedbackTime != null)
  14393. {
  14394. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14395. {
  14396. #region
  14397. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = null;
  14398. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  14399. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14400. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14401. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14402. #endregion
  14403. #region
  14404. //三级单位退单
  14405. modelT_Bus_AssignedInfo.F_IsNext = 1;
  14406. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14407. #endregion
  14408. #region 保存工单信息
  14409. modelT_Bus_WorkOrder.F_MainDeptID3 = modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString();
  14410. workorderBLL.Update(modelT_Bus_WorkOrder);
  14411. #endregion
  14412. #region 插入操作记录
  14413. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14414. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14415. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14416. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14417. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14418. oper.F_Message = userinfo + " 退回了工单,原因:" + reason;
  14419. oper.F_CreateUser = User.F_UserCode;
  14420. oper.F_CreateTime = DateTime.Now;
  14421. oper.F_IsDelete = 0;
  14422. operBLL.Add(oper);
  14423. #endregion
  14424. trans.Complete();
  14425. }
  14426. return Success("操作成功");
  14427. }
  14428. else
  14429. {
  14430. return Error("单位未办理,不能退回重办");
  14431. }
  14432. }
  14433. else
  14434. {
  14435. return Error("操作失败");
  14436. }
  14437. }
  14438. else
  14439. {
  14440. return Error("权限不足");
  14441. }
  14442. }
  14443. /// <summary>
  14444. /// 处理工单
  14445. /// </summary>
  14446. /// <returns></returns>
  14447. //[Authority]
  14448. public ActionResult DealWorkOrder()
  14449. {
  14450. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14451. {
  14452. string workorderid = RequestString.GetFormString("workorderid");
  14453. string dealman = RequestString.GetFormString("dealman");
  14454. string result = RequestString.GetFormString("result");
  14455. string files = RequestString.GetFormString("files");
  14456. int state = RequestString.GetInt("state", 0);
  14457. int dealid = RequestString.GetInt("dealid", 0);
  14458. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  14459. string prosituation = RequestString.GetFormString("prosituation");
  14460. string dealcontact = RequestString.GetFormString("dealcontact");
  14461. string connecttime = RequestString.GetFormString("connecttime");
  14462. string connectmode = RequestString.GetFormString("connectmode");
  14463. string replycontent = RequestString.GetFormString("replycontent");
  14464. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  14465. string duties = RequestString.GetFormString("duties");//职务
  14466. string situation = RequestString.GetFormString("situation");
  14467. string AuditUser = RequestString.GetFormString("AuditUser");
  14468. string post = RequestString.GetFormString("post");
  14469. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14470. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14471. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14472. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  14473. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && (modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId || modelT_Bus_AssignedInfo_Next
  14474. .F_OtherDeptIds.Contains(User.F_DeptId.ToString()))
  14475. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  14476. {
  14477. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  14478. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay
  14479. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  14480. {
  14481. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  14482. {
  14483. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14484. {
  14485. if (dealid == 0)
  14486. {
  14487. #region 插入反馈记录
  14488. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14489. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  14490. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  14491. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  14492. #region 20200114新增字段 zhengbingbing
  14493. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  14494. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  14495. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  14496. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  14497. DateTime contime = DateTime.Now;
  14498. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  14499. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  14500. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  14501. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  14502. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14503. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  14504. modelT_Bus_Feedback_Next.F_Situation = situation;
  14505. #endregion
  14506. modelT_Bus_Feedback_Next.F_File = files;
  14507. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  14508. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  14509. modelT_Bus_Feedback_Next.F_AuditPost = post;
  14510. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  14511. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  14512. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  14513. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  14514. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  14515. modelT_Bus_Feedback_Next.F_State = state;
  14516. modelT_Bus_Feedback_Next.F_Type = 1;
  14517. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  14518. #endregion
  14519. }
  14520. else
  14521. {
  14522. #region 修改反馈记录
  14523. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  14524. if (modelT_Bus_Feedback_Next != null)
  14525. {
  14526. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14527. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  14528. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  14529. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  14530. modelT_Bus_Feedback_Next.F_File = files;
  14531. #region 20200114新增字段 zhengbingbing
  14532. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  14533. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  14534. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  14535. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  14536. DateTime contime = DateTime.Now;
  14537. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  14538. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  14539. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  14540. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  14541. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14542. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  14543. modelT_Bus_Feedback_Next.F_Situation = situation;
  14544. #endregion
  14545. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  14546. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  14547. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  14548. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  14549. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  14550. modelT_Bus_Feedback_Next.F_State = state;
  14551. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  14552. }
  14553. #endregion
  14554. }
  14555. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  14556. {
  14557. #region 保存交办信息
  14558. modelT_Bus_AssignedInfo.F_IsNext = 3;
  14559. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14560. #endregion
  14561. #region 保存派单信息
  14562. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  14563. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  14564. {
  14565. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  14566. }
  14567. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14568. #endregion
  14569. #region 删除草稿信息
  14570. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  14571. foreach (var cg in cglist)
  14572. {
  14573. cg.F_IsDelete = 1;
  14574. cg.F_DeleteUser = User.F_UserCode;
  14575. cg.F_DeleteTime = DateTime.Now;
  14576. new BLL.T_Bus_Feedback_Next().Update(cg);
  14577. }
  14578. #endregion
  14579. #region 插入操作记录
  14580. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14581. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14582. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14583. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14584. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14585. oper.F_Message = userinfo + " 办理了工单";
  14586. oper.F_CreateUser = User.F_UserCode;
  14587. oper.F_CreateTime = DateTime.Now;
  14588. oper.F_IsDelete = 0;
  14589. operBLL.Add(oper);
  14590. //推送消息表
  14591. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14592. #endregion
  14593. }
  14594. trans.Complete();
  14595. }
  14596. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  14597. }
  14598. else
  14599. {
  14600. return Error("已经办理过了");
  14601. }
  14602. }
  14603. else
  14604. {
  14605. return Error("已经办理过了");
  14606. }
  14607. }
  14608. else
  14609. {
  14610. return Error("操作失败");
  14611. }
  14612. }
  14613. else
  14614. {
  14615. return Error("权限不足");
  14616. }
  14617. }
  14618. private BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
  14619. /// <summary>
  14620. /// 保存客户档案
  14621. /// </summary>
  14622. /// <param name="telphone"></param>
  14623. /// <param name="name"></param>
  14624. /// <param name="phone"></param>
  14625. /// <param name="countryid"></param>
  14626. /// <param name="address"></param>
  14627. /// <returns></returns>
  14628. private void saveCus(string name, string phone, string address)
  14629. {
  14630. int res = 0;
  14631. Model.T_Cus_CustomerBase cusmodel = new Model.T_Cus_CustomerBase();
  14632. if (!string.IsNullOrWhiteSpace(phone))
  14633. {
  14634. cusmodel = cusBLL.GetModelBy(phone, name);
  14635. if (cusmodel == null)
  14636. {
  14637. cusmodel = new Model.T_Cus_CustomerBase();
  14638. cusmodel.F_Address = address;
  14639. cusmodel.F_CustomerName = name;
  14640. cusmodel.F_Mobile = phone;
  14641. cusmodel.F_DeleteFlag = 0;
  14642. res = cusBLL.Add(cusmodel);
  14643. }
  14644. }
  14645. }
  14646. /// <summary>
  14647. /// 审核派单
  14648. /// </summary>
  14649. /// <returns></returns>
  14650. //[Authority]
  14651. public ActionResult AuditSplitWorkOrder()
  14652. {
  14653. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14654. {
  14655. string workorderid = RequestString.GetFormString("workorderid");
  14656. int state = RequestString.GetInt("state", 0);
  14657. string reason = RequestString.GetFormString("reason");
  14658. int backid = RequestString.GetInt("backid", 0);
  14659. string files = RequestString.GetFormString("files");
  14660. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14661. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14662. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  14663. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  14664. {
  14665. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  14666. {
  14667. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14668. {
  14669. modelT_Bus_Feedback_Next.F_IsAudit = state;
  14670. modelT_Bus_Feedback_Next.F_AuditUser = User.F_UserCode;
  14671. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  14672. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  14673. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  14674. string strmsg = "";
  14675. string message = User.F_UserName + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + modelT_Bus_Feedback_Next.F_Result; ;
  14676. if (state == 1)
  14677. {
  14678. strmsg = "同意";
  14679. #region 插入反馈记录
  14680. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  14681. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14682. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  14683. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  14684. modelT_Bus_Feedback.F_Result = message;//反馈内容
  14685. #region 20200114新增字段 zhengbingbing
  14686. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  14687. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  14688. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  14689. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  14690. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  14691. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  14692. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  14693. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14694. #endregion
  14695. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  14696. modelT_Bus_Feedback.F_IsAudit = 0;
  14697. modelT_Bus_Feedback.F_IsDelete = 0;
  14698. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  14699. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  14700. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  14701. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  14702. modelT_Bus_Feedback.F_State = state;
  14703. modelT_Bus_Feedback.F_Type = 1;
  14704. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  14705. #endregion
  14706. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  14707. {
  14708. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  14709. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  14710. }
  14711. #region 保存工单信息
  14712. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  14713. if (modelT_Bus_Feedback.F_IsProResult == 2)
  14714. {
  14715. modelT_Bus_WorkOrder.F_IsProResult = 2;
  14716. // modelT_Bus_WorkOrder.F_IsProResultState = IsProResultState;
  14717. modelT_Bus_WorkOrder.F_Unsuccessful = modelT_Bus_Feedback.F_ProSituation;
  14718. }
  14719. else
  14720. {
  14721. modelT_Bus_WorkOrder.F_ToBereply = 1;
  14722. modelT_Bus_WorkOrder.F_IsProResult = 1;
  14723. }
  14724. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  14725. modelT_Bus_WorkOrder.F_Result = message;
  14726. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  14727. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  14728. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14729. workorderBLL.Update(modelT_Bus_WorkOrder);
  14730. #endregion
  14731. #region 保存交办信息
  14732. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  14733. assignBLL.Update(modelT_Bus_AssignedInfo);
  14734. #endregion
  14735. #region 删除草稿信息
  14736. 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 + "'");
  14737. foreach (var cg in cglist)
  14738. {
  14739. cg.F_IsDelete = 1;
  14740. cg.F_DeleteUser = User.F_UserCode;
  14741. cg.F_DeleteTime = DateTime.Now;
  14742. new BLL.T_Bus_Feedback().Update(cg);
  14743. }
  14744. #endregion
  14745. #region 处理协办单位
  14746. 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 + "'");
  14747. foreach (var xb in xblist)
  14748. {
  14749. xb.F_State = 2;
  14750. xb.F_SureUser = User.F_UserCode;
  14751. xb.F_SureTime = DateTime.Now;
  14752. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  14753. }
  14754. #endregion
  14755. }
  14756. else if (state == 2)
  14757. {
  14758. strmsg = "拒绝";
  14759. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  14760. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  14761. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  14762. modelT_Bus_AssignedInfo.F_IsNext = 2;
  14763. assignBLL.Update(modelT_Bus_AssignedInfo);
  14764. }
  14765. #region 插入操作记录
  14766. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14767. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14768. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14769. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14770. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14771. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  14772. if (!string.IsNullOrWhiteSpace(reason))
  14773. oper.F_Message = oper.F_Message + ",原因:" + reason;
  14774. oper.F_CreateUser = User.F_UserCode;
  14775. oper.F_CreateTime = DateTime.Now;
  14776. oper.F_IsDelete = 0;
  14777. operBLL.Add(oper);
  14778. //推送消息表
  14779. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14780. #endregion
  14781. trans.Complete();
  14782. }
  14783. return Success("操作成功");
  14784. }
  14785. else
  14786. {
  14787. return Error("已经审核过了");
  14788. }
  14789. }
  14790. else
  14791. {
  14792. return Error("操作失败");
  14793. }
  14794. }
  14795. else
  14796. {
  14797. return Error("权限不足");
  14798. }
  14799. }
  14800. /// <summary>
  14801. /// 发送评价短信
  14802. /// </summary>
  14803. /// <param name="phone"></param>
  14804. /// <param name="WorkOrderId"></param>
  14805. /// <returns></returns>
  14806. public ActionResult SendVisit(string phone, string WorkOrderId)
  14807. {
  14808. if (!string.IsNullOrEmpty(phone))
  14809. {
  14810. if (phone.Trim().Length > 11)
  14811. phone = phone.Substring(1, 11);
  14812. }
  14813. else
  14814. {
  14815. return Error("请输入号码");
  14816. }
  14817. var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  14818. if (model != null)
  14819. {
  14820. model.F_IsSms = 1;
  14821. new BLL.T_Bus_WorkOrder().Update(model);
  14822. string count = "您反映的诉求已办理完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果并对办理情况进行评价,谢谢";
  14823. string mag = "";
  14824. bool n = SMSController.AddSmS(0, mag, count, phone, "213014", "", WorkOrderId);
  14825. if (n)
  14826. {
  14827. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14828. oper.F_WorkOrderId = model.F_WorkOrderId;
  14829. oper.F_State = model.F_WorkState;
  14830. oper.F_CallRecordId = model.F_CallRecordId;
  14831. oper.F_File = model.F_File;
  14832. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  14833. oper.F_Message = userinfo + "发送了市民评价短信" ;
  14834. oper.F_CreateUser = User.F_UserCode;
  14835. oper.F_CreateTime = DateTime.Now;
  14836. oper.F_IsDelete = 0;
  14837. operBLL.Add(oper);
  14838. return Success("发送成功");
  14839. }
  14840. else
  14841. return Error("发送失败");
  14842. }
  14843. return Error("发送失败");
  14844. }
  14845. /// <summary>
  14846. /// 回访工单
  14847. /// </summary>
  14848. /// <returns></returns>
  14849. public ActionResult VisitWorkOrder()
  14850. {
  14851. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "MTDD")
  14852. {
  14853. string workorderid = RequestString.GetFormString("workorderid");
  14854. string visituser = RequestString.GetFormString("visituser");//回访人
  14855. int type = RequestString.GetInt("type", 0);//回访方式
  14856. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  14857. int state = RequestString.GetInt("state", 1);//0保存 1保存并下一步
  14858. int visitid = RequestString.GetInt("visitid", 0);
  14859. string result = RequestString.GetFormString("result");//回访情况
  14860. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2退回重办
  14861. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  14862. string callid = RequestString.GetFormString("callid");
  14863. string guid = RequestString.GetFormString("guid");
  14864. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14865. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14866. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  14867. if (modelT_Bus_WorkOrder != null)
  14868. {
  14869. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  14870. {
  14871. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14872. {
  14873. if (visitid == 0)
  14874. {
  14875. #region 新增回访结果记录
  14876. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14877. modelT_Bus_VisitResult.F_AssignedId = 0;
  14878. modelT_Bus_VisitResult.F_VisitUser = visituser;
  14879. modelT_Bus_VisitResult.F_Type = type;
  14880. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  14881. modelT_Bus_VisitResult.F_Result = result;
  14882. modelT_Bus_VisitResult.F_State = state;
  14883. if (!string.IsNullOrEmpty(callid))
  14884. {
  14885. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  14886. if (rd != null)
  14887. {
  14888. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  14889. }
  14890. }
  14891. modelT_Bus_VisitResult.F_IsDelete = 0;
  14892. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  14893. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  14894. if (modelT_Bus_AssignedInfo != null)
  14895. {
  14896. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14897. }
  14898. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  14899. modelT_Bus_VisitResult.F_Id = id;
  14900. //保存回访记录
  14901. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  14902. #endregion
  14903. }
  14904. else
  14905. {
  14906. #region 修改回访结果记录
  14907. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  14908. if (modelT_Bus_VisitResult != null)
  14909. {
  14910. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14911. modelT_Bus_VisitResult.F_AssignedId = 0;
  14912. modelT_Bus_VisitResult.F_VisitUser = visituser;
  14913. modelT_Bus_VisitResult.F_Type = type;
  14914. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  14915. modelT_Bus_VisitResult.F_Result = result;
  14916. modelT_Bus_VisitResult.F_State = state;
  14917. if (!string.IsNullOrEmpty(callid))
  14918. {
  14919. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  14920. if (rd != null)
  14921. {
  14922. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  14923. }
  14924. }
  14925. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  14926. modelT_Bus_VisitResult.F_IsDelete = 0;
  14927. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  14928. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  14929. if (modelT_Bus_AssignedInfo != null)
  14930. {
  14931. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14932. }
  14933. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  14934. modelT_Bus_VisitResult.F_Id = id;
  14935. //保存回访记录
  14936. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  14937. }
  14938. #endregion
  14939. }
  14940. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  14941. {
  14942. //提交重办满意度改为满意
  14943. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  14944. assignBLL.Update(modelT_Bus_AssignedInfo);
  14945. var opt = "回访"; var cbreasons = "";
  14946. //结案
  14947. if (nexttype == 0)
  14948. {
  14949. if (issatisfie == 0)
  14950. modelT_Bus_WorkOrder.F_ToBereply = 1;
  14951. modelT_Bus_WorkOrder.F_IsClosed = 1;
  14952. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14953. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  14954. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  14955. workorderBLL.Update(modelT_Bus_WorkOrder);
  14956. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  14957. {
  14958. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  14959. if (model != null)
  14960. {
  14961. if (model.F_WorkState != 2 && model.F_WorkState != 4 && model.F_WorkState != 6)
  14962. {
  14963. model.F_IsClosed = 1;
  14964. model.F_CloseTime = DateTime.Now;
  14965. model.F_CloseUser = User.F_UserCode;
  14966. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  14967. if (string.IsNullOrEmpty(model.F_Result))
  14968. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  14969. else
  14970. model.F_Result += "; " + modelT_Bus_WorkOrder.F_Result;
  14971. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  14972. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  14973. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  14974. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  14975. workorderBLL.Update(model);
  14976. }
  14977. }
  14978. }
  14979. if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  14980. {
  14981. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  14982. {
  14983. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  14984. if (orderlist.Length > 0)
  14985. {
  14986. foreach (var it in orderlist)
  14987. {
  14988. var model = workorderBLL.GetModel(it);
  14989. if (model != null)
  14990. {
  14991. model.F_IsClosed = 1;
  14992. model.F_CloseTime = DateTime.Now;
  14993. model.F_CloseUser = User.F_UserCode;
  14994. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  14995. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  14996. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  14997. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  14998. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  14999. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  15000. workorderBLL.Update(model);
  15001. }
  15002. }
  15003. }
  15004. }
  15005. }
  15006. string count = "您反映的诉求已办理完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果并对办理情况进行评价,谢谢";
  15007. string mag = "";
  15008. bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "213014", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  15009. }
  15010. #region 重办
  15011. else if (nexttype == 1)
  15012. {
  15013. #region 保存工单信息
  15014. if (modelT_Bus_WorkOrder.F_RemindDay == 2|| modelT_Bus_WorkOrder.F_RemindDay == 3)
  15015. {
  15016. return Error("回访时,提交重办只能操作一次");
  15017. }
  15018. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  15019. modelT_Bus_WorkOrder.F_RemindDay = 3;
  15020. else
  15021. modelT_Bus_WorkOrder.F_RemindDay = 2;
  15022. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  15023. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15024. modelT_Bus_WorkOrder.F_IsSms = 0;
  15025. modelT_Bus_WorkOrder.F_Identification = 0;
  15026. workorderBLL.Update(modelT_Bus_WorkOrder);
  15027. #endregion
  15028. opt = "于" + DateTime.Now
  15029. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "回访";
  15030. cbreasons = ",重办原因:" + cbreason;
  15031. #endregion
  15032. }
  15033. else if (nexttype == 2)
  15034. {
  15035. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  15036. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  15037. {
  15038. 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());
  15039. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  15040. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15041. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  15042. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  15043. if (!string.IsNullOrEmpty(resdatetime))
  15044. {
  15045. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  15046. }
  15047. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  15048. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  15049. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  15050. newmodelT_Bus_AssignedInfo.F_State = 1;
  15051. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  15052. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15053. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  15054. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15055. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  15056. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  15057. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  15058. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  15059. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  15060. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  15061. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  15062. {
  15063. #region 保存工单信息
  15064. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  15065. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  15066. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  15067. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  15068. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  15069. {
  15070. modelT_Bus_WorkOrder.F_RemindDay = 1;
  15071. }
  15072. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  15073. if (!string.IsNullOrEmpty(resdatetime))
  15074. modelT_Bus_WorkOrder.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");
  15075. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  15076. modelT_Bus_WorkOrder.F_IsSms = 0;
  15077. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  15078. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15079. modelT_Bus_WorkOrder.F_Identification = 1;
  15080. modelT_Bus_WorkOrder.F_Result = "";
  15081. modelT_Bus_WorkOrder.F_DealDeptId = null;
  15082. modelT_Bus_WorkOrder.F_DealUser = "";
  15083. modelT_Bus_WorkOrder.F_DealTime = null;
  15084. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  15085. {
  15086. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  15087. if (user != null && user.Count > 0)
  15088. {
  15089. foreach (var it in user)
  15090. {
  15091. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  15092. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  15093. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  15094. }
  15095. }
  15096. #region 插入操作记录
  15097. #region 20191021调整为多个主办单位时调整
  15098. #endregion
  15099. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  15100. cbreasons = ",重办原因:" + cbreason;
  15101. #endregion
  15102. }
  15103. #endregion
  15104. }
  15105. else
  15106. {
  15107. return Error("退回失败");
  15108. }
  15109. }
  15110. }
  15111. #region 插入操作记录
  15112. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15113. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15114. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  15115. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15116. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15117. oper.F_Message = userinfo + " " + opt + "了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意") + cbreasons;
  15118. oper.F_CreateUser = User.F_UserCode;
  15119. oper.F_CreateTime = DateTime.Now;
  15120. oper.F_IsDelete = 0;
  15121. operBLL.Add(oper);
  15122. //推送消息表
  15123. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15124. #endregion
  15125. if (issatisfie == 1)//如果满意就进行自动语音回访
  15126. {
  15127. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  15128. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  15129. {
  15130. string AutoCallMsg = string.Empty;
  15131. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  15132. }
  15133. }
  15134. }
  15135. trans.Complete();
  15136. //////多次不满意转督办
  15137. ////if (issatisfie == 0 && nexttype > 0)
  15138. ////{
  15139. //// Remind(modelT_Bus_WorkOrder, modelT_Bus_AssignedInfo);
  15140. ////}
  15141. }
  15142. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  15143. }
  15144. else
  15145. {
  15146. return Error("已经回访过了");
  15147. }
  15148. }
  15149. else
  15150. {
  15151. return Error("操作失败");
  15152. }
  15153. }
  15154. else
  15155. {
  15156. return Error("权限不足");
  15157. }
  15158. }
  15159. /// <summary>
  15160. /// 多次不满意转督办
  15161. /// </summary>
  15162. /// <returns></returns>
  15163. public bool Remind(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo)
  15164. {
  15165. bool n = true;
  15166. 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());
  15167. if (f >= 2)
  15168. {
  15169. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  15170. 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");
  15171. if (modelRemindlist != null && modelRemindlist.Count > 0)
  15172. {
  15173. modelT_Bus_RemindRecord = modelRemindlist.FirstOrDefault();
  15174. if (modelT_Bus_RemindRecord != null)
  15175. {
  15176. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办";
  15177. modelT_Bus_RemindRecord.F_State = 0;
  15178. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  15179. }
  15180. }
  15181. else
  15182. {
  15183. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15184. if (modelT_Bus_AssignedInfo != null)
  15185. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15186. modelT_Bus_RemindRecord.F_Type = 1;
  15187. if (modelT_Bus_AssignedInfo != null)
  15188. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  15189. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办"; ;
  15190. modelT_Bus_RemindRecord.F_File = "";
  15191. modelT_Bus_RemindRecord.F_State = 0;//0待办 1已办 2退回
  15192. modelT_Bus_RemindRecord.F_IsDelete = 0;
  15193. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  15194. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  15195. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  15196. }
  15197. #endregion
  15198. #region 插入操作记录
  15199. string typename = "督办";
  15200. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15201. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15202. if (modelT_Bus_AssignedInfo != null)
  15203. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15204. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15205. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15206. oper.F_Message = userinfo + " " + typename + "了工单";
  15207. oper.F_CreateUser = User.F_UserCode;
  15208. oper.F_CreateTime = DateTime.Now;
  15209. oper.F_IsDelete = 0;
  15210. operBLL.Add(oper);
  15211. }
  15212. return n;
  15213. }
  15214. #region 20200311 zhengbingbing 增加履职界定操作
  15215. /// <summary>
  15216. /// 履职
  15217. /// </summary>
  15218. /// <returns></returns>
  15219. //[Authority]
  15220. public ActionResult PerformWorkOrder()
  15221. {
  15222. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15223. {//承办单位和管理员
  15224. string workorderid = RequestString.GetFormString("workorderid");
  15225. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  15226. int perid = RequestString.GetInt("perid", 0);
  15227. string file = RequestString.GetFormString("file");
  15228. string result = RequestString.GetFormString("result");
  15229. string guid = RequestString.GetFormString("guid");
  15230. string visitids = RequestString.GetFormString("visitids");
  15231. if (string.IsNullOrWhiteSpace(visitids))
  15232. return Error("请选择你要履职的回访记录");
  15233. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15234. List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in (" + visitids + ")");
  15235. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  15236. if (modelT_Bus_WorkOrder != null)
  15237. {
  15238. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  15239. {//已回访,重办待交办,重办中,重办驳回,已结案
  15240. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15241. {
  15242. var assids = ""; //读取对应的交办记录
  15243. #region 读取对应的交办id
  15244. foreach (var item in listT_Bus_VisitResult)
  15245. {
  15246. if (item.F_AssignedId != null && item.F_AssignedId != 0)
  15247. assids = item.F_AssignedId + ",";
  15248. }
  15249. assids = assids.Trim(',');
  15250. #endregion
  15251. #region 履职
  15252. if (perid == 0)
  15253. {
  15254. #region 新增履职记录
  15255. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15256. modelT_Bus_PerformDuties.F_AssignedId = assids;
  15257. modelT_Bus_PerformDuties.F_VisitId = visitids;
  15258. modelT_Bus_PerformDuties.F_File = file;
  15259. modelT_Bus_PerformDuties.F_State = state;
  15260. modelT_Bus_PerformDuties.F_Result = result;
  15261. modelT_Bus_PerformDuties.F_IsAudit = 0;
  15262. modelT_Bus_PerformDuties.F_IsDelete = 0;
  15263. modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  15264. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  15265. modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  15266. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  15267. modelT_Bus_PerformDuties.F_Id = id;
  15268. //保存回访记录
  15269. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  15270. #endregion
  15271. }
  15272. else
  15273. {
  15274. #region 修改履职记录
  15275. modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  15276. if (modelT_Bus_PerformDuties != null)
  15277. {
  15278. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15279. modelT_Bus_PerformDuties.F_AssignedId = assids;
  15280. modelT_Bus_PerformDuties.F_VisitId = visitids;
  15281. modelT_Bus_PerformDuties.F_File = file;
  15282. modelT_Bus_PerformDuties.F_State = state;
  15283. modelT_Bus_PerformDuties.F_Result = result;
  15284. modelT_Bus_PerformDuties.F_IsAudit = 0;
  15285. modelT_Bus_PerformDuties.F_IsDelete = 0;
  15286. modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  15287. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  15288. modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  15289. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  15290. modelT_Bus_PerformDuties.F_Id = id;
  15291. //保存回访记录
  15292. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  15293. }
  15294. #endregion
  15295. }
  15296. if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  15297. {
  15298. #region 保存交办信息
  15299. foreach (var item in assids.Split(','))
  15300. {
  15301. var model = assignBLL.GetModel(int.Parse(item));
  15302. if (model != null)
  15303. {
  15304. model.F_IsPerform = 1;
  15305. assignBLL.Update(model);
  15306. }
  15307. }
  15308. #endregion
  15309. #region
  15310. foreach (var item in listT_Bus_VisitResult)
  15311. {
  15312. item.F_IsPerform = 1;
  15313. new BLL.T_Bus_VisitResult().Update(item);
  15314. }
  15315. #endregion
  15316. #region 删除草稿信息
  15317. var cglist = new BLL.T_Bus_PerformDuties().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateUser='" + User.F_UserCode + "' ");
  15318. foreach (var cg in cglist)
  15319. {
  15320. cg.F_IsDelete = 1;
  15321. cg.F_DeleteUser = User.F_UserCode;
  15322. cg.F_DeleteTime = DateTime.Now;
  15323. new BLL.T_Bus_PerformDuties().Update(cg);
  15324. new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, User.F_UserCode, guid);
  15325. }
  15326. #endregion
  15327. var opt = "履职界定";
  15328. #region 插入操作记录
  15329. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15330. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15331. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15332. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15333. oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  15334. oper.F_File = modelT_Bus_PerformDuties.F_File;
  15335. oper.F_CreateUser = User.F_UserCode;
  15336. oper.F_CreateTime = DateTime.Now;
  15337. oper.F_IsDelete = 0;
  15338. foreach (var item in assids.Split(','))
  15339. {
  15340. oper.F_AssignedId = int.Parse(item);
  15341. operBLL.Add(oper);
  15342. //推送消息表 履职界定消息目前推送给工号8666
  15343. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", User.F_UserCode, (int)EnumSmsType.workorder);
  15344. }
  15345. #endregion
  15346. }
  15347. #endregion
  15348. trans.Complete();
  15349. }
  15350. return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  15351. }
  15352. else
  15353. {
  15354. return Error("此状态下不能进行履职操作");
  15355. }
  15356. }
  15357. else
  15358. {
  15359. return Error("操作失败");
  15360. }
  15361. }
  15362. else
  15363. {
  15364. return Error("权限不足");
  15365. }
  15366. }
  15367. /// <summary>
  15368. /// 履职界定审核
  15369. /// </summary>
  15370. /// <returns></returns>
  15371. //[Authority]
  15372. public ActionResult DefinitionWorkOrder()
  15373. {
  15374. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  15375. {
  15376. string workorderid = RequestString.GetFormString("workorderid");
  15377. int state = RequestString.GetInt("state", 0);
  15378. string reason = RequestString.GetFormString("reason");
  15379. int perid = RequestString.GetInt("perid", 0);
  15380. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15381. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  15382. if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  15383. {
  15384. if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  15385. {
  15386. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15387. {
  15388. #region 保存履职界定信息
  15389. modelT_Bus_PerformDuties.F_IsAudit = state;
  15390. modelT_Bus_PerformDuties.F_AuditUser = User.F_UserCode;
  15391. modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  15392. modelT_Bus_PerformDuties.F_AuditReason = reason;
  15393. new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  15394. #endregion
  15395. string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  15396. #region
  15397. if (state == 1)
  15398. {
  15399. strmsg = "同意";
  15400. isperform = 2;
  15401. IsSatisfie = 1;
  15402. }
  15403. else if (state == 2)
  15404. {
  15405. strmsg = "拒绝";
  15406. isperform = 3;
  15407. }
  15408. #endregion
  15409. #region 交办记录处理
  15410. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  15411. {
  15412. var model = assignBLL.GetModel(int.Parse(item));
  15413. if (model != null)
  15414. {
  15415. model.F_IsPerform = isperform;
  15416. if (state == 1)//同意此履职界定则修改回访结果为满意
  15417. model.F_IsSatisfie = IsSatisfie;
  15418. assignBLL.Update(model);
  15419. }
  15420. }
  15421. #endregion
  15422. #region 回访记录处理
  15423. foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  15424. {
  15425. var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  15426. if (model != null)
  15427. {
  15428. model.F_IsPerform = isperform;
  15429. if (state == 1)//同意此履职界定则修改回访结果为满意
  15430. model.F_IsSatisfie = IsSatisfie;
  15431. new BLL.T_Bus_VisitResult().Update(model);
  15432. }
  15433. }
  15434. #endregion
  15435. #region 插入操作记录
  15436. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15437. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15438. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15439. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15440. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  15441. if (!string.IsNullOrWhiteSpace(reason))
  15442. oper.F_Message = oper.F_Message + ",理由为:" + reason;
  15443. oper.F_CreateUser = User.F_UserCode;
  15444. oper.F_CreateTime = DateTime.Now;
  15445. oper.F_IsDelete = 0;
  15446. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  15447. {
  15448. oper.F_AssignedId = int.Parse(item);
  15449. operBLL.Add(oper);
  15450. //推送消息表
  15451. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15452. }
  15453. #endregion
  15454. trans.Complete();
  15455. }
  15456. return Success("操作成功");
  15457. }
  15458. else
  15459. return Error("已经审核过了");
  15460. }
  15461. else
  15462. return Error("操作失败");
  15463. }
  15464. else
  15465. return Error("权限不足");
  15466. }
  15467. #endregion
  15468. /// <summary>
  15469. /// 督办或监察工单
  15470. /// </summary>
  15471. /// <returns></returns>
  15472. //[Authority]
  15473. public ActionResult RemindWorkOrder()
  15474. {
  15475. string workorderid = RequestString.GetFormString("workorderid");
  15476. int type = RequestString.GetInt("type", 0);//1督办 2监察
  15477. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  15478. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  15479. string files = RequestString.GetFormString("files");
  15480. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15481. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15482. if (modelT_Bus_WorkOrder != null)
  15483. {
  15484. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15485. {
  15486. #region 插入督办记录
  15487. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  15488. if (type == 1 && state > 0)
  15489. {
  15490. modelT_Bus_RemindRecord = 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").FirstOrDefault();
  15491. if (modelT_Bus_RemindRecord != null)
  15492. {
  15493. if (state == 0)
  15494. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  15495. else
  15496. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  15497. modelT_Bus_RemindRecord.F_State = state;
  15498. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  15499. }
  15500. }
  15501. else
  15502. {
  15503. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15504. if (modelT_Bus_AssignedInfo != null)
  15505. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15506. modelT_Bus_RemindRecord.F_Type = type;
  15507. if (modelT_Bus_AssignedInfo != null)
  15508. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  15509. if (state == 0)
  15510. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  15511. else
  15512. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  15513. modelT_Bus_RemindRecord.F_File = files;
  15514. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  15515. modelT_Bus_RemindRecord.F_IsDelete = 0;
  15516. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  15517. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  15518. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  15519. }
  15520. #endregion
  15521. #region 插入操作记录
  15522. string typename = "督办";
  15523. if (type == 2) { typename = "监察"; }
  15524. if (type == 1 && state == 0) { typename = "提交督办"; }
  15525. if (type == 1 && state == 1) { typename = "督办"; }
  15526. if (type == 1 && state == 2) { typename = "退回督办"; }
  15527. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  15528. // bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  15529. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15530. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15531. if (modelT_Bus_AssignedInfo != null)
  15532. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15533. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15534. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15535. oper.F_Message = userinfo + " " + typename + "了工单";
  15536. oper.F_CreateUser = User.F_UserCode;
  15537. oper.F_CreateTime = DateTime.Now;
  15538. oper.F_IsDelete = 0;
  15539. operBLL.Add(oper);
  15540. #endregion
  15541. trans.Complete();
  15542. }
  15543. return Success("操作成功");
  15544. }
  15545. else
  15546. {
  15547. return Error("操作失败");
  15548. }
  15549. }
  15550. /// <summary>
  15551. /// 督办查收工单
  15552. /// </summary>
  15553. /// <returns></returns>
  15554. //[Authority]
  15555. public ActionResult RemindCheck()
  15556. {
  15557. string workorderid = RequestString.GetFormString("workorderid");
  15558. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  15559. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15560. if (modelT_Bus_RemindRecord != null)
  15561. {
  15562. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15563. {
  15564. #region 插入督办记录
  15565. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  15566. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  15567. #endregion
  15568. #region 插入操作记录
  15569. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15570. oper.F_WorkOrderId = modelT_Bus_RemindRecord.F_WorkOrderId;
  15571. if (modelT_Bus_AssignedInfo != null)
  15572. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15573. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15574. oper.F_Message = userinfo + " 查收了督办工单";
  15575. oper.F_CreateUser = User.F_UserCode;
  15576. oper.F_CreateTime = DateTime.Now;
  15577. oper.F_IsDelete = 0;
  15578. operBLL.Add(oper);
  15579. #endregion
  15580. trans.Complete();
  15581. }
  15582. return Success("操作成功");
  15583. }
  15584. else
  15585. {
  15586. return Error("操作失败");
  15587. }
  15588. }
  15589. /// <summary>
  15590. /// 审核员审核工单
  15591. /// </summary>
  15592. /// <returns></returns>
  15593. public ActionResult BusinessApproved()
  15594. {
  15595. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "MTDD")
  15596. {
  15597. string workorderid = RequestString.GetFormString("workorderid");
  15598. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15599. if (modelT_Bus_WorkOrder != null&&( modelT_Bus_WorkOrder.F_WorkState ==6|| modelT_Bus_WorkOrder.F_WorkState == 1|| modelT_Bus_WorkOrder.F_WorkState == 11))
  15600. {
  15601. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15602. {
  15603. var opt = ""; var cbreasons = "";
  15604. if (modelT_Bus_WorkOrder.F_WorkState!=6)
  15605. {
  15606. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15607. modelT_Bus_WorkOrder.F_AssignExamineUser = User.F_UserCode;
  15608. modelT_Bus_WorkOrder.F_AssignExamineTime = DateTime.Now;
  15609. }
  15610. else
  15611. {
  15612. modelT_Bus_WorkOrder.F_IsExamine = 2;
  15613. modelT_Bus_WorkOrder.F_VisitAssignUser = User.F_UserCode;
  15614. modelT_Bus_WorkOrder.F_VisitExamineTime = DateTime.Now;
  15615. }
  15616. new BLL.T_Bus_WorkOrder().UpdateYS(modelT_Bus_WorkOrder);
  15617. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了工单";
  15618. #region 插入操作记录
  15619. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15620. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15621. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15622. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15623. oper.F_Message = userinfo + " " + opt + "" + cbreasons;
  15624. oper.F_CreateUser = User.F_UserCode;
  15625. oper.F_CreateTime = DateTime.Now;
  15626. oper.F_IsDelete = 0;
  15627. operBLL.Add(oper);
  15628. //推送消息表
  15629. #endregion
  15630. trans.Complete();
  15631. }
  15632. return Success("操作成功");
  15633. }
  15634. else
  15635. {
  15636. return Error("操作失败");
  15637. }
  15638. }
  15639. else
  15640. {
  15641. return Error("权限不足");
  15642. }
  15643. }
  15644. /// <summary>
  15645. /// 督办审核工单
  15646. /// </summary>
  15647. /// <returns></returns>
  15648. public ActionResult RemindApproved()
  15649. {
  15650. if (User.F_RoleCode == "GLY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DBZY")
  15651. {
  15652. string workorderid = RequestString.GetFormString("workorderid");
  15653. int state = RequestString.GetInt("state", 0);//0通过1拒绝
  15654. string reason = RequestString.GetFormString("reason");//审核意见
  15655. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15656. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15657. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  15658. if (modelT_Bus_WorkOrder != null && modelT_Bus_RemindRecord != null)
  15659. {
  15660. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  15661. {
  15662. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15663. {
  15664. var opt = ""; var cbreasons = "";
  15665. if (state == 1)
  15666. {
  15667. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  15668. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  15669. {
  15670. 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());
  15671. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  15672. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15673. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  15674. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  15675. if (!string.IsNullOrEmpty(resdatetime))
  15676. {
  15677. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  15678. }
  15679. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  15680. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  15681. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  15682. newmodelT_Bus_AssignedInfo.F_State = 1;
  15683. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  15684. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15685. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  15686. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15687. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  15688. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  15689. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  15690. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  15691. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  15692. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  15693. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  15694. {
  15695. #region 保存工单信息
  15696. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  15697. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  15698. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  15699. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  15700. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  15701. {
  15702. modelT_Bus_WorkOrder.F_RemindDay = 1;
  15703. }
  15704. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  15705. if (!string.IsNullOrEmpty(resdatetime))
  15706. modelT_Bus_WorkOrder.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");
  15707. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  15708. modelT_Bus_WorkOrder.F_IsSms = 0;
  15709. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  15710. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15711. modelT_Bus_WorkOrder.F_Identification = 1;
  15712. modelT_Bus_WorkOrder.F_Result = "";
  15713. modelT_Bus_WorkOrder.F_DealDeptId = null;
  15714. modelT_Bus_WorkOrder.F_DealUser = "";
  15715. modelT_Bus_WorkOrder.F_DealTime = null;
  15716. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  15717. {
  15718. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  15719. if (user != null && user.Count > 0)
  15720. {
  15721. foreach (var it in user)
  15722. {
  15723. string count = "你有督办退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  15724. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  15725. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "255884", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  15726. }
  15727. }
  15728. #region 插入操作记录
  15729. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了工单";
  15730. cbreasons = ",审核意见:" + reason;
  15731. #endregion
  15732. }
  15733. #endregion
  15734. }
  15735. else
  15736. {
  15737. return Error("退回失败");
  15738. }
  15739. }
  15740. }
  15741. else
  15742. {
  15743. modelT_Bus_RemindRecord.F_IsExamine = 1;
  15744. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  15745. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了工单";
  15746. }
  15747. #region 插入操作记录
  15748. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15749. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15750. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15751. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15752. oper.F_Message = userinfo + " " + opt + "" + cbreasons;
  15753. oper.F_CreateUser = User.F_UserCode;
  15754. oper.F_CreateTime = DateTime.Now;
  15755. oper.F_IsDelete = 0;
  15756. operBLL.Add(oper);
  15757. //推送消息表
  15758. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15759. #endregion
  15760. trans.Complete();
  15761. }
  15762. return Success("操作成功");
  15763. }
  15764. else
  15765. {
  15766. return Error("督办单不存在");
  15767. }
  15768. }
  15769. else
  15770. {
  15771. return Error("操作失败");
  15772. }
  15773. }
  15774. else
  15775. {
  15776. return Error("权限不足");
  15777. }
  15778. }
  15779. /// <summary>
  15780. /// 重办工单
  15781. /// </summary>
  15782. /// <returns></returns>
  15783. //[Authority]
  15784. public ActionResult ReloadWorkOrder()
  15785. {
  15786. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  15787. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  15788. {
  15789. string workorderid = RequestString.GetFormString("workorderid");
  15790. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  15791. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  15792. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15793. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15794. if (modelT_Bus_WorkOrder != null)
  15795. {
  15796. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  15797. {
  15798. return Error("操作失败");
  15799. }
  15800. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  15801. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  15802. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  15803. {
  15804. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15805. {
  15806. #region 插入督办记录
  15807. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  15808. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15809. modelT_Bus_RemindRecord.F_AssignedId = 0;
  15810. modelT_Bus_RemindRecord.F_Type = 1;
  15811. if (modelT_Bus_AssignedInfo != null)//转办后重办
  15812. {
  15813. #region 插入交办记录
  15814. 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());
  15815. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  15816. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  15817. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  15818. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  15819. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15820. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  15821. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  15822. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  15823. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  15824. AssignedInfo.F_State = 1;//0草稿 1正式
  15825. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  15826. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  15827. AssignedInfo.F_IsDelete = 0;
  15828. AssignedInfo.F_IsOverdue = 0;
  15829. AssignedInfo.F_IsSure = 0;
  15830. AssignedInfo.F_IsReload = n + 1;
  15831. AssignedInfo.F_ReloadUser = User.F_UserCode;
  15832. AssignedInfo.F_ReloadTime = DateTime.Now;
  15833. assignBLL.Add(AssignedInfo);
  15834. #endregion
  15835. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  15836. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  15837. }
  15838. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  15839. {
  15840. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  15841. if (cruser != null)
  15842. {
  15843. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  15844. }
  15845. }
  15846. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  15847. modelT_Bus_RemindRecord.F_State = 1;
  15848. modelT_Bus_RemindRecord.F_IsDelete = 0;
  15849. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  15850. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  15851. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  15852. #endregion
  15853. #region 保存工单信息
  15854. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  15855. // modelT_Bus_WorkOrder.F_IsSms = 0;
  15856. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  15857. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15858. modelT_Bus_WorkOrder.F_Result = "";
  15859. modelT_Bus_WorkOrder.F_DealDeptId = null;
  15860. modelT_Bus_WorkOrder.F_DealUser = "";
  15861. modelT_Bus_WorkOrder.F_DealTime = null;
  15862. workorderBLL.Update(modelT_Bus_WorkOrder);
  15863. #endregion
  15864. #region 插入操作记录
  15865. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15866. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15867. if (modelT_Bus_AssignedInfo != null)
  15868. {
  15869. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15870. }
  15871. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15872. string deptname = "";
  15873. #region 20191021调整为多个主办单位时调整
  15874. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  15875. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  15876. #endregion
  15877. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15878. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  15879. oper.F_CreateUser = User.F_UserCode;
  15880. oper.F_CreateTime = DateTime.Now;
  15881. oper.F_IsDelete = 0;
  15882. operBLL.Add(oper);
  15883. //推送消息表
  15884. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  15885. foreach (var u in users)
  15886. {
  15887. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  15888. }
  15889. #endregion
  15890. trans.Complete();
  15891. }
  15892. return Success("操作成功");
  15893. }
  15894. else
  15895. {
  15896. return Error("已经处理过了");
  15897. }
  15898. }
  15899. else
  15900. {
  15901. return Error("操作失败");
  15902. }
  15903. }
  15904. else
  15905. {
  15906. return Error("权限不足");
  15907. }
  15908. }
  15909. /// <summary>
  15910. /// 重办提交工单 提交后为重办待交办
  15911. /// </summary>
  15912. /// <returns></returns>
  15913. //[Authority]
  15914. public ActionResult SubReloadWorkOrder(string ids, string reason
  15915. , int iszb = 0)
  15916. {
  15917. int maindeptid = RequestString.GetInt("maindeptid", 0);
  15918. string otherdeptids = RequestString.GetFormString("otherdeptids");
  15919. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  15920. string assignedopinion = RequestString.GetFormString("assignedopinion");
  15921. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "MTDD")
  15922. {
  15923. if (!string.IsNullOrEmpty(ids))
  15924. {
  15925. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(ids);
  15926. if (modelT_Bus_WorkOrder != null)
  15927. {
  15928. if (iszb == 0)
  15929. {
  15930. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  15931. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  15932. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  15933. {
  15934. #region 保存工单信息
  15935. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  15936. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  15937. modelT_Bus_WorkOrder.F_IsExamine = 1;
  15938. modelT_Bus_WorkOrder.F_IsSms = 0;
  15939. modelT_Bus_WorkOrder.F_Identification = 0;
  15940. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  15941. modelT_Bus_WorkOrder.F_MainDeptId = null;
  15942. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  15943. modelT_Bus_WorkOrder.F_DealDeptId = null;
  15944. #endregion
  15945. workorderBLL.Update(modelT_Bus_WorkOrder);
  15946. #endregion
  15947. #region 插入操作记录
  15948. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15949. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15950. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15951. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15952. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  15953. oper.F_CreateUser = User.F_UserCode;
  15954. oper.F_CreateTime = DateTime.Now;
  15955. oper.F_IsDelete = 0;
  15956. operBLL.Add(oper);
  15957. #endregion
  15958. }
  15959. else
  15960. {
  15961. return Error("此工单已处理");
  15962. }
  15963. }
  15964. else
  15965. {
  15966. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  15967. {
  15968. #region 保存工单信息
  15969. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  15970. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  15971. workorderBLL.Update(modelT_Bus_WorkOrder);
  15972. #endregion
  15973. #region 插入操作记录
  15974. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15975. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15976. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15977. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15978. if (!string.IsNullOrEmpty(assignedopinion))
  15979. {
  15980. oper.F_Message = userinfo + " 提交了驳回重办工单,意见:" + assignedopinion;
  15981. }
  15982. else
  15983. {
  15984. oper.F_Message = userinfo + " 提交了驳回重办工单";
  15985. }
  15986. oper.F_CreateUser = User.F_UserCode;
  15987. oper.F_CreateTime = DateTime.Now;
  15988. oper.F_IsDelete = 0;
  15989. operBLL.Add(oper);
  15990. #endregion 插入操作记录
  15991. //推送消息表
  15992. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  15993. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  15994. {
  15995. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  15996. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  15997. foreach (var u in users)
  15998. {
  15999. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  16000. }
  16001. }
  16002. }
  16003. else
  16004. {
  16005. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3))
  16006. {
  16007. return Error("结案后工单只能提交重办一次");
  16008. }
  16009. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  16010. {
  16011. if (modelT_Bus_WorkOrder.F_RemindDay==2|| modelT_Bus_WorkOrder.F_RemindDay == 3)
  16012. modelT_Bus_WorkOrder.F_RemindDay = 3;
  16013. else
  16014. modelT_Bus_WorkOrder.F_RemindDay = 1;
  16015. }
  16016. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  16017. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  16018. {
  16019. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID
  16020. (modelT_Bus_WorkOrder.F_WorkOrderId);
  16021. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  16022. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  16023. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  16024. {
  16025. 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());
  16026. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  16027. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16028. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  16029. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  16030. if (!string.IsNullOrEmpty(resdatetime))
  16031. {
  16032. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  16033. }
  16034. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  16035. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  16036. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  16037. newmodelT_Bus_AssignedInfo.F_State = 1;
  16038. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  16039. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  16040. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  16041. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  16042. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  16043. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  16044. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  16045. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  16046. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  16047. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  16048. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  16049. {
  16050. #region 保存工单信息
  16051. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16052. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  16053. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  16054. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  16055. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  16056. if (!string.IsNullOrEmpty(resdatetime))
  16057. modelT_Bus_WorkOrder.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");
  16058. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  16059. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  16060. modelT_Bus_WorkOrder.F_IsSms = 0;
  16061. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  16062. modelT_Bus_WorkOrder.F_IsExamine = 1;
  16063. modelT_Bus_WorkOrder.F_Identification = 1;
  16064. modelT_Bus_WorkOrder.F_Result = "";
  16065. modelT_Bus_WorkOrder.F_DealDeptId = null;
  16066. modelT_Bus_WorkOrder.F_DealUser = "";
  16067. modelT_Bus_WorkOrder.F_DealTime = null;
  16068. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  16069. {
  16070. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  16071. if (user != null && user.Count > 0)
  16072. {
  16073. foreach (var it in user)
  16074. {
  16075. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  16076. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  16077. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  16078. }
  16079. }
  16080. #region 插入操作记录
  16081. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16082. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16083. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  16084. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16085. string deptname = "";
  16086. #region 20191021调整为多个主办单位时调整
  16087. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  16088. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  16089. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  16090. #endregion
  16091. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16092. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  16093. if (!string.IsNullOrEmpty(otherdeptids))
  16094. {
  16095. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  16096. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  16097. }
  16098. oper.F_CreateUser = User.F_UserCode;
  16099. oper.F_CreateTime = DateTime.Now;
  16100. oper.F_IsDelete = 0;
  16101. operBLL.Add(oper);
  16102. //推送消息表
  16103. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  16104. foreach (var u in users)
  16105. {
  16106. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  16107. }
  16108. #endregion
  16109. return Success("操作成功");
  16110. }
  16111. else
  16112. {
  16113. return Error("重办失败");
  16114. }
  16115. #endregion
  16116. }
  16117. else
  16118. {
  16119. return Error("退回失败");
  16120. }
  16121. }
  16122. else
  16123. {
  16124. return Error("已经处理过了");
  16125. }
  16126. }
  16127. else
  16128. {
  16129. #region 保存工单信息
  16130. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16131. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  16132. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  16133. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  16134. modelT_Bus_WorkOrder.F_IsReload = 1;
  16135. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  16136. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  16137. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  16138. modelT_Bus_WorkOrder.F_IsExamine = 1;
  16139. modelT_Bus_WorkOrder.F_Identification = 0;
  16140. modelT_Bus_WorkOrder.F_Result = "";
  16141. modelT_Bus_WorkOrder.F_DealDeptId = null;
  16142. modelT_Bus_WorkOrder.F_DealUser = "";
  16143. modelT_Bus_WorkOrder.F_DealTime = null;
  16144. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  16145. {
  16146. #region 插入操作记录
  16147. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16148. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16149. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16150. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16151. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  16152. if (!string.IsNullOrEmpty(otherdeptids))
  16153. {
  16154. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  16155. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  16156. }
  16157. oper.F_CreateUser = User.F_UserCode;
  16158. oper.F_CreateTime = DateTime.Now;
  16159. oper.F_IsDelete = 0;
  16160. operBLL.Add(oper);
  16161. //推送消息表
  16162. #endregion
  16163. }
  16164. else
  16165. {
  16166. return Error("重办失败");
  16167. }
  16168. #endregion
  16169. }
  16170. }
  16171. }
  16172. }
  16173. else
  16174. {
  16175. return Error("操作失败");
  16176. }
  16177. return Success("操作成功");
  16178. }
  16179. else
  16180. {
  16181. return Error("操作失败");
  16182. }
  16183. }
  16184. else
  16185. {
  16186. return Error("权限不足");
  16187. }
  16188. }
  16189. /// <summary>
  16190. /// 驳回重办,驳回后状态为重办驳回状态
  16191. /// 调度员可驳回
  16192. /// </summary>
  16193. /// <param name="ids"></param>
  16194. /// <returns></returns>
  16195. //[Authority]
  16196. public ActionResult RejReloadWorkOrder(string id, string reason)
  16197. {
  16198. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16199. {
  16200. if (!string.IsNullOrEmpty(id))
  16201. {
  16202. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16203. {
  16204. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  16205. if (modelT_Bus_WorkOrder != null)
  16206. {
  16207. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  16208. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  16209. {
  16210. #region 保存工单信息
  16211. modelT_Bus_WorkOrder.F_IsExamine = 1;
  16212. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  16213. if (modelT_Bus_AssignedInfo != null)
  16214. {
  16215. 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();
  16216. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  16217. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  16218. modelT_Bus_WorkOrder.F_Identification = 1;
  16219. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  16220. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  16221. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  16222. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  16223. #endregion
  16224. }
  16225. workorderBLL.Update(modelT_Bus_WorkOrder);
  16226. #endregion
  16227. #region 插入操作记录
  16228. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16229. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16230. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16231. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16232. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  16233. oper.F_CreateUser = User.F_UserCode;
  16234. oper.F_CreateTime = DateTime.Now;
  16235. oper.F_IsDelete = 0;
  16236. operBLL.Add(oper);
  16237. #endregion
  16238. }
  16239. }
  16240. trans.Complete();
  16241. }
  16242. return Success("操作成功");
  16243. }
  16244. else
  16245. {
  16246. return Error("参数异常");
  16247. }
  16248. }
  16249. else
  16250. {
  16251. return Error("权限不足");
  16252. }
  16253. }
  16254. /// <summary>
  16255. /// 重办工单
  16256. /// </summary>
  16257. /// <returns></returns>
  16258. //[Authority]
  16259. public ActionResult NewReloadWorkOrder()
  16260. {
  16261. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "MTDD")
  16262. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  16263. {
  16264. string workorderid = RequestString.GetFormString("workorderid");
  16265. int maindeptid = RequestString.GetInt("maindeptid", 0);
  16266. string otherdeptids = RequestString.GetFormString("otherdeptids");
  16267. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  16268. string assignedopinion = RequestString.GetFormString("assignedopinion");
  16269. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16270. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16271. if (modelT_Bus_WorkOrder != null)
  16272. {
  16273. if (!string.IsNullOrEmpty(otherdeptids))
  16274. {
  16275. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  16276. {
  16277. return Error("主办单位不能出现在协办单位");
  16278. }
  16279. }
  16280. if (limittime < DateTime.Now)
  16281. {
  16282. return Error("办理时限不能小于当前时间");
  16283. }
  16284. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  16285. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  16286. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  16287. {
  16288. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16289. {
  16290. 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());
  16291. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  16292. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16293. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  16294. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  16295. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  16296. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  16297. newmodelT_Bus_AssignedInfo.F_State = 1;
  16298. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  16299. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  16300. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  16301. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  16302. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  16303. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  16304. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  16305. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  16306. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  16307. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  16308. #region 保存工单信息
  16309. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  16310. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  16311. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  16312. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  16313. modelT_Bus_WorkOrder.F_MainDeptID3 = "";
  16314. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  16315. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  16316. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  16317. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  16318. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  16319. modelT_Bus_WorkOrder.F_IsExamine = 1; // modelT_Bus_WorkOrder.F_IsSms = 0;
  16320. modelT_Bus_WorkOrder.F_Result = "";
  16321. modelT_Bus_WorkOrder.F_DealDeptId = null;
  16322. modelT_Bus_WorkOrder.F_DealUser = "";
  16323. modelT_Bus_WorkOrder.F_DealTime = null;
  16324. workorderBLL.Update(modelT_Bus_WorkOrder);
  16325. #endregion
  16326. #region 插入操作记录
  16327. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16328. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16329. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  16330. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16331. string deptname = "";
  16332. #region 20191021调整为多个主办单位时调整
  16333. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  16334. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  16335. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  16336. #endregion
  16337. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16338. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  16339. if (!string.IsNullOrEmpty(otherdeptids))
  16340. {
  16341. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  16342. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  16343. }
  16344. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + maindeptid + "') ");
  16345. if (user != null && user.Count > 0)
  16346. {
  16347. foreach (var it in user)
  16348. {
  16349. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  16350. string msg = workorderid;
  16351. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  16352. }
  16353. }
  16354. oper.F_CreateUser = User.F_UserCode;
  16355. oper.F_CreateTime = DateTime.Now;
  16356. oper.F_IsDelete = 0;
  16357. operBLL.Add(oper);
  16358. //推送消息表
  16359. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  16360. //foreach (var u in users)
  16361. //{
  16362. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  16363. //}
  16364. #endregion
  16365. trans.Complete();
  16366. }
  16367. return Success("操作成功");
  16368. }
  16369. else
  16370. {
  16371. return Error("已经处理过了");
  16372. }
  16373. }
  16374. else
  16375. {
  16376. return Error("操作失败");
  16377. }
  16378. }
  16379. else
  16380. {
  16381. return Error("权限不足");
  16382. }
  16383. }
  16384. /// <summary>
  16385. /// 结案工单
  16386. /// </summary>
  16387. /// <returns></returns>
  16388. //[Authority]
  16389. public ActionResult FinishWorkOrder()
  16390. {
  16391. //if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY")
  16392. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16393. {
  16394. string workorderid = RequestString.GetFormString("workorderid");
  16395. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  16396. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  16397. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  16398. string deptids = RequestString.GetFormString("deptids");//通告单位
  16399. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  16400. //2020-3-4添加通告选项
  16401. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  16402. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  16403. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  16404. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  16405. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16406. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16407. if (modelT_Bus_WorkOrder != null)
  16408. {
  16409. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  16410. //{
  16411. // return Error("操作失败");
  16412. //}
  16413. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  16414. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  16415. {
  16416. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16417. {
  16418. #region 修改工单记录
  16419. //modelT_Bus_WorkOrder.F_WorkState = 9;
  16420. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  16421. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  16422. modelT_Bus_WorkOrder.F_IsClosed = 1;
  16423. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  16424. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  16425. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  16426. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  16427. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  16428. modelT_Bus_WorkOrder.F_ToBereply = 0;
  16429. if (isnotice == 1)
  16430. {
  16431. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  16432. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  16433. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16434. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  16435. modelT_Bus_NoticeCriticism.F_State = 1;
  16436. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  16437. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  16438. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  16439. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  16440. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  16441. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  16442. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  16443. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  16444. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  16445. modelT_Bus_WorkOrder.F_IsNotice = 1;
  16446. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  16447. }
  16448. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  16449. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  16450. assignBLL.Update(modelT_Bus_AssignedInfo);
  16451. workorderBLL.Update(modelT_Bus_WorkOrder);
  16452. #endregion
  16453. #region 插入操作记录
  16454. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16455. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16456. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16457. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16458. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  16459. if (isnotice == 1)
  16460. {
  16461. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  16462. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  16463. }
  16464. if (isstandard == 1)
  16465. {
  16466. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  16467. var sts = DbHelperSQL.GetSingle(sqlstand);
  16468. oper.F_Message = oper.F_Message + ";办理结果出现不规范" + sts + "情况,请及时查看";
  16469. }
  16470. oper.F_CreateUser = User.F_UserCode;
  16471. oper.F_CreateTime = DateTime.Now;
  16472. oper.F_IsDelete = 0;
  16473. operBLL.Add(oper);
  16474. //调用科大讯飞
  16475. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  16476. {
  16477. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  16478. if (tbf != null)
  16479. {
  16480. string deptname = string.Empty;
  16481. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  16482. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  16483. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  16484. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  16485. if (bl)
  16486. {
  16487. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  16488. }
  16489. else
  16490. {
  16491. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  16492. }
  16493. }
  16494. }
  16495. #endregion
  16496. trans.Complete();
  16497. }
  16498. return Success("操作成功");
  16499. }
  16500. else
  16501. {
  16502. return Error("已经处理过了");
  16503. }
  16504. }
  16505. else
  16506. {
  16507. return Error("操作失败");
  16508. }
  16509. }
  16510. else
  16511. {
  16512. return Error("权限不足");
  16513. }
  16514. }
  16515. /// <summary>
  16516. /// 结案工单
  16517. /// </summary>
  16518. /// <returns></returns>
  16519. //[Authority]
  16520. public ActionResult ForceFinishWorkOrder()
  16521. {
  16522. 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 == "MTDD" || User.F_RoleCode == "DBZY")
  16523. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  16524. {
  16525. string workorderid = RequestString.GetFormString("workorderid");
  16526. string result = RequestString.GetFormString("result");//处理结果
  16527. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  16528. int issatisfie = RequestString.GetInt("issatisfie", 1);//0不满意 1满意
  16529. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  16530. //是否发送短信0否1是
  16531. int issms = RequestString.GetInt("issms", 0);
  16532. string deptids = RequestString.GetFormString("deptids");//通告单位
  16533. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  16534. //2020-3-4添加通告选项
  16535. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  16536. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  16537. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  16538. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  16539. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16540. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16541. if (modelT_Bus_WorkOrder != null)
  16542. {
  16543. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"
  16544. && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "YSZY" && User.F_RoleCode != "MTDD" && User.F_RoleCode != "DBZY")
  16545. {
  16546. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  16547. {
  16548. return Error("操作失败");
  16549. }
  16550. }
  16551. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16552. {
  16553. #region 修改工单记录
  16554. if (!string.IsNullOrEmpty(result))
  16555. modelT_Bus_WorkOrder.F_Result = result;
  16556. else if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  16557. {
  16558. if (!string.IsNullOrEmpty(finalopinion))
  16559. modelT_Bus_WorkOrder.F_Result = finalopinion;
  16560. }
  16561. if (modelT_Bus_WorkOrder.F_DealTime == null)
  16562. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  16563. //modelT_Bus_WorkOrder.F_WorkState = 9;
  16564. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  16565. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  16566. modelT_Bus_WorkOrder.F_IsClosed = 1;
  16567. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  16568. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  16569. if (!string.IsNullOrEmpty(finalopinion))
  16570. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  16571. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  16572. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  16573. if (isnotice == 1)
  16574. {
  16575. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  16576. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  16577. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16578. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  16579. modelT_Bus_NoticeCriticism.F_State = 1;
  16580. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  16581. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  16582. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  16583. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  16584. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  16585. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  16586. modelT_Bus_WorkOrder.F_IsNotice = 1;
  16587. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  16588. if (modelT_Bus_AssignedInfo != null)
  16589. {
  16590. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  16591. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  16592. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  16593. }
  16594. }
  16595. if (modelT_Bus_AssignedInfo != null)
  16596. {
  16597. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  16598. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  16599. assignBLL.Update(modelT_Bus_AssignedInfo);
  16600. }
  16601. workorderBLL.Update(modelT_Bus_WorkOrder);
  16602. #endregion
  16603. #region 插入操作记录
  16604. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16605. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16606. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16607. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16608. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  16609. if (isnotice == 1)
  16610. {
  16611. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  16612. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  16613. }
  16614. if (isstandard == 1)
  16615. {
  16616. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  16617. }
  16618. if (issms > 0)
  16619. {
  16620. string count = "您反映的诉求已办理完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果并对办理情况进行评价,谢谢";
  16621. string mag = "";
  16622. bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "213014", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  16623. }
  16624. oper.F_CreateUser = User.F_UserCode;
  16625. oper.F_CreateTime = DateTime.Now;
  16626. oper.F_IsDelete = 0;
  16627. operBLL.Add(oper);
  16628. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  16629. {
  16630. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  16631. if (model != null)
  16632. {
  16633. if (model.F_WorkState != 2 && model.F_WorkState != 4 && model.F_WorkState != 6)
  16634. {
  16635. model.F_IsClosed = 1;
  16636. model.F_CloseTime = DateTime.Now;
  16637. model.F_CloseUser = User.F_UserCode;
  16638. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  16639. if (string.IsNullOrEmpty(model.F_Result))
  16640. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  16641. else
  16642. model.F_Result += "; " + modelT_Bus_WorkOrder.F_Result;
  16643. if (!string.IsNullOrEmpty(finalopinion))
  16644. {
  16645. if (string.IsNullOrEmpty(model.F_FinalOpinion))
  16646. model.F_FinalOpinion = finalopinion;
  16647. else
  16648. model.F_FinalOpinion += "; " + modelT_Bus_WorkOrder.F_FinalOpinion;
  16649. }
  16650. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  16651. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  16652. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  16653. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16654. workorderBLL.Update(model);
  16655. }
  16656. }
  16657. }
  16658. if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  16659. {
  16660. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  16661. {
  16662. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  16663. if (orderlist.Length > 0)
  16664. {
  16665. foreach (var it in orderlist)
  16666. {
  16667. var model = workorderBLL.GetModel(it);
  16668. if (model != null)
  16669. {
  16670. model.F_IsClosed = 1;
  16671. model.F_CloseTime = DateTime.Now;
  16672. model.F_CloseUser = User.F_UserCode;
  16673. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  16674. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  16675. if (!string.IsNullOrEmpty(finalopinion))
  16676. {
  16677. model.F_FinalOpinion = finalopinion;
  16678. }
  16679. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  16680. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  16681. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  16682. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16683. workorderBLL.Update(model);
  16684. }
  16685. }
  16686. }
  16687. }
  16688. }
  16689. #endregion
  16690. trans.Complete();
  16691. }
  16692. return Success("操作成功");
  16693. }
  16694. else
  16695. {
  16696. return Error("操作失败");
  16697. }
  16698. }
  16699. else
  16700. {
  16701. return Error("权限不足");
  16702. }
  16703. }
  16704. /// <summary>
  16705. /// 删除工单
  16706. /// </summary>
  16707. /// <returns></returns>
  16708. public ActionResult DelWorkOrder(string[] ids)
  16709. {
  16710. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16711. {
  16712. //StringBuilder sb = new StringBuilder();
  16713. foreach (var item in ids)
  16714. {
  16715. //sb.Append("'" + item + "',");
  16716. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  16717. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  16718. {
  16719. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16720. {
  16721. #region 修改工单记录
  16722. modelT_Bus_WorkOrder.F_IsDelete = 1;
  16723. modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  16724. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  16725. workorderBLL.Update(modelT_Bus_WorkOrder);
  16726. #endregion
  16727. #region 插入操作记录
  16728. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16729. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16730. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16731. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16732. oper.F_Message = userinfo + " 删除了工单";
  16733. oper.F_CreateUser = User.F_UserCode;
  16734. oper.F_CreateTime = DateTime.Now;
  16735. oper.F_IsDelete = 0;
  16736. operBLL.Add(oper);
  16737. #endregion
  16738. trans.Complete();
  16739. }
  16740. }
  16741. }
  16742. return Success("删除成功");
  16743. }
  16744. else
  16745. {
  16746. return Error("权限不足");
  16747. }
  16748. }
  16749. /// <summary>
  16750. /// 转公开工单
  16751. /// </summary>
  16752. /// <returns></returns>
  16753. //[Authority]
  16754. public ActionResult ReleaseWorkOrder()
  16755. {
  16756. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16757. {
  16758. string workorderid = RequestString.GetFormString("workorderid");
  16759. int isrelease = RequestString.GetInt("isrelease", -1);
  16760. // int isopen = RequestString.GetInt("isopen", 0);
  16761. if (isrelease > -1)
  16762. {
  16763. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16764. if (modelT_Bus_WorkOrder != null)
  16765. {
  16766. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16767. {
  16768. #region 修改工单记录
  16769. if (isrelease > 0)
  16770. modelT_Bus_WorkOrder.F_IsOpen = 1;
  16771. else
  16772. modelT_Bus_WorkOrder.F_IsOpen = 0;
  16773. workorderBLL.Update(modelT_Bus_WorkOrder);
  16774. #endregion
  16775. #region 插入操作记录
  16776. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16777. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16778. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16779. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16780. if (modelT_Bus_WorkOrder.F_IsOpen == 1)
  16781. oper.F_Message = userinfo + "公开了工单";
  16782. else
  16783. oper.F_Message = userinfo + "撤回了公开工单";
  16784. oper.F_CreateUser = User.F_UserCode;
  16785. oper.F_CreateTime = DateTime.Now;
  16786. oper.F_IsDelete = 0;
  16787. operBLL.Add(oper);
  16788. #endregion
  16789. trans.Complete();
  16790. }
  16791. return Success("操作成功");
  16792. }
  16793. else
  16794. return Error("操作失败");
  16795. }
  16796. else
  16797. return Error("操作失败");
  16798. }
  16799. else
  16800. {
  16801. return Error("权限不足");
  16802. }
  16803. }
  16804. /// <summary>
  16805. /// 转公开媒体
  16806. /// </summary>
  16807. /// <returns></returns>
  16808. //[Authority]
  16809. public ActionResult MediaWorkOrder()
  16810. {
  16811. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16812. {
  16813. string workorderid = RequestString.GetFormString("workorderid");
  16814. int isrelease = RequestString.GetInt("isrelease", -1);
  16815. // int isopen = RequestString.GetInt("isopen", 0);
  16816. if (isrelease > -1)
  16817. {
  16818. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16819. if (modelT_Bus_WorkOrder != null)
  16820. {
  16821. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16822. {
  16823. #region 修改工单记录
  16824. if (isrelease > 0)
  16825. modelT_Bus_WorkOrder.F_IsMedia = 1;
  16826. else
  16827. modelT_Bus_WorkOrder.F_IsMedia = 0;
  16828. workorderBLL.Update(modelT_Bus_WorkOrder);
  16829. #endregion
  16830. #region 插入操作记录
  16831. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16832. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16833. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16834. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16835. if (modelT_Bus_WorkOrder.F_IsMedia == 1)
  16836. oper.F_Message = userinfo + "转媒体了工单";
  16837. else
  16838. oper.F_Message = userinfo + "撤回了媒体工单";
  16839. oper.F_CreateUser = User.F_UserCode;
  16840. oper.F_CreateTime = DateTime.Now;
  16841. oper.F_IsDelete = 0;
  16842. operBLL.Add(oper);
  16843. #endregion
  16844. trans.Complete();
  16845. }
  16846. return Success("操作成功");
  16847. }
  16848. else
  16849. return Error("操作失败");
  16850. }
  16851. else
  16852. return Error("操作失败");
  16853. }
  16854. else
  16855. {
  16856. return Error("权限不足");
  16857. }
  16858. }
  16859. /// <summary>
  16860. /// 关联工单
  16861. /// </summary>
  16862. /// <returns></returns>
  16863. //[Authority]
  16864. public ActionResult RelationWorkOrder()
  16865. {
  16866. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16867. {
  16868. string workorderid = RequestString.GetFormString("workorderid");
  16869. string subworkorderid = RequestString.GetFormString("subworkorderid");
  16870. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16871. if (string.IsNullOrEmpty(workorderid))
  16872. return Error("请选择主工单");
  16873. if (string.IsNullOrEmpty(subworkorderid))
  16874. return Error("请选择子工单");
  16875. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16876. if (modelT_Bus_WorkOrder == null)
  16877. return Error("主工单不存在");
  16878. if (modelT_Bus_WorkOrder.F_IsRelease == 3)
  16879. return Error(modelT_Bus_WorkOrder.F_WorkOrderId + "工单已被设置为子工单不能设置为主工单");
  16880. string[] orderlist = subworkorderid.Split(',');
  16881. if (subworkorderid.Contains(workorderid))
  16882. {
  16883. return Error("主工单不能出现在子工单中");
  16884. }
  16885. if (orderlist.Length > 0)
  16886. {
  16887. foreach (var it in orderlist)
  16888. {
  16889. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = workorderBLL.GetModel(it);
  16890. if (modelT_Bus_WorkOrder1 == null)
  16891. return Error("子工单" + it + "不存在");
  16892. if (modelT_Bus_WorkOrder1.F_IsRelease == 2)
  16893. return Error("" + it + "已被设置为主工单,不能设置为子工单");
  16894. modelT_Bus_WorkOrder1.F_MainWorkorder = modelT_Bus_WorkOrder.F_WorkOrderId;
  16895. modelT_Bus_WorkOrder1.F_IsRelease = 3;
  16896. bool n = workorderBLL.Update(modelT_Bus_WorkOrder1);
  16897. if (!n)
  16898. return Error("设置子工单" + it + "失败");
  16899. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16900. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  16901. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  16902. oper.F_Message = userinfo + "设置该工单为子工单,主工单为:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  16903. oper.F_CreateUser = User.F_UserCode;
  16904. oper.F_CreateTime = DateTime.Now;
  16905. oper.F_IsDelete = 0;
  16906. operBLL.Add(oper);
  16907. }
  16908. }
  16909. else
  16910. {
  16911. return Error("请选择子工单");
  16912. }
  16913. modelT_Bus_WorkOrder.F_SubWorkorder = subworkorderid;
  16914. modelT_Bus_WorkOrder.F_IsRelease = 2;
  16915. Model.T_Bus_Operation ope = new Model.T_Bus_Operation();
  16916. ope.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16917. ope.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16918. ope.F_Message = userinfo + "设置该工单为主工单,子工单为:" + subworkorderid;
  16919. ope.F_CreateUser = User.F_UserCode;
  16920. ope.F_CreateTime = DateTime.Now;
  16921. ope.F_IsDelete = 0;
  16922. operBLL.Add(ope);
  16923. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  16924. return Success("操作成功");
  16925. else
  16926. return Error("操作失败");
  16927. }
  16928. else
  16929. {
  16930. return Error("权限不足");
  16931. }
  16932. }
  16933. ///// <summary>
  16934. ///// 通告和撤销通告
  16935. ///// </summary>
  16936. ///// <returns></returns>
  16937. ////[Authority]
  16938. //public ActionResult NoticeWorkOrder()
  16939. //{
  16940. //
  16941. //
  16942. // if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" ||User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY")
  16943. // {
  16944. // int assignid = RequestString.GetInt("id", 0);
  16945. // int isnotice = RequestString.GetInt("isnotice", -1);
  16946. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  16947. // if (modelT_Bus_AssignedInfo != null)
  16948. // {
  16949. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  16950. // {
  16951. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16952. // {
  16953. // #region 修改交办记录
  16954. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  16955. // assignBLL.Update(modelT_Bus_AssignedInfo);
  16956. // #endregion
  16957. // #region 插入操作记录
  16958. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16959. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  16960. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  16961. // string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  16962. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  16963. // oper.F_CreateUser = User.F_UserCode;
  16964. // oper.F_CreateTime = DateTime.Now;
  16965. // oper.F_IsDelete = 0;
  16966. // operBLL.Add(oper);
  16967. // #endregion
  16968. // trans.Complete();
  16969. // }
  16970. // return Success("操作成功");
  16971. // }
  16972. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  16973. // {
  16974. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16975. // {
  16976. // #region 修改交办记录
  16977. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  16978. // assignBLL.Update(modelT_Bus_AssignedInfo);
  16979. // #endregion
  16980. // #region 插入操作记录
  16981. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16982. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  16983. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  16984. // string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  16985. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  16986. // oper.F_CreateUser = User.F_UserCode;
  16987. // oper.F_CreateTime = DateTime.Now;
  16988. // oper.F_IsDelete = 0;
  16989. // operBLL.Add(oper);
  16990. // #endregion
  16991. // trans.Complete();
  16992. // }
  16993. // return Success("操作成功");
  16994. // }
  16995. // else
  16996. // {
  16997. // return Error("操作失败");
  16998. // }
  16999. // }
  17000. // else
  17001. // {
  17002. // return Error("操作失败");
  17003. // }
  17004. // }
  17005. // else
  17006. // {
  17007. // return Error("权限不足");
  17008. // }
  17009. //}
  17010. /// <summary>
  17011. /// 通告和撤销通告
  17012. /// </summary>
  17013. /// <returns></returns>
  17014. //[Authority]
  17015. public ActionResult NoticeWorkOrder()
  17016. {
  17017. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  17018. {
  17019. string workorderid = RequestString.GetFormString("workorderid");
  17020. int isnotice = RequestString.GetInt("isnotice", -1);
  17021. string deptids = RequestString.GetFormString("deptids");//通告单位
  17022. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  17023. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17024. if (modelT_Bus_WorkOrder != null)
  17025. {
  17026. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  17027. {
  17028. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17029. {
  17030. #region 修改工单记录
  17031. modelT_Bus_WorkOrder.F_IsNotice = 0;
  17032. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  17033. workorderBLL.Update(modelT_Bus_WorkOrder);
  17034. #endregion
  17035. #region 修改通告记录
  17036. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  17037. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  17038. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  17039. modelT_Bus_NoticeCriticism.F_DeleteUser = User.F_UserCode;
  17040. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  17041. #endregion
  17042. #region 插入操作记录
  17043. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17044. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17045. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  17046. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17047. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  17048. oper.F_CreateUser = User.F_UserCode;
  17049. oper.F_CreateTime = DateTime.Now;
  17050. oper.F_IsDelete = 0;
  17051. operBLL.Add(oper);
  17052. #endregion
  17053. trans.Complete();
  17054. }
  17055. return Success("操作成功");
  17056. }
  17057. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  17058. {
  17059. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17060. {
  17061. #region 修改工单记录
  17062. modelT_Bus_WorkOrder.F_IsNotice = 1;
  17063. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  17064. workorderBLL.Update(modelT_Bus_WorkOrder);
  17065. #endregion
  17066. #region 新增通告记录
  17067. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  17068. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  17069. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17070. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  17071. modelT_Bus_NoticeCriticism.F_State = 1;
  17072. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  17073. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  17074. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  17075. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  17076. #endregion
  17077. #region 插入操作记录
  17078. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17079. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17080. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  17081. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17082. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  17083. oper.F_CreateUser = User.F_UserCode;
  17084. oper.F_CreateTime = DateTime.Now;
  17085. oper.F_IsDelete = 0;
  17086. operBLL.Add(oper);
  17087. #endregion
  17088. trans.Complete();
  17089. }
  17090. return Success("操作成功");
  17091. }
  17092. else
  17093. {
  17094. return Error("操作失败");
  17095. }
  17096. }
  17097. else
  17098. {
  17099. return Error("操作失败");
  17100. }
  17101. }
  17102. else
  17103. {
  17104. return Error("权限不足");
  17105. }
  17106. }
  17107. /// <summary>
  17108. /// 市民催单
  17109. /// </summary>
  17110. /// <returns></returns>
  17111. //[Authority]
  17112. public ActionResult AdditionalWorkOrder()
  17113. {
  17114. string workorderid = RequestString.GetFormString("workorderid");
  17115. string title = RequestString.GetFormString("title");
  17116. string content = RequestString.GetFormString("content");
  17117. string files = RequestString.GetFormString("files");
  17118. string callid = RequestString.GetFormString("callid");
  17119. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  17120. if (modelT_Bus_WorkOrder != null)
  17121. {
  17122. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17123. {
  17124. #region 插入附加记录
  17125. //批示记录
  17126. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  17127. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  17128. model_T_Bus_Additional.F_Title = title;
  17129. model_T_Bus_Additional.F_Content = content;
  17130. if (!string.IsNullOrEmpty(callid))
  17131. {
  17132. model_T_Bus_Additional.F_CallId = callid;
  17133. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  17134. if (rd != null)
  17135. {
  17136. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  17137. }
  17138. }
  17139. model_T_Bus_Additional.F_File = files;//附件
  17140. model_T_Bus_Additional.F_CreateUser = User.F_UserCode;//呈批人
  17141. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  17142. model_T_Bus_Additional.F_IsDelete = 0;
  17143. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  17144. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  17145. #endregion
  17146. #region 插入操作记录
  17147. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17148. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17149. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17150. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17151. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  17152. oper.F_CreateUser = User.F_UserCode;
  17153. oper.F_CreateTime = DateTime.Now;
  17154. oper.F_IsDelete = 0;
  17155. operBLL.Add(oper);
  17156. #endregion
  17157. #region 根据状态不同给出提醒
  17158. var sqlusers = " F_DeleteFlag=0 ";
  17159. #region 获取被提醒人
  17160. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17161. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  17162. sqlusers += " and F_UserCode='" + modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  17163. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  17164. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  17165. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  17166. {
  17167. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  17168. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  17169. }
  17170. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  17171. {
  17172. if (modelT_Bus_AssignedInfo != null)
  17173. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  17174. }
  17175. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  17176. {
  17177. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  17178. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  17179. }
  17180. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  17181. {
  17182. if (modelT_Bus_AssignedInfo != null)
  17183. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  17184. }
  17185. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  17186. {
  17187. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  17188. }
  17189. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  17190. {
  17191. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  17192. }
  17193. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  17194. {
  17195. if (modelT_Bus_AssignedInfo != null)
  17196. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  17197. }
  17198. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  17199. {
  17200. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  17201. }
  17202. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17203. {
  17204. if (modelT_Bus_AssignedInfo != null)
  17205. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  17206. }
  17207. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  17208. {
  17209. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  17210. }
  17211. #endregion
  17212. var userlists = userBLL.GetModelListNoCache(sqlusers);
  17213. //推送消息表
  17214. foreach (var u in userlists)
  17215. {
  17216. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  17217. }
  17218. #endregion
  17219. trans.Complete();
  17220. }
  17221. return Success("操作成功");
  17222. }
  17223. else
  17224. {
  17225. return Error("操作失败");
  17226. }
  17227. }
  17228. #endregion
  17229. #region 语音附件其他
  17230. /// <summary>
  17231. /// 验证当前单位是否交办单位
  17232. /// </summary>
  17233. /// <param name="modelT_Bus_AssignedInfo"></param>
  17234. /// <param name="deptid"></param>
  17235. /// <returns></returns>
  17236. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  17237. {
  17238. int type = 0;
  17239. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  17240. {
  17241. type = 1;//主办
  17242. }
  17243. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  17244. {
  17245. type = 2;//协办
  17246. }
  17247. return type;
  17248. }
  17249. /// <summary>
  17250. /// 获取留言路径
  17251. /// </summary>
  17252. /// <param name="lid">留言id</param>
  17253. /// <param name="prefix">前缀</param>
  17254. /// <returns></returns>
  17255. public string GetLeavePath(string lid, string prefix)
  17256. {
  17257. string path = string.Empty;
  17258. try
  17259. {
  17260. var liuyan = new BLL.T_Call_LeaveRecord().GetModel(int.Parse(lid));
  17261. if (liuyan != null)
  17262. {
  17263. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  17264. {
  17265. path = prefix + liuyan.F_RecFileUrl;
  17266. }
  17267. }
  17268. }
  17269. catch
  17270. {
  17271. }
  17272. return path;
  17273. }
  17274. /// <summary>
  17275. /// 获取通话录音路径
  17276. /// </summary>
  17277. /// <param name="cid">通话id</param>
  17278. /// <param name="prefix">前缀</param>
  17279. /// <returns></returns>
  17280. public string GetCallPath(string cid, string prefix)
  17281. {
  17282. string path = string.Empty;
  17283. try
  17284. {
  17285. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(cid));
  17286. if (luyin != null)
  17287. {
  17288. if (!string.IsNullOrEmpty(luyin.FilePath))
  17289. {
  17290. var ym = prefix;
  17291. ym = ym.Substring(0, ym.Length - 1);
  17292. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  17293. path = ym + lujing;
  17294. }
  17295. }
  17296. }
  17297. catch
  17298. {
  17299. }
  17300. return path;
  17301. }
  17302. public ActionResult Uploads(string ids)
  17303. {
  17304. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  17305. string prefix = configfj.F_ParamValue;
  17306. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  17307. foreach (DataRow dr in dt.Rows)
  17308. {
  17309. if (dr["F_UserCode"].ToString() == "jianhang")
  17310. {
  17311. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  17312. {
  17313. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17314. }
  17315. else
  17316. {
  17317. 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(), ""));
  17318. if (url == "1")
  17319. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17320. else
  17321. dr["F_FileUrl"] = url;
  17322. }
  17323. }
  17324. else
  17325. {
  17326. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17327. }
  17328. }
  17329. return Success("成功");
  17330. }
  17331. public string Upload(string pathUrl, string newFileName, string path)
  17332. {
  17333. //文件下载地址
  17334. try
  17335. {
  17336. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pathUrl);
  17337. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  17338. Stream responseStream = response.GetResponseStream();
  17339. string Currentpath = "F:/WEB/anyang12345Api" + path;
  17340. // 如果不存在就创建file文件夹
  17341. if (!Directory.Exists(Currentpath))
  17342. {
  17343. if (Currentpath != null) Directory.CreateDirectory(Currentpath);
  17344. }
  17345. Stream stream = new FileStream(Currentpath + newFileName, FileMode.Create);
  17346. byte[] bArr = new byte[1024];
  17347. int size = responseStream.Read(bArr, 0, bArr.Length);
  17348. while (size > 0)
  17349. {
  17350. stream.Write(bArr, 0, size);
  17351. size = responseStream.Read(bArr, 0, bArr.Length);
  17352. }
  17353. stream.Close();
  17354. responseStream.Close();
  17355. return "1";
  17356. }
  17357. catch (Exception e)
  17358. {
  17359. return e.Message;
  17360. }
  17361. }
  17362. /// <summary>
  17363. /// 获取附件数据
  17364. /// </summary>
  17365. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  17366. /// <param name="prefix">前缀</param>
  17367. /// <returns></returns>
  17368. public DataTable GetFileData(string ids, string prefix)
  17369. {
  17370. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  17371. foreach (DataRow dr in dt.Rows)
  17372. {
  17373. if (dr["F_UserCode"].ToString() == "jianhang")
  17374. {
  17375. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  17376. {
  17377. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17378. }
  17379. else
  17380. {
  17381. 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(), ""));
  17382. if (url == "1")
  17383. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17384. else
  17385. dr["F_FileUrl"] = url;
  17386. }
  17387. }
  17388. else
  17389. {
  17390. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  17391. }
  17392. }
  17393. return dt;
  17394. }
  17395. /// <summary>
  17396. /// 绑定追问回复附件信息
  17397. /// </summary>
  17398. /// <param name="dt"></param>
  17399. /// <param name="prefix"></param>
  17400. /// <returns></returns>
  17401. public DataTable BindFileDatas(DataTable dt, string prefix)
  17402. {
  17403. dt.Columns.Add("File", typeof(object));
  17404. foreach (DataRow dr in dt.Rows)
  17405. {
  17406. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  17407. {
  17408. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  17409. }
  17410. }
  17411. dt.Columns.Add("Files", typeof(object));
  17412. foreach (DataRow dr in dt.Rows)
  17413. {
  17414. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  17415. {
  17416. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  17417. }
  17418. }
  17419. return dt;
  17420. }
  17421. /// <summary>
  17422. /// 绑定附件信息
  17423. /// </summary>
  17424. /// <param name="dt"></param>
  17425. /// <param name="prefix"></param>
  17426. /// <returns></returns>
  17427. public DataTable BindFileData(DataTable dt, string prefix)
  17428. {
  17429. dt.Columns.Add("File", typeof(object));
  17430. foreach (DataRow dr in dt.Rows)
  17431. {
  17432. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  17433. {
  17434. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  17435. }
  17436. }
  17437. return dt;
  17438. }
  17439. #endregion
  17440. #region 修改工单 by admin
  17441. /// <summary>
  17442. /// 获取详情
  17443. /// </summary>
  17444. /// <returns></returns>
  17445. //[Authority]
  17446. public ActionResult GetInfoByAdmin(int id, int type)
  17447. {
  17448. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17449. {
  17450. //string sql = "select * from ";
  17451. string table = string.Empty;
  17452. switch (type)
  17453. {
  17454. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  17455. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  17456. case 3: table = "T_Bus_Feedback"; break;//办理信息
  17457. case 4: table = "T_Bus_RemindRecord"; break;//督办
  17458. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  17459. case 6: table = "T_Bus_VisitResult"; break;//回访
  17460. }
  17461. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  17462. var dt = DbHelperSQL.Query(sql).Tables[0];
  17463. return Success("操作成功", dt);
  17464. }
  17465. else
  17466. {
  17467. return Error("权限不足");
  17468. }
  17469. }
  17470. /// <summary>
  17471. /// 修改工单信息
  17472. /// </summary>
  17473. /// <returns></returns>
  17474. //[Authority]
  17475. public ActionResult EditWorkOrderByAdmin()
  17476. {
  17477. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17478. {
  17479. string workorderid = RequestString.GetFormString("workorderid");
  17480. int source = RequestString.GetInt("source", 0);
  17481. string cusname = RequestString.GetFormString("cusname");
  17482. string cussex = RequestString.GetFormString("cussex");
  17483. string cusphone = RequestString.GetFormString("cusphone");
  17484. string cusaddress = RequestString.GetFormString("cusaddress");
  17485. string email = RequestString.GetFormString("email");
  17486. string zipcode = RequestString.GetFormString("zipcode");
  17487. string conname = RequestString.GetFormString("conname");
  17488. string conphone = RequestString.GetFormString("conphone");
  17489. string title = RequestString.GetFormString("title");
  17490. string content = RequestString.GetFormString("content");
  17491. string files = RequestString.GetFormString("files");
  17492. int sourcearea = RequestString.GetInt("sourcearea", 0);
  17493. string sourceaddress = RequestString.GetFormString("sourceaddress");
  17494. string keys = RequestString.GetFormString("keys");
  17495. string splituser = RequestString.GetFormString("splituser");
  17496. int type = RequestString.GetInt("type", 0);
  17497. int bigtype = RequestString.GetInt("bigtype", 0);
  17498. int smalltype = RequestString.GetInt("smalltype", 0);
  17499. int isprotect = RequestString.GetInt("isprotect", 0);
  17500. int level = RequestString.GetInt("level", 0);
  17501. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17502. if (modelT_Bus_WorkOrder != null)
  17503. {
  17504. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17505. {
  17506. #region 保存工单信息
  17507. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  17508. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  17509. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  17510. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  17511. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  17512. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  17513. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  17514. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  17515. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  17516. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  17517. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  17518. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  17519. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  17520. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  17521. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  17522. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  17523. modelT_Bus_WorkOrder.F_File = files;//附件
  17524. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  17525. modelT_Bus_WorkOrder.F_Key = keys;
  17526. modelT_Bus_WorkOrder.F_Level = level;
  17527. workorderBLL.Update(modelT_Bus_WorkOrder);
  17528. #endregion
  17529. #region 插入操作记录
  17530. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17531. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17532. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17533. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  17534. oper.F_File = modelT_Bus_WorkOrder.F_File;
  17535. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17536. oper.F_Message = userinfo + " 修改了工单基本信息";
  17537. oper.F_CreateUser = User.F_UserCode;
  17538. oper.F_CreateTime = DateTime.Now;
  17539. oper.F_IsDelete = 0;
  17540. operBLL.Add(oper);
  17541. #endregion
  17542. trans.Complete();
  17543. }
  17544. return Success("操作成功");
  17545. }
  17546. else
  17547. {
  17548. return Error("操作失败");
  17549. }
  17550. }
  17551. else
  17552. {
  17553. return Success("权限不足");
  17554. }
  17555. }
  17556. /// <summary>
  17557. /// 修改批示信息
  17558. /// </summary>
  17559. /// <returns></returns>
  17560. //[Authority]
  17561. public ActionResult EditSuperInfoByAdmin()
  17562. {
  17563. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17564. {
  17565. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  17566. string superuser = RequestString.GetFormString("superuser");
  17567. string superopinion = RequestString.GetFormString("superopinion");
  17568. string files = RequestString.GetFormString("files");
  17569. int id = RequestString.GetInt("id", 0);
  17570. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  17571. if (model_T_Bus_SubmitSuper != null)
  17572. {
  17573. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17574. {
  17575. #region 保存批示信息
  17576. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  17577. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  17578. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  17579. if (!string.IsNullOrEmpty(files))
  17580. model_T_Bus_SubmitSuper.F_File = files;//附件
  17581. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  17582. #endregion
  17583. #region 插入操作记录
  17584. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17585. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  17586. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  17587. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17588. oper.F_Message = userinfo + " 修改了工单批示信息";
  17589. oper.F_CreateUser = User.F_UserCode;
  17590. oper.F_CreateTime = DateTime.Now;
  17591. oper.F_IsDelete = 0;
  17592. operBLL.Add(oper);
  17593. #endregion
  17594. trans.Complete();
  17595. }
  17596. return Success("操作成功");
  17597. }
  17598. else
  17599. {
  17600. return Error("操作失败");
  17601. }
  17602. }
  17603. else
  17604. {
  17605. return Error("权限不足");
  17606. }
  17607. }
  17608. /// <summary>
  17609. /// 修改交办信息
  17610. /// </summary>
  17611. /// <returns></returns>
  17612. //[Authority]
  17613. public ActionResult EditAssignInfoByAdmin()
  17614. {
  17615. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17616. {
  17617. int assignid = RequestString.GetInt("id", 0);
  17618. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  17619. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  17620. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  17621. string assignedopinion = RequestString.GetFormString("assignedopinion");
  17622. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  17623. if (modelT_Bus_AssignedInfo != null)
  17624. {
  17625. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17626. {
  17627. #region 保存交办信息
  17628. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  17629. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  17630. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  17631. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  17632. assignBLL.Update(modelT_Bus_AssignedInfo);
  17633. #endregion
  17634. #region 插入操作记录
  17635. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17636. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  17637. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  17638. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17639. oper.F_Message = userinfo + " 修改了工单交办信息";
  17640. oper.F_CreateUser = User.F_UserCode;
  17641. oper.F_CreateTime = DateTime.Now;
  17642. oper.F_IsDelete = 0;
  17643. operBLL.Add(oper);
  17644. #endregion
  17645. trans.Complete();
  17646. }
  17647. return Success("操作成功");
  17648. }
  17649. else
  17650. {
  17651. return Error("操作失败");
  17652. }
  17653. }
  17654. else
  17655. {
  17656. return Error("权限不足");
  17657. }
  17658. }
  17659. /// <summary>
  17660. /// 修改办理信息
  17661. /// </summary>
  17662. /// <returns></returns>
  17663. //[Authority]
  17664. public ActionResult EditFeedBackInfoByAdmin()
  17665. {
  17666. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17667. {
  17668. string dealman = RequestString.GetFormString("dealman");
  17669. string result = RequestString.GetFormString("result");
  17670. string files = RequestString.GetFormString("files");
  17671. int feedbackid = RequestString.GetInt("id", 0);
  17672. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  17673. if (model_T_Bus_Feedback != null)
  17674. {
  17675. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17676. {
  17677. #region 保存办理信息
  17678. model_T_Bus_Feedback.F_DealUser = dealman;
  17679. model_T_Bus_Feedback.F_Result = result;//反馈内容
  17680. model_T_Bus_Feedback.F_File = files;
  17681. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  17682. #endregion
  17683. #region 保存工单信息
  17684. 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());
  17685. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  17686. if (maxid == assign.F_Id)
  17687. {
  17688. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  17689. order.F_Result = result;//反馈内容
  17690. workorderBLL.Update(order);
  17691. }
  17692. #endregion
  17693. #region 插入操作记录
  17694. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17695. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  17696. oper.F_File = model_T_Bus_Feedback.F_File;
  17697. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17698. oper.F_Message = userinfo + " 修改了工单办理信息";
  17699. oper.F_CreateUser = User.F_UserCode;
  17700. oper.F_CreateTime = DateTime.Now;
  17701. oper.F_IsDelete = 0;
  17702. operBLL.Add(oper);
  17703. #endregion
  17704. trans.Complete();
  17705. }
  17706. return Success("操作成功");
  17707. }
  17708. else
  17709. {
  17710. return Error("操作失败");
  17711. }
  17712. }
  17713. else
  17714. {
  17715. return Error("权限不足");
  17716. }
  17717. }
  17718. /// <summary>
  17719. /// 修改回访信息
  17720. /// </summary>
  17721. /// <returns></returns>
  17722. //[Authority]
  17723. public ActionResult EditVisitInfoByAdmin()
  17724. {
  17725. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17726. {
  17727. string visituser = RequestString.GetFormString("visituser");//回访人
  17728. int type = RequestString.GetInt("type", 0);//回访方式
  17729. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  17730. int visitid = RequestString.GetInt("id", 0);
  17731. string result = RequestString.GetFormString("result");//回访情况
  17732. string guid = RequestString.GetFormString("guid");
  17733. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  17734. if (modelT_Bus_VisitResult != null)
  17735. {
  17736. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17737. {
  17738. #region 保存回访信息
  17739. modelT_Bus_VisitResult.F_VisitUser = visituser;
  17740. modelT_Bus_VisitResult.F_Type = type;
  17741. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  17742. modelT_Bus_VisitResult.F_Result = result;
  17743. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  17744. //保存回访记录
  17745. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  17746. #endregion
  17747. #region 插入操作记录
  17748. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17749. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  17750. oper.F_File = modelT_Bus_VisitResult.F_File;
  17751. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17752. oper.F_Message = userinfo + " 修改了工单回访信息";
  17753. oper.F_CreateUser = User.F_UserCode;
  17754. oper.F_CreateTime = DateTime.Now;
  17755. oper.F_IsDelete = 0;
  17756. operBLL.Add(oper);
  17757. #endregion
  17758. trans.Complete();
  17759. }
  17760. return Success("操作成功");
  17761. }
  17762. else
  17763. {
  17764. return Error("操作失败");
  17765. }
  17766. }
  17767. else
  17768. {
  17769. return Error("权限不足");
  17770. }
  17771. }
  17772. /// <summary>
  17773. /// 修改退回审核信息
  17774. /// </summary>
  17775. /// <returns></returns>
  17776. //[Authority]
  17777. public ActionResult EditAuditRebackByAdmin()
  17778. {
  17779. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17780. {
  17781. string reason = RequestString.GetFormString("reason");
  17782. int rebackid = RequestString.GetInt("id", 0);
  17783. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  17784. if (modelT_Bus_Feedback != null)
  17785. {
  17786. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17787. {
  17788. #region 保存反馈信息
  17789. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  17790. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  17791. #endregion
  17792. #region 插入操作记录
  17793. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17794. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  17795. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17796. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  17797. oper.F_CreateUser = User.F_UserCode;
  17798. oper.F_CreateTime = DateTime.Now;
  17799. oper.F_IsDelete = 0;
  17800. operBLL.Add(oper);
  17801. #endregion
  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. /// <summary>
  17817. /// 修改延时审核信息
  17818. /// </summary>
  17819. /// <returns></returns>
  17820. //[Authority]
  17821. public ActionResult EditAuditDelayByAdmin()
  17822. {
  17823. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  17824. {
  17825. string reason = RequestString.GetFormString("reason");
  17826. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  17827. int delayid = RequestString.GetInt("id", 0);
  17828. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  17829. if (modelT_Bus_DelayTime != null)
  17830. {
  17831. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  17832. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17833. {
  17834. #region 保存延时审核信息
  17835. modelT_Bus_DelayTime.F_RefuseReason = reason;
  17836. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  17837. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  17838. #endregion
  17839. #region 插入操作记录
  17840. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17841. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  17842. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17843. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  17844. oper.F_CreateUser = User.F_UserCode;
  17845. oper.F_CreateTime = DateTime.Now;
  17846. oper.F_IsDelete = 0;
  17847. operBLL.Add(oper);
  17848. #endregion
  17849. trans.Complete();
  17850. }
  17851. return Success("操作成功");
  17852. }
  17853. else
  17854. {
  17855. return Error("操作失败");
  17856. }
  17857. }
  17858. else
  17859. {
  17860. return Error("权限不足");
  17861. }
  17862. }
  17863. #endregion
  17864. #region 县级对接
  17865. /// <summary>
  17866. /// 获取网点列表
  17867. /// </summary>
  17868. /// <param name="code"></param>
  17869. /// <param name="name"></param>
  17870. /// <returns></returns>
  17871. //[Authority]
  17872. public ActionResult GetCityList(string code, string name)
  17873. {
  17874. string signcode = Configs.GetValue("CityOutSignCode");
  17875. string url = Configs.GetValue("CityOutUrl");
  17876. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  17877. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  17878. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  17879. return Content(result);
  17880. }
  17881. /// <summary>
  17882. /// 获取网点详情
  17883. /// </summary>
  17884. /// <param name="code"></param>
  17885. /// <returns></returns>
  17886. //[Authority]
  17887. public ActionResult GetCityDetail(string code)
  17888. {
  17889. string signcode = Configs.GetValue("CityOutSignCode");
  17890. string url = Configs.GetValue("CityOutUrl");
  17891. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  17892. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  17893. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  17894. return Content(result);
  17895. }
  17896. /// <summary>
  17897. /// 转派工单到县级
  17898. /// </summary>
  17899. /// <returns></returns>
  17900. //[Authority]
  17901. public ActionResult TurnWorkOrder()
  17902. {
  17903. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  17904. {
  17905. string workorderid = RequestString.GetFormString("workorderid");
  17906. string citycode = RequestString.GetFormString("citycode");
  17907. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17908. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  17909. {
  17910. string code = Configs.GetValue("CityCode");
  17911. var branchmodel = GetCityInfo(code);
  17912. var citymodel = GetCityInfo(citycode);
  17913. if (branchmodel != null && citymodel != null)
  17914. {
  17915. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17916. {
  17917. string cityworkorderid = string.Empty;
  17918. #region 转单
  17919. string turnsigncode = citymodel["F_Sign"].ToString();
  17920. string turnurl = citymodel["F_Url"].ToString();
  17921. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  17922. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  17923. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  17924. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  17925. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  17926. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  17927. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  17928. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  17929. var turnresult = turnresultstr.ToJObject();
  17930. if (turnresult["state"].ToString() != "success")
  17931. {
  17932. return Content(turnresultstr);
  17933. }
  17934. else
  17935. {
  17936. cityworkorderid = turnresult["data"].ToString();
  17937. }
  17938. #endregion
  17939. #region 保存工单信息
  17940. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  17941. modelT_Bus_WorkOrder.F_IsClosed = 1;
  17942. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  17943. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  17944. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  17945. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  17946. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  17947. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  17948. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  17949. workorderBLL.Update(modelT_Bus_WorkOrder);
  17950. #endregion
  17951. #region 删除草稿信息
  17952. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  17953. foreach (var cg in cglist)
  17954. {
  17955. cg.F_IsDelete = 1;
  17956. cg.F_DeleteUser = User.F_UserCode;
  17957. cg.F_DeleteTime = DateTime.Now;
  17958. assignBLL.Update(cg);
  17959. }
  17960. #endregion
  17961. #region 新增转单记录
  17962. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  17963. modelT_Bus_CityTurn.F_CityCode = citycode;
  17964. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  17965. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  17966. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17967. modelT_Bus_CityTurn.F_Type = 2;
  17968. modelT_Bus_CityTurn.F_State = 1;
  17969. modelT_Bus_CityTurn.F_IsSure = 0;
  17970. modelT_Bus_CityTurn.F_IsDelete = 0;
  17971. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  17972. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  17973. #endregion
  17974. #region 插入操作记录
  17975. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17976. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17977. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17978. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17979. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  17980. oper.F_CreateUser = User.F_UserCode;
  17981. oper.F_CreateTime = DateTime.Now;
  17982. oper.F_IsDelete = 0;
  17983. operBLL.Add(oper);
  17984. #endregion
  17985. trans.Complete();
  17986. }
  17987. return Success("操作成功");
  17988. }
  17989. else
  17990. {
  17991. return Error("操作失败");
  17992. }
  17993. }
  17994. else
  17995. {
  17996. return Error("操作失败");
  17997. }
  17998. }
  17999. else
  18000. {
  18001. return Success("权限不足");
  18002. }
  18003. }
  18004. /// <summary>
  18005. /// 获取当前网点信息
  18006. /// </summary>
  18007. /// <returns></returns>
  18008. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  18009. {
  18010. string signcode = Configs.GetValue("CityOutSignCode");
  18011. string url = Configs.GetValue("CityOutUrl");
  18012. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  18013. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  18014. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  18015. if (result["state"].ToString() == "success")
  18016. {
  18017. return result["data"].ToString().ToJObject();
  18018. }
  18019. else
  18020. {
  18021. return null;
  18022. }
  18023. }
  18024. #endregion
  18025. #region 私有方法
  18026. /// <summary>
  18027. /// 添加操作日志
  18028. /// </summary>
  18029. /// <param name="workorderid"></param>
  18030. /// <param name="workstate"></param>
  18031. /// <param name="msgs"></param>
  18032. /// <param name="usercode"></param>
  18033. private void addoptlog(string workorderid, int? workstate, int assid, string msgs, string usercode, int type = 0)
  18034. {
  18035. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18036. oper.F_WorkOrderId = workorderid;
  18037. oper.F_State = workstate;
  18038. oper.F_AssignedId = assid;
  18039. oper.F_Message = msgs;
  18040. oper.F_CreateUser = usercode;
  18041. oper.F_CreateTime = DateTime.Now;
  18042. oper.F_IsDelete = 0;
  18043. oper.F_Type = type;
  18044. operBLL.Add(oper);
  18045. }
  18046. #endregion
  18047. /// <summary>
  18048. /// 二级单位下工单数量
  18049. /// </summary>
  18050. /// <returns></returns>
  18051. //[Authority]
  18052. public ActionResult GetDWCount()
  18053. {
  18054. Dictionary<string, string> paras = new Dictionary<string, string>();
  18055. paras.Add("@deptid", User.F_DeptId .ToString ());
  18056. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  18057. {
  18058. var obj = DbHelperSQL.RunProcedure("P_DWCount", paras, "DWCount");
  18059. return Success("成功", obj);
  18060. }
  18061. else
  18062. {
  18063. var obj = DbHelperSQL.RunProcedure("P_GLCount", paras, "DWCount");
  18064. return Success("成功", obj);
  18065. }
  18066. }
  18067. }
  18068. }