Нет описания

WorkOrderController.cs 896KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101
  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.Transactions;
  17. using System.Web;
  18. using System.Web.Mvc;
  19. namespace CallCenterApi.Interface.Controllers.workorder
  20. {
  21. [Authority]
  22. public class WorkOrderController : BaseController
  23. {
  24. // GET: WorkOrder
  25. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  26. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  27. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  28. private information.InternalMessagesController msg = new information.InternalMessagesController();
  29. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  30. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  31. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  32. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  33. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  34. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  35. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  36. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  37. private readonly static object _MyLock = new object();
  38. #region 获取工单
  39. /// <summary>
  40. /// 获取工单列表
  41. /// </summary>
  42. /// <returns></returns>
  43. public ActionResult GetList(int isdc = 0)
  44. {
  45. DataTable dt = new DataTable();
  46. string sql = " and F_IsDelete=0 ";
  47. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  48. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  49. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  50. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  51. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  52. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  53. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  54. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  55. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  56. int isproresult = RequestString.GetInt("isproresult", 0);
  57. int source = RequestString.GetInt("source", 0);
  58. int keyid = RequestString.GetInt("keyid", 0);
  59. int type = RequestString.GetInt("type", 0);
  60. int bigtype = RequestString.GetInt("bigtype", 0);
  61. int smalltype = RequestString.GetInt("smalltype", 0);
  62. int sourcearea = RequestString.GetInt("sourcearea", 0);
  63. int deptid = RequestString.GetInt("deptid", 0);
  64. int pydt = RequestString.GetInt("pydt", 0);
  65. int zdpy = RequestString.GetInt("zdpy", 0);
  66. int smpy = RequestString.GetInt("smpy", 0);
  67. int dealtype = RequestString.GetInt("dealtype", -1);
  68. int issend = RequestString.GetInt("issend", -1);
  69. int deptlevel = RequestString.GetInt("deptlevel", 0);
  70. int dbdata = RequestString.GetInt("dbdata", 0);
  71. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  72. string strpageindex = RequestString.GetQueryString("page");
  73. int pageindex = 1;
  74. string strpagesize = RequestString.GetQueryString("pagesize");
  75. int pagesize = 10;
  76. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  77. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  78. int isopen = RequestString.GetInt("isopen", -1);
  79. if (isopen >-1)
  80. sql += " and isnull(F_IsOpen,0) ="+ isopen;
  81. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  82. {
  83. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  84. {
  85. sql += " and F_DealTime between '" + dealstarttime +
  86. "' AND '" + dealstrendtime + "'";
  87. }
  88. else
  89. {
  90. sql += " and F_DealTime>='" + dealstarttime + "' ";
  91. }
  92. }
  93. else
  94. {
  95. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  96. {
  97. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  98. }
  99. }
  100. #region sql 语句相关处理
  101. if (strstate.Trim() != "" && strstate != "undefined")
  102. {
  103. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  104. }
  105. if (strworkid.Trim() != "" && strworkid != "undefined")
  106. {
  107. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  108. }
  109. if (strname.Trim() != "" && strname != "undefined")
  110. {
  111. sql += " and F_CusName = '" + strname + "' ";
  112. }
  113. if (strtel.Trim() != "" && strtel != "undefined")
  114. {
  115. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  116. }
  117. int dbtype = RequestString.GetInt("dbtype", 0);
  118. if (pydt>0)
  119. {
  120. if (zdpy>0)
  121. {
  122. sql += " and datediff(day,F_CreateTime,getdate() )>15 and F_WorkState = 9 and F_CloseTime is not null " +
  123. "and F_WorkOrderId not in (select WorkOrderId from PublicComment WITH(NOLOCK) )";
  124. }
  125. else if (smpy > 0)
  126. {
  127. sql += " and F_WorkOrderId in (select WorkOrderId from PublicComment WITH(NOLOCK) ) ";
  128. }
  129. else
  130. {
  131. 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) )) ";
  132. }
  133. }
  134. else if (dbdata > 0)
  135. {
  136. if (deptid == 0)
  137. {
  138. return Error("请选择部门");
  139. }
  140. string sdate = ""; string etime = "";
  141. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  142. {
  143. sdate = DateTime.Now.AddMonths(-1).
  144. ToString("yyyy-MM") + "-21 00:00:01";
  145. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  146. }
  147. else
  148. {
  149. sdate = strstarttime;
  150. if (strendtime.Trim() == "" || strendtime == "undefined")
  151. {
  152. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  153. }
  154. else
  155. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  156. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  157. }
  158. if (dbtype != 6)
  159. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  160. else
  161. sql += "and F_WorkState not in (0, 1, 11)";
  162. if (dbtype == 1)
  163. {
  164. 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) ) ) ";
  165. }
  166. else if (dbtype == 2)
  167. {
  168. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  169. }
  170. else if (dbtype == 3)
  171. {
  172. 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) ) ) ";
  173. }
  174. else if (dbtype == 4)
  175. {
  176. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  177. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  178. }
  179. else if (dbtype == 5)
  180. {
  181. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  182. }
  183. else if (dbtype == 6)
  184. {
  185. 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 )";
  186. }
  187. }
  188. else if (dbdata2>0)
  189. {
  190. if (deptid == 0)
  191. {
  192. return Error("请选择部门");
  193. }
  194. int deptid2 =0;
  195. if (User.F_RoleCode == "WLDW")
  196. deptid2 = User.F_DeptId;
  197. string sdate = ""; string etime = "";
  198. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  199. {
  200. sdate = DateTime.Now.AddMonths(-1).
  201. ToString("yyyy-MM") + "-21 00:00:01";
  202. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  203. }
  204. else
  205. {
  206. sdate = strstarttime;
  207. if (strendtime.Trim() == "" || strendtime == "undefined")
  208. {
  209. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  210. }
  211. else
  212. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  213. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  214. }
  215. if (dbtype != 6)
  216. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  217. "and F_MainDeptID3='"+ deptid + "'";
  218. else
  219. sql += "and F_WorkState not in (0, 1, 11)";
  220. if (dbtype == 1)
  221. {
  222. 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) ) ) ";
  223. }
  224. else if (dbtype == 2)
  225. {
  226. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  227. }
  228. else if (dbtype == 3)
  229. {
  230. 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) ) ) ";
  231. }
  232. else if (dbtype == 4)
  233. {
  234. sql += "and (F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' )" +
  235. "or F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_CreateTime>='" + sdate + "'))";
  236. }
  237. else if (dbtype == 5)
  238. {
  239. sql += "and F_WorkOrderId in (select WorkOrderId from PublicComment where CreateTime >='" + sdate + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' )";
  240. }
  241. else if (dbtype == 6)
  242. {
  243. 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 ) " +
  244. "and F_MainDeptID3='"+ deptid+ "'";
  245. }
  246. }
  247. else
  248. {
  249. int comprehensive =RequestString.GetInt("comprehensive", 0);
  250. int phoneType = RequestString.GetInt("phoneType",0);
  251. int jianhang = RequestString.GetInt("jianhang", 0);
  252. if (comprehensive<=0)
  253. {
  254. if (jianhang > 0)
  255. {
  256. if (jianhang==3)
  257. sql += " and F_InfoSource = '2501' ";
  258. else
  259. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  260. }
  261. else
  262. {
  263. sql += " and F_InfoSource = '1' ";
  264. if (phoneType==1)
  265. sql += " and F_PhoneType != '12345' ";
  266. else if (phoneType == 2)
  267. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  268. "or F_PhoneType is null ) ";
  269. }
  270. }
  271. }
  272. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  273. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  274. {
  275. sql += " and F_PhoneType = '" + incomingcall + "' ";
  276. }
  277. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  278. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  279. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  280. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  281. {
  282. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  283. }
  284. if (Result.Trim() != "" && Result != "undefined")
  285. {
  286. sql += " and F_Result like '%" + Result + "%' ";
  287. }
  288. if (ComContent.Trim() != "" && ComContent != "undefined")
  289. {
  290. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  291. "or F_Content like '%" + ComContent + "%' )";
  292. }
  293. if (strkey.Trim() != "" && strkey != "undefined")
  294. {
  295. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  296. " or F_Result like '%" + strkey + "%' ) ";
  297. }
  298. if (strusercode.Trim() != "" && strusercode != "undefined")
  299. {//坐席
  300. var usercode = strusercode.Trim().Split(',');
  301. var newusercode = "";
  302. foreach (var item in usercode)
  303. {
  304. if (!string.IsNullOrWhiteSpace(item.Trim()))
  305. newusercode += "'" + item + "',";
  306. }
  307. newusercode = newusercode.Trim(',');
  308. if (usercode.Length >1)
  309. {
  310. if (newusercode.Trim() != "" && newusercode != "undefined")
  311. {
  312. sql += " and F_CreateUser in (" + newusercode + ") ";
  313. //sql += " and F_CreateUser ='" + strusercode + "' ";
  314. }
  315. }
  316. else
  317. {
  318. if (newusercode.Trim() != "" && newusercode != "undefined")
  319. {
  320. sql += " and F_CreateUser = " + newusercode + " ";
  321. //sql += " and F_CreateUser ='" + strusercode + "' ";
  322. }
  323. }
  324. }
  325. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  326. {//调度员
  327. var ddusercode = strddusercode.Trim().Split(',');
  328. var newusercode = "";
  329. foreach (var item in ddusercode)
  330. {
  331. if (!string.IsNullOrWhiteSpace(item.Trim()))
  332. newusercode += "'" + item + "',";
  333. }
  334. newusercode = newusercode.Trim(',');
  335. if (ddusercode.Length > 1)
  336. {
  337. if (newusercode.Trim() != "" && newusercode != "undefined")
  338. {
  339. sql += " and F_AssignUser in (" + newusercode + ") ";
  340. //sql += " and F_CreateUser ='" + strusercode + "' ";
  341. }
  342. }
  343. else
  344. {
  345. if (newusercode.Trim() != "" && newusercode != "undefined")
  346. {
  347. sql += " and F_AssignUser = " + newusercode + " ";
  348. //sql += " and F_CreateUser ='" + strusercode + "' ";
  349. }
  350. }
  351. }
  352. if (source != 0)
  353. {
  354. sql += " and F_InfoSource = '" + source + "' ";
  355. }
  356. string sqlwhere = "";string value = "";
  357. if (keyid != 0)
  358. {
  359. sqlwhere = " INNER JOIN[GetValueId]('"+ keyid + "') Value on a.F_Key = Value.F_ValueId";
  360. value= " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  361. }
  362. else if (User.F_RoleCode == "DFZF")
  363. {
  364. sql += " and F_CreateUser ='"+ User .F_UserCode + "' ";
  365. }
  366. if (type != 0)
  367. {
  368. sql += " and F_InfoType = '" + type + "' ";
  369. }
  370. if (bigtype != 0)
  371. {
  372. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  373. }
  374. if (smalltype != 0)
  375. {
  376. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  377. }
  378. if(isproresult !=0)
  379. {
  380. if (User .F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  381. || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  382. {
  383. if (isproresult==2)
  384. {
  385. isproresult = 3;
  386. sql += " and F_IsProResult = '" + 3 + "' ";
  387. }
  388. else
  389. {
  390. isproresult = 2;
  391. sql += " and F_IsProResult = '" + 2 + "' ";
  392. }
  393. }
  394. else
  395. sql += " and F_IsProResult = '" + 2 + "' ";
  396. }
  397. if (sourcearea != 0)
  398. {
  399. sql += " and F_SourceArea = '" + sourcearea + "' ";
  400. }
  401. if (deptid != 0)
  402. {
  403. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  404. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  405. #endregion
  406. }
  407. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  408. {
  409. if (strendtime.Trim() != "" && strendtime != "undefined")
  410. {
  411. sql += " and F_CreateTime between '" + strstarttime +
  412. "' AND '" + strendtime + "'";
  413. }
  414. else
  415. {
  416. sql += " and F_CreateTime>='" + strstarttime + "' ";
  417. }
  418. }
  419. else
  420. {
  421. if (strendtime.Trim() != "" && strendtime != "undefined")
  422. {
  423. sql += " and F_CreateTime<='" + strendtime + "' ";
  424. }
  425. }
  426. if (dealtype != -1)
  427. {
  428. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  429. }
  430. if (issend != -1)
  431. {
  432. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  433. }
  434. #endregion
  435. if (strpageindex.Trim() != "")
  436. {
  437. pageindex = Convert.ToInt32(strpageindex);
  438. }
  439. if (strpagesize.Trim() != "")
  440. {
  441. pagesize = Convert.ToInt32(strpagesize);
  442. }
  443. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  444. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  445. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  446. 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 ";
  447. #region 导出
  448. if (isdc > 0)
  449. {
  450. var top = " "; var orderby = " order by F_CreateTime";
  451. if (sql == " and F_IsDelete=0 ")
  452. {
  453. top = " top 1000 "; orderby += " desc ";
  454. }
  455. //20190715调整导出字段 zhengbingbing
  456. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  457. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  458. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  459. + " (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) 办理结果, "
  460. + " (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) 是否满意 "
  461. + " from T_Bus_WorkOrder a WITH(NOLOCK)"+ value + " where 1=1 " + sql+ orderby).Tables[0];
  462. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  463. if (msg == "")
  464. {
  465. return Success("导出成功");
  466. }
  467. else
  468. {
  469. return Error("导出失败");
  470. }
  471. }
  472. #endregion
  473. int recordCount = 0;
  474. dt = BLL.PagerBLL.GetListPager(
  475. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  476. "F_WorkOrderId",
  477. cols,
  478. sql,
  479. "ORDER BY F_CreateTime DESC",
  480. pagesize,
  481. pageindex,
  482. true,
  483. out recordCount);
  484. #region 声音文件和交办超时
  485. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  486. // dt.Columns.Add("AssignTime", typeof(string));//交办时间
  487. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  488. dt.Columns.Add("OverState", typeof(string));//超时状态
  489. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  490. dt.Columns.Add("GapTime", typeof(string));//时间差
  491. // dt.Columns.Add("PDState", typeof(string));//派单状态
  492. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  493. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  494. dt.Columns.Add("Dissatisfied", typeof(object));//不满意
  495. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  496. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  497. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  498. // var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  499. foreach (DataRow dr in dt.Rows)
  500. {
  501. string iszbdw = "0";
  502. string ispd = "";
  503. int state = Int32.Parse(dr["F_WorkState"].ToString());
  504. if (state > 1)
  505. {
  506. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  507. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  508. // 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";
  509. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  510. // if (dtjb.Rows.Count > 0)
  511. // {
  512. //if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  513. //{
  514. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  515. //}
  516. #region 20191016
  517. #endregion
  518. // dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  519. #region
  520. #endregion
  521. var lt = dr["LimitTime"].ToString();//限制时间
  522. // dr["LimitTime"] = lt;
  523. #region 超时时限
  524. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  525. {
  526. if (!string.IsNullOrWhiteSpace(lt))
  527. {
  528. var ltime = DateTime.Parse(lt);
  529. if (ltime > DateTime.Now)
  530. {
  531. // 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 + "'";
  532. // var SYSJ = DbHelperSQL.GetSingle(SY);
  533. if (dr["SYSJ"] != null && dr["SYSJ"].ToString() != "")
  534. {
  535. try
  536. {
  537. ltime = ltime.AddDays(-int.Parse(dr["SYSJ"].ToString()));
  538. }
  539. catch
  540. {
  541. }
  542. }
  543. }
  544. TimeSpan ts = ltime.Subtract(DateTime.Now);
  545. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  546. if (tss < 0) { tss = -tss; }
  547. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  548. if (ltime > DateTime.Now)
  549. {
  550. if (configcs != null)
  551. {
  552. int cs = Int32.Parse(configcs.F_ParamValue);
  553. if (ts.TotalHours > cs)
  554. {
  555. dr["OverState"] = 1;
  556. }
  557. else
  558. {
  559. dr["OverState"] = 2;
  560. }
  561. }
  562. dr["GapTime"] = "剩余" + gshsj;
  563. }
  564. else
  565. {
  566. dr["OverState"] = 3;
  567. dr["GapTime"] = "超时" + gshsj;
  568. }
  569. }
  570. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  571. //dr["PDState"] = ispd;
  572. }
  573. if (state == (int)EnumWorkState.finish)
  574. {
  575. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  576. var dttime = DateTime.Now;
  577. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  578. else
  579. {
  580. var DealTime = dr["F_CloseTime"].ToString();
  581. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  582. }
  583. if (!string.IsNullOrWhiteSpace(lt))
  584. {
  585. var ltime = DateTime.Parse(lt);
  586. TimeSpan ts = ltime.Subtract(dttime);
  587. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  588. if (tss < 0) { tss = -tss; }
  589. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  590. if (ltime < dttime)
  591. {
  592. dr["OverState"] = 3;
  593. dr["GapTime"] = "超时" + gshsj;
  594. }
  595. }
  596. }
  597. #endregion
  598. // }
  599. }
  600. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  601. {
  602. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  603. }
  604. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  605. {
  606. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  607. }
  608. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  609. if(dbdata >0&& dbtype == 5)
  610. {
  611. 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";
  612. var db = DbHelperSQL.Query(dbsql).Tables[0];
  613. if (db.Rows.Count > 0)
  614. {
  615. dr["Dissatisfied"] = db.Rows[0]["strSsf_Cst_Ass_CntDsc"].ToString();
  616. }
  617. }
  618. #region 判断是否存在待督办
  619. // var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  620. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  621. if (int .Parse (dr["reminds"] .ToString ())>0 && butt!=null)
  622. buttons.Remove(butt);
  623. #endregion
  624. if (isproresult == 0 && User.F_RoleCode.ToUpper() == "ZXHWY")
  625. {
  626. buttons.Clear();
  627. buttons.Add(ButtonGroup.query());
  628. }
  629. if (state == 9)
  630. {
  631. 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")
  632. {
  633. if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  634. {
  635. var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  636. TimeSpan ts = DateTime.Now - closedttime;
  637. if (ts.TotalDays < 20)
  638. {
  639. buttons.Add(ButtonGroup.subreload());
  640. }
  641. }
  642. }
  643. }
  644. dr["Buttons"] = buttons;
  645. }
  646. #endregion
  647. var obj = new
  648. {
  649. state = "success",
  650. message = "成功",
  651. rows = dt,
  652. total = recordCount
  653. };
  654. return Content(obj.ToJson());
  655. }
  656. /// <summary>
  657. /// 获取坐席处理列表
  658. /// </summary>
  659. /// <returns></returns>
  660. //[Authority]
  661. public ActionResult GetZXDealList(int isdc = 0)
  662. {
  663. DataTable dt = new DataTable();
  664. string sql = " and F_IsDelete=0";
  665. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  666. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  667. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  668. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  669. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  670. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  671. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  672. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  673. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  674. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  675. int source = RequestString.GetInt("source", 0);
  676. int keyid = RequestString.GetInt("keyid", 0);
  677. int type = RequestString.GetInt("type", 0);
  678. int bigtype = RequestString.GetInt("bigtype", 0);
  679. int smalltype = RequestString.GetInt("smalltype", 0);
  680. int sourcearea = RequestString.GetInt("sourcearea", 0);
  681. int tobereply = RequestString.GetInt("tobereply", 0);
  682. int deptid = RequestString.GetInt("deptid", 0);
  683. int deptlevel = RequestString.GetInt("deptlevel", 0);
  684. string strpageindex = RequestString.GetQueryString("page");
  685. int pageindex = 1;
  686. string strpagesize = RequestString.GetQueryString("pagesize");
  687. int pagesize = 10;
  688. switch (strtab)
  689. {
  690. case "-1"://待处理工单(其他来源)
  691. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  692. break;
  693. case "0"://待处理工单
  694. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG"&& User.F_RoleCode != "MTDD")
  695. {
  696. //话务员,已办待回访菜单中可以看到所有工单并能操作
  697. if (User.F_RoleCode != "ZJZY" && User.F_RoleCode != "ZXHWY")
  698. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  699. //话务员,已办待回访菜单中可以看到所有工单并能操作
  700. }
  701. if (strstate.Trim() != "" && strstate != "undefined")
  702. {
  703. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  704. {
  705. sql += "and (F_IsReturn !='1' or F_IsReturn is null)";
  706. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  707. sql += "and F_ToBereply=" + tobereply;
  708. }
  709. else if (strstate.Trim() == ((int)EnumWorkState.audit).ToString())
  710. {
  711. sql += " and F_WorkState in (" + (int)EnumWorkState.audit + "," + (int)EnumWorkState.auditreback + ") ";
  712. }
  713. else
  714. {
  715. sql += "and F_ToBereply=" + tobereply;
  716. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  717. }
  718. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  719. }
  720. else
  721. {
  722. sql += "and F_ToBereply=" + tobereply;
  723. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + "," + (int)EnumWorkState.rejload + ") ";
  724. sql += " and F_WorkState in (0) ";
  725. sql += "and (F_IsReturn !='1' or F_IsReturn is null)";
  726. }
  727. break;
  728. case "1"://已提交的工单
  729. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  730. sql += " and F_WorkState >0 ";
  731. if (strstate.Trim() != "" && strstate != "undefined")
  732. {
  733. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  734. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  735. else
  736. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  737. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  738. }
  739. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"|| User.F_RoleCode != "DBZY")
  740. {
  741. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  742. }
  743. break;
  744. case "2"://已回访的工单
  745. if (strstate.Trim() != "" && strstate != "undefined")
  746. {
  747. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  748. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  749. else
  750. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  751. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  752. }
  753. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  754. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"|| User.F_RoleCode != "DBZY")
  755. {
  756. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  757. }
  758. else
  759. {
  760. sql += ")";
  761. }
  762. break;
  763. case "3"://已回退的工单
  764. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  765. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  766. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  767. {
  768. sql += " and F_CreateUser='" + User.F_UserCode+"'";
  769. }
  770. break;
  771. case "4":
  772. 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)";
  773. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  774. {
  775. sql += " and F_CreateUser='" + User.F_UserCode+"'";
  776. }
  777. break;
  778. }
  779. int jianhang = RequestString.GetInt("jianhang", 0);
  780. int phoneType = RequestString.GetInt("phoneType", 0);
  781. if (jianhang > 0)
  782. {
  783. if (jianhang == 3)
  784. sql += " and F_InfoSource = '2501' ";
  785. else
  786. sql += " and F_InfoSource != '1'and F_InfoSource != '2501' ";
  787. }
  788. else
  789. {
  790. sql += " and F_InfoSource = '1' ";
  791. if (phoneType == 1)
  792. sql += " and F_PhoneType != '12345' ";
  793. else if (phoneType == 2)
  794. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  795. "or F_PhoneType is null ) ";
  796. }
  797. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  798. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  799. {
  800. sql += " and F_PhoneType = '" + incomingcall + "' ";
  801. }
  802. if (strworkid.Trim() != "" && strworkid != "undefined")
  803. {
  804. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  805. }
  806. if (strname.Trim() != "" && strname != "undefined")
  807. {
  808. sql += " and F_CusName like '%" + strname + "%' ";
  809. }
  810. if (strtel.Trim() != "" && strtel != "undefined")
  811. {
  812. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  813. }
  814. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  815. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  816. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  817. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  818. {
  819. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  820. }
  821. if (Result.Trim() != "" && Result != "undefined")
  822. {
  823. sql += " and F_Result like '%" + Result + "%' ";
  824. }
  825. if (ComContent.Trim() != "" && ComContent != "undefined")
  826. {
  827. sql += " and F_ComContent like '%" + ComContent + "%' ";
  828. }
  829. if (strkey.Trim() != "" && strkey != "undefined")
  830. {
  831. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  832. " or F_Result like '%" + strkey + "%' ) ";
  833. }
  834. #region 坐席&调度员
  835. if (strusercode.Trim() != "" && strusercode != "undefined")
  836. {//坐席
  837. var usercode = strusercode.Trim().Split(',');
  838. var newusercode = "";
  839. foreach (var item in usercode)
  840. {
  841. if (!string.IsNullOrWhiteSpace(item.Trim()))
  842. newusercode += "'" + item + "',";
  843. }
  844. newusercode = newusercode.Trim(',');
  845. if (newusercode.Trim() != "" && newusercode != "undefined")
  846. {
  847. sql += " and F_CreateUser in (" + newusercode + ") ";
  848. }
  849. }
  850. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  851. {//调度员
  852. var ddusercode = strddusercode.Trim().Split(',');
  853. var newusercode = "";
  854. foreach (var item in ddusercode)
  855. {
  856. if (!string.IsNullOrWhiteSpace(item.Trim()))
  857. newusercode += "'" + item + "',";
  858. }
  859. newusercode = newusercode.Trim(',');
  860. if (newusercode.Trim() != "" && newusercode != "undefined")
  861. {
  862. sql += " and F_AssignUser in(" + newusercode + ") ";
  863. }
  864. }
  865. //if (strusercode.Trim() != "" && strusercode != "undefined")
  866. //{
  867. // sql += " and F_CreateUser = '" + strusercode + "' ";
  868. //}
  869. #endregion
  870. if (source != 0)
  871. {
  872. sql += " and F_InfoSource = '" + source + "' ";
  873. }
  874. string sqlwhere = ""; string value = "";
  875. if (keyid != 0)
  876. {
  877. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  878. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  879. // " or F_Key='" + keyid + "' )";
  880. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  881. }
  882. if (type != 0)
  883. {
  884. sql += " and F_InfoType = '" + type + "' ";
  885. }
  886. if (bigtype != 0)
  887. {
  888. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  889. }
  890. if (smalltype != 0)
  891. {
  892. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  893. }
  894. if (sourcearea != 0)
  895. {
  896. sql += " and F_SourceArea = '" + sourcearea + "' ";
  897. }
  898. if (deptid != 0)
  899. {
  900. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  901. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  902. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  903. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  904. //if (deptlevel == 0)
  905. //{
  906. // 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 ";
  907. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  908. //}
  909. //else
  910. //{
  911. // 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 ";
  912. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  913. //}
  914. #endregion
  915. }
  916. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  917. {
  918. sql += " and F_CreateTime>='" + strstarttime + "' ";
  919. }
  920. if (strendtime.Trim() != "" && strendtime != "undefined")
  921. {
  922. sql += " and F_CreateTime<='" + strendtime + "' ";
  923. }
  924. if (strpageindex.Trim() != "")
  925. {
  926. pageindex = Convert.ToInt32(strpageindex);
  927. }
  928. if (strpagesize.Trim() != "")
  929. {
  930. pagesize = Convert.ToInt32(strpagesize);
  931. }
  932. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  933. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  934. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  935. 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" +
  936. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime";
  937. if (isdc > 0)
  938. {
  939. var top = " "; var orderby = " order by F_CreateTime";
  940. if (sql == " and F_IsDelete=0 ")
  941. {
  942. top = " top 1000 "; orderby += " desc ";
  943. }
  944. //20190715调整导出字段 zhengbingbing
  945. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  946. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  947. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  948. + " (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) 办理结果, "
  949. + " (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) 是否满意 "
  950. + " from T_Bus_WorkOrder wo WITH(NOLOCK)"+value +" where 1=1 " + sql + orderby).Tables[0];
  951. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  952. if (msg == "")
  953. {
  954. return Success("导出成功");
  955. }
  956. else
  957. {
  958. return Error("导出失败");
  959. }
  960. }
  961. int recordCount = 0;
  962. dt = BLL.PagerBLL.GetListPager(
  963. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  964. "F_WorkOrderId",
  965. cols,
  966. sql,
  967. "ORDER BY F_CreateTime DESC",
  968. pagesize,
  969. pageindex,
  970. true,
  971. out recordCount);
  972. dt.Columns.Add("DeptName", typeof(string));//交办单位
  973. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  974. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  975. dt.Columns.Add("OverState", typeof(string));//超时状态
  976. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  977. dt.Columns.Add("GapTime", typeof(string));//时间差
  978. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  979. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  980. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  981. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  982. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  983. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  984. foreach (DataRow dr in dt.Rows)
  985. {
  986. //获取最新交办信息
  987. string iszbdw = "0";
  988. int state = Int32.Parse(dr["F_WorkState"].ToString());
  989. if (state > 1)
  990. {
  991. 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";
  992. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  993. if (dtjb.Rows.Count > 0)
  994. {
  995. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(User.F_DeptId.ToString())) { iszbdw = "1"; }
  996. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  997. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  998. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  999. {
  1000. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1001. }
  1002. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1003. #region
  1004. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1005. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1006. //if (deptinfo != null)
  1007. //{
  1008. // if (did == User.F_DeptId) { iszbdw = "1"; }
  1009. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1010. //}
  1011. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1012. //{
  1013. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1014. // string dns = string.Empty;
  1015. // foreach (string strid in strids)
  1016. // {
  1017. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1018. // if (dinfo != null)
  1019. // {
  1020. // if (string.IsNullOrEmpty(dns))
  1021. // {
  1022. // dns = dinfo.F_DeptName;//交办单位
  1023. // }
  1024. // else
  1025. // {
  1026. // dns += "," + dinfo.F_DeptName;//交办单位
  1027. // }
  1028. // }
  1029. // }
  1030. // dr["OtherDeptName"] = dns;
  1031. //}
  1032. #endregion
  1033. #region
  1034. //if (state < 6 || state == 8)
  1035. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1036. {
  1037. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1038. dr["LimitTime"] = lt;
  1039. if (!string.IsNullOrWhiteSpace(lt))
  1040. {
  1041. var ltime = DateTime.Parse(lt);
  1042. if (ltime > DateTime.Now)
  1043. {
  1044. 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 + "'";
  1045. var SYSJ = DbHelperSQL.GetSingle(SY);
  1046. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  1047. {
  1048. try
  1049. {
  1050. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1051. }
  1052. catch
  1053. {
  1054. }
  1055. }
  1056. }
  1057. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1058. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1059. if (tss < 0) { tss = -tss; }
  1060. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1061. if (ltime > DateTime.Now)
  1062. {
  1063. if (configcs != null)
  1064. {
  1065. int cs = Int32.Parse(configcs.F_ParamValue);
  1066. if (ts.TotalHours > cs)
  1067. {
  1068. dr["OverState"] = 1;
  1069. }
  1070. else
  1071. {
  1072. dr["OverState"] = 2;
  1073. }
  1074. }
  1075. dr["GapTime"] = "剩余" + gshsj;
  1076. }
  1077. else
  1078. {
  1079. dr["OverState"] = 3;
  1080. dr["GapTime"] = "超时" + gshsj;
  1081. }
  1082. }
  1083. }
  1084. if (state == (int)EnumWorkState.finish)
  1085. {
  1086. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1087. var dttime = DateTime.Now;
  1088. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1089. else
  1090. {
  1091. var DealTime = dr["F_CloseTime"].ToString();
  1092. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  1093. }
  1094. //else
  1095. //{
  1096. // var DealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  1097. // if (!string.IsNullOrWhiteSpace(DealTime))
  1098. // dttime = DateTime.Parse(DealTime);
  1099. //}
  1100. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1101. dr["LimitTime"] = lt;
  1102. if (!string.IsNullOrWhiteSpace(lt))
  1103. {
  1104. var ltime = DateTime.Parse(lt);
  1105. TimeSpan ts = ltime.Subtract(dttime);
  1106. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1107. if (tss < 0) { tss = -tss; }
  1108. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1109. if (ltime < dttime)
  1110. {
  1111. dr["OverState"] = 3;
  1112. dr["GapTime"] = "超时" + gshsj;
  1113. }
  1114. }
  1115. }
  1116. #endregion
  1117. }
  1118. else
  1119. {
  1120. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  1121. }
  1122. }
  1123. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1124. {
  1125. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1126. }
  1127. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1128. {
  1129. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1130. }
  1131. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1132. if (Int32.Parse(strtab) == 0 || Int32.Parse(strtab) == 3)
  1133. {
  1134. btns.Clear();
  1135. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1136. #region 判断是否存在待督办
  1137. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1138. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1139. if (recount > 0 && butt != null)
  1140. btns.Remove(butt);
  1141. #endregion
  1142. }
  1143. else if (Int32.Parse(strtab) == -1)
  1144. {
  1145. btns.Clear();
  1146. btns.Add(ButtonGroup.query());
  1147. btns.Add(ButtonGroup.edit());
  1148. }
  1149. else
  1150. {
  1151. btns.Clear();
  1152. btns.Add(ButtonGroup.query());
  1153. }
  1154. dr["Buttons"] = btns;
  1155. }
  1156. var obj = new
  1157. {
  1158. state = "success",
  1159. message = "成功",
  1160. rows = dt,
  1161. total = recordCount
  1162. };
  1163. return Content(obj.ToJson());
  1164. }
  1165. /// <summary>
  1166. /// 获取领导处理列表
  1167. /// </summary>发
  1168. /// <returns></returns>
  1169. //[Authority]
  1170. public ActionResult GetLDDealList(int isdc = 0)
  1171. {
  1172. DataTable dt = new DataTable();
  1173. string sql = " and F_IsDelete=0";
  1174. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1175. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1176. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1177. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1178. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1179. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1180. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1181. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1182. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1183. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1184. int source = RequestString.GetInt("source", 0);
  1185. int keyid = RequestString.GetInt("keyid", 0);
  1186. int type = RequestString.GetInt("type", 0);
  1187. int bigtype = RequestString.GetInt("bigtype", 0);
  1188. int smalltype = RequestString.GetInt("smalltype", 0);
  1189. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1190. int deptid = RequestString.GetInt("deptid", 0);
  1191. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1192. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1193. int dealtype = RequestString.GetInt("dealtype", -1);//1当即办理,0转办办理,2按时办结,3超期办结
  1194. string order = "ORDER BY F_CreateTime DESC";
  1195. string strpageindex = RequestString.GetQueryString("page");
  1196. int pageindex = 1;
  1197. string strpagesize = RequestString.GetQueryString("pagesize");
  1198. int pagesize = 10;
  1199. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1200. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1201. int isopen = RequestString.GetInt("isopen", -1);
  1202. if (isopen > -1)
  1203. sql += " and isnull(F_IsOpen,0) =" + isopen;
  1204. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1205. {
  1206. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1207. {
  1208. sql += " and F_DealTime between '" + dealstarttime +
  1209. "' AND '" + dealstrendtime + "'";
  1210. }
  1211. else
  1212. {
  1213. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1214. }
  1215. }
  1216. else
  1217. {
  1218. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1219. {
  1220. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  1221. }
  1222. }
  1223. switch (strtab)
  1224. {
  1225. case "0"://待处理工单
  1226. order = "order by a.F_Level desc, a.F_CreateTime desc";
  1227. sql += " and (F_IsRelease !='" + 3 + "' or " +
  1228. "F_IsRelease is null) ";
  1229. if (strstate.Trim() != "" && strstate != "undefined")
  1230. {
  1231. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1232. {
  1233. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.resubmit + ") ";
  1234. }
  1235. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  1236. {
  1237. if (User.F_RoleCode == "ZXHWY")
  1238. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1239. else
  1240. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  1241. }
  1242. else
  1243. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1244. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1245. if (strstate.Trim() == ((int)EnumWorkState.visit).ToString() && issatisfie != -1)
  1246. {
  1247. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1248. sql += " and F_IsSatisfie='" + issatisfie + "')";
  1249. }
  1250. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  1251. {
  1252. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1253. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  1254. &&User .F_RoleCode != "ZXLD "&& User.F_RoleCode != "MTDD")
  1255. {
  1256. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1257. }
  1258. else
  1259. {
  1260. sql += ")";
  1261. }
  1262. }
  1263. else
  1264. {
  1265. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1266. {
  1267. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  1268. + "and F_CreateUser = '" + User.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  1269. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  1270. sql += " and F_WorkState != '9' ";
  1271. }
  1272. if (User.F_RoleCode == "ZXHWY")
  1273. {
  1274. sql += " and F_CreateUser='" + User.F_UserCode + "' ";
  1275. }
  1276. }
  1277. }
  1278. else
  1279. {
  1280. int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.resubmit };
  1281. sql += "and F_WorkOrderID not in( select F_WorkOrderId from T_Bus_Feedback b WITH(NOLOCK) where F_Id in (select MAX(F_Id) from T_Bus_Feedback WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId) and F_State = 1 and F_IsDelete = 0 and F_Type = 3 and F_IsAudit = 1 ) ";
  1282. sql += "and F_WorkState in(1,11) ";
  1283. //sql += " and (F_WorkState in(1,11) or ( F_WorkState in (1,11) and F_WorkOrderID in (select v.F_WorkOrderID from T_Bus_AssignedInfo v WITH(NOLOCK) INNER JOIN T_Bus_WorkOrder b on v.F_WorkOrderID = b.F_WorkOrderID and b.F_WorkState in(1, 11) where v.F_State = 1 and v.F_IsDelete = 0 ";
  1284. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"&&User .F_RoleCode !="ZXLD"&& User.F_RoleCode != "MTDD")
  1285. //{
  1286. // sql += " and F_CreateUser='" + User.F_UserCode + "')))";
  1287. //}
  1288. //else
  1289. //{
  1290. // sql += ")))";
  1291. //}
  1292. }
  1293. break;
  1294. case "1"://已交办的工单
  1295. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  1296. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  1297. if (strstate.Trim() != "" && strstate != "undefined")
  1298. {
  1299. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1300. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1301. else
  1302. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1303. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1304. }
  1305. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 )";
  1306. sql += " and F_WorkState in (2,3,4,5,8)";
  1307. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  1308. {
  1309. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  1310. }
  1311. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  1312. {
  1313. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  1314. }
  1315. //if (deptid != 0)
  1316. //{
  1317. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1318. // sql += " and F_MainDeptId = '" + deptid + "'";
  1319. //}
  1320. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  1321. && User.F_RoleCode != "ZXLD"&& User.F_RoleCode != "MTDD")
  1322. {
  1323. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1324. }
  1325. break;
  1326. case "2"://已审核退回的工单
  1327. if (strstate.Trim() != "" && strstate != "undefined")
  1328. {
  1329. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1330. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1331. else
  1332. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1333. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1334. }
  1335. 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 ";
  1336. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1337. {
  1338. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  1339. }
  1340. else
  1341. {
  1342. sql += ")";
  1343. }
  1344. break;
  1345. case "3"://已审核延时的工单
  1346. if (strstate.Trim() != "" && strstate != "undefined")
  1347. {
  1348. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1349. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1350. else
  1351. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1352. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1353. }
  1354. 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 ";
  1355. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1356. {
  1357. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  1358. }
  1359. else
  1360. {
  1361. sql += ")";
  1362. }
  1363. break;
  1364. case "4"://已重办的工单
  1365. if (strstate.Trim() != "" && strstate != "undefined")
  1366. {
  1367. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1368. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1369. else
  1370. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1371. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1372. }
  1373. 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 ";
  1374. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXLD")
  1375. {
  1376. sql += " and F_ReloadUser='" + User.F_UserCode + "')";
  1377. }
  1378. else
  1379. {
  1380. sql += ")";
  1381. }
  1382. break;
  1383. case "5"://已结案的工单
  1384. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  1385. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  1386. if (issatisfie != -1)
  1387. {
  1388. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1389. sql += " and F_IsSatisfie='" + issatisfie + "')";
  1390. }
  1391. if (dealtype > -1)
  1392. {
  1393. if (dealtype == 2)
  1394. {//按时
  1395. sql += " and F_IsResult=0 and isnull(F_DealTime,'')<>'' and F_LimitTime>=F_DealTime ";
  1396. }
  1397. else if (dealtype == 3)
  1398. {//超期
  1399. sql += " and isnull(F_DealTime,'')<>'' and F_LimitTime<F_DealTime ";
  1400. }
  1401. else
  1402. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1403. }
  1404. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  1405. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "MTDD" && User.F_RoleCode != "DBZY")
  1406. {
  1407. sql += " and F_CloseUser='" + User.F_UserCode + "'";
  1408. }
  1409. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  1410. {
  1411. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  1412. }
  1413. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  1414. {
  1415. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  1416. }
  1417. break;
  1418. case "6"://已督办的工单
  1419. if (strstate.Trim() != "" && strstate != "undefined")
  1420. {
  1421. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1422. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1423. else
  1424. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1425. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1426. }
  1427. 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 ";
  1428. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1429. {
  1430. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1431. }
  1432. else
  1433. {
  1434. sql += ")";
  1435. }
  1436. break;
  1437. case "7"://已监察的工单
  1438. if (strstate.Trim() != "" && strstate != "undefined")
  1439. {
  1440. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1441. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1442. else
  1443. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1444. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1445. }
  1446. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  1447. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  1448. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  1449. {
  1450. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1451. }
  1452. else
  1453. {
  1454. sql += ")";
  1455. }
  1456. break;
  1457. case "8"://待督办列表
  1458. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  1459. if (strstate.Trim() != "" && strstate != "undefined")
  1460. {
  1461. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1462. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1463. else
  1464. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1465. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1466. }
  1467. 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 ";
  1468. if (User.F_RoleCode != "GLY" && User.F_RoleCode!= "DBZY" && User.F_RoleCode != "DDZG")
  1469. {
  1470. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1471. }
  1472. else
  1473. {
  1474. sql += ")";
  1475. }
  1476. break;
  1477. case "9"://重办驳回列表
  1478. sql += " and F_WorkState="+ (int)EnumWorkState.rejload;
  1479. 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)";
  1480. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1481. {
  1482. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1483. }
  1484. sql += ")";
  1485. break;
  1486. case "10"://
  1487. sql += " and (F_IsRelease !='" + 3 + "' or " +
  1488. "F_IsRelease is null) ";
  1489. sql += " and F_WorkState=" + (int)EnumWorkState.submit;
  1490. 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 and F_Id in (select MAX(F_Id) from T_Bus_Feedback WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_Feedback WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) ) ";
  1491. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD"&& User.F_RoleCode != "MTDD")
  1492. {
  1493. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1494. }
  1495. break;
  1496. }
  1497. int jianhang = RequestString.GetInt("jianhang", 0);
  1498. int phoneType = RequestString.GetInt("phoneType", 0);
  1499. if (jianhang > 0)
  1500. {
  1501. if (jianhang == 3)
  1502. sql += " and F_InfoSource = '2501' ";
  1503. else
  1504. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  1505. }
  1506. else
  1507. {
  1508. sql += " and F_InfoSource = '1' ";
  1509. if (phoneType == 1)
  1510. sql += " and F_PhoneType != '12345' ";
  1511. else if (phoneType == 2)
  1512. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  1513. "or F_PhoneType is null ) ";
  1514. }
  1515. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  1516. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  1517. {
  1518. sql += " and F_PhoneType = '" + incomingcall + "' ";
  1519. }
  1520. if (strworkid.Trim() != "" && strworkid != "undefined")
  1521. {
  1522. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1523. }
  1524. if (strname.Trim() != "" && strname != "undefined")
  1525. {
  1526. sql += " and F_CusName like '%" + strname + "%' ";
  1527. }
  1528. if (strtel.Trim() != "" && strtel != "undefined")
  1529. {
  1530. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1531. }
  1532. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1533. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1534. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1535. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1536. {
  1537. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1538. }
  1539. if (Result.Trim() != "" && Result != "undefined")
  1540. {
  1541. sql += " and F_Result like '%" + Result + "%' ";
  1542. }
  1543. if (ComContent.Trim() != "" && ComContent != "undefined")
  1544. {
  1545. sql += " and F_ComContent like '%" + ComContent + "%' ";
  1546. }
  1547. if (strkey.Trim() != "" && strkey != "undefined")
  1548. {
  1549. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1550. " or F_Result like '%" + strkey + "%' ) ";
  1551. }
  1552. #region 坐席&调度员
  1553. if (strusercode.Trim() != "" && strusercode != "undefined")
  1554. {//坐席
  1555. var usercode = strusercode.Trim().Split(',');
  1556. var newusercode = "";
  1557. foreach (var item in usercode)
  1558. {
  1559. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1560. newusercode += "'" + item + "',";
  1561. }
  1562. newusercode = newusercode.Trim(',');
  1563. if (newusercode.Trim() != "" && newusercode != "undefined")
  1564. {
  1565. sql += " and F_CreateUser in (" + newusercode + ") ";
  1566. }
  1567. }
  1568. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1569. {//调度员
  1570. var ddusercode = strddusercode.Trim().Split(',');
  1571. var newusercode = "";
  1572. foreach (var item in ddusercode)
  1573. {
  1574. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1575. newusercode += "'" + item + "',";
  1576. }
  1577. newusercode = newusercode.Trim(',');
  1578. if (newusercode.Trim() != "" && newusercode != "undefined")
  1579. {
  1580. sql += " and F_AssignUser in(" + newusercode + ") ";
  1581. }
  1582. }
  1583. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1584. //{
  1585. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1586. //}
  1587. #endregion
  1588. if (source != 0)
  1589. {
  1590. sql += " and F_InfoSource = '" + source + "' ";
  1591. }
  1592. string sqlwheres = ""; string value = "";
  1593. if (keyid != 0)
  1594. {
  1595. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1596. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  1597. // " or F_Key='" + keyid + "' )";
  1598. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  1599. }
  1600. if (type != 0)
  1601. {
  1602. sql += " and F_InfoType = '" + type + "' ";
  1603. }
  1604. if (bigtype != 0)
  1605. {
  1606. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1607. }
  1608. if (smalltype != 0)
  1609. {
  1610. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1611. }
  1612. if (sourcearea != 0)
  1613. {
  1614. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1615. }
  1616. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1617. {
  1618. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1619. }
  1620. if (strendtime.Trim() != "" && strendtime != "undefined")
  1621. {
  1622. sql += " and F_CreateTime<='" + strendtime + "' ";
  1623. }
  1624. if (deptid != 0 && strtab != "1")
  1625. {
  1626. if (deptlevel == 0)
  1627. {
  1628. 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 ";
  1629. //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 ";
  1630. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1631. }
  1632. else
  1633. {
  1634. //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 ";
  1635. 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 ";
  1636. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1637. }
  1638. }
  1639. if(deptid!=0)
  1640. {
  1641. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1642. }
  1643. if (strpageindex.Trim() != "")
  1644. {
  1645. pageindex = Convert.ToInt32(strpageindex);
  1646. }
  1647. if (strpagesize.Trim() != "")
  1648. {
  1649. pagesize = Convert.ToInt32(strpagesize);
  1650. }
  1651. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1652. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1653. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1654. 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.GetDeptNames(F_MainDeptId)as DeptNames,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,( select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  1655. " and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason,F_ComContent";
  1656. if (isdc > 0)
  1657. {
  1658. var top = " "; var orderby = " order by F_CreateTime";
  1659. if (sql == " and F_IsDelete=0 ")
  1660. {
  1661. top = " top 1000 "; orderby += " desc ";
  1662. }
  1663. //20190715调整导出字段 zhengbingbing
  1664. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1665. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  1666. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1667. + " (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) 办理结果, "
  1668. + " (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) 是否满意 "
  1669. + " from T_Bus_WorkOrder wo WITH(NOLOCK)"+value +" where 1=1 " + sql + orderby).Tables[0];
  1670. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1671. if (msg == "")
  1672. {
  1673. return Success("导出成功");
  1674. }
  1675. else
  1676. {
  1677. return Error("导出失败");
  1678. }
  1679. }
  1680. int recordCount = 0;
  1681. dt = BLL.PagerBLL.GetListPager(
  1682. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  1683. "F_WorkOrderId",
  1684. cols,
  1685. sql,
  1686. order,
  1687. pagesize,
  1688. pageindex,
  1689. true,
  1690. out recordCount);
  1691. #region 声音文件
  1692. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1693. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1694. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1695. dt.Columns.Add("OverState", typeof(string));//超时状态
  1696. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1697. dt.Columns.Add("GapTime", typeof(string));//时间差
  1698. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1699. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1700. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1701. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1702. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1703. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1704. foreach (DataRow dr in dt.Rows)
  1705. {
  1706. //获取最新交办信息
  1707. string iszbdw = "0";
  1708. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1709. if (state > 1)
  1710. {
  1711. 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";
  1712. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1713. if (dtjb.Rows.Count > 0)
  1714. {
  1715. //if (dtjb.Rows[0]["F_MainDeptId"] != null && dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(User.F_DeptId.ToString())) { iszbdw = "1"; }
  1716. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  1717. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1718. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1719. {
  1720. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1721. }
  1722. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1723. #region
  1724. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1725. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1726. //if (deptinfo != null)
  1727. //{
  1728. // if (did == User.F_DeptId) { iszbdw = "1"; }
  1729. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1730. //}
  1731. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1732. //{
  1733. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1734. // string dns = string.Empty;
  1735. // foreach (string strid in strids)
  1736. // {
  1737. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1738. // if (dinfo != null)
  1739. // {
  1740. // if (string.IsNullOrEmpty(dns))
  1741. // {
  1742. // dns = dinfo.F_DeptName;//交办单位
  1743. // }
  1744. // else
  1745. // {
  1746. // dns += "," + dinfo.F_DeptName;//交办单位
  1747. // }
  1748. // }
  1749. // }
  1750. // dr["OtherDeptName"] = dns;
  1751. //}
  1752. #endregion
  1753. #region
  1754. //if (state < 6 || state == 8)
  1755. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1756. {
  1757. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1758. dr["LimitTime"] = lt;
  1759. if (!string.IsNullOrWhiteSpace(lt))
  1760. {
  1761. var ltime = DateTime.Parse(lt);
  1762. if (ltime > DateTime.Now)
  1763. {
  1764. 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 + "'";
  1765. var SYSJ = DbHelperSQL.GetSingle(SY);
  1766. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  1767. {
  1768. try
  1769. {
  1770. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1771. }
  1772. catch
  1773. {
  1774. }
  1775. }
  1776. }
  1777. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1778. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1779. if (tss < 0) { tss = -tss; }
  1780. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1781. if (ltime > DateTime.Now)
  1782. {
  1783. if (configcs != null)
  1784. {
  1785. int cs = Int32.Parse(configcs.F_ParamValue);
  1786. if (ts.TotalHours > cs)
  1787. {
  1788. dr["OverState"] = 1;
  1789. }
  1790. else
  1791. {
  1792. dr["OverState"] = 2;
  1793. }
  1794. }
  1795. dr["GapTime"] = "剩余" + gshsj;
  1796. }
  1797. else
  1798. {
  1799. dr["OverState"] = 3;
  1800. dr["GapTime"] = "超时" + gshsj;
  1801. }
  1802. }
  1803. }
  1804. if (state == (int)EnumWorkState.finish)
  1805. {
  1806. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1807. var dttime = DateTime.Now;
  1808. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1809. else
  1810. {
  1811. var dealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  1812. if (!string.IsNullOrWhiteSpace(dealTime)) { dttime = DateTime.Parse(dealTime); }
  1813. }
  1814. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1815. dr["LimitTime"] = lt;
  1816. if (!string.IsNullOrWhiteSpace(lt))
  1817. {
  1818. var ltime = DateTime.Parse(lt);
  1819. TimeSpan ts = ltime.Subtract(dttime);
  1820. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1821. if (tss < 0) { tss = -tss; }
  1822. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1823. if (ltime < dttime)
  1824. {
  1825. dr["OverState"] = 3;
  1826. dr["GapTime"] = "超时" + gshsj;
  1827. }
  1828. }
  1829. }
  1830. #endregion
  1831. }
  1832. else
  1833. {
  1834. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  1835. }
  1836. }
  1837. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1838. {
  1839. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1840. }
  1841. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1842. {
  1843. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1844. }
  1845. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1846. if (Int32.Parse(strtab) <= 1|| Int32.Parse(strtab)==10)
  1847. {
  1848. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1849. #region 判断是否存在待督办
  1850. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1851. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1852. if (recount > 0 && butt != null)
  1853. btns.Remove(butt);
  1854. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "MTDD" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG")
  1855. {
  1856. btns.Add(ButtonGroup.turnsee());
  1857. // btns.Add(ButtonGroup.instruct());
  1858. }
  1859. #endregion
  1860. }
  1861. else
  1862. {
  1863. btns.Clear();
  1864. if (Int32.Parse(strtab) == 8)
  1865. btns = ButtonGroup.GetButtons("12", User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1866. else
  1867. btns.Add(ButtonGroup.query());
  1868. if (Int32.Parse(strtab) !=4)
  1869. {
  1870. if (state == 9)
  1871. {
  1872. 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")
  1873. {
  1874. if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  1875. {
  1876. var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  1877. TimeSpan ts = DateTime.Now - closedttime;
  1878. if (ts.TotalDays < 20)
  1879. {
  1880. btns.Add(ButtonGroup.subreload());
  1881. }
  1882. }
  1883. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  1884. btns.Add(ButtonGroup.modify());
  1885. }
  1886. }
  1887. }
  1888. }
  1889. dr["Buttons"] = btns;
  1890. }
  1891. #endregion
  1892. var obj = new
  1893. {
  1894. state = "success",
  1895. message = "成功",
  1896. rows = dt,
  1897. total = recordCount
  1898. };
  1899. return Content(obj.ToJson());
  1900. }
  1901. /// <summary>
  1902. /// 获取单位处理列表
  1903. /// </summary>
  1904. /// <returns></returns>
  1905. //[Authority]
  1906. public ActionResult GetDWDealList(int isdc = 0)
  1907. {
  1908. DataTable dt = new DataTable();
  1909. string sql = " and F_IsDelete=0";
  1910. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1911. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1912. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1913. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1914. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1915. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1916. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1917. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1918. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1919. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1920. int source = RequestString.GetInt("source", 0);
  1921. int keyid = RequestString.GetInt("keyid", 0);
  1922. int type = RequestString.GetInt("type", 0);
  1923. int bigtype = RequestString.GetInt("bigtype", 0);
  1924. int smalltype = RequestString.GetInt("smalltype", 0);
  1925. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1926. int deptid = RequestString.GetInt("deptid", 0);
  1927. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1928. int distribute = RequestString.GetInt("distribute", -1);//0未派单1已派单
  1929. int blstate = RequestString.GetInt("blstate", 0);//办理状态0办理中1已办理
  1930. string strpageindex = RequestString.GetQueryString("page");
  1931. int pageindex = 1;
  1932. string strpagesize = RequestString.GetQueryString("pagesize");
  1933. int pagesize = 10;
  1934. string order = "ORDER BY a.F_LimitTime";
  1935. #region 模块
  1936. switch (strtab)
  1937. {
  1938. case "0"://待处理工单
  1939. order = "order by F_Level desc, F_CreateTime desc ";
  1940. int isyq = RequestString.GetInt("isyq", -1);
  1941. if (strstate.Trim() != "" && strstate != "undefined")
  1942. {
  1943. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1944. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1945. else
  1946. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1947. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1948. }
  1949. else
  1950. {
  1951. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing};
  1952. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1953. //sql += " and F_WorkState in (2,4,8)";
  1954. }
  1955. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  1956. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1957. {
  1958. if (distribute > -1)
  1959. {
  1960. if (distribute == 0)
  1961. {
  1962. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as a 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) ";
  1963. }
  1964. else
  1965. {
  1966. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) ";
  1967. }
  1968. }
  1969. else
  1970. {
  1971. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  1972. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)) or "
  1973. //+ "(','+F_OtherDeptIds+',' like '%," + User.F_DeptId + ",%' and F_IsSure=1))";
  1974. //+ " ISNULL(F_FeedbackTime, '')='' and ',' + F_MainDeptID + ',' like '%," + User.F_DeptId + ",%' and F_IsSure in (0,1)";
  1975. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)";
  1976. }
  1977. if (isyq != -1)
  1978. {
  1979. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  1980. }
  1981. else
  1982. {
  1983. sql += ")";
  1984. }
  1985. }
  1986. break;
  1987. case "1"://已查收的工单
  1988. if (strstate.Trim() != "" && strstate != "undefined")
  1989. {
  1990. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1991. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1992. else
  1993. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1994. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1995. }
  1996. 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 ";
  1997. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  1998. {
  1999. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2000. }
  2001. else
  2002. {
  2003. sql += ")";
  2004. }
  2005. break;
  2006. case "2"://已申请退回的工单
  2007. if (strstate.Trim() != "" && strstate != "undefined")
  2008. {
  2009. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2010. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2011. else
  2012. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2013. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2014. }
  2015. 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 ";
  2016. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2017. {
  2018. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2019. }
  2020. else
  2021. {
  2022. sql += ")";
  2023. }
  2024. break;
  2025. case "3"://已申请延时的工单
  2026. if (strstate.Trim() != "" && strstate != "undefined")
  2027. {
  2028. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2029. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2030. else
  2031. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2032. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2033. }
  2034. else
  2035. {
  2036. if (blstate ==0)
  2037. {
  2038. sql += " and F_WorkState in (1,2,3,4,5,8,10,11,13) ";
  2039. }
  2040. else
  2041. {
  2042. sql += " and F_WorkState in (6,7,9) ";
  2043. }
  2044. }
  2045. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2046. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2047. {
  2048. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2049. }
  2050. else
  2051. {
  2052. sql += ")";
  2053. }
  2054. break;
  2055. case "4"://已办理的工单
  2056. if (strstate.Trim() != "" && strstate != "undefined")
  2057. {
  2058. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2059. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2060. else
  2061. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2062. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2063. }
  2064. 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' ";
  2065. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2066. {
  2067. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2068. }
  2069. else
  2070. {
  2071. sql += ")";
  2072. }
  2073. break;
  2074. case "5"://被督办的工单
  2075. if (strstate.Trim() != "" && strstate != "undefined")
  2076. {
  2077. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2078. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2079. else
  2080. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2081. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2082. }
  2083. 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 ";
  2084. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2085. {
  2086. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2087. }
  2088. else
  2089. {
  2090. sql += ")";
  2091. }
  2092. break;
  2093. case "6"://被监察的工单
  2094. if (strstate.Trim() != "" && strstate != "undefined")
  2095. {
  2096. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2097. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2098. else
  2099. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2100. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2101. }
  2102. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2103. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2104. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2105. {
  2106. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2107. }
  2108. else
  2109. {
  2110. sql += ")";
  2111. }
  2112. break;
  2113. case "7"://延时审核中的工单
  2114. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2115. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2116. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"&&User .F_RoleCode !="ZXLD"&& User.F_RoleCode != "MTDD")
  2117. {
  2118. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2119. }
  2120. else
  2121. {
  2122. sql += ")";
  2123. }
  2124. break;
  2125. case "8"://退回审核中的工单
  2126. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2127. 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,'')=''";
  2128. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2129. {
  2130. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2131. }
  2132. else
  2133. {
  2134. sql += ")";
  2135. }
  2136. break;
  2137. case "9"://需履职界定表
  2138. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2139. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2140. 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 ";
  2141. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2142. {
  2143. sql += " and F_MainDeptId='" + User.F_DeptId + "' ";
  2144. }
  2145. sql += "))";
  2146. break;
  2147. case "10"://履职界定待审核表
  2148. 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 )";
  2149. break;
  2150. case "11"://履职界定已审核表
  2151. 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 )";
  2152. break;
  2153. case "12"://退回重办
  2154. sql += " and F_WorkState = '" + (int)EnumWorkState.reload + "' ";
  2155. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2156. //{
  2157. // sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2158. // + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))";
  2159. //}
  2160. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2161. {
  2162. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2163. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)" +
  2164. "and ISNULL(F_FeedbackTime, '')='' and F_IsNext =0 ) and F_MainDeptId = " + User.F_DeptId;
  2165. }
  2166. break;
  2167. case "13"://下级单位退回
  2168. // int[] st = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  2169. sql += " and F_WorkState in (2,4,8)";
  2170. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2171. {
  2172. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 ))";
  2173. }
  2174. break;
  2175. case "14"://正在办理
  2176. sql += " and F_WorkState in (2,4,8)";
  2177. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2178. {
  2179. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 ))";
  2180. }
  2181. break;
  2182. case "15"://已办理提交
  2183. sql += " and F_WorkState in (4,8)";
  2184. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2185. {
  2186. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 )) ";
  2187. }
  2188. else
  2189. {
  2190. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 )) ";
  2191. }
  2192. break;
  2193. case "16"://退回被拒绝
  2194. sql += " and F_WorkState in (4,8)";
  2195. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2196. {
  2197. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 )) ";
  2198. }
  2199. break;
  2200. case "17"://延时被拒绝
  2201. sql += " and F_WorkState in (4,8)";
  2202. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2203. {
  2204. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a 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 ) )";
  2205. }
  2206. break;
  2207. case "18"://已办理未果
  2208. sql += " and F_WorkState = '6' ";
  2209. sql += " and F_IsProResult = '2' ";
  2210. 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) ";
  2211. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2212. {
  2213. sql += " and F_MainDeptId='" + User.F_DeptId + "')";
  2214. }
  2215. else
  2216. {
  2217. sql += ")";
  2218. }
  2219. break;
  2220. }
  2221. #endregion
  2222. #region 条件
  2223. if (strworkid.Trim() != "" && strworkid != "undefined")
  2224. {
  2225. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2226. }
  2227. if (strname.Trim() != "" && strname != "undefined")
  2228. {
  2229. sql += " and F_CusName like '%" + strname + "%' ";
  2230. }
  2231. if (strtel.Trim() != "" && strtel != "undefined")
  2232. {
  2233. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2234. }
  2235. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2236. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2237. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2238. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2239. {
  2240. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2241. }
  2242. if (Result.Trim() != "" && Result != "undefined")
  2243. {
  2244. sql += " and F_Result like '%" + Result + "%' ";
  2245. }
  2246. if (ComContent.Trim() != "" && ComContent != "undefined")
  2247. {
  2248. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2249. }
  2250. if (strkey.Trim() != "" && strkey != "undefined")
  2251. {
  2252. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2253. " or F_Result like '%" + strkey + "%' ) ";
  2254. }
  2255. #region 坐席&调度员
  2256. if (strusercode.Trim() != "" && strusercode != "undefined")
  2257. {//坐席
  2258. var usercode = strusercode.Trim().Split(',');
  2259. var newusercode = "";
  2260. foreach (var item in usercode)
  2261. {
  2262. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2263. newusercode += "'" + item + "',";
  2264. }
  2265. newusercode = newusercode.Trim(',');
  2266. if (newusercode.Trim() != "" && newusercode != "undefined")
  2267. {
  2268. sql += " and F_CreateUser in (" + newusercode + ") ";
  2269. }
  2270. }
  2271. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2272. {//调度员
  2273. var ddusercode = strddusercode.Trim().Split(',');
  2274. var newusercode = "";
  2275. foreach (var item in ddusercode)
  2276. {
  2277. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2278. newusercode += "'" + item + "',";
  2279. }
  2280. newusercode = newusercode.Trim(',');
  2281. if (newusercode.Trim() != "" && newusercode != "undefined")
  2282. {
  2283. sql += " and F_AssignUser in(" + newusercode + ") ";
  2284. }
  2285. }
  2286. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2287. //{
  2288. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2289. //}
  2290. #endregion
  2291. if (source != 0)
  2292. {
  2293. sql += " and F_InfoSource = '" + source + "' ";
  2294. }
  2295. string sqlwhere = ""; string value = "";
  2296. if (keyid != 0)
  2297. {
  2298. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2299. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2300. // " or F_Key='" + keyid + "' )";
  2301. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  2302. }
  2303. int phoneType = RequestString.GetInt("phoneType", 0);
  2304. int jianhang = RequestString.GetInt("jianhang", 0);
  2305. if (jianhang == 2)
  2306. {
  2307. sql += " and F_InfoSource = '1' ";
  2308. if (phoneType == 1)
  2309. sql += " and F_PhoneType != '12345' ";
  2310. else if (phoneType == 2)
  2311. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  2312. "or F_PhoneType is null ) ";
  2313. }
  2314. else if (jianhang == 1)
  2315. {
  2316. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  2317. }
  2318. else if (jianhang == 3)
  2319. sql += " and F_InfoSource = '2501' ";
  2320. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  2321. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  2322. {
  2323. sql += " and F_PhoneType = '" + incomingcall + "' ";
  2324. }
  2325. if (type != 0)
  2326. {
  2327. sql += " and F_InfoType = '" + type + "' ";
  2328. }
  2329. if (bigtype != 0)
  2330. {
  2331. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2332. }
  2333. if (smalltype != 0)
  2334. {
  2335. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2336. }
  2337. if (sourcearea != 0)
  2338. {
  2339. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2340. }
  2341. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2342. {
  2343. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2344. }
  2345. if (strendtime.Trim() != "" && strendtime != "undefined")
  2346. {
  2347. sql += " and F_CreateTime<='" + strendtime + "' ";
  2348. }
  2349. if (deptid!=0)
  2350. {
  2351. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2352. }
  2353. if (strpageindex.Trim() != "")
  2354. {
  2355. pageindex = Convert.ToInt32(strpageindex);
  2356. }
  2357. if (strpagesize.Trim() != "")
  2358. {
  2359. pagesize = Convert.ToInt32(strpagesize);
  2360. }
  2361. #endregion
  2362. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2363. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2364. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2365. 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";
  2366. if (isdc > 0)
  2367. {
  2368. var top = " "; var orderby = " order by F_CreateTime";
  2369. if (sql == " and F_IsDelete=0 ")
  2370. {
  2371. top = " top 1000 "; orderby += " desc ";
  2372. }
  2373. //20190715调整导出字段 zhengbingbing
  2374. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2375. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2376. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  2377. + " (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) 办理结果, "
  2378. + " (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) 是否满意 "
  2379. + " from T_Bus_WorkOrder wo WITH(NOLOCK)"+value +" where 1=1 " + sql + orderby).Tables[0];
  2380. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2381. if (msg == "")
  2382. {
  2383. return Success("导出成功");
  2384. }
  2385. else
  2386. {
  2387. return Error("导出失败");
  2388. }
  2389. }
  2390. int recordCount = 0;
  2391. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  2392. dt = BLL.PagerBLL.GetListPager(
  2393. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  2394. "F_WorkOrderId",
  2395. cols,
  2396. sql,
  2397. order,
  2398. pagesize,
  2399. pageindex,
  2400. true,
  2401. out recordCount);
  2402. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  2403. #region 声音文件
  2404. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2405. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2406. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2407. dt.Columns.Add("OverState", typeof(string));//超时状态
  2408. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2409. dt.Columns.Add("GapTime", typeof(string));//时间差
  2410. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2411. dt.Columns.Add("PDState", typeof(string));//派单状态
  2412. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2413. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2414. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2415. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2416. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2417. foreach (DataRow dr in dt.Rows)
  2418. {
  2419. //获取最新交办信息
  2420. string iszbdw = "0";
  2421. string ispd = "";
  2422. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2423. if (state > 1)
  2424. {
  2425. 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";
  2426. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2427. if (dtjb.Rows.Count > 0)
  2428. {
  2429. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2430. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2431. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2432. {
  2433. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2434. }
  2435. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2436. #region
  2437. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2438. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2439. //if (deptinfo != null)
  2440. //{
  2441. // if (did == User.F_DeptId) { iszbdw = "1"; }
  2442. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2443. //}
  2444. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2445. //{
  2446. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2447. // string dns = string.Empty;
  2448. // foreach (string strid in strids)
  2449. // {
  2450. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2451. // if (dinfo != null)
  2452. // {
  2453. // if (string.IsNullOrEmpty(dns))
  2454. // {
  2455. // dns = dinfo.F_DeptName;//交办单位
  2456. // }
  2457. // else
  2458. // {
  2459. // dns += "," + dinfo.F_DeptName;//交办单位
  2460. // }
  2461. // }
  2462. // }
  2463. // dr["OtherDeptName"] = dns;
  2464. //}
  2465. #endregion
  2466. #region
  2467. //if (state < 6 || state == 8)
  2468. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2469. {
  2470. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2471. dr["LimitTime"] = lt;
  2472. if (!string.IsNullOrWhiteSpace(lt))
  2473. {
  2474. var ltime = DateTime.Parse(lt);
  2475. if (ltime > DateTime.Now)
  2476. {
  2477. 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 + "'";
  2478. var SYSJ = DbHelperSQL.GetSingle(SY);
  2479. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  2480. {
  2481. try
  2482. {
  2483. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2484. }
  2485. catch
  2486. {
  2487. }
  2488. }
  2489. }
  2490. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2491. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2492. if (tss < 0) { tss = -tss; }
  2493. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2494. if (ltime > DateTime.Now)
  2495. {
  2496. if (configcs != null)
  2497. {
  2498. int cs = Int32.Parse(configcs.F_ParamValue);
  2499. if (ts.TotalHours > cs)
  2500. {
  2501. dr["OverState"] = 1;
  2502. }
  2503. else
  2504. {
  2505. dr["OverState"] = 2;
  2506. }
  2507. }
  2508. dr["GapTime"] = "剩余" + gshsj;
  2509. }
  2510. else
  2511. {
  2512. dr["OverState"] = 3;
  2513. dr["GapTime"] = "超时" + gshsj;
  2514. }
  2515. }
  2516. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  2517. dr["PDState"] = ispd;
  2518. }
  2519. if (state == (int)EnumWorkState.finish)
  2520. {
  2521. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2522. var dttime = DateTime.Now;
  2523. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2524. else
  2525. {
  2526. var DealTime = dr["F_CloseTime"].ToString();
  2527. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  2528. }
  2529. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2530. dr["LimitTime"] = lt;
  2531. if (!string.IsNullOrWhiteSpace(lt))
  2532. {
  2533. var ltime = DateTime.Parse(lt);
  2534. TimeSpan ts = ltime.Subtract(dttime);
  2535. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2536. if (tss < 0) { tss = -tss; }
  2537. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2538. if (ltime < dttime)
  2539. {
  2540. dr["OverState"] = 3;
  2541. dr["GapTime"] = "超时" + gshsj;
  2542. }
  2543. }
  2544. }
  2545. #endregion
  2546. }
  2547. else
  2548. {
  2549. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2550. }
  2551. }
  2552. if (User.F_RoleCode.ToUpper()=="WLDW"|| User.F_RoleCode.ToUpper() == "EJWLDW")
  2553. {
  2554. if (dr["EJDeptName"] != null && dr["EJDeptName"].ToString() != "")
  2555. dr["DeptName"] = dr["EJDeptName"].ToString();
  2556. }
  2557. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2558. {
  2559. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2560. }
  2561. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2562. {
  2563. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2564. }
  2565. //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";
  2566. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  2567. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2568. if (Int32.Parse(strtab) < 1 || Int32.Parse(strtab)==16 || Int32.Parse(strtab) == 17)
  2569. {
  2570. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2571. #region 判断是否存在待督办
  2572. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2573. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2574. if (recount > 0 && butt != null)
  2575. btns.Remove(butt);
  2576. #endregion
  2577. }
  2578. else
  2579. {
  2580. if (Int32.Parse(strtab) == 9)
  2581. {//需履职界定
  2582. btns.Add(ButtonGroup.query());
  2583. btns.Add(ButtonGroup.perform());
  2584. }
  2585. else if (Int32.Parse(strtab) == 10)
  2586. {//履职界定待审核
  2587. btns.Add(ButtonGroup.query ());
  2588. btns.Add(ButtonGroup.performaudit());
  2589. }
  2590. else if (Int32.Parse(strtab) == 7)
  2591. {//履职界定待审核
  2592. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2593. }
  2594. else if (Int32.Parse(strtab) == 12)
  2595. {//退回重办
  2596. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString() );
  2597. }
  2598. else if (Int32.Parse(strtab) == 14)
  2599. {//正在办理
  2600. btns.Add(ButtonGroup.query());
  2601. btns.Add(ButtonGroup.withdraw());
  2602. }
  2603. else if (Int32.Parse(strtab) == 13)
  2604. {//下级单位退回
  2605. btns.Add(ButtonGroup.query());
  2606. btns.Add(ButtonGroup.split());//转派
  2607. btns.Add(ButtonGroup.reback());//
  2608. btns.Add(ButtonGroup.turndown());
  2609. }
  2610. else if (Int32.Parse(strtab) == 15)
  2611. {//已办理提交
  2612. if (ispd == "3")
  2613. {
  2614. btns.Add(ButtonGroup.auditdeal());
  2615. }
  2616. btns.Add(ButtonGroup.feedback());//
  2617. btns.Add(ButtonGroup.redo());//
  2618. btns.Add(ButtonGroup.query());
  2619. }
  2620. else
  2621. btns.Add(ButtonGroup.query());
  2622. }
  2623. dr["Buttons"] = btns;
  2624. }
  2625. #endregion
  2626. var obj = new
  2627. {
  2628. state = "success",
  2629. message = "成功",
  2630. rows = dt,
  2631. total = recordCount
  2632. };
  2633. return Content(obj.ToJson());
  2634. }
  2635. /// <summary>
  2636. /// 添加工单信息
  2637. /// </summary>
  2638. /// <returns></returns>
  2639. //[Authority]
  2640. public ActionResult AddWorkOrderOper()
  2641. {
  2642. string workorderid = RequestString.GetFormString("workorderid");
  2643. string remarks = RequestString.GetFormString("remarks");
  2644. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  2645. if (modelT_Bus_WorkOrder != null)
  2646. {
  2647. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  2648. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  2649. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  2650. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  2651. oper.F_File = modelT_Bus_WorkOrder.F_File;
  2652. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  2653. oper.F_Message = userinfo + " 办理了工单:" + remarks;
  2654. oper.F_CreateUser = User.F_UserCode;
  2655. oper.F_CreateTime = DateTime.Now;
  2656. oper.F_IsDelete = 0;
  2657. if (operBLL.Add(oper) > 0)
  2658. return Success("操作成功");
  2659. else
  2660. return Error ("操作失败");
  2661. }
  2662. else
  2663. {
  2664. return Error("工单不存在");
  2665. }
  2666. }
  2667. /// <summary>
  2668. /// 获取单位处理列表
  2669. /// </summary>
  2670. /// <returns></returns>
  2671. //[Authority]
  2672. public ActionResult GetXBDWDealList(int isdc = 0)
  2673. {
  2674. DataTable dt = new DataTable();
  2675. string sql = " and F_IsDelete=0";
  2676. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2677. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2678. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2679. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2680. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2681. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2682. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2683. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2684. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2685. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2686. int source = RequestString.GetInt("source", 0);
  2687. int keyid = RequestString.GetInt("keyid", 0);
  2688. int type = RequestString.GetInt("type", 0);
  2689. int bigtype = RequestString.GetInt("bigtype", 0);
  2690. int smalltype = RequestString.GetInt("smalltype", 0);
  2691. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2692. int deptid = RequestString.GetInt("deptid", 0);
  2693. string strpageindex = RequestString.GetQueryString("page");
  2694. int pageindex = 1;
  2695. string strpagesize = RequestString.GetQueryString("pagesize");
  2696. int pagesize = 10;
  2697. switch (strtab)
  2698. {
  2699. case "0"://待处理工单
  2700. int isyq = RequestString.GetInt("isyq", -1);
  2701. if (strstate.Trim() != "" && strstate != "undefined")
  2702. {
  2703. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2704. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2705. else
  2706. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2707. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2708. }
  2709. else
  2710. {
  2711. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  2712. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2713. //sql += " and F_WorkState in (2,4,8)";
  2714. }
  2715. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2716. + " ISNULL(F_FeedbackTime, '')='' ";
  2717. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2718. {
  2719. sql += " and F_DeptId =" + User.F_DeptId;
  2720. }
  2721. if (isyq != -1)
  2722. {
  2723. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2724. }
  2725. else
  2726. {
  2727. sql += ")";
  2728. }
  2729. break;
  2730. case "1"://已办理的工单
  2731. 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) ";
  2732. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2733. {
  2734. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2735. }
  2736. else
  2737. {
  2738. sql += ")";
  2739. }
  2740. break;
  2741. }
  2742. if(deptid!=0)
  2743. {
  2744. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2745. }
  2746. int jianhang = RequestString.GetInt("jianhang", 0);
  2747. int phoneType = RequestString.GetInt("phoneType", 0);
  2748. if (jianhang > 0)
  2749. {
  2750. if (jianhang == 3)
  2751. sql += " and F_InfoSource = '2501' ";
  2752. else
  2753. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  2754. }
  2755. else
  2756. {
  2757. sql += " and F_InfoSource = '1' ";
  2758. if (phoneType == 1)
  2759. sql += " and F_PhoneType != '12345' ";
  2760. else if (phoneType == 2)
  2761. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  2762. "or F_PhoneType is null ) ";
  2763. }
  2764. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  2765. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  2766. {
  2767. sql += " and F_PhoneType = '" + incomingcall + "' ";
  2768. }
  2769. if (strworkid.Trim() != "" && strworkid != "undefined")
  2770. {
  2771. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2772. }
  2773. if (strname.Trim() != "" && strname != "undefined")
  2774. {
  2775. sql += " and F_CusName like '%" + strname + "%' ";
  2776. }
  2777. if (strtel.Trim() != "" && strtel != "undefined")
  2778. {
  2779. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2780. }
  2781. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2782. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2783. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2784. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2785. {
  2786. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2787. }
  2788. if (Result.Trim() != "" && Result != "undefined")
  2789. {
  2790. sql += " and F_Result like '%" + Result + "%' ";
  2791. }
  2792. if (ComContent.Trim() != "" && ComContent != "undefined")
  2793. {
  2794. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2795. }
  2796. if (strkey.Trim() != "" && strkey != "undefined")
  2797. {
  2798. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2799. " or F_Result like '%" + strkey + "%' ) ";
  2800. }
  2801. #region 坐席&调度员
  2802. if (strusercode.Trim() != "" && strusercode != "undefined")
  2803. {//坐席
  2804. var usercode = strusercode.Trim().Split(',');
  2805. var newusercode = "";
  2806. foreach (var item in usercode)
  2807. {
  2808. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2809. newusercode += "'" + item + "',";
  2810. }
  2811. newusercode = newusercode.Trim(',');
  2812. if (newusercode.Trim() != "" && newusercode != "undefined")
  2813. {
  2814. sql += " and F_CreateUser in (" + newusercode + ") ";
  2815. }
  2816. }
  2817. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2818. {//调度员
  2819. var ddusercode = strddusercode.Trim().Split(',');
  2820. var newusercode = "";
  2821. foreach (var item in ddusercode)
  2822. {
  2823. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2824. newusercode += "'" + item + "',";
  2825. }
  2826. newusercode = newusercode.Trim(',');
  2827. if (newusercode.Trim() != "" && newusercode != "undefined")
  2828. {
  2829. sql += " and F_AssignUser in(" + newusercode + ") ";
  2830. }
  2831. }
  2832. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2833. //{
  2834. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2835. //}
  2836. #endregion
  2837. if (source != 0)
  2838. {
  2839. sql += " and F_InfoSource = '" + source + "' ";
  2840. }
  2841. string sqlwhere = "";
  2842. if (keyid != 0)
  2843. {
  2844. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2845. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2846. // " or F_Key='" + keyid + "' )";
  2847. }
  2848. if (type != 0)
  2849. {
  2850. sql += " and F_InfoType = '" + type + "' ";
  2851. }
  2852. if (bigtype != 0)
  2853. {
  2854. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2855. }
  2856. if (smalltype != 0)
  2857. {
  2858. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2859. }
  2860. if (sourcearea != 0)
  2861. {
  2862. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2863. }
  2864. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2865. {
  2866. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2867. }
  2868. if (strendtime.Trim() != "" && strendtime != "undefined")
  2869. {
  2870. sql += " and F_CreateTime<='" + strendtime + "' ";
  2871. }
  2872. if (strpageindex.Trim() != "")
  2873. {
  2874. pageindex = Convert.ToInt32(strpageindex);
  2875. }
  2876. if (strpagesize.Trim() != "")
  2877. {
  2878. pagesize = Convert.ToInt32(strpagesize);
  2879. }
  2880. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2881. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2882. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2883. 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";
  2884. if (isdc > 0)
  2885. {
  2886. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  2887. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2888. if (msg == "")
  2889. {
  2890. return Success("导出成功");
  2891. }
  2892. else
  2893. {
  2894. return Error("导出失败");
  2895. }
  2896. }
  2897. int recordCount = 0;
  2898. dt = BLL.PagerBLL.GetListPager(
  2899. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  2900. "F_WorkOrderId",
  2901. cols,
  2902. sql,
  2903. "ORDER BY F_CreateTime DESC",
  2904. pagesize,
  2905. pageindex,
  2906. true,
  2907. out recordCount);
  2908. #region 声音文件
  2909. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2910. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2911. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2912. dt.Columns.Add("OverState", typeof(string));//超时状态
  2913. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2914. dt.Columns.Add("GapTime", typeof(string));//时间差
  2915. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2916. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2917. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2918. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2919. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2920. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2921. foreach (DataRow dr in dt.Rows)
  2922. {
  2923. //获取最新交办信息
  2924. string iszbdw = "0";
  2925. string ispd = "";
  2926. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2927. if (state > 1)
  2928. {
  2929. 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";
  2930. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2931. if (dtjb.Rows.Count > 0)
  2932. {
  2933. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2934. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2935. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2936. {
  2937. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2938. }
  2939. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2940. #region
  2941. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2942. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2943. //if (deptinfo != null)
  2944. //{
  2945. // if (did == User.F_DeptId) { iszbdw = "1"; }
  2946. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2947. //}
  2948. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2949. //{
  2950. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2951. // string dns = string.Empty;
  2952. // foreach (string strid in strids)
  2953. // {
  2954. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2955. // if (dinfo != null)
  2956. // {
  2957. // if (string.IsNullOrEmpty(dns))
  2958. // {
  2959. // dns = dinfo.F_DeptName;//交办单位
  2960. // }
  2961. // else
  2962. // {
  2963. // dns += "," + dinfo.F_DeptName;//交办单位
  2964. // }
  2965. // }
  2966. // }
  2967. // dr["OtherDeptName"] = dns;
  2968. //}
  2969. #endregion
  2970. #region
  2971. //if (state < 6 || state == 8)
  2972. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2973. {
  2974. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2975. dr["LimitTime"] = lt;
  2976. if (!string.IsNullOrWhiteSpace(lt))
  2977. {
  2978. var ltime = DateTime.Parse(lt);
  2979. if (ltime > DateTime.Now)
  2980. {
  2981. 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 + "'";
  2982. var SYSJ = DbHelperSQL.GetSingle(SY);
  2983. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  2984. {
  2985. try
  2986. {
  2987. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2988. }
  2989. catch
  2990. {
  2991. }
  2992. }
  2993. }
  2994. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2995. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2996. if (tss < 0) { tss = -tss; }
  2997. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2998. if (ltime > DateTime.Now)
  2999. {
  3000. if (configcs != null)
  3001. {
  3002. int cs = Int32.Parse(configcs.F_ParamValue);
  3003. if (ts.TotalHours > cs)
  3004. {
  3005. dr["OverState"] = 1;
  3006. }
  3007. else
  3008. {
  3009. dr["OverState"] = 2;
  3010. }
  3011. }
  3012. dr["GapTime"] = "剩余" + gshsj;
  3013. }
  3014. else
  3015. {
  3016. dr["OverState"] = 3;
  3017. dr["GapTime"] = "超时" + gshsj;
  3018. }
  3019. }
  3020. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3021. }
  3022. if (state == (int)EnumWorkState.finish)
  3023. {
  3024. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3025. var dttime = DateTime.Now;
  3026. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3027. else
  3028. {
  3029. var DealTime = dr["F_CloseTime"].ToString();
  3030. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3031. }
  3032. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3033. dr["LimitTime"] = lt;
  3034. if (!string.IsNullOrWhiteSpace(lt))
  3035. {
  3036. var ltime = DateTime.Parse(lt);
  3037. TimeSpan ts = ltime.Subtract(dttime);
  3038. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3039. if (tss < 0) { tss = -tss; }
  3040. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3041. if (ltime < dttime)
  3042. {
  3043. dr["OverState"] = 3;
  3044. dr["GapTime"] = "超时" + gshsj;
  3045. }
  3046. }
  3047. }
  3048. #endregion
  3049. }
  3050. else
  3051. {
  3052. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3053. }
  3054. }
  3055. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3056. {
  3057. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3058. }
  3059. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3060. {
  3061. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3062. }
  3063. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3064. if (Int32.Parse(strtab) < 1)
  3065. {
  3066. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw,ispd);
  3067. #region 判断是否存在待督办
  3068. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3069. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3070. if (recount > 0 && butt != null)
  3071. btns.Remove(butt);
  3072. #endregion
  3073. }
  3074. else
  3075. {
  3076. btns.Add(ButtonGroup.query());
  3077. }
  3078. dr["Buttons"] = btns;
  3079. }
  3080. #endregion
  3081. var obj = new
  3082. {
  3083. state = "success",
  3084. message = "成功",
  3085. rows = dt,
  3086. total = recordCount
  3087. };
  3088. return Content(obj.ToJson());
  3089. }
  3090. /// <summary>
  3091. /// 获取单位主办协办未处理工单列表
  3092. /// </summary>
  3093. /// <returns></returns>
  3094. //[Authority]
  3095. public ActionResult GetDWNoDealList(int isdc = 0)
  3096. {
  3097. DataTable dt = new DataTable();
  3098. string sql = " and F_IsDelete=0";
  3099. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3100. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3101. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3102. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3103. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3104. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3105. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3106. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3107. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3108. int source = RequestString.GetInt("source", 0);
  3109. int keyid = RequestString.GetInt("keyid", 0);
  3110. int type = RequestString.GetInt("type", 0);
  3111. int bigtype = RequestString.GetInt("bigtype", 0);
  3112. int smalltype = RequestString.GetInt("smalltype", 0);
  3113. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3114. int deptid = RequestString.GetInt("deptid", 0);
  3115. string strpageindex = RequestString.GetQueryString("page");
  3116. int pageindex = 1;
  3117. string strpagesize = RequestString.GetQueryString("pagesize");
  3118. int pagesize = 10;
  3119. if (User.F_RoleCode == "ZXHWY")
  3120. {
  3121. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  3122. }
  3123. #region 坐席&调度员
  3124. if (strusercode.Trim() != "" && strusercode != "undefined")
  3125. {//坐席
  3126. var usercode = strusercode.Trim().Split(',');
  3127. var newusercode = "";
  3128. foreach (var item in usercode)
  3129. {
  3130. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3131. newusercode += "'" + item + "',";
  3132. }
  3133. newusercode = newusercode.Trim(',');
  3134. if (newusercode.Trim() != "" && newusercode != "undefined")
  3135. {
  3136. sql += " and F_CreateUser in (" + newusercode + ") ";
  3137. }
  3138. }
  3139. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3140. {//调度员
  3141. var ddusercode = strddusercode.Trim().Split(',');
  3142. var newusercode = "";
  3143. foreach (var item in ddusercode)
  3144. {
  3145. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3146. newusercode += "'" + item + "',";
  3147. }
  3148. newusercode = newusercode.Trim(',');
  3149. if (newusercode.Trim() != "" && newusercode != "undefined")
  3150. {
  3151. sql += " and F_AssignUser in(" + newusercode + ") ";
  3152. }
  3153. }
  3154. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3155. //{
  3156. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3157. //}
  3158. #endregion
  3159. int jianhang = RequestString.GetInt("jianhang", 0);
  3160. int phoneType = RequestString.GetInt("phoneType", 0);
  3161. if (jianhang > 0)
  3162. {
  3163. if (jianhang == 3)
  3164. sql += " and F_InfoSource = '2501' ";
  3165. else
  3166. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  3167. }
  3168. else
  3169. {
  3170. sql += " and F_InfoSource = '1' ";
  3171. if (phoneType == 1)
  3172. sql += " and F_PhoneType != '12345' ";
  3173. else if (phoneType == 2)
  3174. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  3175. "or F_PhoneType is null ) ";
  3176. }
  3177. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  3178. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  3179. {
  3180. sql += " and F_PhoneType = '" + incomingcall + "' ";
  3181. }
  3182. 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) ";
  3183. if (User.F_RoleCode == "WLDW")
  3184. {
  3185. sql += " and (F_MainDeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3186. }
  3187. else if (deptid != 0)
  3188. {
  3189. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3190. }
  3191. 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, '')='' ";
  3192. if (User.F_RoleCode == "WLDW")
  3193. {
  3194. sql += " and (F_DeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3195. }
  3196. else if (deptid != 0)
  3197. {
  3198. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3199. }
  3200. sql += "))";
  3201. if (strstate.Trim() != "" && strstate != "undefined")
  3202. {
  3203. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3204. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3205. else
  3206. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3207. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3208. }
  3209. else
  3210. {
  3211. sql += " and F_WorkState in (2,4,8)";
  3212. }
  3213. if (strworkid.Trim() != "" && strworkid != "undefined")
  3214. {
  3215. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3216. }
  3217. if (strname.Trim() != "" && strname != "undefined")
  3218. {
  3219. sql += " and F_CusName like '%" + strname + "%' ";
  3220. }
  3221. if (strtel.Trim() != "" && strtel != "undefined")
  3222. {
  3223. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3224. }
  3225. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3226. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3227. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3228. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3229. {
  3230. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3231. }
  3232. if (Result.Trim() != "" && Result != "undefined")
  3233. {
  3234. sql += " and F_Result like '%" + Result + "%' ";
  3235. }
  3236. if (ComContent.Trim() != "" && ComContent != "undefined")
  3237. {
  3238. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3239. }
  3240. if (strkey.Trim() != "" && strkey != "undefined")
  3241. {
  3242. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3243. " or F_Result like '%" + strkey + "%' ) ";
  3244. }
  3245. if (source != 0)
  3246. {
  3247. sql += " and F_InfoSource = '" + source + "' ";
  3248. }
  3249. string sqlwhere = "";
  3250. if (keyid != 0)
  3251. {
  3252. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3253. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3254. // " or F_Key='" + keyid + "' )";
  3255. }
  3256. if (type != 0)
  3257. {
  3258. sql += " and F_InfoType = '" + type + "' ";
  3259. }
  3260. if (bigtype != 0)
  3261. {
  3262. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3263. }
  3264. if (smalltype != 0)
  3265. {
  3266. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3267. }
  3268. if (sourcearea != 0)
  3269. {
  3270. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3271. }
  3272. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3273. {
  3274. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3275. }
  3276. if (strendtime.Trim() != "" && strendtime != "undefined")
  3277. {
  3278. sql += " and F_CreateTime<='" + strendtime + "' ";
  3279. }
  3280. if (strpageindex.Trim() != "")
  3281. {
  3282. pageindex = Convert.ToInt32(strpageindex);
  3283. }
  3284. if (strpagesize.Trim() != "")
  3285. {
  3286. pagesize = Convert.ToInt32(strpagesize);
  3287. }
  3288. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3289. 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";
  3290. if (isdc > 0)
  3291. {
  3292. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3293. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3294. if (msg == "")
  3295. {
  3296. return Success("导出成功");
  3297. }
  3298. else
  3299. {
  3300. return Error("导出失败");
  3301. }
  3302. }
  3303. int recordCount = 0;
  3304. dt = BLL.PagerBLL.GetListPager(
  3305. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  3306. "F_WorkOrderId",
  3307. cols,
  3308. sql,
  3309. "ORDER BY F_CreateTime DESC",
  3310. pagesize,
  3311. pageindex,
  3312. true,
  3313. out recordCount);
  3314. #region 声音文件
  3315. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3316. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3317. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3318. dt.Columns.Add("OverState", typeof(string));//超时状态
  3319. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3320. dt.Columns.Add("GapTime", typeof(string));//时间差
  3321. dt.Columns.Add("FilePath", typeof(string));
  3322. dt.Columns.Add("Buttons", typeof(object));
  3323. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3324. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3325. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3326. foreach (DataRow dr in dt.Rows)
  3327. {
  3328. //获取最新交办信息
  3329. string iszbdw = "0";
  3330. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3331. if (state > 1)
  3332. {
  3333. 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";
  3334. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3335. if (dtjb.Rows.Count > 0)
  3336. {
  3337. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3338. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3339. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3340. {
  3341. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3342. }
  3343. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3344. #region
  3345. //if (state < 6 || state == 8)
  3346. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3347. {
  3348. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3349. dr["LimitTime"] = lt;
  3350. if (!string.IsNullOrWhiteSpace(lt))
  3351. {
  3352. var ltime = DateTime.Parse(lt);
  3353. if (ltime > DateTime.Now)
  3354. {
  3355. 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 + "'";
  3356. var SYSJ = DbHelperSQL.GetSingle(SY);
  3357. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3358. {
  3359. try
  3360. {
  3361. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3362. }
  3363. catch
  3364. {
  3365. }
  3366. }
  3367. }
  3368. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3369. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3370. if (tss < 0) { tss = -tss; }
  3371. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3372. if (ltime > DateTime.Now)
  3373. {
  3374. if (configcs != null)
  3375. {
  3376. int cs = Int32.Parse(configcs.F_ParamValue);
  3377. if (ts.TotalHours > cs)
  3378. {
  3379. dr["OverState"] = 1;
  3380. }
  3381. else
  3382. {
  3383. dr["OverState"] = 2;
  3384. }
  3385. }
  3386. dr["GapTime"] = "剩余" + gshsj;
  3387. }
  3388. else
  3389. {
  3390. dr["OverState"] = 3;
  3391. dr["GapTime"] = "超时" + gshsj;
  3392. }
  3393. }
  3394. }
  3395. if (state == (int)EnumWorkState.finish)
  3396. {
  3397. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3398. var dttime = DateTime.Now;
  3399. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3400. else
  3401. {
  3402. var DealTime = dr["F_CloseTime"].ToString();
  3403. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3404. }
  3405. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3406. dr["LimitTime"] = lt;
  3407. if (!string.IsNullOrWhiteSpace(lt))
  3408. {
  3409. var ltime = DateTime.Parse(lt);
  3410. TimeSpan ts = ltime.Subtract(dttime);
  3411. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3412. if (tss < 0) { tss = -tss; }
  3413. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3414. if (ltime < dttime)
  3415. {
  3416. dr["OverState"] = 3;
  3417. dr["GapTime"] = "超时" + gshsj;
  3418. }
  3419. }
  3420. }
  3421. #endregion
  3422. }
  3423. else
  3424. {
  3425. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3426. }
  3427. }
  3428. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3429. {
  3430. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3431. }
  3432. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3433. {
  3434. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3435. }
  3436. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3437. btns.Add(ButtonGroup.query());
  3438. dr["Buttons"] = btns;
  3439. }
  3440. #endregion
  3441. var obj = new
  3442. {
  3443. state = "success",
  3444. message = "成功",
  3445. rows = dt,
  3446. total = recordCount
  3447. };
  3448. return Content(obj.ToJson());
  3449. }
  3450. /// <summary>
  3451. /// 获取二级单位处理列表
  3452. /// </summary>
  3453. /// <returns></returns>
  3454. //[Authority]
  3455. public ActionResult GetEJDWDealList(int isdc = 0)
  3456. {
  3457. DataTable dt = new DataTable();
  3458. string sql = " and F_IsDelete=0";
  3459. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3460. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3461. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3462. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3463. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3464. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3465. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3466. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3467. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3468. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3469. int source = RequestString.GetInt("source", 0);
  3470. int keyid = RequestString.GetInt("keyid", 0);
  3471. int type = RequestString.GetInt("type", 0);
  3472. int bigtype = RequestString.GetInt("bigtype", 0);
  3473. int smalltype = RequestString.GetInt("smalltype", 0);
  3474. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3475. int deptid = RequestString.GetInt("deptid", 0);
  3476. int isys = RequestString.GetInt("isys", -1);
  3477. string strpageindex = RequestString.GetQueryString("page");
  3478. int pageindex = 1;
  3479. string strpagesize = RequestString.GetQueryString("pagesize");
  3480. int pagesize = 10;
  3481. int jianhang = RequestString.GetInt("jianhang", 0);
  3482. if (jianhang == 3)
  3483. sql += " and F_InfoSource = '2501' ";
  3484. #region 模块
  3485. switch (strtab)
  3486. {
  3487. case "0"://待处理工单
  3488. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay
  3489. , (int)EnumWorkState.reload};
  3490. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3491. //sql += " and F_WorkState in (4,5) ";
  3492. if (isys>-1)
  3493. {
  3494. if (isys==0)
  3495. {
  3496. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3497. + " 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) ) " +
  3498. "and F_MainDeptID3='" + User.F_DeptId+"'";
  3499. }
  3500. else
  3501. {
  3502. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3503. + " 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))"
  3504. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  3505. }
  3506. }
  3507. else
  3508. {
  3509. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3510. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))"
  3511. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  3512. }
  3513. break;
  3514. case "1"://已办理的工单
  3515. if (strstate.Trim() != "" && strstate != "undefined")
  3516. {
  3517. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3518. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3519. else
  3520. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3521. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3522. }
  3523. 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) ";
  3524. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3525. {
  3526. sql += " and F_CreateUser='" + User.F_UserCode + "') and F_MainDeptID3 = '" + User.F_DeptId+"'";
  3527. }
  3528. else
  3529. {
  3530. sql += ")";
  3531. }
  3532. break;
  3533. case "3"://已办未果
  3534. sql += " and F_WorkState = '6' ";
  3535. sql += " and F_IsProResult = '" + 2 + "' ";
  3536. 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) ";
  3537. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3538. {
  3539. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3540. }
  3541. else
  3542. {
  3543. sql += ")";
  3544. }
  3545. break;
  3546. //三级单位给已签收工单增加一个菜单
  3547. case "4"://已签收
  3548. // sql += " and F_WorkState in (4,5,8)";
  3549. 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))";
  3550. break;
  3551. case "5"://
  3552. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0)" +
  3553. "and F_MainDeptID3 ='"+ User.F_DeptId + "'";
  3554. break;
  3555. case "6"://已完结
  3556. sql += " and F_WorkState = '9' ";
  3557. 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) ";
  3558. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3559. {
  3560. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3561. }
  3562. else
  3563. {
  3564. sql += ")";
  3565. }
  3566. break;
  3567. //
  3568. }
  3569. #endregion
  3570. #region 条件
  3571. if (strworkid.Trim() != "" && strworkid != "undefined")
  3572. {
  3573. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3574. }
  3575. if (strname.Trim() != "" && strname != "undefined")
  3576. {
  3577. sql += " and F_CusName like '%" + strname + "%' ";
  3578. }
  3579. if (strtel.Trim() != "" && strtel != "undefined")
  3580. {
  3581. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3582. }
  3583. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3584. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3585. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3586. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3587. {
  3588. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3589. }
  3590. if (Result.Trim() != "" && Result != "undefined")
  3591. {
  3592. sql += " and F_Result like '%" + Result + "%' ";
  3593. }
  3594. if (ComContent.Trim() != "" && ComContent != "undefined")
  3595. {
  3596. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3597. }
  3598. if (strkey.Trim() != "" && strkey != "undefined")
  3599. {
  3600. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3601. " or F_Result like '%" + strkey + "%' ) ";
  3602. }
  3603. #region 坐席&调度员
  3604. if (strusercode.Trim() != "" && strusercode != "undefined")
  3605. {//坐席
  3606. var usercode = strusercode.Trim().Split(',');
  3607. var newusercode = "";
  3608. foreach (var item in usercode)
  3609. {
  3610. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3611. newusercode += "'" + item + "',";
  3612. }
  3613. newusercode = newusercode.Trim(',');
  3614. if (newusercode.Trim() != "" && newusercode != "undefined")
  3615. {
  3616. sql += " and F_CreateUser in (" + newusercode + ") ";
  3617. }
  3618. }
  3619. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3620. {//调度员
  3621. var ddusercode = strddusercode.Trim().Split(',');
  3622. var newusercode = "";
  3623. foreach (var item in ddusercode)
  3624. {
  3625. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3626. newusercode += "'" + item + "',";
  3627. }
  3628. newusercode = newusercode.Trim(',');
  3629. if (newusercode.Trim() != "" && newusercode != "undefined")
  3630. {
  3631. sql += " and F_AssignUser in(" + newusercode + ") ";
  3632. }
  3633. }
  3634. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3635. //{
  3636. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3637. //}
  3638. #endregion
  3639. if (source != 0)
  3640. {
  3641. sql += " and F_InfoSource = '" + source + "' ";
  3642. }
  3643. string sqlwhere = "";
  3644. if (keyid != 0)
  3645. {
  3646. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3647. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3648. // " or F_Key='" + keyid + "' )";
  3649. }
  3650. if (type != 0)
  3651. {
  3652. sql += " and F_InfoType = '" + type + "' ";
  3653. }
  3654. if (bigtype != 0)
  3655. {
  3656. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3657. }
  3658. if (smalltype != 0)
  3659. {
  3660. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3661. }
  3662. if (sourcearea != 0)
  3663. {
  3664. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3665. }
  3666. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3667. {
  3668. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3669. }
  3670. if (strendtime.Trim() != "" && strendtime != "undefined")
  3671. {
  3672. sql += " and F_CreateTime<='" + strendtime + "' ";
  3673. }
  3674. if (deptid != 0)
  3675. {
  3676. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='"+deptid+"')";
  3677. }
  3678. if (strpageindex.Trim() != "")
  3679. {
  3680. pageindex = Convert.ToInt32(strpageindex);
  3681. }
  3682. if (strpagesize.Trim() != "")
  3683. {
  3684. pagesize = Convert.ToInt32(strpagesize);
  3685. }
  3686. #endregion
  3687. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3688. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3689. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3690. 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"
  3691. ;
  3692. //(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
  3693. if (isdc > 0)
  3694. {
  3695. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3696. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3697. if (msg == "")
  3698. {
  3699. return Success("导出成功");
  3700. }
  3701. else
  3702. {
  3703. return Error("导出失败");
  3704. }
  3705. }
  3706. int recordCount = 0;
  3707. dt = BLL.PagerBLL.GetListPager(
  3708. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  3709. "F_WorkOrderId",
  3710. cols,
  3711. sql,
  3712. "ORDER BY F_CreateTime DESC",
  3713. pagesize,
  3714. pageindex,
  3715. true,
  3716. out recordCount);
  3717. #region 声音文件
  3718. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3719. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3720. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3721. dt.Columns.Add("OverState", typeof(string));//超时状态
  3722. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3723. dt.Columns.Add("GapTime", typeof(string));//时间差
  3724. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3725. dt.Columns.Add("PDState", typeof(string));//派单状态
  3726. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3727. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3728. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3729. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3730. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3731. foreach (DataRow dr in dt.Rows)
  3732. {
  3733. //获取最新交办信息
  3734. string iszbdw = "0";
  3735. string ispd = "";
  3736. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3737. if (state > 1)
  3738. {
  3739. 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";
  3740. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3741. if (dtjb.Rows.Count > 0)
  3742. {
  3743. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3744. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3745. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3746. {
  3747. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3748. }
  3749. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3750. var lt =dr ["F_LimitTime"].ToString();//限制时间
  3751. dr["LimitTime"] = lt;
  3752. #region
  3753. //if (state < 6 || state == 8)
  3754. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3755. {
  3756. if (!string.IsNullOrWhiteSpace(lt))
  3757. {
  3758. var ltime = DateTime.Parse(lt);
  3759. if (ltime > DateTime.Now)
  3760. {
  3761. 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 + "'";
  3762. var SYSJ = DbHelperSQL.GetSingle(SY);
  3763. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3764. {
  3765. try
  3766. {
  3767. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3768. }
  3769. catch
  3770. {
  3771. }
  3772. }
  3773. }
  3774. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3775. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3776. if (tss < 0) { tss = -tss; }
  3777. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3778. if (ltime > DateTime.Now)
  3779. {
  3780. if (configcs != null)
  3781. {
  3782. int cs = Int32.Parse(configcs.F_ParamValue);
  3783. if (ts.TotalHours > cs)
  3784. {
  3785. dr["OverState"] = 1;
  3786. }
  3787. else
  3788. {
  3789. dr["OverState"] = 2;
  3790. }
  3791. }
  3792. dr["GapTime"] = "剩余" + gshsj;
  3793. }
  3794. else
  3795. {
  3796. dr["OverState"] = 3;
  3797. dr["GapTime"] = "超时" + gshsj;
  3798. }
  3799. }
  3800. }
  3801. if (state == (int)EnumWorkState.finish)
  3802. {
  3803. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3804. var dttime = DateTime.Now;
  3805. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3806. else
  3807. {
  3808. var DealTime = dr["F_CloseTime"].ToString();
  3809. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3810. }
  3811. if (!string.IsNullOrWhiteSpace(lt))
  3812. {
  3813. var ltime = DateTime.Parse(lt);
  3814. TimeSpan ts = ltime.Subtract(dttime);
  3815. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3816. if (tss < 0) { tss = -tss; }
  3817. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3818. if (ltime < dttime)
  3819. {
  3820. dr["OverState"] = 3;
  3821. dr["GapTime"] = "超时" + gshsj;
  3822. }
  3823. }
  3824. }
  3825. #endregion
  3826. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3827. dr["PDState"] = ispd;
  3828. }
  3829. else
  3830. {
  3831. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3832. }
  3833. }
  3834. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3835. {
  3836. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3837. }
  3838. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3839. {
  3840. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3841. }
  3842. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3843. if (Int32.Parse(strtab) < 1)
  3844. {
  3845. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3846. #region 判断是否存在待督办
  3847. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3848. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3849. if (recount > 0 && butt != null)
  3850. btns.Remove(butt);
  3851. #endregion
  3852. }
  3853. else
  3854. {
  3855. btns.Add(ButtonGroup.query());
  3856. }
  3857. dr["Buttons"] = btns;
  3858. }
  3859. #endregion
  3860. var obj = new
  3861. {
  3862. state = "success",
  3863. message = "成功",
  3864. rows = dt,
  3865. total = recordCount
  3866. };
  3867. return Content(obj.ToJson());
  3868. }
  3869. /// <summary>
  3870. /// 获取三级单位处理列表
  3871. /// </summary>
  3872. /// <returns></returns>
  3873. //[Authority]
  3874. public ActionResult GetSJDWDealList(int isdc = 0)
  3875. {
  3876. DataTable dt = new DataTable();
  3877. string sql = " and F_IsDelete=0";
  3878. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3879. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3880. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3881. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3882. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3883. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3884. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3885. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3886. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3887. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3888. int source = RequestString.GetInt("source", 0);
  3889. int keyid = RequestString.GetInt("keyid", 0);
  3890. int type = RequestString.GetInt("type", 0);
  3891. int bigtype = RequestString.GetInt("bigtype", 0);
  3892. int smalltype = RequestString.GetInt("smalltype", 0);
  3893. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3894. int deptid = RequestString.GetInt("deptid", 0);
  3895. string strpageindex = RequestString.GetQueryString("page");
  3896. int pageindex = 1;
  3897. string strpagesize = RequestString.GetQueryString("pagesize");
  3898. int pagesize = 10;
  3899. #region 模块
  3900. switch (strtab)
  3901. {
  3902. case "0"://待处理工单
  3903. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  3904. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3905. //if (User.F_RoleCode == "EJWLDW")
  3906. // {
  3907. // sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  3908. // }
  3909. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3910. {
  3911. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3912. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='"+ User.F_DeptId + "' and F_IsSure in (0,1)))";
  3913. if(User.F_RoleCode== "WLDW")
  3914. {
  3915. sql += " or (F_MainDeptID3 ='" + User.F_DeptId + "')"
  3916. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + "))";
  3917. }
  3918. sql += ")";
  3919. }
  3920. else
  3921. {
  3922. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  3923. }
  3924. break;
  3925. case "1"://已办理的工单
  3926. if (strstate.Trim() != "" && strstate != "undefined")
  3927. {
  3928. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3929. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3930. else
  3931. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3932. }
  3933. 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) ";
  3934. if (User.F_RoleCode == "EJWLDW")
  3935. {
  3936. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  3937. }
  3938. else if (User.F_RoleCode == "WLDW")
  3939. {
  3940. sql += " and( (F_MainDeptID3 ='" + User.F_DeptId + "')"
  3941. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + ")) )";
  3942. }
  3943. else if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  3944. {
  3945. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3946. }
  3947. else
  3948. {
  3949. sql += ")";
  3950. }
  3951. break;
  3952. }
  3953. #endregion
  3954. int jianhang = RequestString.GetInt("jianhang", 0);
  3955. int phoneType = RequestString.GetInt("phoneType", 0);
  3956. if (jianhang > 0)
  3957. {
  3958. if (jianhang == 3)
  3959. sql += " and F_InfoSource = '2501' ";
  3960. else
  3961. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  3962. }
  3963. else
  3964. {
  3965. sql += " and F_InfoSource = '1' ";
  3966. if (phoneType == 1)
  3967. sql += " and F_PhoneType != '12345' ";
  3968. else if (phoneType == 2)
  3969. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  3970. "or F_PhoneType is null ) ";
  3971. }
  3972. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  3973. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  3974. {
  3975. sql += " and F_PhoneType = '" + incomingcall + "' ";
  3976. }
  3977. #region 条件
  3978. if (strworkid.Trim() != "" && strworkid != "undefined")
  3979. {
  3980. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3981. }
  3982. if (strname.Trim() != "" && strname != "undefined")
  3983. {
  3984. sql += " and F_CusName like '%" + strname + "%' ";
  3985. }
  3986. if (strtel.Trim() != "" && strtel != "undefined")
  3987. {
  3988. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3989. }
  3990. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3991. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3992. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3993. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3994. {
  3995. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3996. }
  3997. if (Result.Trim() != "" && Result != "undefined")
  3998. {
  3999. sql += " and F_Result like '%" + Result + "%' ";
  4000. }
  4001. if (ComContent.Trim() != "" && ComContent != "undefined")
  4002. {
  4003. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4004. }
  4005. if (strkey.Trim() != "" && strkey != "undefined")
  4006. {
  4007. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4008. " or F_Result like '%" + strkey + "%' ) ";
  4009. }
  4010. #region 坐席&调度员
  4011. if (strusercode.Trim() != "" && strusercode != "undefined")
  4012. {//坐席
  4013. var usercode = strusercode.Trim().Split(',');
  4014. var newusercode = "";
  4015. foreach (var item in usercode)
  4016. {
  4017. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4018. newusercode += "'" + item + "',";
  4019. }
  4020. newusercode = newusercode.Trim(',');
  4021. if (newusercode.Trim() != "" && newusercode != "undefined")
  4022. {
  4023. sql += " and F_CreateUser in (" + newusercode + ") ";
  4024. }
  4025. }
  4026. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4027. {//调度员
  4028. var ddusercode = strddusercode.Trim().Split(',');
  4029. var newusercode = "";
  4030. foreach (var item in ddusercode)
  4031. {
  4032. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4033. newusercode += "'" + item + "',";
  4034. }
  4035. newusercode = newusercode.Trim(',');
  4036. if (newusercode.Trim() != "" && newusercode != "undefined")
  4037. {
  4038. sql += " and F_AssignUser in(" + newusercode + ") ";
  4039. }
  4040. }
  4041. #endregion
  4042. if (source != 0)
  4043. {
  4044. sql += " and F_InfoSource = '" + source + "' ";
  4045. }
  4046. string sqlwhere = "";
  4047. if (keyid != 0)
  4048. {
  4049. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4050. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4051. // " or F_Key='" + keyid + "' )";
  4052. }
  4053. if (type != 0)
  4054. {
  4055. sql += " and F_InfoType = '" + type + "' ";
  4056. }
  4057. if (bigtype != 0)
  4058. {
  4059. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4060. }
  4061. if (smalltype != 0)
  4062. {
  4063. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4064. }
  4065. if (sourcearea != 0)
  4066. {
  4067. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4068. }
  4069. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4070. {
  4071. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4072. }
  4073. if (strendtime.Trim() != "" && strendtime != "undefined")
  4074. {
  4075. sql += " and F_CreateTime<='" + strendtime + "' ";
  4076. }
  4077. if (deptid != 0)
  4078. {
  4079. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4080. }
  4081. if (strpageindex.Trim() != "")
  4082. {
  4083. pageindex = Convert.ToInt32(strpageindex);
  4084. }
  4085. if (strpagesize.Trim() != "")
  4086. {
  4087. pagesize = Convert.ToInt32(strpagesize);
  4088. }
  4089. #endregion
  4090. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4091. 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";
  4092. if (isdc > 0)
  4093. {
  4094. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4095. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4096. if (msg == "")
  4097. {
  4098. return Success("导出成功");
  4099. }
  4100. else
  4101. {
  4102. return Error("导出失败");
  4103. }
  4104. }
  4105. int recordCount = 0;
  4106. dt = BLL.PagerBLL.GetListPager(
  4107. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  4108. "F_WorkOrderId",
  4109. cols,
  4110. sql,
  4111. "ORDER BY F_CreateTime DESC",
  4112. pagesize,
  4113. pageindex,
  4114. true,
  4115. out recordCount);
  4116. #region 声音文件
  4117. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4118. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4119. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4120. dt.Columns.Add("OverState", typeof(string));//超时状态
  4121. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4122. dt.Columns.Add("GapTime", typeof(string));//时间差
  4123. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4124. dt.Columns.Add("PDState", typeof(string));//派单状态
  4125. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4126. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4127. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4128. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4129. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4130. foreach (DataRow dr in dt.Rows)
  4131. {
  4132. //获取最新交办信息
  4133. string iszbdw = "0";
  4134. string ispd = "";
  4135. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4136. if (state > 1)
  4137. {
  4138. 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";
  4139. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4140. if (dtjb.Rows.Count > 0)
  4141. {
  4142. if (dtjb.Rows[0]["F_MainDeptId"].ToString()==User.F_DeptId.ToString()) { iszbdw = "1"; }
  4143. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4144. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4145. {
  4146. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4147. }
  4148. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4149. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4150. dr["LimitTime"] = lt;
  4151. #region
  4152. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4153. {
  4154. if (!string.IsNullOrWhiteSpace(lt))
  4155. {
  4156. var ltime = DateTime.Parse(lt);
  4157. if (ltime > DateTime.Now)
  4158. {
  4159. 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 + "'";
  4160. var SYSJ = DbHelperSQL.GetSingle(SY);
  4161. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4162. {
  4163. try
  4164. {
  4165. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4166. }
  4167. catch
  4168. {
  4169. }
  4170. }
  4171. }
  4172. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4173. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4174. if (tss < 0) { tss = -tss; }
  4175. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4176. if (ltime > DateTime.Now)
  4177. {
  4178. if (configcs != null)
  4179. {
  4180. int cs = Int32.Parse(configcs.F_ParamValue);
  4181. if (ts.TotalHours > cs)
  4182. {
  4183. dr["OverState"] = 1;
  4184. }
  4185. else
  4186. {
  4187. dr["OverState"] = 2;
  4188. }
  4189. }
  4190. dr["GapTime"] = "剩余" + gshsj;
  4191. }
  4192. else
  4193. {
  4194. dr["OverState"] = 3;
  4195. dr["GapTime"] = "超时" + gshsj;
  4196. }
  4197. }
  4198. }
  4199. if (state == (int)EnumWorkState.finish)
  4200. {
  4201. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4202. var dttime = DateTime.Now;
  4203. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4204. else
  4205. {
  4206. var DealTime = dr["F_CloseTime"].ToString();
  4207. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4208. }
  4209. if (!string.IsNullOrWhiteSpace(lt))
  4210. {
  4211. var ltime = DateTime.Parse(lt);
  4212. TimeSpan ts = ltime.Subtract(dttime);
  4213. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4214. if (tss < 0) { tss = -tss; }
  4215. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4216. if (ltime < dttime)
  4217. {
  4218. dr["OverState"] = 3;
  4219. dr["GapTime"] = "超时" + gshsj;
  4220. }
  4221. }
  4222. }
  4223. #endregion
  4224. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4225. dr["PDState"] = ispd;
  4226. }
  4227. else
  4228. {
  4229. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4230. }
  4231. }
  4232. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4233. {
  4234. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4235. }
  4236. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4237. {
  4238. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4239. }
  4240. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4241. if (Int32.Parse(strtab) < 1)
  4242. {
  4243. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4244. #region 判断是否存在待督办
  4245. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4246. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4247. if (recount > 0 && butt != null)
  4248. btns.Remove(butt);
  4249. #endregion
  4250. }
  4251. else
  4252. {
  4253. btns.Add(ButtonGroup.query());
  4254. }
  4255. dr["Buttons"] = btns;
  4256. }
  4257. #endregion
  4258. var obj = new
  4259. {
  4260. state = "success",
  4261. message = "成功",
  4262. rows = dt,
  4263. total = recordCount
  4264. };
  4265. return Content(obj.ToJson());
  4266. }
  4267. /// <summary>
  4268. /// 获取自己提交工单
  4269. /// </summary>
  4270. /// <param name="isdc"></param>
  4271. /// <returns></returns>
  4272. //[Authority]
  4273. public ActionResult GetSelfList(int isdc = 0)
  4274. {
  4275. DataTable dt = new DataTable();
  4276. string sql = " and F_IsDelete=0 ";
  4277. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4278. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4279. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4280. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4281. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4282. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4283. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4284. int source = RequestString.GetInt("source", 0);
  4285. int keyid = RequestString.GetInt("keyid", 0);
  4286. int type = RequestString.GetInt("type", 0);
  4287. int bigtype = RequestString.GetInt("bigtype", 0);
  4288. int smalltype = RequestString.GetInt("smalltype", 0);
  4289. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4290. int deptid = RequestString.GetInt("deptid", 0);
  4291. int dealtype = RequestString.GetInt("dealtype", -1);
  4292. int issend = RequestString.GetInt("issend", -1);
  4293. int deptlevel = RequestString.GetInt("deptlevel", 0);
  4294. string strpageindex = RequestString.GetQueryString("page");
  4295. int pageindex = 1;
  4296. string strpagesize = RequestString.GetQueryString("pagesize");
  4297. int pagesize = 10;
  4298. #region sql 语句相关处理
  4299. if(User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  4300. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  4301. if (strstate.Trim() != "" && strstate != "undefined")
  4302. {
  4303. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4304. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4305. else
  4306. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4307. }
  4308. if (strworkid.Trim() != "" && strworkid != "undefined")
  4309. {
  4310. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4311. }
  4312. int jianhang = RequestString.GetInt("jianhang", 0);
  4313. int phoneType = RequestString.GetInt("phoneType", 0);
  4314. if (jianhang > 0)
  4315. {
  4316. if (jianhang == 3)
  4317. sql += " and F_InfoSource = '2501' ";
  4318. else
  4319. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  4320. }
  4321. else
  4322. {
  4323. sql += " and F_InfoSource = '1' ";
  4324. if (phoneType == 1)
  4325. sql += " and F_PhoneType != '12345' ";
  4326. else if (phoneType == 2)
  4327. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  4328. "or F_PhoneType is null ) ";
  4329. }
  4330. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  4331. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  4332. {
  4333. sql += " and F_PhoneType = '" + incomingcall + "' ";
  4334. }
  4335. if (strname.Trim() != "" && strname != "undefined")
  4336. {
  4337. sql += " and F_CusName like '%" + strname + "%' ";
  4338. }
  4339. if (strtel.Trim() != "" && strtel != "undefined")
  4340. {
  4341. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4342. }
  4343. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4344. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4345. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4346. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4347. {
  4348. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4349. }
  4350. if (Result.Trim() != "" && Result != "undefined")
  4351. {
  4352. sql += " and F_Result like '%" + Result + "%' ";
  4353. }
  4354. if (ComContent.Trim() != "" && ComContent != "undefined")
  4355. {
  4356. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4357. }
  4358. if (strkey.Trim() != "" && strkey != "undefined")
  4359. {
  4360. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4361. " or F_Result like '%" + strkey + "%' ) ";
  4362. }
  4363. if (source != 0)
  4364. {
  4365. sql += " and F_InfoSource = '" + source + "' ";
  4366. }
  4367. string sqlwhere = "";
  4368. if (keyid != 0)
  4369. {
  4370. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4371. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4372. // " or F_Key='" + keyid + "' )";
  4373. }
  4374. if (type != 0)
  4375. {
  4376. sql += " and F_InfoType = '" + type + "' ";
  4377. }
  4378. if (bigtype != 0)
  4379. {
  4380. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4381. }
  4382. if (smalltype != 0)
  4383. {
  4384. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4385. }
  4386. if (sourcearea != 0)
  4387. {
  4388. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4389. }
  4390. if (deptid != 0)
  4391. {
  4392. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4393. }
  4394. if (dealtype != -1)
  4395. {
  4396. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  4397. }
  4398. if (issend != -1)
  4399. {
  4400. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  4401. }
  4402. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4403. {
  4404. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4405. }
  4406. if (strendtime.Trim() != "" && strendtime != "undefined")
  4407. {
  4408. sql += " and F_CreateTime<='" + strendtime + "' ";
  4409. }
  4410. #endregion
  4411. if (strpageindex.Trim() != "")
  4412. {
  4413. pageindex = Convert.ToInt32(strpageindex);
  4414. }
  4415. if (strpagesize.Trim() != "")
  4416. {
  4417. pagesize = Convert.ToInt32(strpagesize);
  4418. }
  4419. 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";
  4420. #region 导出
  4421. if (isdc > 0)
  4422. {
  4423. var top = " "; var orderby = " order by F_CreateTime";
  4424. if (sql == " and F_IsDelete=0 ")
  4425. {
  4426. top = " top 1000 "; orderby += " desc ";
  4427. }
  4428. //20190715调整导出字段 zhengbingbing
  4429. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4430. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4431. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4432. + " (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) 办理结果, "
  4433. + " (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) 是否满意 "
  4434. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  4435. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4436. if (msg == "")
  4437. {
  4438. return Success("导出成功");
  4439. }
  4440. else
  4441. {
  4442. return Error("导出失败");
  4443. }
  4444. }
  4445. #endregion
  4446. int recordCount = 0;
  4447. dt = BLL.PagerBLL.GetListPager(
  4448. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwhere ,
  4449. "F_WorkOrderId",
  4450. cols,
  4451. sql,
  4452. "ORDER BY F_CreateTime DESC",
  4453. pagesize,
  4454. pageindex,
  4455. true,
  4456. out recordCount);
  4457. #region 声音文件和交办超时
  4458. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4459. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4460. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4461. dt.Columns.Add("OverState", typeof(string));//超时状态
  4462. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4463. dt.Columns.Add("GapTime", typeof(string));//时间差
  4464. dt.Columns.Add("PDState", typeof(string));//派单状态
  4465. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4466. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4467. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4468. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4469. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4470. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4471. foreach (DataRow dr in dt.Rows)
  4472. {
  4473. string iszbdw = "0";
  4474. string ispd = "";
  4475. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4476. if (state > 1)
  4477. {
  4478. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4479. //获取最新交办信息
  4480. 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";
  4481. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4482. if (dtjb.Rows.Count > 0)
  4483. {
  4484. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4485. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  4486. {
  4487. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  4488. }
  4489. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4490. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4491. dr["LimitTime"] = lt;
  4492. #region 超时时限
  4493. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4494. {
  4495. if (!string.IsNullOrWhiteSpace(lt))
  4496. {
  4497. var ltime = DateTime.Parse(lt);
  4498. if (ltime > DateTime.Now)
  4499. {
  4500. 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 + "'";
  4501. var SYSJ = DbHelperSQL.GetSingle(SY);
  4502. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4503. {
  4504. try
  4505. {
  4506. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4507. }
  4508. catch
  4509. {
  4510. }
  4511. }
  4512. }
  4513. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4514. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4515. if (tss < 0) { tss = -tss; }
  4516. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4517. if (ltime > DateTime.Now)
  4518. {
  4519. if (configcs != null)
  4520. {
  4521. int cs = Int32.Parse(configcs.F_ParamValue);
  4522. if (ts.TotalHours > cs)
  4523. {
  4524. dr["OverState"] = 1;
  4525. }
  4526. else
  4527. {
  4528. dr["OverState"] = 2;
  4529. }
  4530. }
  4531. dr["GapTime"] = "剩余" + gshsj;
  4532. }
  4533. else
  4534. {
  4535. dr["OverState"] = 3;
  4536. dr["GapTime"] = "超时" + gshsj;
  4537. }
  4538. }
  4539. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4540. dr["PDState"] = ispd;
  4541. }
  4542. if (state == (int)EnumWorkState.finish)
  4543. {
  4544. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4545. var dttime = DateTime.Now;
  4546. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4547. else
  4548. {
  4549. var DealTime = dr["F_CloseTime"].ToString();
  4550. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4551. }
  4552. if (!string.IsNullOrWhiteSpace(lt))
  4553. {
  4554. var ltime = DateTime.Parse(lt);
  4555. TimeSpan ts = ltime.Subtract(dttime);
  4556. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4557. if (tss < 0) { tss = -tss; }
  4558. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4559. if (ltime < dttime)
  4560. {
  4561. dr["OverState"] = 3;
  4562. dr["GapTime"] = "超时" + gshsj;
  4563. }
  4564. }
  4565. }
  4566. #endregion
  4567. }
  4568. }
  4569. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4570. {
  4571. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4572. }
  4573. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4574. {
  4575. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4576. }
  4577. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4578. #region 判断是否存在待督办
  4579. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  4580. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  4581. if (recount > 0 && butt != null)
  4582. buttons.Remove(butt);
  4583. #endregion
  4584. dr["Buttons"] = buttons;
  4585. }
  4586. #endregion
  4587. var obj = new
  4588. {
  4589. state = "success",
  4590. message = "成功",
  4591. rows = dt,
  4592. total = recordCount
  4593. };
  4594. return Content(obj.ToJson());
  4595. }
  4596. /// <summary>
  4597. /// 获取逾期未回复工单列表
  4598. /// </summary>
  4599. /// <returns></returns>
  4600. //[Authority]
  4601. public ActionResult GetTimeOutList(int isdc = 0)
  4602. {
  4603. DataTable dt = new DataTable();
  4604. string sql = " and F_IsDelete=0";
  4605. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4606. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4607. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4608. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4609. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4610. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4611. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4612. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4613. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4614. int source = RequestString.GetInt("source", 0);
  4615. int keyid = RequestString.GetInt("keyid", 0);
  4616. int type = RequestString.GetInt("type", 0);
  4617. int bigtype = RequestString.GetInt("bigtype", 0);
  4618. int smalltype = RequestString.GetInt("smalltype", 0);
  4619. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4620. int deptid = RequestString.GetInt("deptid", 0);
  4621. int soon = RequestString.GetInt("soon", 0);
  4622. string strpageindex = RequestString.GetQueryString("page");
  4623. int pageindex = 1;
  4624. string strpagesize = RequestString.GetQueryString("pagesize");
  4625. int pagesize = 10;
  4626. if (User.F_RoleCode == "ZXHWY")
  4627. {
  4628. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  4629. }
  4630. else
  4631. {
  4632. #region 坐席&调度员
  4633. if (strusercode.Trim() != "" && strusercode != "undefined")
  4634. {//坐席
  4635. var usercode = strusercode.Trim().Split(',');
  4636. var newusercode = "";
  4637. foreach (var item in usercode)
  4638. {
  4639. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4640. newusercode += "'" + item + "',";
  4641. }
  4642. newusercode = newusercode.Trim(',');
  4643. if (newusercode.Trim() != "" && newusercode != "undefined")
  4644. {
  4645. sql += " and F_CreateUser in (" + newusercode + ") ";
  4646. }
  4647. }
  4648. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4649. {//调度员
  4650. var ddusercode = strddusercode.Trim().Split(',');
  4651. var newusercode = "";
  4652. foreach (var item in ddusercode)
  4653. {
  4654. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4655. newusercode += "'" + item + "',";
  4656. }
  4657. newusercode = newusercode.Trim(',');
  4658. if (newusercode.Trim() != "" && newusercode != "undefined")
  4659. {
  4660. sql += " and F_AssignUser in(" + newusercode + ") ";
  4661. }
  4662. }
  4663. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4664. //{
  4665. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4666. //}
  4667. #endregion
  4668. }
  4669. int phoneType = RequestString.GetInt("phoneType", 0);
  4670. int jianhang = RequestString.GetInt("jianhang", 0);
  4671. if (jianhang ==2)
  4672. {
  4673. sql += " and F_InfoSource = '1' ";
  4674. if (phoneType == 1)
  4675. sql += " and F_PhoneType != '12345' ";
  4676. else if (phoneType == 2)
  4677. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  4678. "or F_PhoneType is null ) ";
  4679. }
  4680. else if (jianhang ==1)
  4681. {
  4682. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  4683. }
  4684. else if (jianhang == 3)
  4685. sql += " and F_InfoSource = '2501' ";
  4686. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  4687. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  4688. {
  4689. sql += " and F_PhoneType = '" + incomingcall + "' ";
  4690. }
  4691. string sqlwhere = "";string sqlwhere1 = "";
  4692. if (User.F_RoleCode == "WLDW")
  4693. {
  4694. if (soon==1)
  4695. {
  4696. sqlwhere += " and (F_LimitTime<getdate() or " +
  4697. " F_LimitTime<(dateadd(dd,-1,GETDATE()))) ";
  4698. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  4699. //+ " where F_State=1 and F_IsDelete=0 and and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  4700. }
  4701. else
  4702. {
  4703. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  4704. //+ " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  4705. sqlwhere += " and F_LimitTime<getdate() ";
  4706. }
  4707. //sqlwhere1 += " and F_MainDeptId = '" + User.F_DeptId + "'";
  4708. sql += " and F_MainDeptId = '" + User.F_DeptId + "' " +
  4709. "and F_WorkState NOT IN (6,7,9)";
  4710. // sqlwhere += "))";
  4711. }
  4712. else if (User.F_RoleCode == "EJWLDW")
  4713. {
  4714. 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) ";
  4715. 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 "
  4716. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)))";
  4717. }
  4718. else if (deptid != 0)
  4719. {
  4720. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN(6,7,9)";
  4721. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4722. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4723. }
  4724. else
  4725. {
  4726. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN (6,7,9) ";
  4727. }
  4728. //if (User.F_RoleCode == "ZXLD")
  4729. //{
  4730. // sqlwhere += " and F_CreateUser = '" + User.F_UserCode + "' ";
  4731. // sqlwhere1 += " and F_CreateUser = '" + User.F_UserCode + "'";
  4732. //}
  4733. if (strstate.Trim() != "" && strstate != "undefined")
  4734. {
  4735. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  4736. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4737. else
  4738. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4739. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  4740. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  4741. else
  4742. sql += sqlwhere;
  4743. }
  4744. else
  4745. {
  4746. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4747. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4748. sql += sqlwhere;
  4749. //sql += " and F_WorkState in (2,4,8)";
  4750. }
  4751. if (strworkid.Trim() != "" && strworkid != "undefined")
  4752. {
  4753. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4754. }
  4755. if (strname.Trim() != "" && strname != "undefined")
  4756. {
  4757. sql += " and F_CusName like '%" + strname + "%' ";
  4758. }
  4759. if (strtel.Trim() != "" && strtel != "undefined")
  4760. {
  4761. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4762. }
  4763. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4764. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4765. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4766. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4767. {
  4768. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4769. }
  4770. if (Result.Trim() != "" && Result != "undefined")
  4771. {
  4772. sql += " and F_Result like '%" + Result + "%' ";
  4773. }
  4774. if (ComContent.Trim() != "" && ComContent != "undefined")
  4775. {
  4776. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4777. }
  4778. if (strkey.Trim() != "" && strkey != "undefined")
  4779. {
  4780. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4781. " or F_Result like '%" + strkey + "%' ) ";
  4782. }
  4783. if (source != 0)
  4784. {
  4785. sql += " and F_InfoSource = '" + source + "' ";
  4786. }
  4787. string sqlwheres = ""; string value = "";
  4788. if (keyid != 0)
  4789. {
  4790. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4791. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4792. // " or F_Key='" + keyid + "' )";
  4793. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  4794. }
  4795. if (type != 0)
  4796. {
  4797. sql += " and F_InfoType = '" + type + "' ";
  4798. }
  4799. if (bigtype != 0)
  4800. {
  4801. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4802. }
  4803. if (smalltype != 0)
  4804. {
  4805. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4806. }
  4807. if (sourcearea != 0)
  4808. {
  4809. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4810. }
  4811. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4812. {
  4813. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4814. }
  4815. if (strendtime.Trim() != "" && strendtime != "undefined")
  4816. {
  4817. sql += " and F_CreateTime<='" + strendtime + "' ";
  4818. }
  4819. if (strpageindex.Trim() != "")
  4820. {
  4821. pageindex = Convert.ToInt32(strpageindex);
  4822. }
  4823. if (strpagesize.Trim() != "")
  4824. {
  4825. pagesize = Convert.ToInt32(strpagesize);
  4826. }
  4827. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  4828. 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";
  4829. if (isdc > 0)
  4830. {
  4831. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4832. var top = " "; var orderby = " order by F_CreateTime";
  4833. if (sql == " and F_IsDelete=0 ")
  4834. {
  4835. top = " top 1000 "; orderby += " desc ";
  4836. }
  4837. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4838. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4839. + " (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) 办理结果, "
  4840. + " (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) 是否满意 "
  4841. + " from T_Bus_WorkOrder wo WITH(NOLOCK)"+value +" where 1=1 " + sql + orderby).Tables[0];
  4842. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4843. if (msg == "")
  4844. {
  4845. return Success("导出成功");
  4846. }
  4847. else
  4848. {
  4849. return Error("导出失败");
  4850. }
  4851. }
  4852. int recordCount = 0;
  4853. dt = BLL.PagerBLL.GetListPager(
  4854. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  4855. "F_WorkOrderId",
  4856. cols,
  4857. sql,
  4858. "ORDER BY F_CreateTime DESC",
  4859. pagesize,
  4860. pageindex,
  4861. true,
  4862. out recordCount);
  4863. #region 声音文件
  4864. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4865. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4866. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4867. dt.Columns.Add("OverState", typeof(string));//超时状态
  4868. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4869. dt.Columns.Add("GapTime", typeof(string));//时间差
  4870. dt.Columns.Add("FilePath", typeof(string));
  4871. dt.Columns.Add("Buttons", typeof(object));
  4872. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4873. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4874. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4875. foreach (DataRow dr in dt.Rows)
  4876. {
  4877. //获取最新交办信息
  4878. string iszbdw = "0";
  4879. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4880. string ispd = "";
  4881. if (state > 1)
  4882. {
  4883. 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";
  4884. string sqlej = "";
  4885. if (User.F_RoleCode == "EJWLDW")
  4886. {
  4887. 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";
  4888. }
  4889. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4890. if (dtjb.Rows.Count > 0)
  4891. {
  4892. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4893. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4894. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4895. {
  4896. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4897. }
  4898. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4899. #region 时限
  4900. //if (state < 6 || state == 8)
  4901. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4902. {
  4903. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4904. if (User.F_RoleCode == "EJWLDW")
  4905. {
  4906. 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";
  4907. var dtej = DbHelperSQL.Query(sqljb).Tables[0];
  4908. lt= dtej.Rows[0]["F_LimitTime"].ToString();
  4909. }
  4910. dr["LimitTime"] = lt;
  4911. if (!string.IsNullOrWhiteSpace(lt))
  4912. {
  4913. var ltime = DateTime.Parse(lt);
  4914. if (ltime > DateTime.Now)
  4915. {
  4916. 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 + "'";
  4917. var SYSJ = DbHelperSQL.GetSingle(SY);
  4918. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4919. {
  4920. try
  4921. {
  4922. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4923. }
  4924. catch
  4925. {
  4926. }
  4927. }
  4928. }
  4929. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4930. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4931. if (tss < 0) { tss = -tss; }
  4932. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4933. if (ltime > DateTime.Now)
  4934. {
  4935. if (configcs != null)
  4936. {
  4937. int cs = Int32.Parse(configcs.F_ParamValue);
  4938. if (ts.TotalHours > cs)
  4939. {
  4940. dr["OverState"] = 1;
  4941. }
  4942. else
  4943. {
  4944. dr["OverState"] = 2;
  4945. }
  4946. }
  4947. dr["GapTime"] = "剩余" + gshsj;
  4948. }
  4949. else
  4950. {
  4951. dr["OverState"] = 3;
  4952. dr["GapTime"] = "超时" + gshsj;
  4953. }
  4954. }
  4955. }
  4956. if (state == (int)EnumWorkState.finish)
  4957. {
  4958. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4959. var dttime = DateTime.Now;
  4960. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4961. else
  4962. {
  4963. var DealTime = dr["F_CloseTime"].ToString();
  4964. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4965. }
  4966. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4967. dr["LimitTime"] = lt;
  4968. if (!string.IsNullOrWhiteSpace(lt))
  4969. {
  4970. var ltime = DateTime.Parse(lt);
  4971. TimeSpan ts = ltime.Subtract(dttime);
  4972. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4973. if (tss < 0) { tss = -tss; }
  4974. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4975. if (ltime < dttime)
  4976. {
  4977. dr["OverState"] = 3;
  4978. dr["GapTime"] = "超时" + gshsj;
  4979. }
  4980. }
  4981. }
  4982. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4983. #endregion
  4984. }
  4985. }
  4986. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4987. {
  4988. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4989. }
  4990. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4991. {
  4992. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4993. }
  4994. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4995. if (User.F_RoleCode == "EJWLDW")
  4996. {
  4997. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4998. }
  4999. else
  5000. {
  5001. btns.Add(ButtonGroup.query());
  5002. }
  5003. dr["Buttons"] = btns;
  5004. }
  5005. #endregion
  5006. var obj = new
  5007. {
  5008. state = "success",
  5009. message = "成功",
  5010. rows = dt,
  5011. total = recordCount
  5012. };
  5013. return Content(obj.ToJson());
  5014. }
  5015. /// <summary>
  5016. /// 获取媒体工单列表
  5017. /// </summary>
  5018. /// <returns></returns>
  5019. //[Authority]
  5020. public ActionResult GetMediaList(int isdc = 0)
  5021. {
  5022. DataTable dt = new DataTable();
  5023. string sql = " and F_IsDelete=0";
  5024. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5025. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5026. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5027. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5028. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5029. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5030. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5031. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5032. int source = RequestString.GetInt("source", 0);
  5033. int keyid = RequestString.GetInt("keyid", 0);
  5034. int type = RequestString.GetInt("type", 0);
  5035. int bigtype = RequestString.GetInt("bigtype", 0);
  5036. int smalltype = RequestString.GetInt("smalltype", 0);
  5037. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5038. int deptid = RequestString.GetInt("deptid", 0);
  5039. string strpageindex = RequestString.GetQueryString("page");
  5040. int pageindex = 1;
  5041. string strpagesize = RequestString.GetQueryString("pagesize");
  5042. int pagesize = 10;
  5043. sql += " and isnull(F_IsOpen,0) =1 ";
  5044. if (strworkid.Trim() != "" && strworkid != "undefined")
  5045. {
  5046. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5047. }
  5048. if (strname.Trim() != "" && strname != "undefined")
  5049. {
  5050. sql += " and F_CusName like '%" + strname + "%' ";
  5051. }
  5052. if (strtel.Trim() != "" && strtel != "undefined")
  5053. {
  5054. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5055. }
  5056. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5057. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5058. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5059. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5060. {
  5061. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5062. }
  5063. if (Result.Trim() != "" && Result != "undefined")
  5064. {
  5065. sql += " and F_Result like '%" + Result + "%' ";
  5066. }
  5067. if (ComContent.Trim() != "" && ComContent != "undefined")
  5068. {
  5069. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5070. }
  5071. if (strkey.Trim() != "" && strkey != "undefined")
  5072. {
  5073. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5074. " or F_Result like '%" + strkey + "%' ) ";
  5075. }
  5076. #region 坐席&调度员
  5077. if (strusercode.Trim() != "" && strusercode != "undefined")
  5078. {//坐席
  5079. var usercode = strusercode.Trim().Split(',');
  5080. var newusercode = "";
  5081. foreach (var item in usercode)
  5082. {
  5083. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5084. newusercode += "'" + item + "',";
  5085. }
  5086. newusercode = newusercode.Trim(',');
  5087. if (newusercode.Trim() != "" && newusercode != "undefined")
  5088. {
  5089. sql += " and F_CreateUser in (" + newusercode + ") ";
  5090. }
  5091. }
  5092. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5093. {//调度员
  5094. var ddusercode = strddusercode.Trim().Split(',');
  5095. var newusercode = "";
  5096. foreach (var item in ddusercode)
  5097. {
  5098. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5099. newusercode += "'" + item + "',";
  5100. }
  5101. newusercode = newusercode.Trim(',');
  5102. if (newusercode.Trim() != "" && newusercode != "undefined")
  5103. {
  5104. sql += " and F_AssignUser in(" + newusercode + ") ";
  5105. }
  5106. }
  5107. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5108. //{
  5109. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5110. //}
  5111. #endregion
  5112. if (source != 0)
  5113. {
  5114. sql += " and F_InfoSource = '" + source + "' ";
  5115. }
  5116. string sqlwheres = "";
  5117. if (keyid != 0)
  5118. {
  5119. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5120. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5121. // " or F_Key='" + keyid + "' )";
  5122. }
  5123. if (type != 0)
  5124. {
  5125. sql += " and F_InfoType = '" + type + "' ";
  5126. }
  5127. if (bigtype != 0)
  5128. {
  5129. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5130. }
  5131. if (smalltype != 0)
  5132. {
  5133. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5134. }
  5135. if (sourcearea != 0)
  5136. {
  5137. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5138. }
  5139. if (deptid != 0)
  5140. {
  5141. 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 ";
  5142. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5143. }
  5144. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5145. {
  5146. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5147. }
  5148. if (strendtime.Trim() != "" && strendtime != "undefined")
  5149. {
  5150. sql += " and F_CreateTime<='" + strendtime + "' ";
  5151. }
  5152. if (strpageindex.Trim() != "")
  5153. {
  5154. pageindex = Convert.ToInt32(strpageindex);
  5155. }
  5156. if (strpagesize.Trim() != "")
  5157. {
  5158. pagesize = Convert.ToInt32(strpagesize);
  5159. }
  5160. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5161. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5162. 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";
  5163. if (isdc > 0)
  5164. {
  5165. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5166. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5167. if (msg == "")
  5168. {
  5169. return Success("导出成功");
  5170. }
  5171. else
  5172. {
  5173. return Error("导出失败");
  5174. }
  5175. }
  5176. int recordCount = 0;
  5177. dt = BLL.PagerBLL.GetListPager(
  5178. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  5179. "F_WorkOrderId",
  5180. cols,
  5181. sql,
  5182. "ORDER BY F_CreateTime DESC",
  5183. pagesize,
  5184. pageindex,
  5185. true,
  5186. out recordCount);
  5187. #region 声音文件
  5188. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5189. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5190. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5191. dt.Columns.Add("IsReturnMedia", typeof(string));
  5192. dt.Columns.Add("Buttons", typeof(object));
  5193. int IsReturnMedia = 0;
  5194. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  5195. {
  5196. IsReturnMedia = 1;
  5197. }
  5198. foreach (DataRow dr in dt.Rows)
  5199. {
  5200. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5201. if (state > 1)
  5202. {
  5203. //获取最新交办信息
  5204. 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";
  5205. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5206. if (dtjb.Rows.Count > 0)
  5207. {
  5208. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5209. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5210. {
  5211. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5212. }
  5213. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5214. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5215. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5216. //if (deptinfo != null)
  5217. //{
  5218. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5219. //}
  5220. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5221. //{
  5222. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5223. // string dns = string.Empty;
  5224. // foreach (string strid in strids)
  5225. // {
  5226. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5227. // if (dinfo != null)
  5228. // {
  5229. // if (string.IsNullOrEmpty(dns))
  5230. // {
  5231. // dns = dinfo.F_DeptName;//交办单位
  5232. // }
  5233. // else
  5234. // {
  5235. // dns += "," + dinfo.F_DeptName;//交办单位
  5236. // }
  5237. // }
  5238. // }
  5239. // dr["OtherDeptName"] = dns;
  5240. //}
  5241. }
  5242. }
  5243. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5244. btns.Add(ButtonGroup.query());
  5245. dr["Buttons"] = btns;
  5246. dr["IsReturnMedia"] = IsReturnMedia;
  5247. }
  5248. #endregion
  5249. var obj = new
  5250. {
  5251. state = "success",
  5252. message = "成功",
  5253. rows = dt,
  5254. total = recordCount
  5255. };
  5256. return Content(obj.ToJson());
  5257. }
  5258. ///// <summary>
  5259. ///// 获取通报工单列表
  5260. ///// </summary>
  5261. ///// <returns></returns>
  5262. ////[Authority]
  5263. //public ActionResult GetNoticeList(int isdc = 0)
  5264. //{
  5265. // DataTable dt = new DataTable();
  5266. //
  5267. //
  5268. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  5269. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5270. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5271. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5272. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5273. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5274. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5275. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5276. // int source = RequestString.GetInt("source", 0);
  5277. // int keyid = RequestString.GetInt("keyid", 0);
  5278. // int type = RequestString.GetInt("type", 0);
  5279. // int bigtype = RequestString.GetInt("bigtype", 0);
  5280. // int smalltype = RequestString.GetInt("smalltype", 0);
  5281. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  5282. // int deptid = RequestString.GetInt("deptid", 0);
  5283. // string strpageindex = RequestString.GetQueryString("page");
  5284. // int pageindex = 1;
  5285. // string strpagesize = RequestString.GetQueryString("pagesize");
  5286. // int pagesize = 10;
  5287. // if (strworkid.Trim() != "" && strworkid != "undefined")
  5288. // {
  5289. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5290. // }
  5291. // if (strname.Trim() != "" && strname != "undefined")
  5292. // {
  5293. // sql += " and F_CusName like '%" + strname + "%' ";
  5294. // }
  5295. // if (strtel.Trim() != "" && strtel != "undefined")
  5296. // {
  5297. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5298. // }
  5299. // if (strkey.Trim() != "" && strkey != "undefined")
  5300. // {
  5301. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5302. // }
  5303. // if (strusercode.Trim() != "" && strusercode != "undefined")
  5304. // {
  5305. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5306. // }
  5307. // if (source != 0)
  5308. // {
  5309. // sql += " and F_InfoSource = '" + source + "' ";
  5310. // }
  5311. // if (keyid != 0)
  5312. // {
  5313. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5314. // }
  5315. // if (type != 0)
  5316. // {
  5317. // sql += " and F_InfoType = '" + type + "' ";
  5318. // }
  5319. // if (bigtype != 0)
  5320. // {
  5321. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5322. // }
  5323. // if (smalltype != 0)
  5324. // {
  5325. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5326. // }
  5327. // if (sourcearea != 0)
  5328. // {
  5329. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  5330. // }
  5331. // if (deptid != 0)
  5332. // {
  5333. // 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 ";
  5334. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5335. // }
  5336. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5337. // {
  5338. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5339. // }
  5340. // if (strendtime.Trim() != "" && strendtime != "undefined")
  5341. // {
  5342. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5343. // }
  5344. // if (strpageindex.Trim() != "")
  5345. // {
  5346. // pageindex = Convert.ToInt32(strpageindex);
  5347. // }
  5348. // if (strpagesize.Trim() != "")
  5349. // {
  5350. // pagesize = Convert.ToInt32(strpagesize);
  5351. // }
  5352. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5353. // if (isdc > 0)
  5354. // {
  5355. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  5356. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5357. // if (msg == "")
  5358. // {
  5359. // return Success("导出成功");
  5360. // }
  5361. // else
  5362. // {
  5363. // return Error("导出失败");
  5364. // }
  5365. // }
  5366. // int recordCount = 0;
  5367. // dt = BLL.PagerBLL.GetListPager(
  5368. // "T_Bus_WorkOrder",
  5369. // "F_WorkOrderId",
  5370. // cols,
  5371. // sql,
  5372. // "ORDER BY F_CreateTime DESC",
  5373. // pagesize,
  5374. // pageindex,
  5375. // true,
  5376. // out recordCount);
  5377. // #region 声音文件
  5378. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5379. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5380. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5381. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5382. // dt.Columns.Add("IsReturnNotice", typeof(string));
  5383. // dt.Columns.Add("FilePath", typeof(string));
  5384. // dt.Columns.Add("Buttons", typeof(object));
  5385. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5386. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5387. // int IsReturnNotice = 0;
  5388. // if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" ||User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY")
  5389. // {
  5390. // IsReturnNotice = 1;
  5391. // }
  5392. // foreach (DataRow dr in dt.Rows)
  5393. // {
  5394. // //获取最新交办信息
  5395. // //string iszbdw = "0";
  5396. // 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";
  5397. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5398. // if (dtjb.Rows.Count > 0)
  5399. // {
  5400. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5401. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5402. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5403. // {
  5404. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5405. // }
  5406. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5407. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5408. // //if (deptinfo != null)
  5409. // //{
  5410. // // //if (did == User.F_DeptId) { iszbdw = "1"; }
  5411. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5412. // //}
  5413. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5414. // //{
  5415. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5416. // // string dns = string.Empty;
  5417. // // foreach (string strid in strids)
  5418. // // {
  5419. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5420. // // if (dinfo != null)
  5421. // // {
  5422. // // if (string.IsNullOrEmpty(dns))
  5423. // // {
  5424. // // dns = dinfo.F_DeptName;//交办单位
  5425. // // }
  5426. // // else
  5427. // // {
  5428. // // dns += "," + dinfo.F_DeptName;//交办单位
  5429. // // }
  5430. // // }
  5431. // // }
  5432. // // dr["OtherDeptName"] = dns;
  5433. // //}
  5434. // }
  5435. // //获取最新通报信息
  5436. // 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";
  5437. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5438. // if (dttb.Rows.Count > 0)
  5439. // {
  5440. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5441. // {
  5442. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5443. // }
  5444. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  5445. // }
  5446. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5447. // {
  5448. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5449. // }
  5450. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5451. // {
  5452. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5453. // }
  5454. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5455. // btns.Add(ButtonGroup.query());
  5456. // dr["Buttons"] = btns;
  5457. // dr["IsReturnNotice"] = IsReturnNotice;
  5458. // }
  5459. // #endregion
  5460. // var obj = new
  5461. // {
  5462. // state = "success",
  5463. // message = "成功",
  5464. // rows = dt,
  5465. // total = recordCount
  5466. // };
  5467. // return Content(obj.ToJson());
  5468. //}
  5469. /// <summary>
  5470. /// 获取通报工单列表
  5471. /// </summary>
  5472. /// <returns></returns>
  5473. //[Authority]
  5474. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  5475. {
  5476. DataTable dt = new DataTable();
  5477. //int userId = 8000;
  5478. string sql = " and F_IsDelete=0 ";
  5479. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5480. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5481. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5482. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5483. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5484. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5485. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5486. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5487. int source = RequestString.GetInt("source", 0);
  5488. int keyid = RequestString.GetInt("keyid", 0);
  5489. int type = RequestString.GetInt("type", 0);
  5490. int bigtype = RequestString.GetInt("bigtype", 0);
  5491. int smalltype = RequestString.GetInt("smalltype", 0);
  5492. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5493. int deptid = RequestString.GetInt("deptid", 0);
  5494. string strpageindex = RequestString.GetQueryString("page");
  5495. int pageindex = 1;
  5496. string strpagesize = RequestString.GetQueryString("pagesize");
  5497. int pagesize = 10;
  5498. int jianhang = RequestString.GetInt("jianhang", 0);
  5499. int phoneType = RequestString.GetInt("phoneType", 0);
  5500. if (jianhang > 0)
  5501. {
  5502. if (jianhang == 3)
  5503. sql += " and F_InfoSource = '2501' ";
  5504. else
  5505. sql += " and F_InfoSource != '1'and F_InfoSource != '2501' ";
  5506. }
  5507. else
  5508. {
  5509. sql += " and F_InfoSource = '1' ";
  5510. if (phoneType == 1)
  5511. sql += " and F_PhoneType != '12345' ";
  5512. else if (phoneType == 2)
  5513. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  5514. "or F_PhoneType is null ) ";
  5515. }
  5516. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  5517. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  5518. {
  5519. sql += " and F_PhoneType = '" + incomingcall + "' ";
  5520. }
  5521. if (strworkid.Trim() != "" && strworkid != "undefined")
  5522. {
  5523. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5524. }
  5525. if (strname.Trim() != "" && strname != "undefined")
  5526. {
  5527. sql += " and F_CusName like '%" + strname + "%' ";
  5528. }
  5529. if (strtel.Trim() != "" && strtel != "undefined")
  5530. {
  5531. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5532. }
  5533. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5534. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5535. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5536. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5537. {
  5538. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5539. }
  5540. if (Result.Trim() != "" && Result != "undefined")
  5541. {
  5542. sql += " and F_Result like '%" + Result + "%' ";
  5543. }
  5544. if (ComContent.Trim() != "" && ComContent != "undefined")
  5545. {
  5546. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5547. }
  5548. if (strkey.Trim() != "" && strkey != "undefined")
  5549. {
  5550. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5551. " or F_Result like '%" + strkey + "%' ) ";
  5552. }
  5553. #region 坐席&调度员
  5554. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  5555. {//坐席
  5556. var usercode = strusercode.Trim().Split(',');
  5557. var newusercode = "";
  5558. foreach (var item in usercode)
  5559. {
  5560. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5561. newusercode += "'" + item + "',";
  5562. }
  5563. newusercode = newusercode.Trim(',');
  5564. if (newusercode.Trim() != "" && newusercode != "undefined")
  5565. {
  5566. sql += " and F_CreateUser in (" + newusercode + ") ";
  5567. }
  5568. }*/
  5569. #region
  5570. if (usercode != null && usercode.Length > 0)
  5571. {
  5572. var newusercode = "";
  5573. //string codes = "";
  5574. for (int i = 0; i < usercode.Length; i++)
  5575. {
  5576. if (usercode[i] != "")
  5577. {
  5578. newusercode += "'" + usercode[i] + "',";
  5579. }
  5580. }
  5581. newusercode = newusercode.Trim(',');
  5582. if (newusercode.Trim() != "" && newusercode != "undefined")
  5583. {
  5584. sql += " and F_CreateUser in (" + newusercode + ") ";
  5585. }
  5586. }
  5587. if (ddusercode != null && ddusercode.Length > 0)
  5588. {
  5589. var newusercode = "";
  5590. //string codes = "";
  5591. for (int i = 0; i < ddusercode.Length; i++)
  5592. {
  5593. if (ddusercode[i] != "")
  5594. {
  5595. newusercode += "'" + ddusercode[i] + "',";
  5596. }
  5597. }
  5598. newusercode = newusercode.Trim(',');
  5599. if (newusercode.Trim() != "" && newusercode != "undefined")
  5600. {
  5601. sql += " and F_AssignUser in (" + newusercode + ") ";
  5602. }
  5603. }
  5604. #endregion
  5605. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5606. {//调度员
  5607. var ddusercode = strddusercode.Trim().Split(',');
  5608. var newusercode = "";
  5609. foreach (var item in ddusercode)
  5610. {
  5611. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5612. newusercode += "'" + item + "',";
  5613. }
  5614. newusercode = newusercode.Trim(',');
  5615. if (newusercode.Trim() != "" && newusercode != "undefined")
  5616. {
  5617. sql += " and F_AssignUser in(" + newusercode + ") ";
  5618. }
  5619. }*/
  5620. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5621. //{
  5622. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5623. //}
  5624. #endregion
  5625. if (source != 0)
  5626. {
  5627. sql += " and F_InfoSource = '" + source + "' ";
  5628. }
  5629. string sqlwheres = "";
  5630. if (keyid != 0)
  5631. {
  5632. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5633. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5634. // " or F_Key='" + keyid + "' )";
  5635. }
  5636. if (type != 0)
  5637. {
  5638. sql += " and F_InfoType = '" + type + "' ";
  5639. }
  5640. if (bigtype != 0)
  5641. {
  5642. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5643. }
  5644. if (smalltype != 0)
  5645. {
  5646. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5647. }
  5648. if (sourcearea != 0)
  5649. {
  5650. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5651. }
  5652. if (deptid != 0)
  5653. {
  5654. 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 ";
  5655. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5656. }
  5657. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5658. {
  5659. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5660. }
  5661. if (strendtime.Trim() != "" && strendtime != "undefined")
  5662. {
  5663. sql += " and F_CreateTime<='" + strendtime + "' ";
  5664. }
  5665. if (User.F_RoleCode == "WLDW")
  5666. {
  5667. 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 ";
  5668. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5669. }
  5670. else
  5671. {
  5672. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5673. }
  5674. if (strpageindex.Trim() != "")
  5675. {
  5676. pageindex = Convert.ToInt32(strpageindex);
  5677. }
  5678. if (strpagesize.Trim() != "")
  5679. {
  5680. pagesize = Convert.ToInt32(strpagesize);
  5681. }
  5682. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5683. 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";
  5684. if (isdc > 0)
  5685. {
  5686. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5687. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5688. if (msg == "")
  5689. {
  5690. return Success("导出成功");
  5691. }
  5692. else
  5693. {
  5694. return Error("导出失败");
  5695. }
  5696. }
  5697. int recordCount = 0;
  5698. dt = BLL.PagerBLL.GetListPager(
  5699. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  5700. "F_WorkOrderId",
  5701. cols,
  5702. sql,
  5703. "ORDER BY F_CreateTime DESC",
  5704. pagesize,
  5705. pageindex,
  5706. true,
  5707. out recordCount);
  5708. #region 声音文件
  5709. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5710. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5711. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5712. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5713. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5714. dt.Columns.Add("IsReturnNotice", typeof(string));
  5715. dt.Columns.Add("FilePath", typeof(string));
  5716. dt.Columns.Add("Buttons", typeof(object));
  5717. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5718. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5719. int IsReturnNotice = 0;
  5720. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  5721. {
  5722. IsReturnNotice = 1;
  5723. }
  5724. foreach (DataRow dr in dt.Rows)
  5725. {
  5726. //获取最新交办信息
  5727. //string iszbdw = "0";
  5728. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5729. if (state > 1)
  5730. {
  5731. 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";
  5732. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5733. if (dtjb.Rows.Count > 0)
  5734. {
  5735. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5736. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5737. {
  5738. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5739. }
  5740. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5741. }
  5742. else
  5743. {
  5744. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5745. }
  5746. }
  5747. //获取最新通报信息
  5748. 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";
  5749. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5750. if (dttb.Rows.Count > 0)
  5751. {
  5752. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5753. {
  5754. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5755. }
  5756. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5757. }
  5758. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5759. {
  5760. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5761. }
  5762. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5763. {
  5764. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5765. }
  5766. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5767. btns.Add(ButtonGroup.query());
  5768. dr["Buttons"] = btns;
  5769. dr["IsReturnNotice"] = IsReturnNotice;
  5770. }
  5771. #endregion
  5772. var obj = new
  5773. {
  5774. state = "success",
  5775. message = "成功",
  5776. rows = dt,
  5777. total = recordCount
  5778. };
  5779. return Content(obj.ToJson());
  5780. }
  5781. /// <summary>
  5782. /// 督办列表
  5783. /// </summary>
  5784. /// <param name="isdc"></param>
  5785. /// <returns></returns>
  5786. //[Authority]
  5787. public ActionResult GetSupervList(int isdc = 0)
  5788. {
  5789. DataTable dt = new DataTable();
  5790. string sql = " and F_IsDelete=0";
  5791. #region 参数
  5792. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  5793. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  5794. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5795. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5796. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5797. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5798. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5799. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5800. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5801. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5802. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5803. int source = RequestString.GetInt("source", 0);
  5804. int keyid = RequestString.GetInt("keyid", 0);
  5805. int type = RequestString.GetInt("type", 0);
  5806. int bigtype = RequestString.GetInt("bigtype", 0);
  5807. int smalltype = RequestString.GetInt("smalltype", 0);
  5808. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5809. int deptid = RequestString.GetInt("deptid", 0);
  5810. int deptlevel = RequestString.GetInt("deptlevel", 0);
  5811. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  5812. int pageindex = RequestString.GetInt("page", 1);
  5813. int pagesize = RequestString.GetInt("pagesize", 10);
  5814. #endregion
  5815. #region 筛选
  5816. //存在有督办记录的工单
  5817. var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0";
  5818. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  5819. switch (strtab)
  5820. {
  5821. case "0"://督办-待办
  5822. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  5823. break;
  5824. case "1"://督办-办理中
  5825. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' ";
  5826. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  5827. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  5828. if (strstate.Trim() != "" && strstate != "undefined")
  5829. {
  5830. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5831. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5832. else
  5833. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5834. }
  5835. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  5836. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  5837. {
  5838. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  5839. }
  5840. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  5841. {
  5842. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  5843. }
  5844. sql += ")";
  5845. break;
  5846. case "2"://督办-超期未完结
  5847. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' and F_LimitTime<F_DealTime";
  5848. if (strstate.Trim() != "" && strstate != "undefined")
  5849. {
  5850. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5851. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5852. else
  5853. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5854. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5855. }
  5856. break;
  5857. case "3"://督办-已退回
  5858. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  5859. break;
  5860. case "4"://督办-已完结的工单
  5861. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  5862. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  5863. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  5864. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  5865. {
  5866. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  5867. }
  5868. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  5869. {
  5870. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  5871. }
  5872. break;
  5873. default:
  5874. sql += " and F_WorkOrderID in(" + sqlsup + " )";
  5875. break;
  5876. }
  5877. int jianhang = RequestString.GetInt("jianhang", 0);
  5878. int phoneType = RequestString.GetInt("phoneType", 0);
  5879. if (jianhang > 0)
  5880. {
  5881. if (jianhang == 3)
  5882. sql += " and F_InfoSource = '2501' ";
  5883. else
  5884. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  5885. }
  5886. else
  5887. {
  5888. sql += " and F_InfoSource = '1' ";
  5889. if (phoneType == 1)
  5890. sql += " and F_PhoneType != '12345' ";
  5891. else if (phoneType == 2)
  5892. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  5893. "or F_PhoneType is null ) ";
  5894. }
  5895. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  5896. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  5897. {
  5898. sql += " and F_PhoneType = '" + incomingcall + "' ";
  5899. }
  5900. if (strworkid.Trim() != "" && strworkid != "undefined")
  5901. {
  5902. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5903. }
  5904. if (strname.Trim() != "" && strname != "undefined")
  5905. {
  5906. sql += " and F_CusName like '%" + strname + "%' ";
  5907. }
  5908. if (strtel.Trim() != "" && strtel != "undefined")
  5909. {
  5910. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5911. }
  5912. if (User.F_RoleCode == "WLDW")
  5913. {
  5914. deptid = User.F_DeptId;
  5915. if(strtab=="1")
  5916. {
  5917. sql += " and F_WorkState in(2,4)";
  5918. }
  5919. }
  5920. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5921. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5922. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5923. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5924. {
  5925. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5926. }
  5927. if (Result.Trim() != "" && Result != "undefined")
  5928. {
  5929. sql += " and F_Result like '%" + Result + "%' ";
  5930. }
  5931. if (ComContent.Trim() != "" && ComContent != "undefined")
  5932. {
  5933. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5934. }
  5935. if (strkey.Trim() != "" && strkey != "undefined")
  5936. {
  5937. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5938. " or F_Result like '%" + strkey + "%' ) ";
  5939. }
  5940. #region 坐席&调度员
  5941. if (strusercode.Trim() != "" && strusercode != "undefined")
  5942. {//坐席
  5943. var usercode = strusercode.Trim().Split(',');
  5944. var newusercode = "";
  5945. foreach (var item in usercode)
  5946. {
  5947. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5948. newusercode += "'" + item + "',";
  5949. }
  5950. newusercode = newusercode.Trim(',');
  5951. if (newusercode.Trim() != "" && newusercode != "undefined")
  5952. {
  5953. sql += " and F_CreateUser in (" + newusercode + ") ";
  5954. }
  5955. }
  5956. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5957. {//调度员
  5958. var ddusercode = strddusercode.Trim().Split(',');
  5959. var newusercode = "";
  5960. foreach (var item in ddusercode)
  5961. {
  5962. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5963. newusercode += "'" + item + "',";
  5964. }
  5965. newusercode = newusercode.Trim(',');
  5966. if (newusercode.Trim() != "" && newusercode != "undefined")
  5967. {
  5968. sql += " and F_AssignUser in(" + newusercode + ") ";
  5969. }
  5970. }
  5971. #endregion
  5972. if (source != 0)
  5973. {
  5974. sql += " and F_InfoSource = '" + source + "' ";
  5975. }
  5976. string sqlwheres = ""; string value = "";
  5977. if (keyid != 0)
  5978. {
  5979. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5980. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  5981. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5982. // " or F_Key='" + keyid + "' )";
  5983. }
  5984. if (type != 0)
  5985. {
  5986. sql += " and F_InfoType = '" + type + "' ";
  5987. }
  5988. if (bigtype != 0)
  5989. {
  5990. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5991. }
  5992. if (smalltype != 0)
  5993. {
  5994. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5995. }
  5996. if (sourcearea != 0)
  5997. {
  5998. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5999. }
  6000. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6001. {
  6002. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6003. }
  6004. if (strendtime.Trim() != "" && strendtime != "undefined")
  6005. {
  6006. sql += " and F_CreateTime<='" + strendtime + "' ";
  6007. }
  6008. if (deptid != 0)
  6009. {
  6010. if (deptlevel == 0)
  6011. {
  6012. 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 ";
  6013. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6014. }
  6015. else
  6016. {
  6017. 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 ";
  6018. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6019. }
  6020. }
  6021. if (deptid != 0)
  6022. {
  6023. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  6024. }
  6025. #endregion
  6026. #region 导出
  6027. 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";
  6028. if (isdc > 0)
  6029. {
  6030. var top = " "; var orderby = " order by F_CreateTime";
  6031. if (sql == " and F_IsDelete=0 ")
  6032. {
  6033. top = " top 1000 "; orderby += " desc ";
  6034. }
  6035. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  6036. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  6037. + " (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) 办理结果, "
  6038. + " (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) 是否满意 "
  6039. + " from T_Bus_WorkOrder wo WITH(NOLOCK)"+ value + " where 1=1 " + sql + orderby).Tables[0];
  6040. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6041. if (msg == "")
  6042. {
  6043. return Success("导出成功");
  6044. }
  6045. else
  6046. {
  6047. return Error("导出失败");
  6048. }
  6049. }
  6050. #endregion
  6051. int recordCount = 0;
  6052. dt = BLL.PagerBLL.GetListPager(
  6053. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  6054. "F_WorkOrderId",
  6055. cols,
  6056. sql,
  6057. "ORDER BY F_CreateTime DESC",
  6058. pagesize,
  6059. pageindex,
  6060. true,
  6061. out recordCount);
  6062. #region 附加展示
  6063. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6064. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6065. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6066. dt.Columns.Add("OverState", typeof(string));//超时状态
  6067. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  6068. dt.Columns.Add("GapTime", typeof(string));//时间差
  6069. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  6070. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  6071. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6072. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6073. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  6074. var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  6075. foreach (DataRow dr in dt.Rows)
  6076. {
  6077. //获取最新交办信息
  6078. string iszbdw = "0";
  6079. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6080. string ispd = "";
  6081. if (state > 1)
  6082. {
  6083. 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";
  6084. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6085. if (dtjb.Rows.Count > 0)
  6086. {
  6087. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  6088. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6089. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6090. {
  6091. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6092. }
  6093. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6094. #region
  6095. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  6096. {
  6097. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6098. dr["LimitTime"] = lt;
  6099. if (!string.IsNullOrWhiteSpace(lt))
  6100. {
  6101. var ltime = DateTime.Parse(lt);
  6102. if (ltime > DateTime.Now)
  6103. {
  6104. 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 + "'";
  6105. var SYSJ = DbHelperSQL.GetSingle(SY);
  6106. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  6107. {
  6108. try
  6109. {
  6110. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  6111. }
  6112. catch
  6113. {
  6114. }
  6115. }
  6116. }
  6117. TimeSpan ts = ltime.Subtract(DateTime.Now);
  6118. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6119. if (tss < 0) { tss = -tss; }
  6120. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6121. if (ltime > DateTime.Now)
  6122. {
  6123. if (configcs != null)
  6124. {
  6125. int cs = Int32.Parse(configcs.F_ParamValue);
  6126. if (ts.TotalHours > cs)
  6127. {
  6128. dr["OverState"] = 1;
  6129. }
  6130. else
  6131. {
  6132. dr["OverState"] = 2;
  6133. }
  6134. }
  6135. dr["GapTime"] = "剩余" + gshsj;
  6136. }
  6137. else
  6138. {
  6139. dr["OverState"] = 3;
  6140. dr["GapTime"] = "超时" + gshsj;
  6141. }
  6142. }
  6143. }
  6144. if (state == (int)EnumWorkState.finish)
  6145. {
  6146. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  6147. var dttime = DateTime.Now;
  6148. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  6149. else
  6150. {
  6151. var DealTime = dr["F_CloseTime"].ToString();
  6152. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  6153. }
  6154. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  6155. dr["LimitTime"] = lt;
  6156. if (!string.IsNullOrWhiteSpace(lt))
  6157. {
  6158. var ltime = DateTime.Parse(lt);
  6159. TimeSpan ts = ltime.Subtract(dttime);
  6160. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  6161. if (tss < 0) { tss = -tss; }
  6162. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  6163. if (ltime < dttime)
  6164. {
  6165. dr["OverState"] = 3;
  6166. dr["GapTime"] = "超时" + gshsj;
  6167. }
  6168. }
  6169. }
  6170. #endregion
  6171. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  6172. }
  6173. else
  6174. {
  6175. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6176. }
  6177. }
  6178. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6179. {
  6180. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6181. }
  6182. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6183. {
  6184. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6185. }
  6186. #region 按钮
  6187. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6188. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  6189. btns.Clear();
  6190. var nrem = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).OrderByDescending(o => o.F_Id).FirstOrDefault();
  6191. if (User.F_RoleCode== "WLDW" || User.F_RoleCode == "EJWLDW")
  6192. {
  6193. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  6194. #region 判断是否存在待督办
  6195. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  6196. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6197. if (recount > 0 && butt != null)
  6198. btns.Remove(butt);
  6199. #endregion
  6200. }
  6201. else
  6202. {
  6203. switch (strtab)
  6204. {
  6205. case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  6206. btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  6207. btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  6208. break;
  6209. case "1"://督办-办理中 操作为:查看工单、短信催办
  6210. case "2"://督办-超期未完结 操作为:查看工单、短信催办
  6211. break;
  6212. case "3"://督办-已退回:查看
  6213. case "4"://督办-已完结:查看
  6214. break;
  6215. }
  6216. btns.Add(ButtonGroup.query());
  6217. }
  6218. dr["Buttons"] = btns;
  6219. #endregion
  6220. }
  6221. #endregion
  6222. var obj = new
  6223. {
  6224. state = "success",
  6225. message = "成功",
  6226. rows = dt,
  6227. total = recordCount
  6228. };
  6229. return Content(obj.ToJson());
  6230. }
  6231. public ActionResult GetNoticeListOLD(int isdc = 0)
  6232. {
  6233. DataTable dt = new DataTable();
  6234. string sql = " and F_IsDelete=0 ";
  6235. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6236. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6237. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6238. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6239. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6240. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6241. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6242. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6243. int source = RequestString.GetInt("source", 0);
  6244. int keyid = RequestString.GetInt("keyid", 0);
  6245. int type = RequestString.GetInt("type", 0);
  6246. int bigtype = RequestString.GetInt("bigtype", 0);
  6247. int smalltype = RequestString.GetInt("smalltype", 0);
  6248. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6249. int deptid = RequestString.GetInt("deptid", 0);
  6250. string strpageindex = RequestString.GetQueryString("page");
  6251. int pageindex = 1;
  6252. string strpagesize = RequestString.GetQueryString("pagesize");
  6253. int pagesize = 10;
  6254. int jianhang = RequestString.GetInt("jianhang", 0);
  6255. int phoneType = RequestString.GetInt("phoneType", 0);
  6256. if (jianhang > 0)
  6257. {
  6258. if (jianhang == 3)
  6259. sql += " and F_InfoSource = '2501' ";
  6260. else
  6261. sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  6262. }
  6263. else
  6264. {
  6265. sql += " and F_InfoSource = '1' ";
  6266. if (phoneType == 1)
  6267. sql += " and F_PhoneType != '12345' ";
  6268. else if (phoneType == 2)
  6269. sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  6270. "or F_PhoneType is null ) ";
  6271. }
  6272. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  6273. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  6274. {
  6275. sql += " and F_PhoneType = '" + incomingcall + "' ";
  6276. }
  6277. if (strworkid.Trim() != "" && strworkid != "undefined")
  6278. {
  6279. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6280. }
  6281. if (strname.Trim() != "" && strname != "undefined")
  6282. {
  6283. sql += " and F_CusName like '%" + strname + "%' ";
  6284. }
  6285. if (strtel.Trim() != "" && strtel != "undefined")
  6286. {
  6287. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6288. }
  6289. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6290. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6291. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6292. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6293. {
  6294. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6295. }
  6296. if (Result.Trim() != "" && Result != "undefined")
  6297. {
  6298. sql += " and F_Result like '%" + Result + "%' ";
  6299. }
  6300. if (ComContent.Trim() != "" && ComContent != "undefined")
  6301. {
  6302. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6303. }
  6304. if (strkey.Trim() != "" && strkey != "undefined")
  6305. {
  6306. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6307. " or F_Result like '%" + strkey + "%' ) ";
  6308. }
  6309. #region 坐席&调度员
  6310. if (strusercode.Trim() != "" && strusercode != "undefined")
  6311. {//坐席
  6312. var usercode = strusercode.Trim().Split(',');
  6313. var newusercode = "";
  6314. foreach (var item in usercode)
  6315. {
  6316. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6317. newusercode += "'" + item + "',";
  6318. }
  6319. newusercode = newusercode.Trim(',');
  6320. if (newusercode.Trim() != "" && newusercode != "undefined")
  6321. {
  6322. sql += " and F_CreateUser in (" + newusercode + ") ";
  6323. }
  6324. }
  6325. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6326. {//调度员
  6327. var ddusercode = strddusercode.Trim().Split(',');
  6328. var newusercode = "";
  6329. foreach (var item in ddusercode)
  6330. {
  6331. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6332. newusercode += "'" + item + "',";
  6333. }
  6334. newusercode = newusercode.Trim(',');
  6335. if (newusercode.Trim() != "" && newusercode != "undefined")
  6336. {
  6337. sql += " and F_AssignUser in(" + newusercode + ") ";
  6338. }
  6339. }
  6340. //if (strusercode.Trim() != "" && strusercode != "undefined")
  6341. //{
  6342. // sql += " and F_CreateUser = '" + strusercode + "' ";
  6343. //}
  6344. #endregion
  6345. if (source != 0)
  6346. {
  6347. sql += " and F_InfoSource = '" + source + "' ";
  6348. }
  6349. string sqlwheres = "";
  6350. if (keyid != 0)
  6351. {
  6352. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6353. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6354. // " or F_Key='" + keyid + "' )";
  6355. }
  6356. if (type != 0)
  6357. {
  6358. sql += " and F_InfoType = '" + type + "' ";
  6359. }
  6360. if (bigtype != 0)
  6361. {
  6362. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6363. }
  6364. if (smalltype != 0)
  6365. {
  6366. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6367. }
  6368. if (sourcearea != 0)
  6369. {
  6370. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6371. }
  6372. if (deptid != 0)
  6373. {
  6374. 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 ";
  6375. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6376. }
  6377. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6378. {
  6379. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6380. }
  6381. if (strendtime.Trim() != "" && strendtime != "undefined")
  6382. {
  6383. sql += " and F_CreateTime<='" + strendtime + "' ";
  6384. }
  6385. if (User.F_RoleCode == "WLDW")
  6386. {
  6387. 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 ";
  6388. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6389. }
  6390. else
  6391. {
  6392. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  6393. }
  6394. if (strpageindex.Trim() != "")
  6395. {
  6396. pageindex = Convert.ToInt32(strpageindex);
  6397. }
  6398. if (strpagesize.Trim() != "")
  6399. {
  6400. pagesize = Convert.ToInt32(strpagesize);
  6401. }
  6402. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6403. 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";
  6404. if (isdc > 0)
  6405. {
  6406. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6407. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6408. if (msg == "")
  6409. {
  6410. return Success("导出成功");
  6411. }
  6412. else
  6413. {
  6414. return Error("导出失败");
  6415. }
  6416. }
  6417. int recordCount = 0;
  6418. dt = BLL.PagerBLL.GetListPager(
  6419. "T_Bus_WorkOrder a WITH(NOLOCK)"+sqlwheres ,
  6420. "F_WorkOrderId",
  6421. cols,
  6422. sql,
  6423. "ORDER BY F_CreateTime DESC",
  6424. pagesize,
  6425. pageindex,
  6426. true,
  6427. out recordCount);
  6428. #region 声音文件
  6429. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6430. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6431. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6432. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  6433. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  6434. dt.Columns.Add("IsReturnNotice", typeof(string));
  6435. dt.Columns.Add("FilePath", typeof(string));
  6436. dt.Columns.Add("Buttons", typeof(object));
  6437. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6438. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6439. int IsReturnNotice = 0;
  6440. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  6441. {
  6442. IsReturnNotice = 1;
  6443. }
  6444. foreach (DataRow dr in dt.Rows)
  6445. {
  6446. //获取最新交办信息
  6447. //string iszbdw = "0";
  6448. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6449. if (state > 1)
  6450. {
  6451. 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";
  6452. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6453. if (dtjb.Rows.Count > 0)
  6454. {
  6455. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6456. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6457. {
  6458. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6459. }
  6460. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6461. }
  6462. else
  6463. {
  6464. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6465. }
  6466. }
  6467. //获取最新通报信息
  6468. 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";
  6469. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  6470. if (dttb.Rows.Count > 0)
  6471. {
  6472. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  6473. {
  6474. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  6475. }
  6476. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  6477. }
  6478. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6479. {
  6480. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6481. }
  6482. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6483. {
  6484. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6485. }
  6486. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6487. btns.Add(ButtonGroup.query());
  6488. dr["Buttons"] = btns;
  6489. dr["IsReturnNotice"] = IsReturnNotice;
  6490. }
  6491. #endregion
  6492. var obj = new
  6493. {
  6494. state = "success",
  6495. message = "成功",
  6496. rows = dt,
  6497. total = recordCount
  6498. };
  6499. return Content(obj.ToJson());
  6500. }
  6501. public ActionResult GetWorkorderSimp()
  6502. {
  6503. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6504. if (!string.IsNullOrEmpty(strworkorderid))
  6505. {
  6506. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  6507. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  6508. var dt = DbHelperSQL.Query(sql).Tables[0];
  6509. if (dt.Rows.Count > 0)
  6510. {
  6511. return Success("成功", dt);
  6512. }
  6513. return Error("获取失败");
  6514. }
  6515. return Error("参数错误");
  6516. }
  6517. /// <summary>
  6518. /// 获取工单信息
  6519. /// </summary>
  6520. /// <returns></returns>
  6521. //[Authority]
  6522. public ActionResult GetWorkOrder()
  6523. {
  6524. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6525. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  6526. if (!string.IsNullOrEmpty(strworkorderid))
  6527. {
  6528. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  6529. + "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)"
  6530. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'" ;
  6531. var dt = DbHelperSQL.Query(sql).Tables[0];
  6532. if (dt.Rows.Count > 0)
  6533. {
  6534. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY" ))
  6535. {
  6536. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  6537. if (isp == "1")
  6538. {
  6539. dt.Rows[0]["F_CusName"] = "";
  6540. dt.Rows[0]["F_CusPhone"] = "";
  6541. dt.Rows[0]["F_ConPhone"] = "";
  6542. }
  6543. }
  6544. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6545. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6546. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6547. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6548. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  6549. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6550. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6551. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6552. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6553. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6554. + "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";
  6555. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6556. + "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";
  6557. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6558. + "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";
  6559. 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 "
  6560. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6561. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  6562. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6563. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6564. + "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";
  6565. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6566. + "from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6567. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6568. + "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";
  6569. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6570. + "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";
  6571. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6572. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6573. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6574. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6575. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6576. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6577. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  6578. #region 声音文件
  6579. dt.Columns.Add("FilePath", typeof(string));
  6580. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  6581. {
  6582. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6583. }
  6584. else if (dt.Rows[0]["F_CallRecordId"] != null)
  6585. {
  6586. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  6587. }
  6588. #endregion
  6589. #region 附件
  6590. if (configfj != null)
  6591. {
  6592. dt = BindFileData(dt, configfj.F_ParamValue);
  6593. }
  6594. #endregion
  6595. #region 监察信息
  6596. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  6597. if (configfj != null)
  6598. {
  6599. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  6600. }
  6601. #endregion
  6602. #region 批示信息
  6603. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  6604. if (configfj != null)
  6605. {
  6606. psdt = BindFileData(psdt, configfj.F_ParamValue);
  6607. }
  6608. #endregion
  6609. #region 指示信息
  6610. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  6611. if (configfj != null)
  6612. {
  6613. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  6614. }
  6615. #endregion
  6616. #region 回退信息
  6617. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  6618. #endregion
  6619. #region 督办信息
  6620. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  6621. if (configfj != null)
  6622. {
  6623. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  6624. }
  6625. #endregion
  6626. #region 交办信息
  6627. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  6628. if (configfj != null)
  6629. {
  6630. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  6631. }
  6632. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  6633. if (configfj != null)
  6634. {
  6635. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  6636. }
  6637. #endregion
  6638. #region 退回信息
  6639. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  6640. #endregion
  6641. #region 延时信息
  6642. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  6643. if (configfj != null)
  6644. {
  6645. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  6646. }
  6647. #endregion
  6648. #region 办理情况
  6649. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  6650. if (configfj != null)
  6651. {
  6652. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  6653. }
  6654. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  6655. if (configfj != null)
  6656. {
  6657. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  6658. }
  6659. #endregion
  6660. #region 回访信息
  6661. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  6662. hfdt.Columns.Add("FilePath", typeof(string));
  6663. foreach (DataRow bldr in hfdt.Rows)
  6664. {
  6665. if (bldr["F_CallRecordId"] != null && config != null)
  6666. {
  6667. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6668. }
  6669. }
  6670. #endregion
  6671. #region 市民催单
  6672. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  6673. cbdt.Columns.Add("FilePath", typeof(string));
  6674. foreach (DataRow bldr in cbdt.Rows)
  6675. {
  6676. if (bldr["F_CallRecordId"] != null && config != null)
  6677. {
  6678. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6679. }
  6680. }
  6681. #endregion
  6682. #region 市民评议
  6683. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  6684. #endregion
  6685. #region 办理过程
  6686. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  6687. gcdt.Columns.Add("File", typeof(object));
  6688. gcdt.Columns.Add("FilePath", typeof(string));
  6689. if (configfj != null || configly != null || config != null)
  6690. {
  6691. foreach (DataRow bldr in gcdt.Rows)
  6692. {
  6693. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  6694. {
  6695. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  6696. }
  6697. if (bldr["F_LeaveRecordId"] != null && configly != null)
  6698. {
  6699. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6700. }
  6701. else if (bldr["F_CallRecordId"] != null && config != null)
  6702. {
  6703. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6704. }
  6705. }
  6706. }
  6707. #endregion
  6708. #region 操作按钮
  6709. var btns = new List<ButtonGroup.button>();
  6710. if (jbdt.Rows.Count > 0)
  6711. {
  6712. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  6713. string ispd = jbzx["F_IsNext"].ToString();
  6714. string iszbdw = "0";
  6715. string fmd = jbzx["F_MainDeptId"].ToString();
  6716. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  6717. if (fmd == User.F_DeptId.ToString())
  6718. { iszbdw = "1"; }
  6719. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  6720. {
  6721. iszbdw = "2";
  6722. }
  6723. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  6724. {
  6725. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  6726. }
  6727. }
  6728. else
  6729. {
  6730. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  6731. }
  6732. #region 判断是否存在待督办
  6733. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  6734. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6735. if (recount > 0)
  6736. {
  6737. if (butt != null)
  6738. btns.Remove(butt);
  6739. if(User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  6740. {
  6741. btns.Add(ButtonGroup.oversee());
  6742. btns.Add(ButtonGroup.turnnosee());
  6743. }
  6744. }
  6745. if (btns == null)
  6746. {
  6747. btns.Add(ButtonGroup.query());
  6748. }
  6749. else
  6750. {
  6751. if (btns.Count == 0)
  6752. btns.Add(ButtonGroup.query());
  6753. }
  6754. #endregion
  6755. #endregion
  6756. #region 其他权限
  6757. int issend = 0;
  6758. //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"))
  6759. //{
  6760. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  6761. // {
  6762. // issend = 1;
  6763. // }
  6764. //}
  6765. int isnotice = 0;
  6766. 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"))
  6767. {
  6768. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  6769. {
  6770. isnotice = 1;
  6771. }
  6772. }
  6773. int isedit = 0;
  6774. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  6775. //{
  6776. // isedit = 1;
  6777. //}
  6778. #endregion
  6779. var obj = new
  6780. {
  6781. data = dt,
  6782. jcdata = jcdt,
  6783. psdata = psdt,
  6784. zsdata = zsdt,
  6785. htdata = htdt,
  6786. dbdata = dbdt,
  6787. jbdata = jbdt,
  6788. ejjbdata = ejjbdt,
  6789. thdata = thdt,
  6790. ysdata = ysdt,
  6791. bldata = bldt,
  6792. ejbldata = ejbldt,
  6793. hfdata = hfdt,
  6794. cbdata = cbdt,
  6795. gcdata = gcdt,
  6796. issend = issend,
  6797. isedit = isedit,
  6798. isnotice = isnotice,
  6799. btndata = btns,
  6800. pydt
  6801. };
  6802. return Success("获取成功", obj);
  6803. }
  6804. else
  6805. {
  6806. return Error("获取失败");
  6807. }
  6808. }
  6809. else
  6810. {
  6811. return Error("参数传输失败");
  6812. }
  6813. }
  6814. /// <summary>
  6815. /// 导出word
  6816. /// </summary>
  6817. /// <returns></returns>
  6818. //[Authority]
  6819. public ActionResult ExportWorkOrder()
  6820. {
  6821. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6822. if (!string.IsNullOrEmpty(strworkorderid))
  6823. {
  6824. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  6825. + "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)"
  6826. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  6827. var dt = DbHelperSQL.Query(sql).Tables[0];
  6828. if (dt.Rows.Count > 0)
  6829. {
  6830. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  6831. {
  6832. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  6833. if (isp == "1")
  6834. {
  6835. dt.Rows[0]["F_CusName"] = "";
  6836. dt.Rows[0]["F_CusPhone"] = "";
  6837. dt.Rows[0]["F_ConPhone"] = "";
  6838. }
  6839. }
  6840. 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 "
  6841. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  6842. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  6843. //ExportWord np = new ExportWord();
  6844. //np.CreateWord(dt ,jbdt,User .F_UserCode );
  6845. //string url = dt.Rows[0]["F_WorkOrderId"].ToString();
  6846. //url = "http://192.168.8.9:1042//Upload/Word/工单" + url + ".doc";
  6847. //return Success(url);
  6848. var aw = new AsposeWord();
  6849. aw.OpenWithTemplate(Server.MapPath("/Upload/Word/热线工单模版.doc"));
  6850. aw.Builder();
  6851. aw.CreateAssignWord(dt, jbdt, User.F_UserCode);
  6852. var bt = aw.ExportAs();
  6853. return File(bt, "application/msword", "工单" + strworkorderid + ".doc");
  6854. }
  6855. else
  6856. {
  6857. return Error("获取失败");
  6858. }
  6859. }
  6860. else
  6861. {
  6862. return Error("参数传输失败");
  6863. }
  6864. }
  6865. /// <summary>
  6866. /// 获取工单信息
  6867. /// </summary>
  6868. /// <returns></returns>
  6869. //[Authority]
  6870. public ActionResult GetWorkOrderNew()
  6871. {
  6872. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6873. int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  6874. if (!string.IsNullOrEmpty(strworkorderid))
  6875. {
  6876. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6877. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6878. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6879. switch (type)
  6880. {
  6881. case 0:
  6882. #region 基本信息
  6883. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  6884. + "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)"
  6885. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  6886. var dt = DbHelperSQL.Query(sql).Tables[0];
  6887. if (dt.Rows.Count > 0)
  6888. {
  6889. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  6890. {
  6891. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  6892. if (isp == "1")
  6893. {
  6894. dt.Rows[0]["F_CusName"] = "";
  6895. dt.Rows[0]["F_CusPhone"] = "";
  6896. dt.Rows[0]["F_ConPhone"] = "";
  6897. }
  6898. }
  6899. #region 声音文件
  6900. dt.Columns.Add("FilePath", typeof(string));
  6901. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  6902. {
  6903. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6904. }
  6905. else if (dt.Rows[0]["F_CallRecordId"] != null)
  6906. {
  6907. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  6908. }
  6909. #endregion
  6910. #region 附件
  6911. if (configfj != null)
  6912. {
  6913. dt = BindFileData(dt, configfj.F_ParamValue);
  6914. }
  6915. #endregion
  6916. #region 操作按钮
  6917. var btns = new List<ButtonGroup.button>();
  6918. 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";
  6919. var jbdt1 = DbHelperSQL.Query(jbsql1).Tables[0];
  6920. if (jbdt1.Rows.Count > 0)
  6921. {
  6922. var jbzx = jbdt1.Rows[0];
  6923. string ispd = jbzx["F_IsNext"].ToString();
  6924. string iszbdw = "0";
  6925. string fmd = jbzx["F_MainDeptId"].ToString();
  6926. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  6927. if (fmd == User.F_DeptId.ToString())
  6928. { iszbdw = "1"; }
  6929. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  6930. {
  6931. iszbdw = "2";
  6932. }
  6933. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  6934. {
  6935. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  6936. }
  6937. }
  6938. else
  6939. {
  6940. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  6941. }
  6942. #region 判断是否存在待督办
  6943. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  6944. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6945. if (recount > 0)
  6946. {
  6947. if (butt != null)
  6948. btns.Remove(butt);
  6949. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  6950. {
  6951. btns.Add(ButtonGroup.oversee());
  6952. btns.Add(ButtonGroup.turnnosee());
  6953. }
  6954. }
  6955. if (btns == null)
  6956. {
  6957. btns.Add(ButtonGroup.query());
  6958. }
  6959. else
  6960. {
  6961. if (btns.Count == 0)
  6962. btns.Add(ButtonGroup.query());
  6963. }
  6964. #endregion
  6965. #endregion
  6966. #region 其他权限
  6967. int issend = 0;
  6968. //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"))
  6969. //{
  6970. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  6971. // {
  6972. // issend = 1;
  6973. // }
  6974. //}
  6975. int isnotice = 0;
  6976. 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"))
  6977. {
  6978. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  6979. {
  6980. isnotice = 1;
  6981. }
  6982. }
  6983. int isedit = 0;
  6984. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  6985. //{
  6986. // isedit = 1;
  6987. //}
  6988. #endregion
  6989. var obj = new
  6990. {
  6991. data = dt,
  6992. issend = issend,
  6993. isedit = isedit,
  6994. isnotice = isnotice,
  6995. btndata = btns
  6996. };
  6997. return Success("获取成功", obj);
  6998. }
  6999. else
  7000. {
  7001. return Error("获取失败");
  7002. }
  7003. #endregion
  7004. case 1:
  7005. #region 交办信息
  7006. 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";
  7007. 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";
  7008. 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";
  7009. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7010. if (configfj != null)
  7011. {
  7012. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  7013. }
  7014. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  7015. if (configfj != null)
  7016. {
  7017. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  7018. }
  7019. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  7020. var obj1 = new
  7021. {
  7022. jbdata = jbdt,
  7023. ejjbdata = ejjbdt,
  7024. thdata= thdt
  7025. };
  7026. return Success("获取成功", obj1);
  7027. #endregion
  7028. case 2:
  7029. #region 指示信息
  7030. 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";
  7031. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  7032. if (configfj != null)
  7033. {
  7034. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  7035. }
  7036. return Success("获取成功", zsdt);
  7037. #endregion
  7038. case 3:
  7039. #region 回退信息
  7040. 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";
  7041. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  7042. return Success("获取成功", htdt);
  7043. #endregion
  7044. case 4:
  7045. #region 办理情况
  7046. 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";
  7047. 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";
  7048. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  7049. if (configfj != null)
  7050. {
  7051. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  7052. }
  7053. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  7054. if (configfj != null)
  7055. {
  7056. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  7057. }
  7058. var obj5 = new
  7059. {
  7060. bldata = bldt,
  7061. ejbldata = ejbldt
  7062. };
  7063. return Success("获取成功", obj5);
  7064. #endregion
  7065. case 5:
  7066. #region 延时信息
  7067. 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";
  7068. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  7069. if (configfj != null)
  7070. {
  7071. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  7072. }
  7073. return Success("获取成功", ysdt);
  7074. #endregion
  7075. case 6:
  7076. #region 回访信息
  7077. 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 ";
  7078. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  7079. hfdt.Columns.Add("FilePath", typeof(string));
  7080. foreach (DataRow bldr in hfdt.Rows)
  7081. {
  7082. if (bldr["F_CallRecordId"] != null && config != null)
  7083. {
  7084. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7085. }
  7086. }
  7087. return Success("获取成功", hfdt);
  7088. #endregion
  7089. case 7:
  7090. #region 督办信息
  7091. 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";
  7092. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  7093. if (configfj != null)
  7094. {
  7095. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  7096. }
  7097. return Success("获取成功", dbdt);
  7098. #endregion
  7099. case 8:
  7100. #region 市民催单
  7101. 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";
  7102. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  7103. cbdt.Columns.Add("FilePath", typeof(string));
  7104. foreach (DataRow bldr in cbdt.Rows)
  7105. {
  7106. if (bldr["F_CallRecordId"] != null && config != null)
  7107. {
  7108. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7109. }
  7110. }
  7111. return Success("获取成功", cbdt);
  7112. #endregion
  7113. case 9:
  7114. #region 办理过程
  7115. string gcsql = "select o.*,u.F_UserName from T_Bus_Operation o left join T_Sys_UserAccount u on o.F_CreateUser=u.F_UserCode where o.F_IsDelete=0 and o.F_WorkOrderId ='" + strworkorderid + "' order by o.F_CreateTime ";
  7116. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  7117. gcdt.Columns.Add("File", typeof(object));
  7118. gcdt.Columns.Add("FilePath", typeof(string));
  7119. if (configfj != null || configly != null || config != null)
  7120. {
  7121. foreach (DataRow bldr in gcdt.Rows)
  7122. {
  7123. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  7124. {
  7125. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  7126. }
  7127. if (bldr["F_LeaveRecordId"] != null && configly != null)
  7128. {
  7129. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7130. }
  7131. else if (bldr["F_CallRecordId"] != null && config != null)
  7132. {
  7133. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7134. }
  7135. }
  7136. }
  7137. return Success("获取成功", gcdt);
  7138. #endregion
  7139. case 10:
  7140. #region 市民评议
  7141. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  7142. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  7143. return Success("获取成功", pydt);
  7144. #endregion
  7145. case 11:
  7146. #region 监察信息
  7147. 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";
  7148. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  7149. if (configfj != null)
  7150. {
  7151. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  7152. }
  7153. return Success("获取成功", jcdt);
  7154. #endregion
  7155. case 12:
  7156. #region 批示信息
  7157. 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";
  7158. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  7159. if (configfj != null)
  7160. {
  7161. psdt = BindFileData(psdt, configfj.F_ParamValue);
  7162. }
  7163. return Success("获取成功", psdt);
  7164. #endregion
  7165. }
  7166. return Error("获取失败");
  7167. }
  7168. else
  7169. {
  7170. return Error("参数传输失败");
  7171. }
  7172. }
  7173. /// <summary>
  7174. /// 获取草稿信息
  7175. /// </summary>
  7176. /// <returns></returns>
  7177. //[Authority]
  7178. public ActionResult GetDraftInfo()
  7179. {
  7180. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7181. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  7182. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  7183. {
  7184. string sql = string.Empty;
  7185. switch (type)
  7186. {
  7187. case 1:
  7188. 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;
  7189. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  7190. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  7191. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  7192. }
  7193. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + User.F_UserCode + " order by F_CreateTime desc";
  7194. var dt = DbHelperSQL.Query(sql).Tables[0];
  7195. if (dt.Rows.Count > 0)
  7196. {
  7197. #region 附件
  7198. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7199. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  7200. {
  7201. BindFileData(dt, configfj.F_ParamValue);
  7202. }
  7203. #endregion
  7204. }
  7205. return Success("获取成功", dt);
  7206. }
  7207. else
  7208. {
  7209. return Error("参数传输失败");
  7210. }
  7211. }
  7212. /// <summary>
  7213. /// 获取审核信息
  7214. /// </summary>
  7215. /// <returns></returns>
  7216. //[Authority]
  7217. public ActionResult GetAuditInfo()
  7218. {
  7219. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7220. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  7221. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  7222. {
  7223. string sql = string.Empty;
  7224. switch (type)
  7225. {
  7226. 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;
  7227. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  7228. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where "; break;
  7229. }
  7230. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  7231. var dt = DbHelperSQL.Query(sql).Tables[0];
  7232. if (dt.Rows.Count > 0)
  7233. {
  7234. #region 附件
  7235. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7236. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  7237. {
  7238. BindFileData(dt, configfj.F_ParamValue);
  7239. }
  7240. #endregion
  7241. }
  7242. return Success("获取成功", dt);
  7243. }
  7244. else
  7245. {
  7246. return Error("参数传输失败");
  7247. }
  7248. }
  7249. /// <summary>
  7250. /// 获取所有交办单位
  7251. /// </summary>
  7252. /// <returns></returns>
  7253. //[Authority]
  7254. public ActionResult GetAllAssignDept()
  7255. {
  7256. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7257. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  7258. if (modelT_Bus_WorkOrder != null)
  7259. {
  7260. string ids = string.Empty;
  7261. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  7262. foreach (var assign in Assigns)
  7263. {
  7264. if (string.IsNullOrEmpty(ids))
  7265. {
  7266. ids = assign.F_MainDeptId.Value.ToString();
  7267. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  7268. {
  7269. ids += "," + assign.F_OtherDeptIds;
  7270. }
  7271. }
  7272. else
  7273. {
  7274. ids += "," + assign.F_MainDeptId.Value.ToString();
  7275. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  7276. {
  7277. ids += "," + assign.F_OtherDeptIds;
  7278. }
  7279. }
  7280. }
  7281. if (string.IsNullOrEmpty(ids))
  7282. {
  7283. ids = "0";
  7284. }
  7285. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  7286. return Success("获取成功", dt);
  7287. }
  7288. else
  7289. {
  7290. return Error("操作失败");
  7291. }
  7292. }
  7293. /// <summary>
  7294. /// 获取二级单位处理信息
  7295. /// </summary>
  7296. /// <returns></returns>
  7297. //[Authority]
  7298. public ActionResult GetSecondDealInfo()
  7299. {
  7300. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7301. if (!string.IsNullOrEmpty(strworkorderid))
  7302. {
  7303. //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, ";
  7304. //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, ";
  7305. //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, ";
  7306. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  7307. //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";
  7308. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  7309. //var dt = DbHelperSQL.Query(sql).Tables[0];
  7310. 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";
  7311. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  7312. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  7313. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7314. if (configfj != null)
  7315. {
  7316. bldt = BindFileData(bldt, configfj.F_ParamValue);
  7317. }
  7318. var obj = new {
  7319. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  7320. fkinfo = bldt
  7321. };
  7322. return Success("获取成功", obj);
  7323. }
  7324. else
  7325. {
  7326. return Error("参数传输失败");
  7327. }
  7328. }
  7329. /// <summary>
  7330. /// 获取二级单位最新处理信息
  7331. /// </summary>
  7332. /// <returns></returns>
  7333. //[Authority]
  7334. public ActionResult GetNewSecondDealInfo()
  7335. {
  7336. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7337. if (!string.IsNullOrEmpty(strworkorderid))
  7338. {
  7339. 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";
  7340. var bldt = DbHelperSQL.Query(sql).Tables[0];
  7341. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7342. if (configfj != null)
  7343. {
  7344. bldt = BindFileData(bldt, configfj.F_ParamValue);
  7345. }
  7346. return Success("获取成功", bldt);
  7347. }
  7348. else
  7349. {
  7350. return Error("参数传输失败");
  7351. }
  7352. }
  7353. /// <summary>
  7354. /// 修改工单内容和处理结果
  7355. /// </summary>
  7356. /// <returns></returns>
  7357. //[Authority]
  7358. public ActionResult EditResult()
  7359. {
  7360. if ( User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  7361. {
  7362. string workorderid = RequestString.GetFormString("workorderid");
  7363. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7364. string result = RequestString.GetFormString("result");
  7365. string content = RequestString.GetFormString("content");
  7366. if ( modelT_Bus_WorkOrder != null )
  7367. {
  7368. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  7369. if (!string .IsNullOrEmpty (content))
  7370. {
  7371. string message = "";
  7372. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Content))
  7373. message = modelT_Bus_WorkOrder.F_Content;
  7374. else
  7375. message = modelT_Bus_WorkOrder.F_ComTitle ;
  7376. if (content != message)
  7377. {
  7378. modelT_Bus_WorkOrder.F_Content = content;
  7379. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7380. oper.F_WorkOrderId = workorderid;
  7381. oper.F_AssignedId = 0;
  7382. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7383. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  7384. oper.F_CreateUser = User.F_UserCode;
  7385. oper.F_CreateTime = DateTime.Now;
  7386. oper.F_IsDelete = 0;
  7387. operBLL.Add(oper);
  7388. }
  7389. }
  7390. if (!string.IsNullOrEmpty(result))
  7391. {
  7392. string message = "";
  7393. message = modelT_Bus_WorkOrder.F_Result;
  7394. if (result != message)
  7395. {
  7396. modelT_Bus_WorkOrder.F_Result = result;
  7397. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7398. oper.F_WorkOrderId = workorderid;
  7399. oper.F_AssignedId = 0;
  7400. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7401. oper.F_Message = userinfo + " 修改了办理结果,原结果:" + message;
  7402. oper.F_CreateUser = User.F_UserCode;
  7403. oper.F_CreateTime = DateTime.Now;
  7404. oper.F_IsDelete = 0;
  7405. operBLL.Add(oper);
  7406. }
  7407. }
  7408. bool n = new BLL.T_Bus_WorkOrder ().Update(modelT_Bus_WorkOrder);
  7409. if (n)
  7410. return Success("操作成功");
  7411. else
  7412. return Error ("修改失败");
  7413. }
  7414. else
  7415. {
  7416. return Error("操作失败");
  7417. }
  7418. }
  7419. else
  7420. {
  7421. return Error("权限不足");
  7422. }
  7423. }
  7424. /// <summary>
  7425. /// 修改下级单位处理内容
  7426. /// </summary>
  7427. /// <returns></returns>
  7428. //[Authority]
  7429. public ActionResult EditDealWorkOrder()
  7430. {
  7431. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  7432. {
  7433. string workorderid = RequestString.GetFormString("workorderid");
  7434. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7435. string result = RequestString.GetFormString("result");
  7436. string flies = RequestString.GetFormString("flies");
  7437. var modelT_Bus_Feedback_Nexts= new BLL.T_Bus_Feedback_Next()
  7438. .GetModelList("F_WorkOrderId='" + workorderid + "' and F_IsDelete = 0 order by F_CreateTime desc");
  7439. if (modelT_Bus_Feedback_Nexts != null&& modelT_Bus_WorkOrder!=null && modelT_Bus_Feedback_Nexts.Count >0)
  7440. {
  7441. string message = modelT_Bus_Feedback_Nexts[0].F_Result;
  7442. modelT_Bus_Feedback_Nexts[0].F_Result = result;//反馈内容
  7443. modelT_Bus_Feedback_Nexts[0].F_File = flies;
  7444. bool n = new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Nexts[0]);
  7445. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7446. oper.F_WorkOrderId = workorderid;
  7447. oper.F_AssignedId = modelT_Bus_Feedback_Nexts[0].F_Id;
  7448. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7449. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  7450. oper.F_Message = userinfo + " 修改了下级单位办理内容,原内容:"+ message;
  7451. oper.F_CreateUser = User.F_UserCode;
  7452. oper.F_CreateTime = DateTime.Now;
  7453. oper.F_IsDelete = 0;
  7454. operBLL.Add(oper);
  7455. return Success ("操作成功");
  7456. }
  7457. else
  7458. {
  7459. return Error("操作失败");
  7460. }
  7461. }
  7462. else
  7463. {
  7464. return Error("权限不足");
  7465. }
  7466. }
  7467. /// <summary>
  7468. /// 查看回访信息
  7469. /// </summary>
  7470. /// <returns></returns>
  7471. //[Authority]
  7472. public ActionResult GetVisitInfo()
  7473. {
  7474. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7475. if (!string.IsNullOrEmpty(strworkorderid))
  7476. {
  7477. 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";
  7478. 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";
  7479. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  7480. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  7481. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7482. dtvisit.Columns.Add("FilePath", typeof(string));
  7483. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  7484. if (dtvisit.Rows.Count > 0)
  7485. {
  7486. foreach (DataRow bldr in dtvisit.Rows)
  7487. {
  7488. #region 是否可勾选
  7489. var IsShowCheck = 0;
  7490. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  7491. if (drass.Length > 0)
  7492. {
  7493. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  7494. if(ass>0)
  7495. {
  7496. if (ass == User.F_DeptId)
  7497. IsShowCheck = 1;
  7498. }
  7499. }
  7500. bldr["IsShowCheck"] = IsShowCheck;
  7501. #endregion
  7502. #region 录音
  7503. if (bldr["F_CallRecordId"] != null && config != null)
  7504. {
  7505. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7506. }
  7507. #endregion
  7508. }
  7509. }
  7510. return Success("获取成功", dtvisit);
  7511. }
  7512. else
  7513. {
  7514. return Error("参数传输失败");
  7515. }
  7516. }
  7517. ///// <summary>
  7518. ///// 督办列表
  7519. ///// </summary>
  7520. ///// <param name="isdc"></param>
  7521. ///// <returns></returns>
  7522. ////[Authority]
  7523. //public ActionResult GetSupervList(int isdc = 0)
  7524. //{
  7525. // DataTable dt = new DataTable();
  7526. //
  7527. //
  7528. // string sql = " and F_IsDelete=0";
  7529. // #region 参数
  7530. // //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  7531. // string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  7532. // string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  7533. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7534. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7535. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7536. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7537. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7538. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7539. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7540. // string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7541. // int source = RequestString.GetInt("source", 0);
  7542. // int keyid = RequestString.GetInt("keyid", 0);
  7543. // int type = RequestString.GetInt("type", 0);
  7544. // int bigtype = RequestString.GetInt("bigtype", 0);
  7545. // int smalltype = RequestString.GetInt("smalltype", 0);
  7546. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  7547. // int deptid = RequestString.GetInt("deptid", 0);
  7548. // int deptlevel = RequestString.GetInt("deptlevel", 0);
  7549. // int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  7550. // int pageindex = RequestString.GetInt("page", 1);
  7551. // int pagesize = RequestString.GetInt("pagesize", 10);
  7552. // #endregion
  7553. // #region 筛选
  7554. // //存在有督办记录的工单
  7555. // var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0";
  7556. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  7557. // switch (strtab)
  7558. // {
  7559. // case "0"://督办-待办
  7560. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  7561. // break;
  7562. // case "1"://督办-办理中
  7563. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' ";
  7564. // string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  7565. // string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  7566. // if (strstate.Trim() != "" && strstate != "undefined")
  7567. // {
  7568. // if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  7569. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  7570. // else
  7571. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7572. // }
  7573. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  7574. // if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  7575. // {
  7576. // sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  7577. // }
  7578. // if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  7579. // {
  7580. // sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  7581. // }
  7582. // sql += ")";
  7583. // break;
  7584. // case "2"://督办-超期未完结
  7585. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState !='9' and F_LimitTime<F_DealTime";
  7586. // if (strstate.Trim() != "" && strstate != "undefined")
  7587. // {
  7588. // if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  7589. // sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  7590. // else
  7591. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7592. // //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  7593. // }
  7594. // break;
  7595. // case "3"://督办-已退回
  7596. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  7597. // break;
  7598. // case "4"://督办-已完结的工单
  7599. // sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  7600. // string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  7601. // string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  7602. // if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  7603. // {
  7604. // sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  7605. // }
  7606. // if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  7607. // {
  7608. // sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  7609. // }
  7610. // break;
  7611. // default:
  7612. // sql += " and F_WorkOrderID in(" + sqlsup + " )";
  7613. // break;
  7614. // }
  7615. // if (strworkid.Trim() != "" && strworkid != "undefined")
  7616. // {
  7617. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7618. // }
  7619. // if (strname.Trim() != "" && strname != "undefined")
  7620. // {
  7621. // sql += " and F_CusName like '%" + strname + "%' ";
  7622. // }
  7623. // if (strtel.Trim() != "" && strtel != "undefined")
  7624. // {
  7625. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7626. // }
  7627. // if (strkey.Trim() != "" && strkey != "undefined")
  7628. // {
  7629. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  7630. // }
  7631. // #region 坐席&调度员
  7632. // if (strusercode.Trim() != "" && strusercode != "undefined")
  7633. // {//坐席
  7634. // var usercode = strusercode.Trim().Split(',');
  7635. // var newusercode = "";
  7636. // foreach (var item in usercode)
  7637. // {
  7638. // if (!string.IsNullOrWhiteSpace(item.Trim()))
  7639. // newusercode += "'" + item + "',";
  7640. // }
  7641. // newusercode = newusercode.Trim(',');
  7642. // if (newusercode.Trim() != "" && newusercode != "undefined")
  7643. // {
  7644. // sql += " and F_CreateUser in (" + newusercode + ") ";
  7645. // }
  7646. // }
  7647. // if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7648. // {//调度员
  7649. // var ddusercode = strddusercode.Trim().Split(',');
  7650. // var newusercode = "";
  7651. // foreach (var item in ddusercode)
  7652. // {
  7653. // if (!string.IsNullOrWhiteSpace(item.Trim()))
  7654. // newusercode += "'" + item + "',";
  7655. // }
  7656. // newusercode = newusercode.Trim(',');
  7657. // if (newusercode.Trim() != "" && newusercode != "undefined")
  7658. // {
  7659. // sql += " and F_AssignUser in(" + newusercode + ") ";
  7660. // }
  7661. // }
  7662. // #endregion
  7663. // if (source != 0)
  7664. // {
  7665. // sql += " and F_InfoSource = '" + source + "' ";
  7666. // }
  7667. // if (keyid != 0)
  7668. // {
  7669. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  7670. // }
  7671. // if (type != 0)
  7672. // {
  7673. // sql += " and F_InfoType = '" + type + "' ";
  7674. // }
  7675. // if (bigtype != 0)
  7676. // {
  7677. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7678. // }
  7679. // if (smalltype != 0)
  7680. // {
  7681. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7682. // }
  7683. // if (sourcearea != 0)
  7684. // {
  7685. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  7686. // }
  7687. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7688. // {
  7689. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  7690. // }
  7691. // if (strendtime.Trim() != "" && strendtime != "undefined")
  7692. // {
  7693. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  7694. // }
  7695. // if (deptid != 0)
  7696. // {
  7697. // if (deptlevel == 0)
  7698. // {
  7699. // 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 ";
  7700. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7701. // }
  7702. // else
  7703. // {
  7704. // 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 ";
  7705. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7706. // }
  7707. // }
  7708. // if (deptid != 0)
  7709. // {
  7710. // sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  7711. // }
  7712. // #endregion
  7713. // #region 导出
  7714. // 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";
  7715. // if (isdc > 0)
  7716. // {
  7717. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7718. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7719. // if (msg == "")
  7720. // {
  7721. // return Success("导出成功");
  7722. // }
  7723. // else
  7724. // {
  7725. // return Error("导出失败");
  7726. // }
  7727. // }
  7728. // #endregion
  7729. // int recordCount = 0;
  7730. // dt = BLL.PagerBLL.GetListPager(
  7731. // "T_Bus_WorkOrder WITH(NOLOCK)",
  7732. // "F_WorkOrderId",
  7733. // cols,
  7734. // sql,
  7735. // "ORDER BY F_CreateTime DESC",
  7736. // pagesize,
  7737. // pageindex,
  7738. // true,
  7739. // out recordCount);
  7740. // #region 附加展示
  7741. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  7742. // dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7743. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7744. // dt.Columns.Add("OverState", typeof(string));//超时状态
  7745. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  7746. // dt.Columns.Add("GapTime", typeof(string));//时间差
  7747. // dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  7748. // dt.Columns.Add("Buttons", typeof(object));//操作按钮
  7749. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7750. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7751. // var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  7752. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  7753. // foreach (DataRow dr in dt.Rows)
  7754. // {
  7755. // //获取最新交办信息
  7756. // string iszbdw = "0";
  7757. // int state = Int32.Parse(dr["F_WorkState"].ToString());
  7758. // if (state > 1)
  7759. // {
  7760. // 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";
  7761. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7762. // if (dtjb.Rows.Count > 0)
  7763. // {
  7764. // if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  7765. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7766. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7767. // {
  7768. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7769. // }
  7770. // dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7771. // #region
  7772. // if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  7773. // {
  7774. // var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7775. // dr["LimitTime"] = lt;
  7776. // if (!string.IsNullOrWhiteSpace(lt))
  7777. // {
  7778. // var ltime = DateTime.Parse(lt);
  7779. // TimeSpan ts = ltime.Subtract(DateTime.Now);
  7780. // int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7781. // if (tss < 0) { tss = -tss; }
  7782. // string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7783. // if (ltime > DateTime.Now)
  7784. // {
  7785. // if (configcs != null)
  7786. // {
  7787. // int cs = Int32.Parse(configcs.F_ParamValue);
  7788. // if (ts.TotalHours > cs)
  7789. // {
  7790. // dr["OverState"] = 1;
  7791. // }
  7792. // else
  7793. // {
  7794. // dr["OverState"] = 2;
  7795. // }
  7796. // }
  7797. // dr["GapTime"] = "剩余" + gshsj;
  7798. // }
  7799. // else
  7800. // {
  7801. // dr["OverState"] = 3;
  7802. // dr["GapTime"] = "超时" + gshsj;
  7803. // }
  7804. // }
  7805. // }
  7806. // if (state == (int)EnumWorkState.finish)
  7807. // {
  7808. // var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  7809. // var dttime = DateTime.Now;
  7810. // if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  7811. // var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7812. // dr["LimitTime"] = lt;
  7813. // if (!string.IsNullOrWhiteSpace(lt))
  7814. // {
  7815. // var ltime = DateTime.Parse(lt);
  7816. // TimeSpan ts = ltime.Subtract(dttime);
  7817. // int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7818. // if (tss < 0) { tss = -tss; }
  7819. // string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7820. // if (ltime < dttime)
  7821. // {
  7822. // dr["OverState"] = 3;
  7823. // dr["GapTime"] = "超时" + gshsj;
  7824. // }
  7825. // }
  7826. // }
  7827. // #endregion
  7828. // }
  7829. // else
  7830. // {
  7831. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7832. // }
  7833. // }
  7834. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7835. // {
  7836. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  7837. // }
  7838. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7839. // {
  7840. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7841. // }
  7842. // #region 按钮
  7843. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7844. // //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  7845. // btns.Clear();
  7846. // var nrem = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).OrderByDescending(o => o.F_Id).FirstOrDefault();
  7847. // switch (strtab)
  7848. // {
  7849. // case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  7850. // btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  7851. // btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  7852. // break;
  7853. // case "1"://督办-办理中 操作为:查看工单、短信催办
  7854. // case "2"://督办-超期未完结 操作为:查看工单、短信催办
  7855. // break;
  7856. // case "3"://督办-已退回:查看
  7857. // case "4"://督办-已完结:查看
  7858. // break;
  7859. // }
  7860. // btns.Add(ButtonGroup.query());
  7861. // dr["Buttons"] = btns;
  7862. // #endregion
  7863. // }
  7864. // #endregion
  7865. // var obj = new
  7866. // {
  7867. // state = "success",
  7868. // message = "成功",
  7869. // rows = dt,
  7870. // total = recordCount
  7871. // };
  7872. // return Content(obj.ToJson());
  7873. //}
  7874. #endregion
  7875. #region 新增工单
  7876. /// <summary>
  7877. /// 上传附件
  7878. /// </summary>
  7879. /// <returns></returns>
  7880. //[Authority]
  7881. public ActionResult UploadFile()
  7882. {
  7883. #region 单个上传 no use
  7884. //string path = string.Empty;
  7885. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  7886. //if (_upfile != null)
  7887. //{
  7888. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  7889. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  7890. // string name = string.Empty;
  7891. // FileUp fu = new FileUp();
  7892. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  7893. // if (model != null)
  7894. // {
  7895. // name = fu.Upload(_upfile, model.F_ParamValue);
  7896. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  7897. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  7898. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  7899. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  7900. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  7901. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  7902. // model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  7903. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  7904. // return Success("成功", model_T_Sys_Accessories);
  7905. // }
  7906. // else
  7907. // {
  7908. // return Error("上传失败");
  7909. // }
  7910. //}
  7911. //else
  7912. //{
  7913. // return Error("请选择要上传的文件");
  7914. //}
  7915. #endregion
  7916. #region 多个上传
  7917. HttpFileCollection files = RequestString.GetFiles();
  7918. if (files.Count > 0)
  7919. {
  7920. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  7921. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  7922. for (int i = 0; i < files.Count; i++)
  7923. {
  7924. HttpPostedFile file = files[i];
  7925. FileUp fu = new FileUp();
  7926. string name = fu.Upload(file, path);
  7927. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  7928. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  7929. model_T_Sys_Accessories.F_FileName = name;//附件名称
  7930. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  7931. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  7932. model_T_Sys_Accessories.F_Size = file.ContentLength;
  7933. model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  7934. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  7935. model_T_Sys_Accessories.F_FileId = id;
  7936. acs.Add(model_T_Sys_Accessories);
  7937. }
  7938. return Success("成功", acs);
  7939. }
  7940. else
  7941. {
  7942. return Error("请选择要上传的文件");
  7943. }
  7944. #endregion
  7945. }
  7946. /// <summary>
  7947. /// 添加工单信息
  7948. /// </summary>
  7949. /// <returns></returns>
  7950. //[Authority]
  7951. public ActionResult AddWorkOrder()
  7952. {
  7953. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  7954. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY"
  7955. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY"
  7956. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  7957. || User.F_RoleCode == "DFZF"|| User.F_RoleCode == "MTDD") //增加新闻媒体(编号11)的添加工单权限
  7958. {
  7959. int source = RequestString.GetInt("source", 0);
  7960. string cusname = RequestString.GetFormString("cusname");
  7961. string cussex = RequestString.GetFormString("cussex");
  7962. string cusphone = RequestString.GetFormString("cusphone");
  7963. string cusaddress = RequestString.GetFormString("cusaddress");
  7964. string email = RequestString.GetFormString("email");
  7965. string zipcode = RequestString.GetFormString("zipcode");
  7966. string conname = RequestString.GetFormString("conname");
  7967. string conphone = RequestString.GetFormString("conphone");
  7968. string title = RequestString.GetFormString("title");
  7969. string content = RequestString.GetFormString("content");
  7970. string files = RequestString.GetFormString("files");
  7971. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7972. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7973. int isresult = RequestString.GetInt("isresult", 0);
  7974. string result = RequestString.GetFormString("result");
  7975. string keys = RequestString.GetFormString("keys");
  7976. string splituser = RequestString.GetFormString("splituser");
  7977. int type = RequestString.GetInt("type", 0);
  7978. int bigtype = RequestString.GetInt("bigtype", 0);
  7979. int smalltype = RequestString.GetInt("smalltype", 0);
  7980. int isprotect = RequestString.GetInt("isprotect", 0);
  7981. int level = RequestString.GetInt("level", 0);
  7982. int issubmit = RequestString.GetInt("issubmit", 0);
  7983. string callid = RequestString.GetFormString("callid");
  7984. string longitude = RequestString.GetFormString("longitude");//经度
  7985. string latitude = RequestString.GetFormString("latitude");//纬度
  7986. int business = RequestString.GetInt("business", 0); ;//是否有营商标识
  7987. string phonetype = RequestString.GetFormString("phonetype");//电话类型
  7988. lock (_MyLock) {
  7989. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  7990. {
  7991. #region 保存工单信息
  7992. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  7993. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  7994. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  7995. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source,sourcearea, creattime, endtime);
  7996. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7997. modelT_Bus_WorkOrder.F_PhoneType = phonetype;//电话类型
  7998. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7999. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8000. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8001. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8002. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8003. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8004. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8005. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8006. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8007. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8008. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8009. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8010. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8011. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8012. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8013. modelT_Bus_WorkOrder.F_File = files;//附件
  8014. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8015. modelT_Bus_WorkOrder.F_Key = keys;
  8016. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  8017. modelT_Bus_WorkOrder.F_Level = level;
  8018. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  8019. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  8020. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  8021. //是否直办(即时答复)0:,否1: 是
  8022. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8023. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8024. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  8025. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  8026. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  8027. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  8028. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  8029. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  8030. modelT_Bus_WorkOrder.F_ToBereply = 0;
  8031. modelT_Bus_WorkOrder.F_Business = business ;
  8032. //如果选择即刻答复:是,即为直办,工单结束
  8033. if (isresult == 1)
  8034. {
  8035. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8036. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  8037. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8038. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8039. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8040. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8041. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8042. }
  8043. else if (issubmit == 1)
  8044. {
  8045. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8046. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8047. }
  8048. #region
  8049. //20190715需求变动,去掉审核环节 提交后直接调度指派 zhengbingbing
  8050. //else
  8051. //{
  8052. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  8053. //}
  8054. #region
  8055. //20190315需求变动,保存并提交按钮取消,保存后提交待审核 20190329 zhengbingbing
  8056. //else if (issubmit == 1)
  8057. //{
  8058. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8059. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8060. //}
  8061. #endregion
  8062. #endregion
  8063. if (!string.IsNullOrEmpty(callid))
  8064. {
  8065. modelT_Bus_WorkOrder.F_CallId = callid;
  8066. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  8067. if (rd != null)
  8068. {
  8069. rd.IsExitWorkOrder = true;
  8070. new BLL.T_Call_CallRecords().Update(rd);
  8071. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  8072. }
  8073. }
  8074. int a= workorderBLL.Add(modelT_Bus_WorkOrder);
  8075. if (a <= 0)
  8076. return Error("添加失败");
  8077. #endregion
  8078. #region 插入操作记录
  8079. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8080. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8081. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8082. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8083. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8084. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8085. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  8086. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8087. {
  8088. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8089. }
  8090. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  8091. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8092. {
  8093. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8094. }
  8095. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  8096. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  8097. {
  8098. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8099. }
  8100. else
  8101. {
  8102. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  8103. string msg = "";
  8104. bool n = SMSController.AddSmS(0, msg,count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "",modelT_Bus_WorkOrder.F_WorkOrderId );
  8105. }
  8106. oper.F_CreateUser = User.F_UserCode;
  8107. oper.F_CreateTime = DateTime.Now;
  8108. oper.F_IsDelete = 0;
  8109. operBLL.Add(oper);
  8110. //推送消息表
  8111. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  8112. {
  8113. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8114. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8115. foreach (var u in users)
  8116. {
  8117. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8118. }
  8119. }
  8120. #endregion
  8121. trans.Complete();
  8122. }
  8123. }
  8124. return Success("操作成功");
  8125. }
  8126. else
  8127. {
  8128. return Error("权限不足");
  8129. }
  8130. }
  8131. /// <summary>
  8132. /// 添加工单信息
  8133. /// </summary>
  8134. /// <returns></returns>
  8135. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  8136. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  8137. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  8138. {
  8139. string workorderid = string.Empty;
  8140. using (TransactionScope trans = new TransactionScope())
  8141. {
  8142. #region 保存工单信息
  8143. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  8144. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  8145. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  8146. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea
  8147. , creattime, endtime);
  8148. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8149. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8150. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8151. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8152. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8153. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8154. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8155. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8156. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8157. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8158. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8159. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8160. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8161. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8162. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8163. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8164. modelT_Bus_WorkOrder.F_File = files;//附件
  8165. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8166. modelT_Bus_WorkOrder.F_Key = keys;
  8167. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  8168. modelT_Bus_WorkOrder.F_Level = level;
  8169. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  8170. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  8171. //modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  8172. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  8173. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  8174. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  8175. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  8176. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  8177. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  8178. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  8179. workorderBLL.Add(modelT_Bus_WorkOrder);
  8180. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  8181. #endregion
  8182. #region 插入操作记录
  8183. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8184. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8185. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8186. string userinfo = "";
  8187. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  8188. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  8189. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  8190. {
  8191. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8192. }
  8193. //oper.F_CreateUser = User.F_UserCode;
  8194. oper.F_CreateTime = DateTime.Now;
  8195. oper.F_IsDelete = 0;
  8196. operBLL.Add(oper);
  8197. #endregion
  8198. trans.Complete();
  8199. }
  8200. return workorderid;
  8201. }
  8202. /// <summary>
  8203. /// 添加工单信息留言
  8204. /// </summary>
  8205. /// <returns></returns>
  8206. //[Authority]
  8207. public ActionResult AddWorkOrderByLY()
  8208. {
  8209. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8210. {
  8211. int source = RequestString.GetInt("source", 0);
  8212. string cusname = RequestString.GetFormString("cusname");
  8213. string cussex = RequestString.GetFormString("cussex");
  8214. string cusphone = RequestString.GetFormString("cusphone");
  8215. string cusaddress = RequestString.GetFormString("cusaddress");
  8216. string email = RequestString.GetFormString("email");
  8217. string zipcode = RequestString.GetFormString("zipcode");
  8218. string conname = RequestString.GetFormString("conname");
  8219. string conphone = RequestString.GetFormString("conphone");
  8220. string title = RequestString.GetFormString("title");
  8221. string content = RequestString.GetFormString("content");
  8222. string files = RequestString.GetFormString("files");
  8223. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8224. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8225. int isresult = RequestString.GetInt("isresult", 0);
  8226. string result = RequestString.GetFormString("result");
  8227. string keys = RequestString.GetFormString("keys");
  8228. string splituser = RequestString.GetFormString("splituser");
  8229. int type = RequestString.GetInt("type", 0);
  8230. int bigtype = RequestString.GetInt("bigtype", 0);
  8231. int smalltype = RequestString.GetInt("smalltype", 0);
  8232. int isprotect = RequestString.GetInt("isprotect", 0);
  8233. int level = RequestString.GetInt("level", 0);
  8234. int issubmit = RequestString.GetInt("issubmit", 0);
  8235. int lyid = RequestString.GetInt("lyid", 0);
  8236. using (TransactionScope trans = new TransactionScope())
  8237. {
  8238. #region 保存工单信息
  8239. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  8240. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  8241. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  8242. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  8243. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8244. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8245. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8246. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8247. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8248. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8249. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8250. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8251. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8252. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8253. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8254. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8255. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8256. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8257. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8258. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8259. modelT_Bus_WorkOrder.F_File = files;//附件
  8260. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8261. modelT_Bus_WorkOrder.F_Key = keys;
  8262. modelT_Bus_WorkOrder.F_Level = level;
  8263. //是否直办(即时答复)0:,否1: 是
  8264. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8265. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8266. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  8267. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  8268. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  8269. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  8270. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  8271. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  8272. //如果选择即刻答复:是,即为直办,工单结束
  8273. if (isresult == 1)
  8274. {
  8275. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8276. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8277. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8278. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8279. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8280. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8281. }
  8282. else if (issubmit == 1)
  8283. {
  8284. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8285. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8286. }
  8287. #region
  8288. //20190715去掉审核环节
  8289. //else
  8290. //{
  8291. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  8292. //}
  8293. //else if (issubmit == 1)
  8294. //{
  8295. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8296. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8297. //}
  8298. #endregion
  8299. if (lyid != 0)
  8300. {
  8301. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  8302. if (rd != null)
  8303. {
  8304. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  8305. }
  8306. }
  8307. workorderBLL.Add(modelT_Bus_WorkOrder);
  8308. #endregion
  8309. #region 插入操作记录
  8310. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8311. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8312. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8313. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8314. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8315. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8316. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  8317. {
  8318. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8319. }
  8320. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  8321. {
  8322. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8323. }
  8324. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  8325. {
  8326. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8327. }
  8328. oper.F_CreateUser = User.F_UserCode;
  8329. oper.F_CreateTime = DateTime.Now;
  8330. oper.F_IsDelete = 0;
  8331. operBLL.Add(oper);
  8332. //推送消息表
  8333. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  8334. {
  8335. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8336. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8337. foreach (var u in users)
  8338. {
  8339. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8340. }
  8341. }
  8342. #endregion
  8343. trans.Complete();
  8344. }
  8345. return Success("操作成功");
  8346. }
  8347. else
  8348. {
  8349. return Error("权限不足");
  8350. }
  8351. }
  8352. /// <summary>
  8353. /// 添加工单信息
  8354. /// </summary>
  8355. /// <returns></returns>
  8356. //[Authority]
  8357. public ActionResult AddWorkOrderByAPP()
  8358. {
  8359. int source = RequestString.GetInt("source", 6);
  8360. string cusname = RequestString.GetFormString("cusname");
  8361. string cussex = RequestString.GetFormString("cussex");
  8362. string cusphone = RequestString.GetFormString("cusphone");
  8363. string cusaddress = RequestString.GetFormString("cusaddress");
  8364. string email = RequestString.GetFormString("email");
  8365. string zipcode = RequestString.GetFormString("zipcode");
  8366. string conname = RequestString.GetFormString("conname");
  8367. string conphone = RequestString.GetFormString("conphone");
  8368. string title = RequestString.GetFormString("title");
  8369. string content = RequestString.GetFormString("content");
  8370. string files = RequestString.GetFormString("files");
  8371. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8372. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8373. int isresult = RequestString.GetInt("isresult", 0);
  8374. string result = RequestString.GetFormString("result");
  8375. string keys = RequestString.GetFormString("keys");
  8376. string splituser = RequestString.GetFormString("splituser");
  8377. int type = RequestString.GetInt("type", 0);
  8378. int bigtype = RequestString.GetInt("bigtype", 0);
  8379. int smalltype = RequestString.GetInt("smalltype", 0);
  8380. int isprotect = RequestString.GetInt("isprotect", 0);
  8381. int level = RequestString.GetInt("level", 0);
  8382. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  8383. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  8384. if (!string.IsNullOrEmpty(workorderid))
  8385. {
  8386. using (TransactionScope trans = new TransactionScope())
  8387. {
  8388. #region 保存用户工单信息
  8389. var model = new BLL.T_Sys_Users().GetModel(User.F_UserCode);
  8390. if (model == null)
  8391. {
  8392. model = new Model.T_Sys_Users();
  8393. model.F_OpenId = User.F_UserCode;
  8394. model.F_Type = (int)EnumUserType.app;//3;
  8395. model.F_CreateTime = DateTime.Now;
  8396. model.F_Id = new BLL.T_Sys_Users().Add(model);
  8397. }
  8398. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  8399. tbu.F_UserId = model.F_Id;
  8400. tbu.F_WorkOrderId = workorderid;
  8401. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  8402. #endregion
  8403. trans.Complete();
  8404. }
  8405. return Success("操作成功");
  8406. }
  8407. else
  8408. {
  8409. return Error("操作失败");
  8410. }
  8411. }
  8412. #endregion
  8413. #region 操作工单
  8414. /// <summary>
  8415. /// 修改工单信息
  8416. /// </summary>
  8417. /// <returns></returns>
  8418. //[Authority]
  8419. public ActionResult EditWorkOrder()
  8420. {
  8421. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  8422. {
  8423. string workorderid = RequestString.GetFormString("workorderid");
  8424. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8425. int source = RequestString.GetInt("source", 0);
  8426. string cusname = RequestString.GetFormString("cusname");
  8427. string cussex = RequestString.GetFormString("cussex");
  8428. string cusphone = RequestString.GetFormString("cusphone");
  8429. string cusaddress = RequestString.GetFormString("cusaddress");
  8430. string email = RequestString.GetFormString("email");
  8431. string zipcode = RequestString.GetFormString("zipcode");
  8432. string conname = RequestString.GetFormString("conname");
  8433. string conphone = RequestString.GetFormString("conphone");
  8434. int state = RequestString.GetInt("state", 0);
  8435. string title = RequestString.GetFormString("title");
  8436. string content = RequestString.GetFormString("content");
  8437. string files = RequestString.GetFormString("files");
  8438. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8439. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8440. int isresult = RequestString.GetInt("isresult", 0);
  8441. string result = RequestString.GetFormString("result");
  8442. string keys = RequestString.GetFormString("keys");
  8443. string splituser = RequestString.GetFormString("splituser");
  8444. int type = RequestString.GetInt("type", 0);
  8445. int bigtype = RequestString.GetInt("bigtype", 0);
  8446. int smalltype = RequestString.GetInt("smalltype", 0);
  8447. int isprotect = RequestString.GetInt("isprotect", 0);
  8448. int level = RequestString.GetInt("level", 0);
  8449. int issubmit = RequestString.GetInt("issubmit", 0);
  8450. int isopen = RequestString.GetInt("isopen", 0);
  8451. int business = RequestString.GetInt("business", 0);
  8452. string workcontent = RequestString.GetFormString("workcontent");
  8453. lock (_MyLock)
  8454. {
  8455. using (TransactionScope trans = new TransactionScope())
  8456. {
  8457. #region 保存工单信息
  8458. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8459. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8460. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8461. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8462. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8463. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8464. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8465. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8466. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8467. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8468. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8469. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8470. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8471. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8472. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8473. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8474. modelT_Bus_WorkOrder.F_File = files;//附件
  8475. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8476. modelT_Bus_WorkOrder.F_Content = workcontent;
  8477. modelT_Bus_WorkOrder.F_Key = keys;
  8478. modelT_Bus_WorkOrder.F_Level = level;
  8479. modelT_Bus_WorkOrder.F_ToBereply = 0;
  8480. //是否直办(即时答复)0:,否1: 是
  8481. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8482. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8483. if (isopen > 0)
  8484. modelT_Bus_WorkOrder.F_IsOpen = isopen;
  8485. modelT_Bus_WorkOrder.F_Business = business;
  8486. //如果选择即刻答复:是,即为直办,工单结束
  8487. if (isresult == 1)
  8488. {
  8489. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8490. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  8491. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8492. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8493. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8494. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8495. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8496. }
  8497. else if (issubmit == 1)
  8498. {
  8499. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8500. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8501. }
  8502. #region
  8503. #endregion
  8504. if (state > 0)
  8505. {
  8506. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  8507. {
  8508. int assignid = RequestString.GetInt("assignid", 0);
  8509. int maindeptid = RequestString.GetInt("maindeptid", 0);
  8510. //string maindeptid = RequestString.GetFormString("maindeptid");
  8511. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8512. DateTime limittime = DateTime.Now;
  8513. try
  8514. {
  8515. limittime = DateTime.Now.AddDays(int.Parse(RequestString.GetFormString("limittime")));
  8516. }
  8517. catch
  8518. {
  8519. limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  8520. }
  8521. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8522. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  8523. //if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  8524. //{
  8525. // if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  8526. // {
  8527. // return Error("操作失败");
  8528. // }
  8529. //}
  8530. if (!string.IsNullOrEmpty(otherdeptids))
  8531. {
  8532. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8533. {
  8534. return Error("主办单位不能出现在协办单位");
  8535. }
  8536. }
  8537. if (limittime < DateTime.Now)
  8538. {
  8539. return Error("办理时限不能小于当前时间");
  8540. }
  8541. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8542. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  8543. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  8544. {
  8545. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  8546. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8547. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8548. {
  8549. int aid = 0;
  8550. using (TransactionScope tran = new TransactionScope())
  8551. {
  8552. if (assignid == 0)
  8553. {
  8554. #region 插入交办记录
  8555. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8556. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8557. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8558. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8559. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8560. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8561. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  8562. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8563. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8564. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8565. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8566. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8567. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8568. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8569. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8570. #endregion
  8571. }
  8572. else
  8573. {
  8574. #region 修改交办记录
  8575. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8576. if (modelT_Bus_AssignedInfo != null)
  8577. {
  8578. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8579. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8580. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8581. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8582. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8583. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8584. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  8585. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8586. assignBLL.Update(modelT_Bus_AssignedInfo);
  8587. aid = modelT_Bus_AssignedInfo.F_Id;
  8588. }
  8589. #endregion
  8590. }
  8591. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8592. {
  8593. #region 保存工单信息
  8594. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  8595. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8596. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8597. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  8598. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8599. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  8600. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8601. workorderBLL.Update(modelT_Bus_WorkOrder);
  8602. #endregion
  8603. #region 删除草稿信息
  8604. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8605. foreach (var cg in cglist)
  8606. {
  8607. cg.F_IsDelete = 1;
  8608. cg.F_DeleteUser = User.F_UserCode;
  8609. cg.F_DeleteTime = DateTime.Now;
  8610. assignBLL.Update(cg);
  8611. }
  8612. #endregion
  8613. #region 插入操作记录
  8614. Model.T_Bus_Operation opers = new Model.T_Bus_Operation();
  8615. opers.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8616. opers.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  8617. opers.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8618. string userinfos = User.depname + "(" + User.F_UserCode + ")";
  8619. opers.F_Message = userinfos + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8620. if (!string.IsNullOrEmpty(otherdeptids))
  8621. {
  8622. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8623. opers.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8624. }
  8625. opers.F_CreateUser = User.F_UserCode;
  8626. opers.F_CreateTime = DateTime.Now;
  8627. opers.F_IsDelete = 0;
  8628. operBLL.Add(opers);
  8629. //推送消息表
  8630. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8631. foreach (var u in users)
  8632. {
  8633. msg.AddInternalMessagesInfo("工单消息", opers.F_Message + ",工单编号:" + opers.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8634. }
  8635. #endregion
  8636. }
  8637. tran.Complete();
  8638. }
  8639. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  8640. }
  8641. else
  8642. {
  8643. return Error("已经交办过了");
  8644. }
  8645. }
  8646. else
  8647. {
  8648. return Error("操作失败");
  8649. }
  8650. }
  8651. else
  8652. {
  8653. return Error("权限不足");
  8654. }
  8655. }
  8656. workorderBLL.Update(modelT_Bus_WorkOrder);
  8657. #endregion
  8658. #region 插入操作记录
  8659. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8660. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8661. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8662. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8663. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8664. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8665. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  8666. {
  8667. oper.F_Message = userinfo + " 修改了工单";
  8668. }
  8669. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  8670. {
  8671. oper.F_Message = userinfo + " 修改并提交了工单";
  8672. }
  8673. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)//1)
  8674. {
  8675. oper.F_Message = userinfo + " 修改了重办工单";
  8676. }
  8677. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  8678. {
  8679. oper.F_Message = userinfo + " 修改并结案了工单";
  8680. }
  8681. oper.F_CreateUser = User.F_UserCode;
  8682. oper.F_CreateTime = DateTime.Now;
  8683. oper.F_IsDelete = 0;
  8684. operBLL.Add(oper);
  8685. //推送消息表
  8686. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  8687. {
  8688. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY'or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8689. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8690. foreach (var u in users)
  8691. {
  8692. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8693. }
  8694. }
  8695. //调用科大讯飞
  8696. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  8697. {
  8698. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  8699. 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());
  8700. if (bl)
  8701. {
  8702. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  8703. }
  8704. else
  8705. {
  8706. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  8707. }
  8708. }
  8709. #endregion
  8710. trans.Complete();
  8711. }
  8712. }
  8713. return Success("操作成功");
  8714. }
  8715. else
  8716. {
  8717. return Success("权限不足");
  8718. }
  8719. }
  8720. /// <summary>
  8721. /// 修改工单信息
  8722. /// </summary>
  8723. /// <returns></returns>
  8724. //[Authority]
  8725. public ActionResult EditWorkOrderBySource()
  8726. {
  8727. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8728. {
  8729. string workorderid = RequestString.GetFormString("workorderid");
  8730. int source = RequestString.GetInt("source", 0);
  8731. string cusname = RequestString.GetFormString("cusname");
  8732. string cussex = RequestString.GetFormString("cussex");
  8733. string cusphone = RequestString.GetFormString("cusphone");
  8734. string cusaddress = RequestString.GetFormString("cusaddress");
  8735. string email = RequestString.GetFormString("email");
  8736. string zipcode = RequestString.GetFormString("zipcode");
  8737. string conname = RequestString.GetFormString("conname");
  8738. string conphone = RequestString.GetFormString("conphone");
  8739. string title = RequestString.GetFormString("title");
  8740. string content = RequestString.GetFormString("content");
  8741. string files = RequestString.GetFormString("files");
  8742. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8743. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8744. string workcontent = RequestString.GetFormString("workcontent");
  8745. int isresult = RequestString.GetInt("isresult", 0);
  8746. string result = RequestString.GetFormString("result");
  8747. string keys = RequestString.GetFormString("keys");
  8748. string splituser = RequestString.GetFormString("splituser");
  8749. int type = RequestString.GetInt("type", 0);
  8750. int bigtype = RequestString.GetInt("bigtype", 0);
  8751. int smalltype = RequestString.GetInt("smalltype", 0);
  8752. int isprotect = RequestString.GetInt("isprotect", 0);
  8753. int level = RequestString.GetInt("level", 0);
  8754. int issubmit = RequestString.GetInt("issubmit", 0);
  8755. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8756. if (modelT_Bus_WorkOrder != null)
  8757. {
  8758. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  8759. {
  8760. using (TransactionScope trans = new TransactionScope())
  8761. {
  8762. #region 保存工单信息
  8763. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8764. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8765. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8766. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8767. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8768. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8769. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8770. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8771. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8772. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8773. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8774. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8775. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8776. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8777. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8778. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8779. modelT_Bus_WorkOrder.F_File = files;//附件
  8780. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8781. modelT_Bus_WorkOrder.F_Key = keys;
  8782. modelT_Bus_WorkOrder.F_Level = level;
  8783. //是否直办(即时答复)0:,否1: 是
  8784. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8785. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8786. modelT_Bus_WorkOrder.F_Content = workcontent;
  8787. //如果选择即刻答复:是,即为直办,工单结束
  8788. if (isresult == 1)
  8789. {
  8790. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8791. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  8792. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8793. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8794. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8795. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8796. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8797. }
  8798. else if (issubmit == 1)
  8799. {
  8800. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8801. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8802. }
  8803. #region
  8804. //20190715 去掉审核环节 zhengbingbing
  8805. //else
  8806. //{
  8807. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8808. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  8809. //}
  8810. //20190329
  8811. //else if (issubmit == 1)
  8812. //{
  8813. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8814. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  8815. //}
  8816. #endregion
  8817. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  8818. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  8819. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  8820. modelT_Bus_WorkOrder.F_IsDelete = 0;
  8821. workorderBLL.Update(modelT_Bus_WorkOrder);
  8822. #endregion
  8823. #region 插入操作记录
  8824. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8825. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8826. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8827. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8828. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8829. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8830. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  8831. {
  8832. oper.F_Message = userinfo + " 处理了工单";
  8833. }
  8834. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  8835. {
  8836. oper.F_Message = userinfo + " 处理并提交了工单";
  8837. }
  8838. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  8839. {
  8840. oper.F_Message = userinfo + " 处理并结案了工单";
  8841. }
  8842. oper.F_CreateUser = User.F_UserCode;
  8843. oper.F_CreateTime = DateTime.Now;
  8844. oper.F_IsDelete = 0;
  8845. operBLL.Add(oper);
  8846. //推送消息表
  8847. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  8848. {
  8849. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8850. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8851. foreach (var u in users)
  8852. {
  8853. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8854. }
  8855. }
  8856. //调用科大讯飞
  8857. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  8858. {
  8859. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  8860. 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());
  8861. if (bl)
  8862. {
  8863. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  8864. }
  8865. else
  8866. {
  8867. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  8868. }
  8869. }
  8870. #endregion
  8871. trans.Complete();
  8872. }
  8873. return Success("操作成功");
  8874. }
  8875. else
  8876. {
  8877. return Error("已经处理过了");
  8878. }
  8879. }
  8880. else
  8881. {
  8882. return Error("操作失败");
  8883. }
  8884. }
  8885. else
  8886. {
  8887. return Success("权限不足");
  8888. }
  8889. }
  8890. #region 新增审核工单流程
  8891. /// <summary>
  8892. /// 20190315需求变动,新增审核工单,由组长审核
  8893. /// </summary>
  8894. /// <param name="ids"></param>
  8895. /// <returns></returns>
  8896. //[Authority]
  8897. public ActionResult AuditWorkOrder()
  8898. {
  8899. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8900. {
  8901. string workorderid = RequestString.GetFormString("workorderid");
  8902. int state = RequestString.GetInt("state", 0);
  8903. string reason = RequestString.GetFormString("reason");
  8904. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8905. if (modelT_Bus_WorkOrder != null)
  8906. {
  8907. using (TransactionScope trans = new TransactionScope())
  8908. {
  8909. if (modelT_Bus_WorkOrder != null)
  8910. {
  8911. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8912. {
  8913. var opt = "审核并提交"; var re = "";
  8914. #region 保存工单信息
  8915. if (state == 1)
  8916. {
  8917. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8918. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  8919. }
  8920. else
  8921. {
  8922. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  8923. opt = "审核并退回";
  8924. re = ",退回原因:" + reason;
  8925. }
  8926. workorderBLL.Update(modelT_Bus_WorkOrder);
  8927. #endregion
  8928. #region 插入操作记录
  8929. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8930. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8931. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8932. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8933. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  8934. oper.F_CreateUser = User.F_UserCode;
  8935. oper.F_CreateTime = DateTime.Now;
  8936. oper.F_IsDelete = 0;
  8937. operBLL.Add(oper);
  8938. //推送消息表
  8939. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  8940. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8941. {
  8942. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8943. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8944. foreach (var u in users)
  8945. {
  8946. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  8947. }
  8948. }
  8949. #endregion
  8950. }
  8951. }
  8952. trans.Complete();
  8953. }
  8954. return Success("操作成功");
  8955. }
  8956. else
  8957. {
  8958. return Error("操作失败");
  8959. }
  8960. }
  8961. else
  8962. {
  8963. return Error("权限不足");
  8964. }
  8965. }
  8966. #endregion
  8967. /// <summary>
  8968. /// 提交工单
  8969. /// </summary>
  8970. /// <param name="ids"></param>
  8971. /// <returns></returns>
  8972. //[Authority]
  8973. public ActionResult SubmitWorkOrder(string[] ids)
  8974. {
  8975. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  8976. {
  8977. if (ids != null && ids.Length > 0)
  8978. {
  8979. foreach (string str in ids)
  8980. {
  8981. using (TransactionScope trans = new TransactionScope())
  8982. {
  8983. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  8984. if (modelT_Bus_WorkOrder != null)
  8985. {
  8986. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  8987. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8988. {
  8989. #region 保存工单信息
  8990. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8991. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  8992. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  8993. workorderBLL.Update(modelT_Bus_WorkOrder);
  8994. #endregion
  8995. #region 插入操作记录
  8996. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8997. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8998. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8999. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9000. oper.F_Message = userinfo + " 提交了工单";
  9001. oper.F_CreateUser = User.F_UserCode;
  9002. oper.F_CreateTime = DateTime.Now;
  9003. oper.F_IsDelete = 0;
  9004. operBLL.Add(oper);
  9005. //推送消息表
  9006. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  9007. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9008. {
  9009. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9010. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9011. foreach (var u in users)
  9012. {
  9013. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9014. }
  9015. }
  9016. #endregion
  9017. }
  9018. }
  9019. trans.Complete();
  9020. }
  9021. }
  9022. return Success("操作成功");
  9023. }
  9024. else
  9025. {
  9026. return Error("操作失败");
  9027. }
  9028. }
  9029. else
  9030. {
  9031. return Error("权限不足");
  9032. }
  9033. }
  9034. /// <summary>
  9035. /// 回退工单
  9036. /// </summary>
  9037. /// <returns></returns>
  9038. //[Authority]
  9039. public ActionResult ReturnWorkOrder()
  9040. {
  9041. string workorderid = RequestString.GetFormString("workorderid");
  9042. string backuser = RequestString.GetFormString("backuser");
  9043. string backreason = RequestString.GetFormString("backreason");
  9044. string files = RequestString.GetFormString("files");
  9045. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  9046. if (modelT_Bus_WorkOrder != null)
  9047. {
  9048. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  9049. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  9050. {
  9051. using (TransactionScope trans = new TransactionScope())
  9052. {
  9053. #region 保存工单信息
  9054. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  9055. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  9056. modelT_Bus_WorkOrder.F_IsResult = 0;
  9057. modelT_Bus_WorkOrder.F_IsReturn = 1;
  9058. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9059. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9060. modelT_Bus_WorkOrder.F_Prevaricate += 1;
  9061. if (modelT_Bus_WorkOrder .F_Prevaricate >=3)
  9062. {
  9063. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  9064. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9065. modelT_Bus_RemindRecord.F_AssignedId = 0;
  9066. modelT_Bus_RemindRecord.F_Type = 1;
  9067. modelT_Bus_RemindRecord.F_Content = "推诿工单";
  9068. modelT_Bus_RemindRecord.F_State =0;
  9069. modelT_Bus_RemindRecord.F_IsDelete = 0;
  9070. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  9071. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  9072. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  9073. }
  9074. workorderBLL.Update(modelT_Bus_WorkOrder);
  9075. #endregion
  9076. #region 插入批示记录
  9077. //批示记录
  9078. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  9079. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  9080. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  9081. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  9082. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  9083. model_T_Bus_SubmitSuper.F_File = files;//附件
  9084. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  9085. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  9086. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  9087. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  9088. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  9089. #endregion
  9090. #region 插入操作记录
  9091. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9092. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9093. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9094. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9095. oper.F_Message = userinfo + " 回退了工单";
  9096. oper.F_CreateUser = User.F_UserCode;
  9097. oper.F_CreateTime = DateTime.Now;
  9098. oper.F_IsDelete = 0;
  9099. operBLL.Add(oper);
  9100. #endregion
  9101. trans.Complete();
  9102. }
  9103. return Success("操作成功");
  9104. }
  9105. else
  9106. {
  9107. return Error("已经处理过了");
  9108. }
  9109. }
  9110. else
  9111. {
  9112. return Error("操作失败");
  9113. }
  9114. }
  9115. /// <summary>
  9116. /// 领导批示/市长指示
  9117. /// </summary>
  9118. /// <param name="ids"></param>
  9119. /// <returns></returns>
  9120. //[Authority]
  9121. public ActionResult SuperWorkOrder()
  9122. {
  9123. string workorderid = RequestString.GetFormString("workorderid");
  9124. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  9125. string superuser = RequestString.GetFormString("superuser");
  9126. string superopinion = RequestString.GetFormString("superopinion");
  9127. string files = RequestString.GetFormString("files");
  9128. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9129. if (modelT_Bus_WorkOrder != null)
  9130. {
  9131. using (TransactionScope trans = new TransactionScope())
  9132. {
  9133. #region 保存工单信息 no use
  9134. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  9135. //workorderBLL.Update(modelT_Bus_WorkOrder);
  9136. #endregion
  9137. #region 插入批示记录
  9138. //批示记录
  9139. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  9140. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  9141. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  9142. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  9143. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  9144. model_T_Bus_SubmitSuper.F_File = files;//附件
  9145. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  9146. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  9147. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  9148. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  9149. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  9150. #endregion
  9151. #region 插入操作记录
  9152. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9153. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9154. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9155. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9156. oper.F_Message = userinfo+ " 批示了工单";
  9157. oper.F_CreateUser = User.F_UserCode;
  9158. oper.F_CreateTime = DateTime.Now;
  9159. oper.F_IsDelete = 0;
  9160. operBLL.Add(oper);
  9161. #endregion
  9162. trans.Complete();
  9163. }
  9164. return Success("操作成功");
  9165. }
  9166. else
  9167. {
  9168. return Error("操作失败");
  9169. }
  9170. }
  9171. /// <summary>
  9172. /// 办理中交办
  9173. /// </summary>
  9174. /// <returns></returns>
  9175. //[Authority]
  9176. public ActionResult HandleAssign()
  9177. {
  9178. 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")
  9179. {
  9180. string workorderid = RequestString.GetFormString("workorderid");
  9181. int state = RequestString.GetInt("state", 0);
  9182. int assignid = RequestString.GetInt("assignid", 0);
  9183. string maindeptid = RequestString.GetFormString("maindeptid");
  9184. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9185. int limittime = RequestString.GetInt("limittime", 0);
  9186. string limittimes = RequestString.GetFormString("limittimes");
  9187. string resdatetime = "";
  9188. if (limittime > 0)
  9189. {
  9190. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  9191. 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];
  9192. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  9193. }
  9194. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  9195. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9196. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  9197. if (!string.IsNullOrEmpty(otherdeptids))
  9198. {
  9199. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  9200. if (both.Count() > 0)
  9201. {
  9202. return Error("主办单位不能出现在协办单位");
  9203. }
  9204. }
  9205. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9206. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9207. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder;
  9208. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9209. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  9210. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  9211. {
  9212. int aid = 0; var rre = "";
  9213. using (TransactionScope trans = new TransactionScope())
  9214. {
  9215. string newids = ""; string errdeptid = ""; string deptname = "";
  9216. foreach (var deptinfo in deptlist)
  9217. {
  9218. deptname += deptinfo.F_DeptName + ",";
  9219. #region 新增工单
  9220. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  9221. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  9222. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  9223. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  9224. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  9225. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  9226. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  9227. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  9228. {
  9229. errdeptid += deptinfo.F_DeptName + ",";
  9230. continue;
  9231. }
  9232. #endregion
  9233. #region 交办
  9234. #region 插入交办记录
  9235. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  9236. if (modelT_Bus_WorkOrder.F_Level == 2)
  9237. {
  9238. try
  9239. {
  9240. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  9241. }
  9242. catch
  9243. {
  9244. return Error("请选择正确的时间");
  9245. }
  9246. }
  9247. else
  9248. {
  9249. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9250. }
  9251. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  9252. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9253. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9254. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9255. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9256. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9257. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9258. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9259. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9260. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9261. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9262. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9263. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9264. #endregion
  9265. #endregion
  9266. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9267. {
  9268. #region 保存工单信息
  9269. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  9270. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  9271. if (modelT_Bus_WorkOrder1.F_Level == 2)
  9272. {
  9273. try
  9274. {
  9275. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  9276. }
  9277. catch
  9278. {
  9279. return Error("请选择正确的时间");
  9280. }
  9281. }
  9282. else
  9283. {
  9284. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  9285. }
  9286. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  9287. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  9288. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  9289. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  9290. workorderBLL.Update(modelT_Bus_WorkOrder1);
  9291. #endregion
  9292. #region 删除草稿信息
  9293. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  9294. foreach (var cg in cglist)
  9295. {
  9296. cg.F_IsDelete = 1;
  9297. cg.F_DeleteUser = User.F_UserCode;
  9298. cg.F_DeleteTime = DateTime.Now;
  9299. assignBLL.Update(cg);
  9300. }
  9301. #endregion
  9302. #region 插入操作记录
  9303. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9304. if (!string.IsNullOrEmpty(otherdeptids))
  9305. {
  9306. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9307. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9308. }
  9309. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  9310. //推送消息表
  9311. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9312. foreach (var u in users)
  9313. {
  9314. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9315. }
  9316. #endregion
  9317. }
  9318. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  9319. }
  9320. newids = newids.Trim(','); deptname = deptname.Trim(',');
  9321. var msgs = "";
  9322. if (errdeptid == "")
  9323. {
  9324. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  9325. workorderBLL.Update(modelT_Bus_WorkOrder);
  9326. msgs = userinfo + " 交办多单位生成新工单,新工单编号为:" + newids;
  9327. }
  9328. else
  9329. {
  9330. errdeptid = errdeptid.Trim(',');
  9331. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  9332. }
  9333. #region 插入操作记录
  9334. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  9335. #endregion
  9336. trans.Complete();
  9337. #region
  9338. #endregion
  9339. }
  9340. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  9341. if (user != null && user.Count > 0)
  9342. {
  9343. foreach (var it in user)
  9344. {
  9345. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  9346. string msg = workorderid;
  9347. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  9348. }
  9349. }
  9350. //审核员给二级单位转派
  9351. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  9352. }
  9353. else
  9354. {
  9355. return Error("操作失败");
  9356. }
  9357. }
  9358. else
  9359. {
  9360. return Error("权限不足");
  9361. }
  9362. }
  9363. /// <summary>
  9364. ///
  9365. /// </summary>
  9366. /// <returns></returns>
  9367. //[Authority]
  9368. public ActionResult AssignWorkOrderNew()
  9369. {
  9370. 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")
  9371. {
  9372. string workorderid = RequestString.GetFormString("workorderid");
  9373. int state = RequestString.GetInt("state", 0);
  9374. int assignid = RequestString.GetInt("assignid", 0);
  9375. string maindeptid = RequestString.GetFormString("maindeptid");
  9376. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9377. int limittime = RequestString.GetInt("limittime", 0);
  9378. string limittimes = RequestString.GetFormString("limittimes");
  9379. string resdatetime = "";
  9380. if (limittime > 0)
  9381. {
  9382. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  9383. 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];
  9384. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  9385. }
  9386. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  9387. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9388. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  9389. if (!string.IsNullOrEmpty(otherdeptids))
  9390. {
  9391. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  9392. if (both.Count() > 0)
  9393. {
  9394. return Error("主办单位不能出现在协办单位");
  9395. }
  9396. }
  9397. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9398. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9399. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9400. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9401. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  9402. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  9403. {
  9404. int aid = 0; var rre = "";
  9405. using (TransactionScope trans = new TransactionScope())
  9406. {
  9407. if (deptlist.Count == 1)
  9408. {
  9409. var deptinfo = deptlist.FirstOrDefault();
  9410. if (assignid == 0)
  9411. {
  9412. #region 插入交办记录
  9413. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9414. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  9415. if (modelT_Bus_WorkOrder.F_Level == 2)
  9416. {
  9417. try
  9418. {
  9419. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  9420. }
  9421. catch
  9422. {
  9423. return Error("请选择正确的时间");
  9424. }
  9425. }
  9426. else
  9427. {
  9428. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9429. }
  9430. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  9431. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9432. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9433. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9434. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9435. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9436. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9437. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9438. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9439. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9440. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9441. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9442. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9443. #endregion
  9444. }
  9445. else
  9446. {
  9447. #region 修改交办记录
  9448. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  9449. if (modelT_Bus_AssignedInfo != null)
  9450. {
  9451. //modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  9452. if (modelT_Bus_WorkOrder.F_Level == 2)
  9453. {
  9454. try
  9455. {
  9456. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  9457. }
  9458. catch
  9459. {
  9460. return Error("请选择正确的时间");
  9461. }
  9462. }
  9463. else
  9464. {
  9465. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9466. }
  9467. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  9468. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9469. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9470. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9471. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9472. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9473. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9474. assignBLL.Update(modelT_Bus_AssignedInfo);
  9475. aid = modelT_Bus_AssignedInfo.F_Id;
  9476. }
  9477. #endregion
  9478. }
  9479. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9480. {
  9481. #region 保存工单信息
  9482. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9483. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  9484. if (modelT_Bus_WorkOrder.F_Level == 2)
  9485. {
  9486. try
  9487. {
  9488. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  9489. }
  9490. catch
  9491. {
  9492. return Error("请选择正确的时间");
  9493. }
  9494. }
  9495. else
  9496. {
  9497. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  9498. }
  9499. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  9500. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  9501. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9502. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9503. workorderBLL.Update(modelT_Bus_WorkOrder);
  9504. #endregion
  9505. #region 删除草稿信息
  9506. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9507. foreach (var cg in cglist)
  9508. {
  9509. cg.F_IsDelete = 1;
  9510. cg.F_DeleteUser = User.F_UserCode;
  9511. cg.F_DeleteTime = DateTime.Now;
  9512. assignBLL.Update(cg);
  9513. }
  9514. #endregion
  9515. #region 插入操作记录
  9516. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9517. if (!string.IsNullOrEmpty(otherdeptids))
  9518. {
  9519. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9520. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9521. }
  9522. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  9523. //推送消息表
  9524. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9525. foreach (var u in users)
  9526. {
  9527. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9528. }
  9529. #endregion
  9530. }
  9531. }
  9532. else
  9533. {
  9534. string newids = ""; string errdeptid = ""; string deptname = "";
  9535. foreach (var deptinfo in deptlist)
  9536. {
  9537. deptname += deptinfo.F_DeptName + ",";
  9538. #region 新增工单
  9539. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  9540. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  9541. string creattime =((DateTime ) modelT_Bus_WorkOrder1.F_CreateTime) .ToString("yyyy-MM-dd") + " 00:00:00";
  9542. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  9543. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  9544. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  9545. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  9546. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  9547. {
  9548. errdeptid += deptinfo.F_DeptName + ",";
  9549. continue;
  9550. }
  9551. #endregion
  9552. #region 交办
  9553. #region 插入交办记录
  9554. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  9555. if (modelT_Bus_WorkOrder.F_Level == 2)
  9556. {
  9557. try
  9558. {
  9559. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  9560. }
  9561. catch
  9562. {
  9563. return Error("请选择正确的时间");
  9564. }
  9565. }
  9566. else
  9567. {
  9568. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  9569. }
  9570. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  9571. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9572. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9573. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9574. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9575. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9576. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9577. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9578. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9579. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9580. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9581. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9582. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9583. #endregion
  9584. #endregion
  9585. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9586. {
  9587. #region 保存工单信息
  9588. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  9589. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  9590. if (modelT_Bus_WorkOrder1.F_Level == 2)
  9591. {
  9592. try
  9593. {
  9594. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  9595. }
  9596. catch
  9597. {
  9598. return Error("请选择正确的时间");
  9599. }
  9600. }
  9601. else
  9602. {
  9603. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  9604. }
  9605. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  9606. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  9607. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  9608. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  9609. workorderBLL.Update(modelT_Bus_WorkOrder1);
  9610. #endregion
  9611. #region 删除草稿信息
  9612. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  9613. foreach (var cg in cglist)
  9614. {
  9615. cg.F_IsDelete = 1;
  9616. cg.F_DeleteUser = User.F_UserCode;
  9617. cg.F_DeleteTime = DateTime.Now;
  9618. assignBLL.Update(cg);
  9619. }
  9620. #endregion
  9621. #region 插入操作记录
  9622. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9623. if (!string.IsNullOrEmpty(otherdeptids))
  9624. {
  9625. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9626. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9627. }
  9628. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  9629. //推送消息表
  9630. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9631. foreach (var u in users)
  9632. {
  9633. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9634. }
  9635. #endregion
  9636. }
  9637. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  9638. }
  9639. newids = newids.Trim(','); deptname = deptname.Trim(',');
  9640. var msgs = "";
  9641. if (errdeptid == "")
  9642. {
  9643. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  9644. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//
  9645. workorderBLL.Update(modelT_Bus_WorkOrder);
  9646. msgs = userinfo + " 交办多单位,生成新工单,新工单编号为:" + newids;
  9647. }
  9648. else
  9649. {
  9650. errdeptid = errdeptid.Trim(',');
  9651. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  9652. }
  9653. #region 插入操作记录
  9654. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  9655. #endregion
  9656. }
  9657. trans.Complete();
  9658. #region
  9659. #endregion
  9660. }
  9661. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  9662. if (user != null && user.Count > 0)
  9663. {
  9664. foreach (var it in user)
  9665. {
  9666. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  9667. string msg = workorderid;
  9668. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  9669. }
  9670. }
  9671. //审核员给二级单位转派
  9672. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  9673. }
  9674. else
  9675. {
  9676. return Error("操作失败");
  9677. }
  9678. }
  9679. else
  9680. {
  9681. return Error("权限不足");
  9682. }
  9683. }
  9684. /// <summary>
  9685. /// 交办工单
  9686. /// </summary>
  9687. /// <returns></returns>
  9688. //[Authority]
  9689. public ActionResult AssignWorkOrder()
  9690. {
  9691. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  9692. {
  9693. string workorderid = RequestString.GetFormString("workorderid");
  9694. int state = RequestString.GetInt("state", 0);
  9695. int assignid = RequestString.GetInt("assignid", 0);
  9696. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9697. //string maindeptid = RequestString.GetFormString("maindeptid");
  9698. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9699. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  9700. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9701. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  9702. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  9703. {
  9704. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  9705. {
  9706. return Error("操作失败");
  9707. }
  9708. }
  9709. if (!string.IsNullOrEmpty(otherdeptids))
  9710. {
  9711. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  9712. {
  9713. return Error("主办单位不能出现在协办单位");
  9714. }
  9715. }
  9716. if (limittime < DateTime.Now)
  9717. {
  9718. return Error("办理时限不能小于当前时间");
  9719. }
  9720. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9721. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9722. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  9723. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  9724. {
  9725. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  9726. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9727. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9728. {
  9729. int aid = 0;
  9730. using (TransactionScope trans = new TransactionScope())
  9731. {
  9732. if (assignid == 0)
  9733. {
  9734. #region 插入交办记录
  9735. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9736. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9737. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9738. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9739. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9740. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9741. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9742. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9743. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9744. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9745. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9746. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9747. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9748. modelT_Bus_AssignedInfo.F_TimeResp= assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9749. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9750. #endregion
  9751. }
  9752. else
  9753. {
  9754. #region 修改交办记录
  9755. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  9756. if (modelT_Bus_AssignedInfo != null)
  9757. {
  9758. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9759. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9760. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9761. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9762. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9763. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9764. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9765. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9766. assignBLL.Update(modelT_Bus_AssignedInfo);
  9767. aid = modelT_Bus_AssignedInfo.F_Id;
  9768. }
  9769. #endregion
  9770. }
  9771. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9772. {
  9773. #region 保存工单信息
  9774. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9775. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9776. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  9777. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  9778. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  9779. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9780. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9781. workorderBLL.Update(modelT_Bus_WorkOrder);
  9782. #endregion
  9783. #region 删除草稿信息
  9784. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9785. foreach (var cg in cglist)
  9786. {
  9787. cg.F_IsDelete = 1;
  9788. cg.F_DeleteUser = User.F_UserCode;
  9789. cg.F_DeleteTime = DateTime.Now;
  9790. assignBLL.Update(cg);
  9791. }
  9792. #endregion
  9793. #region 插入操作记录
  9794. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9795. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9796. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9797. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9798. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9799. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9800. if (!string.IsNullOrEmpty(otherdeptids))
  9801. {
  9802. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9803. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9804. }
  9805. oper.F_CreateUser = User.F_UserCode;
  9806. oper.F_CreateTime = DateTime.Now;
  9807. oper.F_IsDelete = 0;
  9808. operBLL.Add(oper);
  9809. //推送消息表
  9810. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9811. foreach (var u in users)
  9812. {
  9813. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9814. }
  9815. #endregion
  9816. }
  9817. trans.Complete();
  9818. }
  9819. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  9820. }
  9821. else
  9822. {
  9823. return Error("已经交办过了");
  9824. }
  9825. }
  9826. else
  9827. {
  9828. return Error("操作失败");
  9829. }
  9830. }
  9831. else
  9832. {
  9833. return Error("权限不足");
  9834. }
  9835. }
  9836. /// <summary>
  9837. /// 派工单
  9838. /// </summary>
  9839. /// <returns></returns>
  9840. //[Authority]
  9841. public ActionResult SplitWorkOrder()
  9842. {
  9843. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9844. {
  9845. string workorderid = RequestString.GetFormString("workorderid");
  9846. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9847. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9848. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  9849. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9850. string files = RequestString.GetFormString("files");
  9851. int state = RequestString.GetInt("state", 0);
  9852. int nextid = RequestString.GetInt("nextid", 0);
  9853. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9854. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9855. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  9856. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  9857. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  9858. {
  9859. if (limittime > modelT_Bus_AssignedInfo.F_LimitTime)
  9860. {
  9861. return Error("办理时限不能大于当前办理时限");
  9862. }
  9863. int type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  9864. 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"))
  9865. {
  9866. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  9867. {
  9868. using (TransactionScope trans = new TransactionScope())
  9869. {
  9870. if (nextid == 0)
  9871. {
  9872. #region 插入派单记录
  9873. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9874. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  9875. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  9876. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  9877. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  9878. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  9879. else
  9880. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  9881. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  9882. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  9883. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  9884. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  9885. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  9886. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  9887. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  9888. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  9889. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  9890. #endregion
  9891. }
  9892. else
  9893. {
  9894. #region 修改派单记录
  9895. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  9896. if (modelT_Bus_AssignedInfo_Next != null)
  9897. {
  9898. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  9899. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9900. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  9901. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  9902. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  9903. else
  9904. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  9905. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  9906. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  9907. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  9908. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  9909. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  9910. }
  9911. #endregion
  9912. }
  9913. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  9914. {
  9915. #region 保存交办信息
  9916. modelT_Bus_AssignedInfo.F_IsNext = 1;
  9917. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  9918. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  9919. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  9920. #endregion
  9921. #region 保存工单信息
  9922. modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  9923. workorderBLL.Update(modelT_Bus_WorkOrder);
  9924. #endregion
  9925. #region 插入操作记录
  9926. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9927. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9928. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9929. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9930. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9931. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  9932. oper.F_CreateUser = User.F_UserCode;
  9933. oper.F_CreateTime = DateTime.Now;
  9934. oper.F_IsDelete = 0;
  9935. operBLL.Add(oper);
  9936. //推送消息表
  9937. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  9938. #endregion
  9939. }
  9940. trans.Complete();
  9941. }
  9942. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + maindeptid + " ");
  9943. if (user != null && user.Count > 0)
  9944. {
  9945. foreach (var it in user)
  9946. {
  9947. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  9948. string msg = workorderid;
  9949. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  9950. }
  9951. }
  9952. //二级单位给三级单位转派都有短信提醒
  9953. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  9954. }
  9955. else
  9956. {
  9957. return Error("已经派过单了");
  9958. }
  9959. }
  9960. else
  9961. {
  9962. return Error("操作失败");
  9963. }
  9964. }
  9965. else
  9966. {
  9967. return Error("操作失败");
  9968. }
  9969. }
  9970. else
  9971. {
  9972. return Error("权限不足");
  9973. }
  9974. }
  9975. /// <summary>
  9976. ///催单短信
  9977. /// </summary>
  9978. /// <returns></returns>
  9979. //[Authority]
  9980. public ActionResult Reminders(string workorderid)
  9981. {
  9982. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  9983. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9984. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9985. if (modelT_Bus_AssignedInfo.F_IsNext ==1|| modelT_Bus_AssignedInfo.F_IsNext == 2)
  9986. {
  9987. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  9988. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId in (" + modelT_Bus_AssignedInfo_Next.F_MainDeptId + ") and F_DeleteFlag=0");
  9989. if (user != null)
  9990. {
  9991. foreach (var iv in user)
  9992. {
  9993. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  9994. if (!string.IsNullOrEmpty(iv.F_Mobile))
  9995. {
  9996. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  9997. string msg = workorderid;
  9998. bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "");
  9999. }
  10000. }
  10001. }
  10002. }
  10003. else
  10004. {
  10005. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId in (" + modelT_Bus_WorkOrder.F_MainDeptId + ") and F_DeleteFlag=0");
  10006. if (user != null)
  10007. {
  10008. foreach (var iv in user)
  10009. {
  10010. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  10011. if (!string.IsNullOrEmpty(iv.F_Mobile))
  10012. {
  10013. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  10014. string msg = workorderid;
  10015. bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "");
  10016. }
  10017. }
  10018. }
  10019. }
  10020. return Success("发送成功");
  10021. }
  10022. /// <summary>
  10023. /// 工单提醒
  10024. /// </summary>
  10025. /// <param name="workordercode"></param>
  10026. /// <param name="deptid"></param>
  10027. /// <param name="type"></param>
  10028. /// <returns></returns>
  10029. [HttpPost]
  10030. public ActionResult SendSms(string workordercode,string deptid,int type=0,int isfs=0)
  10031. {
  10032. if (string .IsNullOrEmpty (deptid))
  10033. return Error("请选择部门");
  10034. string msg = "";
  10035. try
  10036. {
  10037. var deptsprit = deptid.Split(',');
  10038. if (deptsprit != null)
  10039. {
  10040. foreach (var iv in deptsprit)
  10041. {
  10042. var dept = new BLL.T_Sys_Department().GetModel(int.Parse(iv));
  10043. if (dept.F_IsSms==1|| isfs==1)
  10044. {
  10045. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + iv + "and F_DeleteFlag=0");
  10046. if (user != null)
  10047. {
  10048. foreach (var it in user)
  10049. {
  10050. if (!string.IsNullOrEmpty(it.F_Mobile))
  10051. {
  10052. string count = "";
  10053. string templetid = "";
  10054. if (type == 0)
  10055. {
  10056. templetid = "43683";
  10057. count = "您有新的工单,请及时查收处理,工单编号"+ workordercode + ",(如通过手机APP登陆,若待查收中无工单,请注意查看重办中列表)" ;
  10058. }
  10059. else if (type == 1)
  10060. {
  10061. templetid = "26155";
  10062. count = "您有工单正在被督办,请及时处理,工单编号" + workordercode;
  10063. }
  10064. else if (type == 2)
  10065. {
  10066. templetid = "26154";
  10067. count = "您有紧急工单,请及时处理,工单编号" + workordercode;
  10068. }
  10069. else
  10070. {
  10071. templetid = "29265";
  10072. count = "您有工单已经超时,请尽快处理,工单编号" + workordercode;
  10073. }
  10074. bool n = SMSController.AddSmS(User.F_UserId, count, workordercode, it.F_Mobile, templetid);
  10075. if (n == false)
  10076. msg += it.F_UserName + "发送短信失败。";
  10077. }
  10078. }
  10079. }
  10080. }
  10081. }
  10082. }
  10083. }
  10084. catch
  10085. {
  10086. return Error("发送失败");
  10087. }
  10088. if (msg != "")
  10089. return Error(msg);
  10090. else
  10091. return Success("发送成功");
  10092. return Error("暂无人员");
  10093. }
  10094. /// <summary>
  10095. /// 办理结果通知
  10096. /// </summary>
  10097. /// <param name="msg1"></param>
  10098. /// <param name="msg2"></param>
  10099. /// <param name="msg3"></param>
  10100. /// <param name="msg4"></param>
  10101. /// <param name="mobile"></param>
  10102. /// <returns></returns>
  10103. public ActionResult SmsHand(string msg1 , string msg2 , string msg3,string msg4,string mobile)
  10104. {
  10105. string msg = msg1+","+ msg2 + "," + msg3 + "," + msg4;
  10106. string count = "尊敬的市民,您于" + msg1 + "反映的" + msg2 + "问题,工单号:" + msg3 + ",处理结果如下:" + msg4 + "。如有异议,请您再次致电12345,感谢您的支持。";
  10107. bool n = SMSController.AddSmS(User.F_UserId, count, msg, mobile, "26213");
  10108. if (n)
  10109. return Success("发送成功");
  10110. else
  10111. return Error ("发送失败");
  10112. }
  10113. public ActionResult SmsOverTime()
  10114. {
  10115. 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)");
  10116. if (workorder != null)
  10117. {
  10118. foreach (var it in workorder)
  10119. {
  10120. System.TimeSpan time = DateTime.Parse(it.F_LimitTime.ToString()) - DateTime.Now ;
  10121. if (time.TotalHours <=6)
  10122. {
  10123. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  10124. if (user != null)
  10125. {
  10126. foreach (var iv in user)
  10127. {
  10128. if (!string.IsNullOrEmpty(iv.F_Mobile))
  10129. {
  10130. string count = " 您有工单6小时后超期,请及时处理,工单号" + it.F_WorkOrderId;
  10131. bool n = SMSController.AddSmS(0, count, it.F_WorkOrderId, iv.F_Mobile, "26147");
  10132. if (n )
  10133. {
  10134. it.F_IsSms = 1;
  10135. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  10136. }
  10137. }
  10138. }
  10139. }
  10140. }
  10141. }
  10142. }
  10143. return Success("发送成功");
  10144. }
  10145. /// <summary>
  10146. /// 撤回待审核转办
  10147. /// 话务员操作撤回自己提交的工单
  10148. /// </summary>
  10149. /// <returns></returns>
  10150. //[Authority]
  10151. public ActionResult WithdrawDWorkOrder()
  10152. {
  10153. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY")
  10154. {
  10155. string workorderid = RequestString.GetFormString("workorderid");
  10156. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10157. if (modelT_Bus_WorkOrder != null && modelT_Bus_WorkOrder.F_CreateUser == User.F_UserCode && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10158. {
  10159. using (TransactionScope trans = new TransactionScope())
  10160. {
  10161. #region 保存工单信息
  10162. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  10163. workorderBLL.Update(modelT_Bus_WorkOrder);
  10164. #endregion
  10165. #region 插入操作记录
  10166. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10167. string msg = userinfo + " 撤回了工单";
  10168. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msg, User.F_UserCode);
  10169. #endregion
  10170. trans.Complete();
  10171. }
  10172. return Success("操作成功");
  10173. }
  10174. else
  10175. {
  10176. return Error("操作失败");
  10177. }
  10178. }
  10179. else
  10180. {
  10181. return Error("权限不足");
  10182. }
  10183. }
  10184. /// <summary>
  10185. /// 收回工单
  10186. /// </summary>
  10187. /// <returns></returns>
  10188. //[Authority]
  10189. public ActionResult TakeBackWorkOrder()
  10190. {
  10191. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  10192. {
  10193. string workorderid = RequestString.GetFormString("workorderid");
  10194. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10195. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10196. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  10197. {
  10198. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  10199. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  10200. {
  10201. using (TransactionScope trans = new TransactionScope())
  10202. {
  10203. #region 插入交办记录
  10204. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  10205. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10206. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  10207. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  10208. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  10209. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  10210. AssignedInfo.F_State = 0;//0草稿 1正式
  10211. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  10212. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  10213. AssignedInfo.F_IsDelete = 0;
  10214. AssignedInfo.F_IsOverdue = 0;
  10215. AssignedInfo.F_IsSure = 0;
  10216. AssignedInfo.F_IsReload = 0;
  10217. AssignedInfo.F_IsNext = 0;
  10218. assignBLL.Add(AssignedInfo);
  10219. #endregion
  10220. #region 保存工单信息
  10221. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  10222. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  10223. modelT_Bus_WorkOrder.F_MainDeptId = null;
  10224. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  10225. workorderBLL.Update(modelT_Bus_WorkOrder);
  10226. #endregion
  10227. #region 删除交办信息
  10228. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  10229. modelT_Bus_AssignedInfo.F_DeleteUser = User.F_UserCode;
  10230. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  10231. assignBLL.Update(modelT_Bus_AssignedInfo);
  10232. #endregion
  10233. #region 删除派单信息
  10234. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  10235. foreach (var cg in pdlist)
  10236. {
  10237. cg.F_IsDelete = 1;
  10238. cg.F_DeleteUser = User.F_UserCode;
  10239. cg.F_DeleteTime = DateTime.Now;
  10240. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  10241. }
  10242. #endregion
  10243. #region 删除二级单位处理信息
  10244. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  10245. foreach (var cg in cglist)
  10246. {
  10247. cg.F_IsDelete = 1;
  10248. cg.F_DeleteUser = User.F_UserCode;
  10249. cg.F_DeleteTime = DateTime.Now;
  10250. new BLL.T_Bus_Feedback_Next().Update(cg);
  10251. }
  10252. #endregion
  10253. #region 插入操作记录
  10254. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10255. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10256. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10257. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10258. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10259. oper.F_Message = userinfo + " 收回了工单";
  10260. oper.F_CreateUser = User.F_UserCode;
  10261. oper.F_CreateTime = DateTime.Now;
  10262. oper.F_IsDelete = 0;
  10263. operBLL.Add(oper);
  10264. #endregion
  10265. trans.Complete();
  10266. }
  10267. return Success("操作成功");
  10268. }
  10269. else
  10270. {
  10271. return Error("单位已查收,不能收回");
  10272. }
  10273. }
  10274. else
  10275. {
  10276. return Error("操作失败");
  10277. }
  10278. }
  10279. else
  10280. {
  10281. return Error("权限不足");
  10282. }
  10283. }
  10284. /// <summary>
  10285. /// 查收工单
  10286. /// </summary>
  10287. /// <returns></returns>
  10288. //[Authority]
  10289. public ActionResult ReceiveWorkOrder()
  10290. {
  10291. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10292. {
  10293. string workorderid = RequestString.GetFormString("workorderid");
  10294. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10295. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10296. //操作前新增判断状态
  10297. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  10298. 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)
  10299. {
  10300. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10301. {
  10302. using (TransactionScope trans = new TransactionScope())
  10303. {
  10304. #region 保存工单信息
  10305. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  10306. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  10307. workorderBLL.Update(modelT_Bus_WorkOrder);
  10308. #endregion
  10309. #region 保存查收信息
  10310. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  10311. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  10312. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10313. assignBLL.Update(modelT_Bus_AssignedInfo);
  10314. #endregion
  10315. #region 保存明细信息
  10316. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  10317. {
  10318. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  10319. foreach (string strid in strids)
  10320. {
  10321. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  10322. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10323. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  10324. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  10325. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  10326. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  10327. modelT_Bus_AssignedItemInfo.F_State = 1;
  10328. modelT_Bus_AssignedItemInfo.F_Type = 2;
  10329. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  10330. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  10331. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  10332. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  10333. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  10334. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  10335. }
  10336. }
  10337. #endregion
  10338. #region 插入操作记录
  10339. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10340. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10341. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10342. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10343. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10344. oper.F_Message = userinfo + " 查收了工单";
  10345. oper.F_CreateUser = User.F_UserCode;
  10346. oper.F_CreateTime = DateTime.Now;
  10347. oper.F_IsDelete = 0;
  10348. operBLL.Add(oper);
  10349. #endregion
  10350. trans.Complete();
  10351. }
  10352. return Success("操作成功");
  10353. }
  10354. else
  10355. {
  10356. return Error("单位已查收,不能再次查收");
  10357. }
  10358. }
  10359. else
  10360. {
  10361. return Error("操作失败");
  10362. }
  10363. }
  10364. else
  10365. {
  10366. return Error("权限不足");
  10367. }
  10368. }
  10369. /// <summary>
  10370. /// 退回工单
  10371. /// </summary>
  10372. /// <returns></returns>
  10373. //[Authority]
  10374. public ActionResult RebackWorkOrder()
  10375. {
  10376. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10377. {
  10378. string workorderid = RequestString.GetFormString("workorderid");
  10379. string backreason = RequestString.GetFormString("backreason");
  10380. string file= RequestString.GetFormString("file");
  10381. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10382. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10383. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  10384. {
  10385. // if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10386. // {
  10387. using (TransactionScope trans = new TransactionScope())
  10388. {
  10389. #region 保存工单信息
  10390. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  10391. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  10392. workorderBLL.Update(modelT_Bus_WorkOrder);
  10393. #endregion
  10394. #region 插入退回申请信息
  10395. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  10396. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10397. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10398. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  10399. model_T_Bus_Feedback.F_IsAudit = 0;
  10400. model_T_Bus_Feedback.F_IsDelete = 0;
  10401. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  10402. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  10403. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  10404. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  10405. model_T_Bus_Feedback.F_State = 1;
  10406. model_T_Bus_Feedback.F_Type = 3;
  10407. model_T_Bus_Feedback.F_File = file;
  10408. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  10409. #endregion
  10410. #region 保存交办信息
  10411. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  10412. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10413. //{
  10414. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10415. //}
  10416. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  10417. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  10418. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10419. assignBLL.Update(modelT_Bus_AssignedInfo);
  10420. #endregion
  10421. #region 插入操作记录
  10422. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10423. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10424. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10425. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10426. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10427. oper.F_Message = userinfo + " 申请退回了工单";
  10428. oper.F_CreateUser = User.F_UserCode;
  10429. oper.F_CreateTime = DateTime.Now;
  10430. oper.F_IsDelete = 0;
  10431. operBLL.Add(oper);
  10432. //推送消息表
  10433. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  10434. #endregion
  10435. trans.Complete();
  10436. }
  10437. return Success("操作成功");
  10438. // }
  10439. // else
  10440. // {
  10441. // return Error("单位已查收,不能退回");
  10442. // }
  10443. }
  10444. else
  10445. {
  10446. return Error("操作失败");
  10447. }
  10448. }
  10449. else
  10450. {
  10451. return Error("权限不足");
  10452. }
  10453. }
  10454. /// <summary>
  10455. /// 审核退回工单
  10456. /// </summary>
  10457. /// <returns></returns>
  10458. //[Authority]
  10459. public ActionResult AuditRebackWorkOrder()
  10460. {
  10461. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  10462. {
  10463. string workorderid = RequestString.GetFormString("workorderid");
  10464. int state = RequestString.GetInt("state", 0);
  10465. string reason = RequestString.GetFormString("reason");
  10466. int isjb = RequestString.GetInt("isjb", 0);
  10467. int rebackid = RequestString.GetInt("rebackid", 0);
  10468. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10469. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  10470. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10471. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  10472. {
  10473. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  10474. //{
  10475. // return Error("操作失败");
  10476. //}
  10477. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  10478. {
  10479. using (TransactionScope trans = new TransactionScope())
  10480. {
  10481. var rre = "";
  10482. #region 保存查收信息
  10483. modelT_Bus_Feedback.F_IsAudit = state;//审核
  10484. modelT_Bus_Feedback.F_AuditUser = User.F_UserCode;
  10485. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  10486. modelT_Bus_Feedback.F_AuditReason = reason;
  10487. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  10488. #endregion
  10489. string strmsg = "同意";
  10490. if (modelT_Bus_Feedback.F_IsAudit == 1)
  10491. {
  10492. #region 插入交办记录
  10493. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  10494. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10495. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  10496. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  10497. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  10498. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  10499. AssignedInfo.F_State = 0;//0草稿 1正式
  10500. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  10501. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  10502. AssignedInfo.F_IsDelete = 0;
  10503. AssignedInfo.F_IsOverdue = 0;
  10504. AssignedInfo.F_IsSure = 0;
  10505. AssignedInfo.F_IsNext = 0;
  10506. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  10507. assignBLL.Add(AssignedInfo);
  10508. #endregion
  10509. #region 保存交办信息
  10510. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  10511. assignBLL.Update(modelT_Bus_AssignedInfo);
  10512. #endregion
  10513. #region 保存工单信息
  10514. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  10515. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  10516. workorderBLL.Update(modelT_Bus_WorkOrder);
  10517. #endregion
  10518. }
  10519. else
  10520. {
  10521. #region 保存工单信息
  10522. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  10523. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//待查收
  10524. workorderBLL.Update(modelT_Bus_WorkOrder);
  10525. #endregion
  10526. #region 保存交办信息
  10527. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  10528. modelT_Bus_AssignedInfo.F_IsSure = 4;
  10529. modelT_Bus_AssignedInfo.F_SureUser = "";
  10530. modelT_Bus_AssignedInfo.F_SureTime = null;
  10531. assignBLL.Update(modelT_Bus_AssignedInfo);
  10532. #endregion
  10533. strmsg = "拒绝";
  10534. }
  10535. #region 插入操作记录
  10536. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10537. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10538. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10539. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10540. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10541. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  10542. oper.F_CreateUser = User.F_UserCode;
  10543. oper.F_CreateTime = DateTime.Now;
  10544. oper.F_IsDelete = 0;
  10545. operBLL.Add(oper);
  10546. //推送消息表
  10547. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  10548. #endregion
  10549. if (modelT_Bus_AssignedInfo.F_MainDeptId==304)
  10550. {
  10551. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(),reason,User.F_UserCode).ToString();
  10552. }
  10553. if (isjb > 0)
  10554. {
  10555. if (modelT_Bus_Feedback.F_IsAudit == 1)
  10556. {
  10557. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  10558. {
  10559. string maindeptid = RequestString.GetFormString("maindeptid");
  10560. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10561. int limittime = RequestString.GetInt("limittime", 0);
  10562. string limittimes = RequestString.GetString ("limittimes");
  10563. string resdatetime = "";
  10564. if (limittime > 0)
  10565. {
  10566. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10567. 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];
  10568. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10569. }
  10570. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10571. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10572. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10573. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  10574. {
  10575. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  10576. {
  10577. return Error("操作失败");
  10578. }
  10579. }
  10580. if (!string.IsNullOrEmpty(otherdeptids))
  10581. {
  10582. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  10583. if (both.Count() > 0)
  10584. {
  10585. return Error("主办单位不能出现在协办单位");
  10586. }
  10587. }
  10588. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10589. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  10590. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  10591. {
  10592. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10593. {
  10594. int aid = 0;
  10595. if (deptlist.Count == 1)
  10596. {
  10597. var deptinfo = deptlist.FirstOrDefault();
  10598. #region 插入交办记录
  10599. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10600. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  10601. if (modelT_Bus_WorkOrder.F_Level == 2)
  10602. {
  10603. try
  10604. {
  10605. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10606. }
  10607. catch
  10608. {
  10609. return Error("请选择正确的时间");
  10610. }
  10611. }
  10612. else
  10613. {
  10614. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10615. }
  10616. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10617. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10618. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10619. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10620. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10621. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10622. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10623. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10624. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10625. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10626. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10627. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10628. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10629. #endregion
  10630. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10631. {
  10632. #region 保存工单信息
  10633. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  10634. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  10635. if (modelT_Bus_WorkOrder.F_Level == 2)
  10636. {
  10637. try
  10638. {
  10639. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  10640. }
  10641. catch
  10642. {
  10643. return Error("请选择正确的时间");
  10644. }
  10645. }
  10646. else
  10647. {
  10648. modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  10649. }
  10650. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  10651. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  10652. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  10653. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10654. workorderBLL.Update(modelT_Bus_WorkOrder);
  10655. #endregion
  10656. #region 删除草稿信息
  10657. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10658. foreach (var cg in cglist)
  10659. {
  10660. cg.F_IsDelete = 1;
  10661. cg.F_DeleteUser = User.F_UserCode;
  10662. cg.F_DeleteTime = DateTime.Now;
  10663. assignBLL.Update(cg);
  10664. }
  10665. #endregion
  10666. #region 插入操作记录
  10667. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10668. if (!string.IsNullOrEmpty(otherdeptids))
  10669. {
  10670. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10671. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10672. }
  10673. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  10674. //推送消息表
  10675. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  10676. foreach (var u in users)
  10677. {
  10678. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10679. }
  10680. #endregion
  10681. }
  10682. }
  10683. else
  10684. {
  10685. string newids = ""; string errdeptid = ""; string deptname = "";
  10686. foreach (var deptinfo in deptlist)
  10687. {
  10688. deptname += deptinfo.F_DeptName + ",";
  10689. #region 新增工单
  10690. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  10691. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  10692. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  10693. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  10694. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  10695. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  10696. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  10697. {
  10698. errdeptid += deptinfo.F_DeptName + ",";
  10699. continue;
  10700. }
  10701. #endregion
  10702. #region 交办
  10703. #region 插入交办记录
  10704. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10705. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  10706. if (modelT_Bus_WorkOrder.F_Level == 2)
  10707. {
  10708. try
  10709. {
  10710. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10711. }
  10712. catch
  10713. {
  10714. return Error("请选择正确的时间");
  10715. }
  10716. }
  10717. else
  10718. {
  10719. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10720. }
  10721. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10722. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10723. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10724. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10725. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  10726. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10727. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10728. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10729. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10730. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10731. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10732. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10733. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10734. #endregion
  10735. #endregion
  10736. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10737. {
  10738. #region 保存工单信息
  10739. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  10740. if (modelT_Bus_WorkOrder.F_Level == 2)
  10741. {
  10742. try
  10743. {
  10744. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  10745. }
  10746. catch
  10747. {
  10748. return Error("请选择正确的时间");
  10749. }
  10750. }
  10751. else
  10752. {
  10753. modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  10754. }
  10755. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  10756. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  10757. modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  10758. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  10759. workorderBLL.Update(modelT_Bus_WorkOrder1);
  10760. #endregion
  10761. #region 删除草稿信息
  10762. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  10763. foreach (var cg in cglist)
  10764. {
  10765. cg.F_IsDelete = 1;
  10766. cg.F_DeleteUser = User.F_UserCode;
  10767. cg.F_DeleteTime = DateTime.Now;
  10768. assignBLL.Update(cg);
  10769. }
  10770. #endregion
  10771. #region 插入操作记录
  10772. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10773. if (!string.IsNullOrEmpty(otherdeptids))
  10774. {
  10775. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10776. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10777. }
  10778. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  10779. //推送消息表
  10780. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  10781. foreach (var u in users)
  10782. {
  10783. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10784. }
  10785. #endregion
  10786. }
  10787. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  10788. }
  10789. newids = newids.Trim(','); deptname = deptname.Trim(',');
  10790. var msgs = "";
  10791. if (errdeptid == "")
  10792. {
  10793. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  10794. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  10795. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  10796. workorderBLL.Update(modelT_Bus_WorkOrder);
  10797. msgs = userinfo + " 交办多单位,关闭此工单并生成新工单,新工单编号为:" + newids;
  10798. }
  10799. else
  10800. {
  10801. errdeptid = errdeptid.Trim(',');
  10802. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  10803. }
  10804. #region 插入操作记录
  10805. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  10806. #endregion
  10807. }
  10808. #region
  10809. #endregion
  10810. }
  10811. else
  10812. {
  10813. return Error("已经交办过了");
  10814. }
  10815. }
  10816. else
  10817. {
  10818. return Error("操作失败");
  10819. }
  10820. }
  10821. else
  10822. {
  10823. return Error("权限不足");
  10824. }
  10825. }
  10826. }
  10827. trans.Complete();
  10828. }
  10829. return Success("操作成功");
  10830. }
  10831. else
  10832. {
  10833. return Error("此审核已经处理");
  10834. }
  10835. }
  10836. else
  10837. {
  10838. return Error("操作失败");
  10839. }
  10840. }
  10841. else
  10842. {
  10843. return Error("权限不足");
  10844. }
  10845. }
  10846. /// <summary>
  10847. /// 申请延时
  10848. /// </summary>
  10849. /// <returns></returns>
  10850. //[Authority]
  10851. public ActionResult DelayWorkOrder()
  10852. {
  10853. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  10854. {
  10855. string workorderid = RequestString.GetFormString("workorderid");
  10856. //int state = RequestString.GetInt("state", 0);
  10857. int newlimittime = RequestString.GetInt("newlimittime", 0);
  10858. //从工作日管理中取得时间判断
  10859. string resdatetime = "";
  10860. string reason = RequestString.GetFormString("reason");
  10861. string files = RequestString.GetFormString("files");
  10862. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10863. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10864. var Delay = new BLL.T_Bus_DelayTime().GetModelList("F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId+ "' and F_IsAudit in (0,1)");
  10865. if (Delay != null && Delay.Count > 0)
  10866. return Error("只能申请一次延时");
  10867. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  10868. {
  10869. using (TransactionScope trans = new TransactionScope())
  10870. {
  10871. #region 保存工单信息
  10872. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  10873. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  10874. workorderBLL.Update(modelT_Bus_WorkOrder);
  10875. #endregion
  10876. #region 插入申请延时信息
  10877. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  10878. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10879. //delay.F_State = state;
  10880. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  10881. if (newlimittime > 0)
  10882. {
  10883. 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];
  10884. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10885. }
  10886. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10887. // delay.F_NewTime =DateTime .Now .AddDays ( newlimittime);
  10888. delay.F_NewTime = Convert.ToDateTime(resdatetime);
  10889. delay.F_Reason = reason;
  10890. delay.F_State = 1;
  10891. delay.F_IsAudit = 0;
  10892. delay.F_IsDelete = 0;
  10893. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10894. delay.F_CreateUser = User.F_UserCode;
  10895. delay.F_CreateTime = DateTime.Now;
  10896. delay.F_File = files;
  10897. new BLL.T_Bus_DelayTime().Add(delay);
  10898. #endregion
  10899. #region 插入操作记录
  10900. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10901. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10902. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10903. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10904. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10905. oper.F_Message = userinfo + " 申请了延时处理";
  10906. oper.F_CreateUser = User.F_UserCode;
  10907. oper.F_CreateTime = DateTime.Now;
  10908. oper.F_IsDelete = 0;
  10909. operBLL.Add(oper);
  10910. //推送消息表
  10911. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  10912. #endregion
  10913. trans.Complete();
  10914. }
  10915. return Success("操作成功");
  10916. }
  10917. else
  10918. {
  10919. return Error("操作失败");
  10920. }
  10921. }
  10922. else
  10923. {
  10924. return Error("权限不足");
  10925. }
  10926. }
  10927. /// <summary>
  10928. /// 审核延时工单
  10929. /// </summary>
  10930. /// <returns></returns>
  10931. //[Authority]
  10932. public ActionResult AuditDelayWorkOrder()
  10933. {
  10934. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  10935. {
  10936. string workorderid = RequestString.GetFormString("workorderid");
  10937. int state = RequestString.GetInt("state", 0);
  10938. string reason = RequestString.GetFormString("reason");
  10939. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  10940. int delayid = RequestString.GetInt("delayid", 0);
  10941. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10942. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  10943. 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");
  10944. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10945. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  10946. {
  10947. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  10948. //{
  10949. // return Error("操作失败");
  10950. //}
  10951. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  10952. {
  10953. using (TransactionScope trans = new TransactionScope())
  10954. {
  10955. #region 保存工单信息
  10956. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  10957. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  10958. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  10959. workorderBLL.Update(modelT_Bus_WorkOrder);
  10960. #endregion
  10961. #region 保存审核信息
  10962. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  10963. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  10964. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  10965. modelT_Bus_DelayTime.F_RefuseReason = reason;
  10966. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  10967. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  10968. #endregion
  10969. string type = "同意"; string des = "";
  10970. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  10971. {
  10972. #region 修改交办记录
  10973. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  10974. assignBLL.Update(modelT_Bus_AssignedInfo);
  10975. if (modelT_Bus_AssignedInfo_Next!=null && modelT_Bus_AssignedInfo_Next.Count >0)
  10976. {
  10977. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value .Subtract(modelT_Bus_DelayTime.F_OldTime.Value );
  10978. int tss = int.Parse(Math.Round(ts.TotalHours , 0).ToString());
  10979. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  10980. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  10981. .AddHours(tss);
  10982. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  10983. }
  10984. #endregion
  10985. #region 处理协办单位
  10986. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10987. foreach (var xb in xblist)
  10988. {
  10989. //xb.F_LimitTime = DateTime.Now;
  10990. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  10991. assignItemBLL.Update(xb);
  10992. }
  10993. #endregion
  10994. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  10995. }
  10996. else
  10997. {
  10998. modelT_Bus_AssignedInfo.F_IsSure = 5;
  10999. assignBLL.Update(modelT_Bus_AssignedInfo);
  11000. type = "拒绝";
  11001. }
  11002. #region 插入操作记录
  11003. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11004. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11005. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11006. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11007. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11008. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  11009. oper.F_CreateUser = User.F_UserCode;
  11010. oper.F_CreateTime = DateTime.Now;
  11011. oper.F_IsDelete = 0;
  11012. operBLL.Add(oper);
  11013. //推送消息表
  11014. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11015. #endregion
  11016. trans.Complete();
  11017. }
  11018. return Success("操作成功");
  11019. }
  11020. else
  11021. {
  11022. return Error("此审核已经处理");
  11023. }
  11024. }
  11025. else
  11026. {
  11027. return Error("操作失败");
  11028. }
  11029. }
  11030. else
  11031. {
  11032. return Error("权限不足");
  11033. }
  11034. }
  11035. /// <summary>
  11036. /// 批量审核延时
  11037. /// </summary>
  11038. /// <param name="ids"></param>
  11039. /// <returns></returns>
  11040. //[Authority]
  11041. public ActionResult AuditDelayWorkOrderBatch(string ids)
  11042. {
  11043. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  11044. {
  11045. int state = RequestString.GetInt("state", 0);
  11046. string reason = RequestString.GetFormString("reason");
  11047. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  11048. string errids = "";string errids1 = "";
  11049. if (!string.IsNullOrEmpty(ids))
  11050. {
  11051. string[] strids = ids.Split(',');
  11052. foreach (string str in strids)
  11053. {
  11054. using (TransactionScope trans = new TransactionScope())
  11055. {
  11056. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  11057. 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();
  11058. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  11059. 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");
  11060. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  11061. {
  11062. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  11063. {
  11064. #region 保存工单信息
  11065. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  11066. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime. F_NewTime;
  11067. workorderBLL.Update(modelT_Bus_WorkOrder);
  11068. #endregion
  11069. #region 保存审核信息
  11070. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  11071. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  11072. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  11073. modelT_Bus_DelayTime.F_RefuseReason = reason;
  11074. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  11075. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  11076. #endregion
  11077. string type = "同意"; string des = "";
  11078. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  11079. {
  11080. #region 修改交办记录
  11081. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  11082. assignBLL.Update(modelT_Bus_AssignedInfo);
  11083. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  11084. {
  11085. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  11086. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  11087. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  11088. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  11089. .AddHours(tss);
  11090. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  11091. }
  11092. #endregion
  11093. #region 处理协办单位
  11094. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11095. foreach (var xb in xblist)
  11096. {
  11097. //xb.F_LimitTime = DateTime.Now;
  11098. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  11099. assignItemBLL.Update(xb);
  11100. }
  11101. #endregion
  11102. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  11103. }
  11104. else
  11105. {
  11106. type = "拒绝";
  11107. }
  11108. #region 插入操作记录
  11109. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11110. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11111. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11112. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11113. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11114. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  11115. oper.F_CreateUser = User.F_UserCode;
  11116. oper.F_CreateTime = DateTime.Now;
  11117. oper.F_IsDelete = 0;
  11118. operBLL.Add(oper);
  11119. //推送消息表
  11120. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11121. #endregion
  11122. }
  11123. else
  11124. errids1 += str + ",";
  11125. }
  11126. trans.Complete();
  11127. }
  11128. }
  11129. if (errids1 == "" && errids == "")
  11130. return Success("操作成功");
  11131. else
  11132. {
  11133. string msg = "";
  11134. if (errids1 != "")
  11135. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  11136. if(errids!="")
  11137. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  11138. return Error("部分工单操作失败"+ msg);
  11139. }
  11140. }
  11141. else
  11142. {
  11143. return Error("参数获取失败");
  11144. }
  11145. }
  11146. else
  11147. {
  11148. return Error("权限不足");
  11149. }
  11150. }
  11151. /// <summary>
  11152. /// 办理工单
  11153. /// </summary>
  11154. /// <returns></returns>
  11155. //[Authority]
  11156. public ActionResult FeedBackWorkOrder()
  11157. {
  11158. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11159. {
  11160. string workorderid = RequestString.GetFormString("workorderid");
  11161. string dealman = RequestString.GetFormString("dealman");
  11162. string result = RequestString.GetFormString("result");
  11163. string files = RequestString.GetFormString("files");
  11164. int state = RequestString.GetInt("state", 0);
  11165. int feedbackid = RequestString.GetInt("feedbackid", 0);
  11166. int isproresult = RequestString.GetInt("isproresult", 0);//是否向当事人反馈
  11167. string prosituation = RequestString.GetFormString("prosituation");
  11168. string dealcontact = RequestString.GetFormString("dealcontact");
  11169. string connecttime=RequestString.GetFormString("connecttime");
  11170. string connectmode = RequestString.GetFormString("connectmode");
  11171. string replycontent = RequestString.GetFormString("replycontent");
  11172. int isstaisfied= RequestString.GetInt("isstaisfied", 0);
  11173. string duties= RequestString.GetFormString("duties");
  11174. string situation = RequestString.GetFormString("situation");
  11175. string IsProResultState = RequestString.GetFormString("IsProResultState ");
  11176. string Unsuccessful = RequestString.GetFormString("Unsuccessful");
  11177. string AuditUser = RequestString.GetFormString("AuditUser");//审核领导
  11178. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11179. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11180. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  11181. int type = 0;
  11182. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  11183. {
  11184. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  11185. if (type > 0)
  11186. {
  11187. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  11188. if (modelT_Bus_WorkOrder.F_WorkState >= (int)EnumWorkState.dealing|| modelT_Bus_WorkOrder.F_IsProResult ==0)
  11189. {
  11190. using (TransactionScope trans = new TransactionScope())
  11191. {
  11192. if (feedbackid == 0)
  11193. {
  11194. #region 插入反馈记录
  11195. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11196. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11197. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  11198. modelT_Bus_Feedback.F_DealUser = dealman;
  11199. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11200. #region 20200114新增字段 zhengbingbing
  11201. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11202. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  11203. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11204. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  11205. DateTime contime = DateTime.Now;
  11206. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11207. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11208. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  11209. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  11210. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11211. modelT_Bus_Feedback.F_Duties = duties;//职务
  11212. modelT_Bus_Feedback.F_Situation = situation;
  11213. modelT_Bus_Feedback.F_IsProResult = isproresult;
  11214. #endregion
  11215. modelT_Bus_Feedback.F_File = files;
  11216. modelT_Bus_Feedback.F_IsAudit = 0;
  11217. modelT_Bus_Feedback.F_IsDelete = 0;
  11218. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  11219. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11220. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  11221. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11222. modelT_Bus_Feedback.F_State = state;
  11223. modelT_Bus_Feedback.F_Type = type;
  11224. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11225. #endregion
  11226. }
  11227. else
  11228. {
  11229. #region 修改反馈记录
  11230. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  11231. if (modelT_Bus_Feedback != null)
  11232. {
  11233. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11234. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11235. modelT_Bus_Feedback.F_DealUser = dealman;
  11236. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11237. modelT_Bus_Feedback.F_File = files;
  11238. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  11239. #region 20200114新增字段 zhengbingbing
  11240. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11241. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  11242. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11243. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  11244. DateTime contime = DateTime.Now;
  11245. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11246. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11247. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  11248. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  11249. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11250. modelT_Bus_Feedback.F_Duties = duties;//职务
  11251. modelT_Bus_Feedback.F_Situation = situation;
  11252. #endregion
  11253. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  11254. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11255. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  11256. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11257. modelT_Bus_Feedback.F_State = state;
  11258. modelT_Bus_Feedback.F_IsProResult = isproresult;
  11259. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  11260. {
  11261. modelT_Bus_Feedback.F_Type = 1;
  11262. }
  11263. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  11264. {
  11265. modelT_Bus_Feedback.F_Type = 2;
  11266. }
  11267. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  11268. }
  11269. #endregion
  11270. }
  11271. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  11272. {
  11273. string typemsg = "办理";
  11274. if (type == 1)
  11275. {
  11276. int iscs = 0;
  11277. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11278. {
  11279. iscs = 1;
  11280. }
  11281. #region 保存工单信息
  11282. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11283. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed ;//待回访
  11284. modelT_Bus_WorkOrder.F_Result = result;
  11285. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  11286. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11287. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11288. modelT_Bus_WorkOrder.F_ToBereply = 1;
  11289. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  11290. modelT_Bus_WorkOrder.F_IsProResult = isproresult;
  11291. workorderBLL.Update(modelT_Bus_WorkOrder);
  11292. #endregion
  11293. #region 保存交办信息
  11294. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11295. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11296. {
  11297. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11298. }
  11299. assignBLL.Update(modelT_Bus_AssignedInfo);
  11300. #endregion
  11301. #region 删除草稿信息
  11302. 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 + "'");
  11303. foreach (var cg in cglist)
  11304. {
  11305. cg.F_IsDelete = 1;
  11306. cg.F_DeleteUser = User.F_UserCode;
  11307. cg.F_DeleteTime = DateTime.Now;
  11308. new BLL.T_Bus_Feedback().Update(cg);
  11309. }
  11310. #endregion
  11311. #region 删除二级单位未办理信息
  11312. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11313. foreach (var ej in ejlist)
  11314. {
  11315. ej.F_IsDelete = 1;
  11316. ej.F_DeleteUser = User.F_UserCode;
  11317. ej.F_DeleteTime = DateTime.Now;
  11318. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  11319. }
  11320. #endregion
  11321. #region 处理协办单位
  11322. 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 + "'");
  11323. foreach (var xb in xblist)
  11324. {
  11325. xb.F_State = 2;
  11326. xb.F_SureUser = User.F_UserCode;
  11327. xb.F_SureTime = DateTime.Now;
  11328. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11329. }
  11330. #endregion
  11331. typemsg = "主办";
  11332. }
  11333. else if (type == 2)
  11334. {
  11335. #region 保存明细信息
  11336. 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();
  11337. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  11338. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  11339. {
  11340. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  11341. }
  11342. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  11343. #endregion
  11344. #region 删除草稿信息
  11345. 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 + "'");
  11346. foreach (var cg in cglist)
  11347. {
  11348. cg.F_IsDelete = 1;
  11349. cg.F_DeleteUser = User.F_UserCode;
  11350. cg.F_DeleteTime = DateTime.Now;
  11351. new BLL.T_Bus_Feedback().Update(cg);
  11352. }
  11353. #endregion
  11354. typemsg = "协办";
  11355. }
  11356. #region 插入操作记录
  11357. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11358. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11359. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11360. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11361. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11362. oper.F_Message = userinfo + " " + typemsg + "了工单";
  11363. oper.F_CreateUser = User.F_UserCode;
  11364. oper.F_CreateTime = DateTime.Now;
  11365. oper.F_IsDelete = 0;
  11366. operBLL.Add(oper);
  11367. //推送消息表
  11368. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11369. #endregion
  11370. }
  11371. trans.Complete();
  11372. }
  11373. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  11374. }
  11375. else
  11376. {
  11377. return Error("已经办理过了");
  11378. }
  11379. }
  11380. else
  11381. {
  11382. return Error("权限不足");
  11383. }
  11384. }
  11385. else
  11386. {
  11387. return Error("操作失败");
  11388. }
  11389. }
  11390. else
  11391. {
  11392. return Error("权限不足");
  11393. }
  11394. }
  11395. /// <summary>
  11396. ///追问回复
  11397. /// </summary>
  11398. /// <returns></returns>
  11399. //[Authority]
  11400. public ActionResult ReplyWorkOrder()
  11401. {
  11402. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  11403. {
  11404. string workorderid = RequestString.GetFormString("workorderid");
  11405. string files = RequestString.GetFormString("files");
  11406. string replycount = RequestString.GetFormString("replycount");
  11407. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11408. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11409. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL
  11410. .GetNewModelByWorkOrderID(workorderid);
  11411. int type = 0;
  11412. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  11413. && modelT_Bus_Feedback!=null )
  11414. {
  11415. // type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  11416. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  11417. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed && modelT_Bus_WorkOrder.F_IsProResult ==2)
  11418. {
  11419. using (TransactionScope trans = new TransactionScope())
  11420. {
  11421. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_AdditionalReply))
  11422. modelT_Bus_WorkOrder.F_AdditionalReply = replycount + "; ";
  11423. else
  11424. modelT_Bus_WorkOrder.F_AdditionalReply += replycount + "; ";
  11425. modelT_Bus_WorkOrder.F_IsProResult = 3;
  11426. bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  11427. if (!string .IsNullOrEmpty (files))
  11428. {
  11429. if (!string.IsNullOrEmpty(modelT_Bus_Feedback.F_Files))
  11430. modelT_Bus_Feedback.F_Files += "," + files;
  11431. else
  11432. modelT_Bus_Feedback.F_Files = files;
  11433. bool f = feedbackBLL.Update(modelT_Bus_Feedback);
  11434. }
  11435. #region 插入操作记录
  11436. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11437. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11438. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11439. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11440. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11441. oper.F_Message = userinfo + " " + "回复" + "了工单";
  11442. oper.F_CreateUser = User.F_UserCode;
  11443. oper.F_CreateTime = DateTime.Now;
  11444. oper.F_IsDelete = 0;
  11445. operBLL.Add(oper);
  11446. #endregion
  11447. trans.Complete();
  11448. }
  11449. return Success("操作成功");
  11450. }
  11451. else
  11452. {
  11453. return Error("已经办理过了");
  11454. }
  11455. }
  11456. else
  11457. {
  11458. return Error("操作失败");
  11459. }
  11460. }
  11461. else
  11462. {
  11463. return Error("权限不足");
  11464. }
  11465. }
  11466. /// <summary>
  11467. /// 转办回访
  11468. /// </summary>
  11469. /// <returns></returns>
  11470. //[Authority]
  11471. public ActionResult Transfer()
  11472. {
  11473. string workorderid = RequestString.GetFormString("workorderid");
  11474. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "ZXHWY"|| User.F_RoleCode == "MTDD")
  11475. {
  11476. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11477. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11478. if (modelT_Bus_WorkOrder!=null )
  11479. {
  11480. modelT_Bus_WorkOrder.F_ToBereply = 0;
  11481. modelT_Bus_WorkOrder.F_IsProResult = 2;
  11482. #region 插入操作记录
  11483. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11484. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11485. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  11486. if (user != null && user.Count > 0)
  11487. {
  11488. foreach (var it in user)
  11489. {
  11490. string count = "已办未果短信提醒,您的工单"+ workorderid + "被审核员评定为已办未果工单,请继续处理。";
  11491. string msg = workorderid;
  11492. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  11493. }
  11494. }
  11495. if (modelT_Bus_AssignedInfo_Next!=null )
  11496. {
  11497. var modelT_Bus_Feedback_Next
  11498. = new BLL.T_Bus_Feedback_Next().GetModelList
  11499. ("F_AssignedId='"+ modelT_Bus_AssignedInfo_Next.F_Id + "' and F_WorkOrderId='"+
  11500. workorderid+ "' ORDER BY F_CreateTime DESC ");
  11501. if (modelT_Bus_Feedback_Next!=null && modelT_Bus_Feedback_Next
  11502. .Count >0)
  11503. {
  11504. var users = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_Feedback_Next[0].F_CreateDeptId + " ");
  11505. if (users != null && users.Count > 0)
  11506. {
  11507. foreach (var it in users)
  11508. {
  11509. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  11510. string msg = workorderid;
  11511. bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  11512. }
  11513. }
  11514. }
  11515. }
  11516. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11517. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11518. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11519. oper.F_Message = userinfo + " " + "提交了已办未果" ;
  11520. oper.F_CreateUser = User.F_UserCode;
  11521. oper.F_CreateTime = DateTime.Now;
  11522. oper.F_IsDelete = 0;
  11523. operBLL.Add(oper);
  11524. #endregion
  11525. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  11526. return Success("转办成功");
  11527. else
  11528. return Error("转办失败");
  11529. }
  11530. else
  11531. {
  11532. return Error("工单不存在");
  11533. }
  11534. }
  11535. return Error("权限不足");
  11536. }
  11537. #region 网格化对接
  11538. /// <summary>
  11539. /// 对接网格化
  11540. /// 工单查收操作
  11541. /// </summary>
  11542. /// <param name="usercode"></param>
  11543. /// <param name="workorderid"></param>
  11544. /// <returns></returns>
  11545. public string ReceiveWorkOrderByDock(string usercode, string workorderid,string content)
  11546. {
  11547. var returns = "";
  11548. using (TransactionScope trans = new TransactionScope())
  11549. {
  11550. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  11551. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  11552. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11553. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11554. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  11555. if (User != null)
  11556. {
  11557. if (modelT_Bus_WorkOrder == null)
  11558. msgss = "要办理的工单已不存在";
  11559. else if (modelT_Bus_AssignedInfo == null)
  11560. {
  11561. msgss = "工单无法处理或已被处理";
  11562. }
  11563. else
  11564. {
  11565. 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)
  11566. {
  11567. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  11568. {
  11569. #region 保存工单信息
  11570. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  11571. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  11572. workorderBLL.Update(modelT_Bus_WorkOrder);
  11573. #endregion
  11574. #region 保存查收信息
  11575. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  11576. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  11577. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  11578. assignBLL.Update(modelT_Bus_AssignedInfo);
  11579. #endregion
  11580. #region 保存明细信息
  11581. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  11582. {
  11583. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  11584. foreach (string strid in strids)
  11585. {
  11586. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  11587. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11588. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  11589. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  11590. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  11591. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  11592. modelT_Bus_AssignedItemInfo.F_State = 1;
  11593. modelT_Bus_AssignedItemInfo.F_Type = 2;
  11594. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  11595. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  11596. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  11597. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  11598. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  11599. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  11600. }
  11601. }
  11602. #endregion
  11603. retbool = "true";
  11604. optmsg = " 查收了工单";
  11605. msgss = optmsg;
  11606. }
  11607. else
  11608. msgss = "工单已被查收";
  11609. assid = modelT_Bus_AssignedInfo.F_Id;
  11610. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  11611. }
  11612. else
  11613. msgss = "工单已办理或已被重新指派";
  11614. }
  11615. userinfo = User.depname + "(" + User.F_UserCode + ")";
  11616. }
  11617. else
  11618. {
  11619. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  11620. msgss = "无法获取工号信息";
  11621. }
  11622. #region 插入操作记录
  11623. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11624. oper.F_WorkOrderId = workorderid;
  11625. oper.F_AssignedId = assid;
  11626. oper.F_State = state;
  11627. oper.F_Message = userinfo + " " + msgss + msgend;
  11628. oper.F_CreateUser = usercode;
  11629. oper.F_CreateTime = DateTime.Now;
  11630. oper.F_IsDelete = 0;
  11631. oper.F_Type = 1;
  11632. optid = operBLL.Add(oper).ToString();
  11633. #endregion
  11634. trans.Complete();
  11635. returns = retbool + "|" + optid + "|" + msgss;
  11636. }
  11637. return returns;
  11638. }
  11639. /// <summary>
  11640. /// 对接网格化 工单退回操作
  11641. /// </summary>
  11642. /// <returns></returns>
  11643. public string RebackWorkOrderByDock(string usercode,string workorderid,string backreason,string content)
  11644. {
  11645. var returns = "";
  11646. using (TransactionScope trans = new TransactionScope())
  11647. {
  11648. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  11649. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  11650. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  11651. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11652. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11653. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  11654. if (User != null)
  11655. {
  11656. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  11657. if (modelT_Bus_WorkOrder == null)
  11658. msgss = "要办理的工单已不存在";
  11659. else if (modelT_Bus_AssignedInfo == null)
  11660. {
  11661. msgss = "工单无法处理或已被处理";
  11662. }
  11663. else
  11664. {
  11665. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  11666. {
  11667. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  11668. {
  11669. #region 保存工单信息
  11670. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  11671. workorderBLL.Update(modelT_Bus_WorkOrder);
  11672. #endregion
  11673. #region 插入退回申请信息
  11674. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  11675. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11676. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11677. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  11678. model_T_Bus_Feedback.F_IsAudit = 0;
  11679. model_T_Bus_Feedback.F_IsDelete = 0;
  11680. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  11681. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  11682. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  11683. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  11684. model_T_Bus_Feedback.F_State = 1;
  11685. model_T_Bus_Feedback.F_Type = 3;
  11686. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  11687. #endregion
  11688. #region 保存交办信息
  11689. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  11690. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  11691. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  11692. assignBLL.Update(modelT_Bus_AssignedInfo);
  11693. #endregion
  11694. #region 推送消息
  11695. retbool = "true";
  11696. optmsg = " 申请退回了工单";
  11697. //推送消息表
  11698. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11699. #endregion
  11700. msgss = optmsg;
  11701. }
  11702. else
  11703. msgss = "工单已被查收,不能退回";
  11704. assid = modelT_Bus_AssignedInfo.F_Id;
  11705. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  11706. }
  11707. else
  11708. msgss = "工单已办理或已被重新指派";
  11709. }
  11710. }
  11711. else
  11712. {
  11713. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  11714. msgss = "无法获取工号信息";
  11715. }
  11716. #region 插入操作记录
  11717. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11718. oper.F_WorkOrderId = workorderid;
  11719. oper.F_AssignedId = assid;
  11720. oper.F_State = state;
  11721. oper.F_Message = userinfo+" " + msgss + msgend;
  11722. oper.F_CreateUser = usercode;
  11723. oper.F_CreateTime = DateTime.Now;
  11724. oper.F_IsDelete = 0;
  11725. oper.F_Type = 1;
  11726. optid = operBLL.Add(oper).ToString();
  11727. #endregion
  11728. trans.Complete();
  11729. returns = retbool + "|" + optid + "|" + msgss;
  11730. }
  11731. return returns;
  11732. }
  11733. /// <summary>
  11734. /// 对接网格化办理
  11735. /// </summary>
  11736. /// <param name="usercode">工号</param>
  11737. /// <param name="workorderid">工单编号</param>
  11738. /// <param name="dealman">承办人人</param>
  11739. /// <param name="result">反馈内容</param>
  11740. /// <param name="files">附件</param>
  11741. /// <param name="prosituation">处理情况/方案/进程</param>
  11742. /// <param name="dealcontact">承办人联系方式</param>
  11743. /// <param name="connecttime">沟通时间</param>
  11744. /// <param name="connectmode">沟通方式</param>
  11745. /// <param name="replycontent">答复内容</param>
  11746. /// <param name="duties">职务</param>
  11747. /// <param name="situation">处理情况</param>
  11748. /// <param name="state">0保存,1保存并办理</param>
  11749. /// <param name="feedbackid"></param>
  11750. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  11751. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  11752. /// <returns></returns>
  11753. 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)
  11754. {
  11755. var returns = "";
  11756. using (TransactionScope trans = new TransactionScope())
  11757. {
  11758. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  11759. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  11760. if (User != null)
  11761. {
  11762. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  11763. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11764. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11765. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  11766. msgend = ",工单编号:" + workorderid;
  11767. int type = 0; var resmsg = ""; string typemsg = "办理";
  11768. if (modelT_Bus_WorkOrder == null)
  11769. msgss = "要办理的工单已不存在";
  11770. else if (modelT_Bus_AssignedInfo == null)
  11771. {
  11772. msgss = "工单无法处理";
  11773. }
  11774. else
  11775. {
  11776. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  11777. if (type > 0)
  11778. {
  11779. #region 办理结果合成
  11780. result = "";
  11781. #region 获取部门
  11782. var deptname = "";
  11783. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  11784. {
  11785. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  11786. if (deptmodel != null)
  11787. deptname = deptmodel.F_DeptName;
  11788. }
  11789. #endregion
  11790. #region 获取来源
  11791. var sourcename = "";
  11792. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  11793. {
  11794. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  11795. if (dicmodel != null)
  11796. sourcename = dicmodel.F_Value;
  11797. }
  11798. #endregion
  11799. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  11800. var bljg = ""; var endstr = "";
  11801. if (isproresult == 1)
  11802. {
  11803. bljg = "已办理";
  11804. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  11805. {
  11806. var isStaisfiedRadioData = "未评价";
  11807. if (isstaisfied == 1)
  11808. {
  11809. isStaisfiedRadioData = "满意";
  11810. }
  11811. else if (isstaisfied == 2)
  11812. {
  11813. isStaisfiedRadioData = "基本满意";
  11814. }
  11815. else if (isstaisfied == 3)
  11816. {
  11817. isStaisfiedRadioData = "不满意";
  11818. }
  11819. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  11820. }
  11821. }
  11822. else if (isproresult == 2)
  11823. {
  11824. bljg = "未办理";
  11825. endstr = "; 处理方案/进程:" + prosituation;
  11826. }
  11827. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  11828. #endregion
  11829. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  11830. {
  11831. #region 处理办理
  11832. if (feedbackid == 0)
  11833. {
  11834. #region 插入反馈记录
  11835. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11836. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11837. modelT_Bus_Feedback.F_DealUser = dealman;
  11838. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11839. #region 20200114新增字段 zhengbingbing
  11840. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11841. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  11842. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11843. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  11844. DateTime contime = DateTime.Now;
  11845. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11846. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11847. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  11848. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  11849. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11850. modelT_Bus_Feedback.F_Duties = duties;//职务
  11851. modelT_Bus_Feedback.F_Situation = situation;
  11852. #endregion
  11853. modelT_Bus_Feedback.F_File = files;
  11854. modelT_Bus_Feedback.F_IsAudit = 0;
  11855. modelT_Bus_Feedback.F_IsDelete = 0;
  11856. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  11857. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11858. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  11859. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11860. modelT_Bus_Feedback.F_State = state;
  11861. modelT_Bus_Feedback.F_Type = type;
  11862. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11863. #endregion
  11864. }
  11865. else
  11866. {
  11867. #region 修改反馈记录
  11868. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  11869. if (modelT_Bus_Feedback != null)
  11870. {
  11871. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11872. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11873. modelT_Bus_Feedback.F_DealUser = dealman;
  11874. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11875. modelT_Bus_Feedback.F_File = files;
  11876. #region 20200114新增字段 zhengbingbing
  11877. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11878. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  11879. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11880. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  11881. DateTime contime = DateTime.Now;
  11882. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11883. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11884. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  11885. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  11886. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11887. modelT_Bus_Feedback.F_Duties = duties;//职务
  11888. modelT_Bus_Feedback.F_Situation = situation;
  11889. #endregion
  11890. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  11891. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11892. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  11893. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11894. modelT_Bus_Feedback.F_State = state;
  11895. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  11896. {
  11897. modelT_Bus_Feedback.F_Type = 1;
  11898. }
  11899. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  11900. {
  11901. modelT_Bus_Feedback.F_Type = 2;
  11902. }
  11903. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  11904. }
  11905. #endregion
  11906. }
  11907. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  11908. {
  11909. if (type == 1)
  11910. {
  11911. int iscs = 0;
  11912. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11913. {
  11914. iscs = 1;
  11915. }
  11916. #region 保存工单信息
  11917. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11918. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  11919. modelT_Bus_WorkOrder.F_Result = result;
  11920. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  11921. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  11922. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11923. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  11924. workorderBLL.Update(modelT_Bus_WorkOrder);
  11925. #endregion
  11926. #region 保存交办信息
  11927. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11928. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11929. {
  11930. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11931. }
  11932. assignBLL.Update(modelT_Bus_AssignedInfo);
  11933. #endregion
  11934. #region 删除草稿信息
  11935. 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 + "'");
  11936. foreach (var cg in cglist)
  11937. {
  11938. cg.F_IsDelete = 1;
  11939. cg.F_DeleteUser = User.F_UserCode;
  11940. cg.F_DeleteTime = DateTime.Now;
  11941. new BLL.T_Bus_Feedback().Update(cg);
  11942. }
  11943. #endregion
  11944. #region 删除二级单位未办理信息
  11945. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11946. foreach (var ej in ejlist)
  11947. {
  11948. ej.F_IsDelete = 1;
  11949. ej.F_DeleteUser = User.F_UserCode;
  11950. ej.F_DeleteTime = DateTime.Now;
  11951. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  11952. }
  11953. #endregion
  11954. #region 处理协办单位
  11955. 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 + "'");
  11956. foreach (var xb in xblist)
  11957. {
  11958. xb.F_State = 2;
  11959. xb.F_SureUser = User.F_UserCode;
  11960. xb.F_SureTime = DateTime.Now;
  11961. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11962. }
  11963. #endregion
  11964. typemsg = "主办";
  11965. }
  11966. else if (type == 2)
  11967. {
  11968. #region 保存明细信息
  11969. 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();
  11970. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  11971. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  11972. {
  11973. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  11974. }
  11975. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  11976. #endregion
  11977. #region 删除草稿信息
  11978. 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 + "'");
  11979. foreach (var cg in cglist)
  11980. {
  11981. cg.F_IsDelete = 1;
  11982. cg.F_DeleteUser = User.F_UserCode;
  11983. cg.F_DeleteTime = DateTime.Now;
  11984. new BLL.T_Bus_Feedback().Update(cg);
  11985. }
  11986. #endregion
  11987. typemsg = "协办";
  11988. }
  11989. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  11990. //推送消息表
  11991. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11992. }
  11993. #endregion
  11994. retbool = "true";
  11995. }
  11996. else
  11997. msgss = "工单已办理";
  11998. backid = modelT_Bus_Feedback.F_Id.ToString();
  11999. }
  12000. else
  12001. msgss = "工单已办理或已被重新指派";
  12002. assid = modelT_Bus_AssignedInfo.F_Id;
  12003. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  12004. }
  12005. msgend = resmsg + " " + typemsg + "了工单";
  12006. }
  12007. else
  12008. {
  12009. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  12010. msgss = "无法获取工号信息";
  12011. }
  12012. #region 插入操作记录
  12013. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12014. oper.F_WorkOrderId = workorderid;
  12015. oper.F_AssignedId = assid;
  12016. oper.F_State = wostate;
  12017. oper.F_Message = userinfo + msgend;
  12018. oper.F_CreateUser = usercode;
  12019. oper.F_CreateTime = DateTime.Now;
  12020. oper.F_IsDelete = 0;
  12021. oper.F_Type = 1;
  12022. oper.F_File = files;
  12023. operBLL.Add(oper);
  12024. #endregion
  12025. trans.Complete();
  12026. returns = retbool + "|" + backid + "|" + msgss;
  12027. }
  12028. return returns;
  12029. }
  12030. /// <summary>
  12031. /// 对接网格化,记录办理过程
  12032. /// </summary>
  12033. /// <param name="usercode"></param>
  12034. /// <param name="workorderid"></param>
  12035. /// <param name="content"></param>
  12036. /// <returns></returns>
  12037. public string DealProcessWorkOrderByDock(string usercode,string workorderid,string content)
  12038. {
  12039. var returns = "";
  12040. using (TransactionScope trans = new TransactionScope())
  12041. {
  12042. var assid = 0; var msgend = ""; var state = 0;var userinfo = "";var msgss = ""; var optid = string.Empty; var retbool = "false";
  12043. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  12044. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12045. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12046. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  12047. if (User != null)
  12048. {
  12049. if (modelT_Bus_WorkOrder == null)
  12050. msgss = "要办理的工单已不存在";
  12051. else if (modelT_Bus_AssignedInfo == null)
  12052. {
  12053. msgss = "工单无法处理或已被处理";
  12054. }
  12055. else
  12056. {
  12057. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12058. {
  12059. msgss = "办理工单";
  12060. retbool = "true";
  12061. assid = modelT_Bus_AssignedInfo.F_Id;
  12062. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  12063. }
  12064. else
  12065. {
  12066. msgss = "工单无法处理";
  12067. }
  12068. }
  12069. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  12070. }
  12071. else
  12072. {
  12073. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  12074. msgss = "无法获取工号信息";
  12075. }
  12076. #region 插入操作记录
  12077. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12078. oper.F_WorkOrderId = workorderid;
  12079. oper.F_AssignedId = assid;
  12080. oper.F_State = state;
  12081. oper.F_Message = userinfo + msgend;
  12082. oper.F_CreateUser = usercode;
  12083. oper.F_CreateTime = DateTime.Now;
  12084. oper.F_IsDelete = 0;
  12085. oper.F_Type = 1;
  12086. optid = operBLL.Add(oper).ToString();
  12087. #endregion
  12088. trans.Complete();
  12089. returns = retbool + "|" + optid + "|" + msgss;
  12090. }
  12091. return returns;
  12092. }
  12093. #endregion
  12094. /// <summary>
  12095. /// 撤回工单
  12096. /// </summary>
  12097. /// <returns></returns>
  12098. //[Authority]
  12099. public ActionResult WithdrawWorkOrder()
  12100. {
  12101. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12102. {
  12103. string workorderid = RequestString.GetFormString("workorderid");
  12104. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12105. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12106. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12107. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12108. {
  12109. using (TransactionScope trans = new TransactionScope())
  12110. {
  12111. #region 保存撤单信息
  12112. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  12113. modelT_Bus_AssignedInfo_Next.F_DeleteUser = User.F_UserCode;
  12114. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  12115. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12116. #endregion
  12117. #region 删除处理信息
  12118. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  12119. foreach (var cg in cglist)
  12120. {
  12121. cg.F_IsDelete = 1;
  12122. cg.F_DeleteUser = User.F_UserCode;
  12123. cg.F_DeleteTime = DateTime.Now;
  12124. new BLL.T_Bus_Feedback_Next().Update(cg);
  12125. }
  12126. #endregion
  12127. #region 保存交办信息
  12128. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12129. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12130. #endregion
  12131. #region 保存工单信息
  12132. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  12133. workorderBLL.Update(modelT_Bus_WorkOrder);
  12134. #endregion
  12135. #region 插入操作记录
  12136. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12137. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12138. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12139. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12140. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12141. oper.F_Message = userinfo + " 撤回了工单";
  12142. oper.F_CreateUser = User.F_UserCode;
  12143. oper.F_CreateTime = DateTime.Now;
  12144. oper.F_IsDelete = 0;
  12145. operBLL.Add(oper);
  12146. #endregion
  12147. trans.Complete();
  12148. }
  12149. return Success("操作成功");
  12150. }
  12151. else
  12152. {
  12153. return Error("操作失败");
  12154. }
  12155. }
  12156. else
  12157. {
  12158. return Error("权限不足");
  12159. }
  12160. }
  12161. /// <summary>
  12162. /// 签收工单
  12163. /// </summary>
  12164. /// <returns></returns>
  12165. //[Authority]
  12166. public ActionResult SignWorkOrder()
  12167. {
  12168. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12169. {
  12170. string workorderid = RequestString.GetFormString("workorderid");
  12171. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12172. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12173. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12174. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  12175. {
  12176. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  12177. {
  12178. using (TransactionScope trans = new TransactionScope())
  12179. {
  12180. #region 保存签收信息
  12181. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  12182. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  12183. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  12184. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12185. #endregion
  12186. #region 保存交办信息
  12187. modelT_Bus_AssignedInfo.F_IsNext = 2;
  12188. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12189. #endregion
  12190. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo_Next.F_OtherDeptIds))
  12191. {
  12192. if (modelT_Bus_AssignedInfo_Next.F_OtherDeptIds != "null")
  12193. {
  12194. string[] strids = modelT_Bus_AssignedInfo_Next.F_OtherDeptIds.TrimEnd(',').Split(',');
  12195. foreach (string strid in strids)
  12196. {
  12197. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  12198. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12199. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo_Next.F_AssignedOpinion;
  12200. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  12201. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo_Next.F_LimitTime;
  12202. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo_Next.F_Remark;
  12203. modelT_Bus_AssignedItemInfo.F_State = 1;
  12204. modelT_Bus_AssignedItemInfo.F_Type = 2;
  12205. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo_Next.F_WorkOrderId;
  12206. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  12207. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  12208. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  12209. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  12210. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  12211. }
  12212. }
  12213. }
  12214. #region 插入操作记录
  12215. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12216. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12217. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12218. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12219. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12220. oper.F_Message = userinfo + " 签收了工单";
  12221. oper.F_CreateUser = User.F_UserCode;
  12222. oper.F_CreateTime = DateTime.Now;
  12223. oper.F_IsDelete = 0;
  12224. operBLL.Add(oper);
  12225. #endregion
  12226. trans.Complete();
  12227. }
  12228. return Success("操作成功");
  12229. }
  12230. else
  12231. {
  12232. return Error("单位已签收,不能再次签收");
  12233. }
  12234. }
  12235. else
  12236. {
  12237. return Error("操作失败");
  12238. }
  12239. }
  12240. else
  12241. {
  12242. return Error("权限不足");
  12243. }
  12244. }
  12245. /// <summary>
  12246. /// 拒收工单
  12247. /// </summary>
  12248. /// <returns></returns>
  12249. //[Authority]
  12250. public ActionResult RefuseWorkOrder()
  12251. {
  12252. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12253. {
  12254. string workorderid = RequestString.GetFormString("workorderid");
  12255. string reason = RequestString.GetFormString("reason");
  12256. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12257. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12258. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12259. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  12260. {
  12261. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0
  12262. || modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  12263. {
  12264. using (TransactionScope trans = new TransactionScope())
  12265. {
  12266. #region 保存签收信息
  12267. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  12268. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  12269. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  12270. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12271. #endregion
  12272. #region 保存交办信息
  12273. //三级单位退单
  12274. modelT_Bus_AssignedInfo.F_IsNext = 4;
  12275. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12276. #endregion
  12277. #region 保存工单信息
  12278. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  12279. workorderBLL.Update(modelT_Bus_WorkOrder);
  12280. #endregion
  12281. #region 插入操作记录
  12282. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12283. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12284. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12285. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12286. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12287. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  12288. oper.F_CreateUser = User.F_UserCode;
  12289. oper.F_CreateTime = DateTime.Now;
  12290. oper.F_IsDelete = 0;
  12291. operBLL.Add(oper);
  12292. #endregion
  12293. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  12294. if (user!=null && user.Count >0)
  12295. {
  12296. foreach (var it in user)
  12297. {
  12298. string count = "工单" + workorderid + "已被退回至本单位,请及时转派处理!";
  12299. string msg = workorderid;
  12300. bool n = SMSController.AddSmS(0, msg, count, it .F_Mobile , "181769", "");
  12301. }
  12302. }
  12303. //三级单位退回工单给二级单位时,增加短信提醒
  12304. //三级单位退回工单给二级单位时,增加短信提醒
  12305. trans.Complete();
  12306. }
  12307. return Success("操作成功");
  12308. }
  12309. else
  12310. {
  12311. return Error("单位未拒收");
  12312. }
  12313. }
  12314. else
  12315. {
  12316. return Error("操作失败");
  12317. }
  12318. }
  12319. else
  12320. {
  12321. return Error("权限不足");
  12322. }
  12323. }
  12324. /// <summary>
  12325. /// 拒绝工单
  12326. /// </summary>
  12327. /// <returns></returns>
  12328. //[Authority]
  12329. public ActionResult RejectWorkOrder()
  12330. {
  12331. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12332. {
  12333. string workorderid = RequestString.GetFormString("workorderid");
  12334. string reason = RequestString.GetFormString("reason");
  12335. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12336. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12337. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12338. ;
  12339. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  12340. &&modelT_Bus_AssignedInfo.F_MainDeptId ==User .F_DeptId )
  12341. {
  12342. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 3)
  12343. {
  12344. using (TransactionScope trans = new TransactionScope())
  12345. {
  12346. #region 保存签收信息
  12347. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  12348. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  12349. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  12350. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12351. #endregion
  12352. #region 保存交办信息
  12353. //三级单位退单
  12354. modelT_Bus_AssignedInfo.F_IsNext = 1;
  12355. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12356. #endregion
  12357. #region 保存工单信息
  12358. modelT_Bus_WorkOrder.F_MainDeptID3 = modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString ();
  12359. workorderBLL.Update(modelT_Bus_WorkOrder);
  12360. #endregion
  12361. #region 插入操作记录
  12362. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12363. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12364. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12365. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12366. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12367. oper.F_Message = userinfo + " 拒绝了工单,原因:" + reason;
  12368. oper.F_CreateUser = User.F_UserCode;
  12369. oper.F_CreateTime = DateTime.Now;
  12370. oper.F_IsDelete = 0;
  12371. operBLL.Add(oper);
  12372. #endregion
  12373. trans.Complete();
  12374. }
  12375. return Success("操作成功");
  12376. }
  12377. else
  12378. {
  12379. return Error("单位已签收,不能再次签收");
  12380. }
  12381. }
  12382. else
  12383. {
  12384. return Error("操作失败");
  12385. }
  12386. }
  12387. else
  12388. {
  12389. return Error("权限不足");
  12390. }
  12391. }
  12392. /// <summary>
  12393. /// 二级单位退回工单
  12394. /// </summary>
  12395. /// <returns></returns>
  12396. //[Authority]
  12397. public ActionResult BackWorkOrder()
  12398. {
  12399. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "EJWLDW")
  12400. {
  12401. string workorderid = RequestString.GetFormString("workorderid");
  12402. string reason = RequestString.GetFormString("reason");
  12403. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12404. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12405. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12406. ;
  12407. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  12408. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12409. {
  12410. if (modelT_Bus_AssignedInfo_Next.F_FeedbackTime !=null )
  12411. {
  12412. using (TransactionScope trans = new TransactionScope())
  12413. {
  12414. #region
  12415. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = null ;
  12416. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  12417. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  12418. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  12419. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12420. #endregion
  12421. #region
  12422. //三级单位退单
  12423. modelT_Bus_AssignedInfo.F_IsNext = 1;
  12424. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12425. #endregion
  12426. #region 保存工单信息
  12427. modelT_Bus_WorkOrder.F_MainDeptID3 = modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString();
  12428. workorderBLL.Update(modelT_Bus_WorkOrder);
  12429. #endregion
  12430. #region 插入操作记录
  12431. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12432. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12433. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12434. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12435. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12436. oper.F_Message = userinfo + " 退回了工单,原因:" + reason;
  12437. oper.F_CreateUser = User.F_UserCode;
  12438. oper.F_CreateTime = DateTime.Now;
  12439. oper.F_IsDelete = 0;
  12440. operBLL.Add(oper);
  12441. #endregion
  12442. trans.Complete();
  12443. }
  12444. return Success("操作成功");
  12445. }
  12446. else
  12447. {
  12448. return Error("单位未办理,不能退回重办");
  12449. }
  12450. }
  12451. else
  12452. {
  12453. return Error("操作失败");
  12454. }
  12455. }
  12456. else
  12457. {
  12458. return Error("权限不足");
  12459. }
  12460. }
  12461. /// <summary>
  12462. /// 处理工单
  12463. /// </summary>
  12464. /// <returns></returns>
  12465. //[Authority]
  12466. public ActionResult DealWorkOrder()
  12467. {
  12468. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12469. {
  12470. string workorderid = RequestString.GetFormString("workorderid");
  12471. string dealman = RequestString.GetFormString("dealman");
  12472. string result = RequestString.GetFormString("result");
  12473. string files = RequestString.GetFormString("files");
  12474. int state = RequestString.GetInt("state", 0);
  12475. int dealid = RequestString.GetInt("dealid", 0);
  12476. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  12477. string prosituation = RequestString.GetFormString("prosituation");
  12478. string dealcontact = RequestString.GetFormString("dealcontact");
  12479. string connecttime = RequestString.GetFormString("connecttime");
  12480. string connectmode = RequestString.GetFormString("connectmode");
  12481. string replycontent = RequestString.GetFormString("replycontent");
  12482. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  12483. string duties = RequestString.GetFormString("duties");//职务
  12484. string situation = RequestString.GetFormString("situation");
  12485. string AuditUser = RequestString.GetFormString("AuditUser");
  12486. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12487. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12488. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12489. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  12490. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && (modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId || modelT_Bus_AssignedInfo_Next
  12491. .F_OtherDeptIds .Contains (User.F_DeptId.ToString ()))
  12492. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  12493. {
  12494. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  12495. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay
  12496. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload )
  12497. {
  12498. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  12499. {
  12500. using (TransactionScope trans = new TransactionScope())
  12501. {
  12502. if (dealid == 0)
  12503. {
  12504. #region 插入反馈记录
  12505. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  12506. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  12507. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  12508. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  12509. #region 20200114新增字段 zhengbingbing
  12510. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  12511. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  12512. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  12513. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  12514. DateTime contime = DateTime.Now;
  12515. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  12516. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  12517. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  12518. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  12519. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  12520. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  12521. modelT_Bus_Feedback_Next.F_Situation = situation;
  12522. #endregion
  12523. modelT_Bus_Feedback_Next.F_File = files;
  12524. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  12525. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  12526. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  12527. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  12528. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  12529. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  12530. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  12531. modelT_Bus_Feedback_Next.F_State = state;
  12532. modelT_Bus_Feedback_Next.F_Type = 1;
  12533. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  12534. #endregion
  12535. }
  12536. else
  12537. {
  12538. #region 修改反馈记录
  12539. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  12540. if (modelT_Bus_Feedback_Next != null)
  12541. {
  12542. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  12543. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  12544. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  12545. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  12546. modelT_Bus_Feedback_Next.F_File = files;
  12547. #region 20200114新增字段 zhengbingbing
  12548. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  12549. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  12550. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  12551. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  12552. DateTime contime = DateTime.Now;
  12553. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  12554. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  12555. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  12556. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  12557. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  12558. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  12559. modelT_Bus_Feedback_Next.F_Situation = situation;
  12560. #endregion
  12561. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  12562. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  12563. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  12564. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  12565. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  12566. modelT_Bus_Feedback_Next.F_State = state;
  12567. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  12568. }
  12569. #endregion
  12570. }
  12571. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  12572. {
  12573. #region 保存交办信息
  12574. modelT_Bus_AssignedInfo.F_IsNext = 3;
  12575. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12576. #endregion
  12577. #region 保存派单信息
  12578. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  12579. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  12580. {
  12581. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  12582. }
  12583. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  12584. #endregion
  12585. #region 删除草稿信息
  12586. 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 + "'");
  12587. foreach (var cg in cglist)
  12588. {
  12589. cg.F_IsDelete = 1;
  12590. cg.F_DeleteUser = User.F_UserCode;
  12591. cg.F_DeleteTime = DateTime.Now;
  12592. new BLL.T_Bus_Feedback_Next().Update(cg);
  12593. }
  12594. #endregion
  12595. #region 插入操作记录
  12596. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12597. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12598. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  12599. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12600. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12601. oper.F_Message = userinfo + " 办理了工单";
  12602. oper.F_CreateUser = User.F_UserCode;
  12603. oper.F_CreateTime = DateTime.Now;
  12604. oper.F_IsDelete = 0;
  12605. operBLL.Add(oper);
  12606. //推送消息表
  12607. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12608. #endregion
  12609. }
  12610. trans.Complete();
  12611. }
  12612. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  12613. }
  12614. else
  12615. {
  12616. return Error("已经办理过了");
  12617. }
  12618. }
  12619. else
  12620. {
  12621. return Error("已经办理过了");
  12622. }
  12623. }
  12624. else
  12625. {
  12626. return Error("操作失败");
  12627. }
  12628. }
  12629. else
  12630. {
  12631. return Error("权限不足");
  12632. }
  12633. }
  12634. /// <summary>
  12635. /// 审核派单
  12636. /// </summary>
  12637. /// <returns></returns>
  12638. //[Authority]
  12639. public ActionResult AuditSplitWorkOrder()
  12640. {
  12641. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12642. {
  12643. string workorderid = RequestString.GetFormString("workorderid");
  12644. int state = RequestString.GetInt("state", 0);
  12645. string reason = RequestString.GetFormString("reason");
  12646. int backid = RequestString.GetInt("backid", 0);
  12647. string files = RequestString.GetFormString("files");
  12648. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12649. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12650. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  12651. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  12652. {
  12653. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  12654. {
  12655. using (TransactionScope trans = new TransactionScope())
  12656. {
  12657. modelT_Bus_Feedback_Next.F_IsAudit = state;
  12658. modelT_Bus_Feedback_Next.F_AuditUser = User.F_UserCode;
  12659. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  12660. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  12661. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  12662. string strmsg = "";
  12663. string message = "";
  12664. if (state == 1)
  12665. {
  12666. strmsg = "同意";
  12667. #region 插入反馈记录
  12668. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  12669. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  12670. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  12671. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  12672. modelT_Bus_Feedback.F_Result = modelT_Bus_Feedback_Next.F_Result;//反馈内容
  12673. #region 20200114新增字段 zhengbingbing
  12674. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  12675. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  12676. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  12677. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  12678. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  12679. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  12680. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  12681. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  12682. #endregion
  12683. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  12684. modelT_Bus_Feedback.F_IsAudit = 0;
  12685. modelT_Bus_Feedback.F_IsDelete = 0;
  12686. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  12687. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  12688. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  12689. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  12690. modelT_Bus_Feedback.F_State = state;
  12691. modelT_Bus_Feedback.F_Type = 1;
  12692. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  12693. #endregion
  12694. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  12695. {
  12696. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  12697. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  12698. }
  12699. #region 保存工单信息
  12700. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  12701. if (modelT_Bus_Feedback.F_IsProResult==2)
  12702. {
  12703. modelT_Bus_WorkOrder.F_IsProResult = 2;
  12704. // modelT_Bus_WorkOrder.F_IsProResultState = IsProResultState;
  12705. modelT_Bus_WorkOrder.F_Unsuccessful = modelT_Bus_Feedback.F_ProSituation;
  12706. }
  12707. else
  12708. {
  12709. modelT_Bus_WorkOrder.F_ToBereply = 1;
  12710. modelT_Bus_WorkOrder.F_IsProResult = 1;
  12711. }
  12712. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  12713. modelT_Bus_WorkOrder.F_Result = modelT_Bus_Feedback_Next.F_Result;
  12714. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  12715. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  12716. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  12717. workorderBLL.Update(modelT_Bus_WorkOrder);
  12718. #endregion
  12719. #region 保存交办信息
  12720. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  12721. assignBLL.Update(modelT_Bus_AssignedInfo);
  12722. #endregion
  12723. #region 删除草稿信息
  12724. 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 + "'");
  12725. foreach (var cg in cglist)
  12726. {
  12727. cg.F_IsDelete = 1;
  12728. cg.F_DeleteUser = User.F_UserCode;
  12729. cg.F_DeleteTime = DateTime.Now;
  12730. new BLL.T_Bus_Feedback().Update(cg);
  12731. }
  12732. #endregion
  12733. #region 处理协办单位
  12734. 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 + "'");
  12735. foreach (var xb in xblist)
  12736. {
  12737. xb.F_State = 2;
  12738. xb.F_SureUser = User.F_UserCode;
  12739. xb.F_SureTime = DateTime.Now;
  12740. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  12741. }
  12742. #endregion
  12743. }
  12744. else if (state == 2)
  12745. {
  12746. strmsg = "拒绝";
  12747. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  12748. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  12749. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  12750. modelT_Bus_AssignedInfo.F_IsNext = 2;
  12751. assignBLL.Update(modelT_Bus_AssignedInfo);
  12752. //#region 插入派单记录
  12753. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  12754. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  12755. //modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12756. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo_Next1.F_LimitTime;//办理时限
  12757. //modelT_Bus_AssignedInfo_Next.F_MainDeptId = modelT_Bus_AssignedInfo_Next1.F_MainDeptId;//主办单位id
  12758. //modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = modelT_Bus_AssignedInfo_Next1.F_OtherDeptIds;//协办单位id
  12759. //modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = reason;//交办意见
  12760. //modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  12761. //modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  12762. //modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  12763. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  12764. //modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  12765. //modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  12766. //modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  12767. //modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  12768. //#endregion
  12769. }
  12770. #region 插入操作记录
  12771. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12772. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12773. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12774. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12775. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12776. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  12777. if (!string.IsNullOrWhiteSpace(reason))
  12778. oper.F_Message = oper.F_Message + ",原因:" + reason;
  12779. oper.F_CreateUser = User.F_UserCode;
  12780. oper.F_CreateTime = DateTime.Now;
  12781. oper.F_IsDelete = 0;
  12782. operBLL.Add(oper);
  12783. //推送消息表
  12784. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12785. #endregion
  12786. trans.Complete();
  12787. }
  12788. return Success("操作成功");
  12789. }
  12790. else
  12791. {
  12792. return Error("已经审核过了");
  12793. }
  12794. }
  12795. else
  12796. {
  12797. return Error("操作失败");
  12798. }
  12799. }
  12800. else
  12801. {
  12802. return Error("权限不足");
  12803. }
  12804. }
  12805. /// <summary>
  12806. /// 回访工单
  12807. /// </summary>
  12808. /// <returns></returns>
  12809. //[Authority]
  12810. public ActionResult VisitWorkOrder()
  12811. {
  12812. //if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY")
  12813. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "ZXLD"|| User.F_RoleCode == "MTDD")
  12814. {
  12815. string workorderid = RequestString.GetFormString("workorderid");
  12816. string visituser = RequestString.GetFormString("visituser");//回访人
  12817. int type = RequestString.GetInt("type", 0);//回访方式
  12818. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  12819. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));//不满意,重办的办理时限
  12820. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  12821. int visitid = RequestString.GetInt("visitid", 0);
  12822. string result = RequestString.GetFormString("result");//回访情况
  12823. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2结案
  12824. //string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12825. //string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  12826. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  12827. string callid = RequestString.GetFormString("callid");
  12828. string guid = RequestString.GetFormString("guid");
  12829. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12830. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12831. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  12832. if (modelT_Bus_WorkOrder != null)
  12833. {
  12834. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  12835. {
  12836. using (TransactionScope trans = new TransactionScope())
  12837. {
  12838. #region 回访
  12839. if (visitid == 0)
  12840. {
  12841. #region 新增回访结果记录
  12842. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12843. modelT_Bus_VisitResult.F_AssignedId = 0;
  12844. modelT_Bus_VisitResult.F_VisitUser = visituser;
  12845. modelT_Bus_VisitResult.F_Type = type;
  12846. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  12847. modelT_Bus_VisitResult.F_Result = result;
  12848. modelT_Bus_VisitResult.F_State = state;
  12849. if (!string.IsNullOrEmpty(callid))
  12850. {
  12851. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  12852. if (rd != null)
  12853. {
  12854. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  12855. }
  12856. }
  12857. modelT_Bus_VisitResult.F_IsDelete = 0;
  12858. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  12859. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  12860. if (modelT_Bus_AssignedInfo != null)
  12861. {
  12862. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12863. }
  12864. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  12865. modelT_Bus_VisitResult.F_Id = id;
  12866. //保存回访记录
  12867. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  12868. #endregion
  12869. }
  12870. else
  12871. {
  12872. #region 修改回访结果记录
  12873. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  12874. if (modelT_Bus_VisitResult != null)
  12875. {
  12876. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12877. modelT_Bus_VisitResult.F_AssignedId = 0;
  12878. modelT_Bus_VisitResult.F_VisitUser = visituser;
  12879. modelT_Bus_VisitResult.F_Type = type;
  12880. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  12881. modelT_Bus_VisitResult.F_Result = result;
  12882. modelT_Bus_VisitResult.F_State = state;
  12883. if (!string.IsNullOrEmpty(callid))
  12884. {
  12885. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  12886. if (rd != null)
  12887. {
  12888. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  12889. }
  12890. }
  12891. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  12892. modelT_Bus_VisitResult.F_IsDelete = 0;
  12893. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  12894. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  12895. if (modelT_Bus_AssignedInfo != null)
  12896. {
  12897. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12898. }
  12899. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  12900. modelT_Bus_VisitResult.F_Id = id;
  12901. //保存回访记录
  12902. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  12903. }
  12904. #endregion
  12905. }
  12906. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  12907. {
  12908. #region 保存交办信息
  12909. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  12910. assignBLL.Update(modelT_Bus_AssignedInfo);
  12911. #endregion
  12912. #region 保存工单信息
  12913. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  12914. if (nexttype!=1)
  12915. {
  12916. if (issatisfie == 0)
  12917. modelT_Bus_WorkOrder.F_ToBereply = 1;
  12918. modelT_Bus_WorkOrder.F_IsClosed = 1;
  12919. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12920. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  12921. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  12922. workorderBLL.Update(modelT_Bus_WorkOrder);
  12923. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  12924. {
  12925. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  12926. if (model != null)
  12927. {
  12928. model.F_IsClosed = 1;
  12929. model.F_CloseTime = DateTime.Now;
  12930. model.F_CloseUser = User.F_UserCode;
  12931. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  12932. if (string.IsNullOrEmpty(model.F_Result))
  12933. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  12934. else
  12935. model.F_Result += "; " + modelT_Bus_WorkOrder.F_Result;
  12936. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  12937. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  12938. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  12939. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  12940. workorderBLL.Update(model);
  12941. }
  12942. }
  12943. if (modelT_Bus_WorkOrder.F_IsRelease ==2)
  12944. {
  12945. if (!string .IsNullOrEmpty (modelT_Bus_WorkOrder.F_SubWorkorder ))
  12946. {
  12947. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  12948. if (orderlist.Length >0)
  12949. {
  12950. foreach (var it in orderlist)
  12951. {
  12952. var model = workorderBLL.GetModel(it);
  12953. if (model !=null )
  12954. {
  12955. model.F_IsClosed = 1;
  12956. model.F_CloseTime = DateTime.Now;
  12957. model.F_CloseUser = User.F_UserCode;
  12958. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  12959. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  12960. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  12961. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  12962. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  12963. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  12964. workorderBLL.Update(model);
  12965. }
  12966. }
  12967. }
  12968. }
  12969. }
  12970. string count = "您反映的诉求已办理完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果并对办理情况进行评价,谢谢";
  12971. string mag = "";
  12972. bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "213014", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  12973. }
  12974. #endregion
  12975. #region 删除草稿信息
  12976. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12977. foreach (var cg in cglist)
  12978. {
  12979. cg.F_IsDelete = 1;
  12980. cg.F_DeleteUser = User.F_UserCode;
  12981. cg.F_DeleteTime = DateTime.Now;
  12982. new BLL.T_Bus_VisitResult().Update(cg);
  12983. //保存回访记录
  12984. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  12985. }
  12986. #endregion
  12987. var opt = "回访"; var cbreasons = "";
  12988. #region 重办
  12989. if (nexttype == 1)
  12990. {
  12991. #region 保存工单信息
  12992. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  12993. workorderBLL.Update(modelT_Bus_WorkOrder);
  12994. #endregion
  12995. opt = "于"+DateTime .Now
  12996. .ToString ("yyyy年MM月dd日HH时mm分ss秒")+"回访";
  12997. cbreasons = ",重办原因:"+ cbreason;
  12998. }
  12999. #endregion
  13000. #region 插入操作记录
  13001. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13002. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13003. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  13004. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13005. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13006. oper.F_Message = userinfo+" " + opt + "了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意")+ cbreasons;
  13007. oper.F_CreateUser = User.F_UserCode;
  13008. oper.F_CreateTime = DateTime.Now;
  13009. oper.F_IsDelete = 0;
  13010. operBLL.Add(oper);
  13011. //推送消息表
  13012. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13013. #endregion
  13014. #region 自动语音回访
  13015. if (issatisfie == 1)//如果满意就进行自动语音回访
  13016. {
  13017. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  13018. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  13019. {
  13020. string AutoCallMsg = string.Empty;
  13021. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  13022. }
  13023. }
  13024. #endregion
  13025. }
  13026. #endregion
  13027. trans.Complete();
  13028. }
  13029. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  13030. }
  13031. else
  13032. {
  13033. return Error("已经回访过了");
  13034. }
  13035. }
  13036. else
  13037. {
  13038. return Error("操作失败");
  13039. }
  13040. }
  13041. else
  13042. {
  13043. return Error("权限不足");
  13044. }
  13045. }
  13046. #region 20200311 zhengbingbing 增加履职界定操作
  13047. /// <summary>
  13048. /// 履职
  13049. /// </summary>
  13050. /// <returns></returns>
  13051. //[Authority]
  13052. public ActionResult PerformWorkOrder()
  13053. {
  13054. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13055. {//承办单位和管理员
  13056. string workorderid = RequestString.GetFormString("workorderid");
  13057. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  13058. int perid = RequestString.GetInt("perid", 0);
  13059. string file = RequestString.GetFormString("file");
  13060. string result = RequestString.GetFormString("result");
  13061. string guid = RequestString.GetFormString("guid");
  13062. string visitids = RequestString.GetFormString("visitids");
  13063. if (string.IsNullOrWhiteSpace(visitids))
  13064. return Error("请选择你要履职的回访记录");
  13065. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13066. List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in ("+ visitids + ")");
  13067. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  13068. if (modelT_Bus_WorkOrder != null)
  13069. {
  13070. 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)
  13071. {//已回访,重办待交办,重办中,重办驳回,已结案
  13072. using (TransactionScope trans = new TransactionScope())
  13073. {
  13074. var assids = ""; //读取对应的交办记录
  13075. #region 读取对应的交办id
  13076. foreach (var item in listT_Bus_VisitResult)
  13077. {
  13078. if (item.F_AssignedId != null && item.F_AssignedId != 0)
  13079. assids = item.F_AssignedId + ",";
  13080. }
  13081. assids = assids.Trim(',');
  13082. #endregion
  13083. #region 履职
  13084. if (perid == 0)
  13085. {
  13086. #region 新增履职记录
  13087. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13088. modelT_Bus_PerformDuties.F_AssignedId = assids;
  13089. modelT_Bus_PerformDuties.F_VisitId = visitids;
  13090. modelT_Bus_PerformDuties.F_File = file;
  13091. modelT_Bus_PerformDuties.F_State = state;
  13092. modelT_Bus_PerformDuties.F_Result = result;
  13093. modelT_Bus_PerformDuties.F_IsAudit = 0;
  13094. modelT_Bus_PerformDuties.F_IsDelete = 0;
  13095. modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  13096. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  13097. modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  13098. int id=new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  13099. modelT_Bus_PerformDuties.F_Id = id;
  13100. //保存回访记录
  13101. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  13102. #endregion
  13103. }
  13104. else
  13105. {
  13106. #region 修改履职记录
  13107. modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  13108. if (modelT_Bus_PerformDuties != null)
  13109. {
  13110. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13111. modelT_Bus_PerformDuties.F_AssignedId = assids;
  13112. modelT_Bus_PerformDuties.F_VisitId = visitids;
  13113. modelT_Bus_PerformDuties.F_File = file;
  13114. modelT_Bus_PerformDuties.F_State = state;
  13115. modelT_Bus_PerformDuties.F_Result = result;
  13116. modelT_Bus_PerformDuties.F_IsAudit = 0;
  13117. modelT_Bus_PerformDuties.F_IsDelete = 0;
  13118. modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  13119. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  13120. modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  13121. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  13122. modelT_Bus_PerformDuties.F_Id = id;
  13123. //保存回访记录
  13124. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  13125. }
  13126. #endregion
  13127. }
  13128. if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  13129. {
  13130. #region 保存交办信息
  13131. foreach (var item in assids.Split(','))
  13132. {
  13133. var model = assignBLL.GetModel(int.Parse(item));
  13134. if (model != null)
  13135. {
  13136. model.F_IsPerform = 1;
  13137. assignBLL.Update(model);
  13138. }
  13139. }
  13140. #endregion
  13141. #region
  13142. foreach (var item in listT_Bus_VisitResult)
  13143. {
  13144. item.F_IsPerform = 1;
  13145. new BLL.T_Bus_VisitResult().Update(item);
  13146. }
  13147. #endregion
  13148. #region 删除草稿信息
  13149. 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 + "' ");
  13150. foreach (var cg in cglist)
  13151. {
  13152. cg.F_IsDelete = 1;
  13153. cg.F_DeleteUser = User.F_UserCode;
  13154. cg.F_DeleteTime = DateTime.Now;
  13155. new BLL.T_Bus_PerformDuties().Update(cg);
  13156. new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, User.F_UserCode, guid);
  13157. }
  13158. #endregion
  13159. var opt = "履职界定";
  13160. #region 插入操作记录
  13161. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13162. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13163. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13164. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13165. oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  13166. oper.F_File = modelT_Bus_PerformDuties.F_File;
  13167. oper.F_CreateUser = User.F_UserCode;
  13168. oper.F_CreateTime = DateTime.Now;
  13169. oper.F_IsDelete = 0;
  13170. foreach (var item in assids.Split(','))
  13171. {
  13172. oper.F_AssignedId = int.Parse(item);
  13173. operBLL.Add(oper);
  13174. //推送消息表 履职界定消息目前推送给工号8666
  13175. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", User.F_UserCode, (int)EnumSmsType.workorder);
  13176. }
  13177. #endregion
  13178. }
  13179. #endregion
  13180. trans.Complete();
  13181. }
  13182. return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  13183. }
  13184. else
  13185. {
  13186. return Error("此状态下不能进行履职操作");
  13187. }
  13188. }
  13189. else
  13190. {
  13191. return Error("操作失败");
  13192. }
  13193. }
  13194. else
  13195. {
  13196. return Error("权限不足");
  13197. }
  13198. }
  13199. /// <summary>
  13200. /// 履职界定审核
  13201. /// </summary>
  13202. /// <returns></returns>
  13203. //[Authority]
  13204. public ActionResult DefinitionWorkOrder() {
  13205. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  13206. {
  13207. string workorderid = RequestString.GetFormString("workorderid");
  13208. int state = RequestString.GetInt("state", 0);
  13209. string reason = RequestString.GetFormString("reason");
  13210. int perid = RequestString.GetInt("perid", 0);
  13211. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13212. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  13213. if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  13214. {
  13215. if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  13216. {
  13217. using (TransactionScope trans = new TransactionScope())
  13218. {
  13219. #region 保存履职界定信息
  13220. modelT_Bus_PerformDuties.F_IsAudit = state;
  13221. modelT_Bus_PerformDuties.F_AuditUser = User.F_UserCode;
  13222. modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  13223. modelT_Bus_PerformDuties.F_AuditReason = reason;
  13224. new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  13225. #endregion
  13226. string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  13227. #region
  13228. if (state == 1)
  13229. {
  13230. strmsg = "同意";
  13231. isperform = 2;
  13232. IsSatisfie = 1;
  13233. }
  13234. else if (state == 2)
  13235. {
  13236. strmsg = "拒绝";
  13237. isperform = 3;
  13238. }
  13239. #endregion
  13240. #region 交办记录处理
  13241. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  13242. {
  13243. var model = assignBLL.GetModel(int.Parse(item));
  13244. if (model != null)
  13245. {
  13246. model.F_IsPerform = isperform;
  13247. if (state == 1)//同意此履职界定则修改回访结果为满意
  13248. model.F_IsSatisfie = IsSatisfie;
  13249. assignBLL.Update(model);
  13250. }
  13251. }
  13252. #endregion
  13253. #region 回访记录处理
  13254. foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  13255. {
  13256. var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  13257. if (model != null)
  13258. {
  13259. model.F_IsPerform = isperform;
  13260. if (state == 1)//同意此履职界定则修改回访结果为满意
  13261. model.F_IsSatisfie = IsSatisfie;
  13262. new BLL.T_Bus_VisitResult().Update(model);
  13263. }
  13264. }
  13265. #endregion
  13266. #region 插入操作记录
  13267. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13268. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13269. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13270. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13271. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  13272. if (!string.IsNullOrWhiteSpace(reason))
  13273. oper.F_Message = oper.F_Message + ",理由为:"+ reason;
  13274. oper.F_CreateUser = User.F_UserCode;
  13275. oper.F_CreateTime = DateTime.Now;
  13276. oper.F_IsDelete = 0;
  13277. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  13278. {
  13279. oper.F_AssignedId = int.Parse(item);
  13280. operBLL.Add(oper);
  13281. //推送消息表
  13282. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13283. }
  13284. #endregion
  13285. trans.Complete();
  13286. }
  13287. return Success("操作成功");
  13288. }
  13289. else
  13290. return Error("已经审核过了");
  13291. }
  13292. else
  13293. return Error("操作失败");
  13294. }
  13295. else
  13296. return Error("权限不足");
  13297. }
  13298. #endregion
  13299. /// <summary>
  13300. /// 督办或监察工单
  13301. /// </summary>
  13302. /// <returns></returns>
  13303. //[Authority]
  13304. public ActionResult RemindWorkOrder()
  13305. {
  13306. string workorderid = RequestString.GetFormString("workorderid");
  13307. int type = RequestString.GetInt("type", 0);//1督办 2监察
  13308. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  13309. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  13310. string files = RequestString.GetFormString("files");
  13311. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13312. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13313. if (modelT_Bus_WorkOrder != null)
  13314. {
  13315. using (TransactionScope trans = new TransactionScope())
  13316. {
  13317. #region 插入督办记录
  13318. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  13319. if (type == 1 && state > 0)
  13320. {
  13321. modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1 order by F_CreateTime desc").FirstOrDefault();
  13322. if(modelT_Bus_RemindRecord!=null)
  13323. {
  13324. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  13325. modelT_Bus_RemindRecord.F_State = state;
  13326. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  13327. }
  13328. }
  13329. else
  13330. {
  13331. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13332. if (modelT_Bus_AssignedInfo!=null )
  13333. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13334. modelT_Bus_RemindRecord.F_Type = type;
  13335. if (modelT_Bus_AssignedInfo != null)
  13336. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  13337. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  13338. modelT_Bus_RemindRecord.F_File = files;
  13339. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  13340. modelT_Bus_RemindRecord.F_IsDelete = 0;
  13341. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  13342. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  13343. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  13344. }
  13345. #endregion
  13346. #region 插入操作记录
  13347. string typename = "督办";
  13348. if (type == 2) { typename = "监察"; }
  13349. if (type == 1 && state==0) { typename = "提交督办"; }
  13350. if (type == 1 && state == 1) { typename = "督办"; }
  13351. if (type == 1 && state == 2) { typename = "退回督办"; }
  13352. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  13353. // bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  13354. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13355. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13356. if (modelT_Bus_AssignedInfo != null)
  13357. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13358. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13359. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13360. oper.F_Message = userinfo + " " + typename + "了工单";
  13361. oper.F_CreateUser = User.F_UserCode;
  13362. oper.F_CreateTime = DateTime.Now;
  13363. oper.F_IsDelete = 0;
  13364. operBLL.Add(oper);
  13365. #endregion
  13366. trans.Complete();
  13367. }
  13368. return Success("操作成功");
  13369. }
  13370. else
  13371. {
  13372. return Error("操作失败");
  13373. }
  13374. }
  13375. /// <summary>
  13376. /// 重办工单
  13377. /// </summary>
  13378. /// <returns></returns>
  13379. //[Authority]
  13380. public ActionResult ReloadWorkOrder()
  13381. {
  13382. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  13383. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  13384. {
  13385. string workorderid = RequestString.GetFormString("workorderid");
  13386. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  13387. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  13388. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13389. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13390. if (modelT_Bus_WorkOrder != null)
  13391. {
  13392. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  13393. {
  13394. return Error("操作失败");
  13395. }
  13396. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  13397. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13398. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  13399. {
  13400. using (TransactionScope trans = new TransactionScope())
  13401. {
  13402. #region 插入督办记录
  13403. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  13404. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13405. modelT_Bus_RemindRecord.F_AssignedId = 0;
  13406. modelT_Bus_RemindRecord.F_Type = 1;
  13407. if (modelT_Bus_AssignedInfo != null)//转办后重办
  13408. {
  13409. #region 插入交办记录
  13410. 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());
  13411. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  13412. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13413. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13414. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  13415. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13416. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  13417. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  13418. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  13419. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  13420. AssignedInfo.F_State = 1;//0草稿 1正式
  13421. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  13422. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  13423. AssignedInfo.F_IsDelete = 0;
  13424. AssignedInfo.F_IsOverdue = 0;
  13425. AssignedInfo.F_IsSure = 0;
  13426. AssignedInfo.F_IsReload = n + 1;
  13427. AssignedInfo.F_ReloadUser = User.F_UserCode;
  13428. AssignedInfo.F_ReloadTime = DateTime.Now;
  13429. assignBLL.Add(AssignedInfo);
  13430. #endregion
  13431. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  13432. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  13433. }
  13434. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  13435. {
  13436. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  13437. if (cruser != null)
  13438. {
  13439. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  13440. }
  13441. }
  13442. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  13443. modelT_Bus_RemindRecord.F_State = 1;
  13444. modelT_Bus_RemindRecord.F_IsDelete = 0;
  13445. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  13446. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  13447. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  13448. #endregion
  13449. #region 保存工单信息
  13450. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  13451. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  13452. modelT_Bus_WorkOrder.F_Result = "";
  13453. modelT_Bus_WorkOrder.F_DealDeptId = null;
  13454. modelT_Bus_WorkOrder.F_DealUser = "";
  13455. modelT_Bus_WorkOrder.F_DealTime = null;
  13456. workorderBLL.Update(modelT_Bus_WorkOrder);
  13457. #endregion
  13458. #region 插入操作记录
  13459. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13460. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13461. if (modelT_Bus_AssignedInfo != null)
  13462. {
  13463. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13464. }
  13465. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13466. string deptname = "";
  13467. #region 20191021调整为多个主办单位时调整
  13468. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13469. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  13470. #endregion
  13471. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13472. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  13473. oper.F_CreateUser = User.F_UserCode;
  13474. oper.F_CreateTime = DateTime.Now;
  13475. oper.F_IsDelete = 0;
  13476. operBLL.Add(oper);
  13477. //推送消息表
  13478. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  13479. foreach (var u in users)
  13480. {
  13481. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  13482. }
  13483. #endregion
  13484. trans.Complete();
  13485. }
  13486. return Success("操作成功");
  13487. }
  13488. else
  13489. {
  13490. return Error("已经处理过了");
  13491. }
  13492. }
  13493. else
  13494. {
  13495. return Error("操作失败");
  13496. }
  13497. }
  13498. else
  13499. {
  13500. return Error("权限不足");
  13501. }
  13502. }
  13503. /// <summary>
  13504. /// 重办提交工单 提交后为重办待交办
  13505. /// </summary>
  13506. /// <returns></returns>
  13507. //[Authority]
  13508. public ActionResult SubReloadWorkOrder(string ids, string reason
  13509. ,int iszb=0)
  13510. {
  13511. int maindeptid = RequestString.GetInt("maindeptid", 0);
  13512. string otherdeptids = RequestString.GetFormString("otherdeptids");
  13513. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  13514. string assignedopinion = RequestString.GetFormString("assignedopinion");
  13515. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY"|| User.F_RoleCode == "MTDD")
  13516. {
  13517. if (!string .IsNullOrEmpty (ids))
  13518. {
  13519. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(ids);
  13520. if (modelT_Bus_WorkOrder != null)
  13521. {
  13522. if (iszb == 0)
  13523. {
  13524. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  13525. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  13526. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13527. {
  13528. #region 保存工单信息
  13529. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  13530. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  13531. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  13532. modelT_Bus_WorkOrder.F_MainDeptId = null;
  13533. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  13534. modelT_Bus_WorkOrder.F_DealDeptId = null;
  13535. #endregion
  13536. workorderBLL.Update(modelT_Bus_WorkOrder);
  13537. #endregion
  13538. #region 插入操作记录
  13539. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13540. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13541. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13542. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13543. oper.F_Message = userinfo + "于"+DateTime .Now .ToString ("yyyy年MM月dd日HH时mm分ss秒")+"提交重办了工单,重办原因:" + reason;
  13544. oper.F_CreateUser = User.F_UserCode;
  13545. oper.F_CreateTime = DateTime.Now;
  13546. oper.F_IsDelete = 0;
  13547. operBLL.Add(oper);
  13548. #endregion
  13549. }
  13550. else
  13551. {
  13552. return Error("此工单已处理");
  13553. }
  13554. }
  13555. else
  13556. {
  13557. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_RemindDay ==1)
  13558. {
  13559. return Error("结案后工单只能提交重办一次");
  13560. }
  13561. if (modelT_Bus_WorkOrder.F_MainDeptId!=null &&
  13562. modelT_Bus_WorkOrder.F_MainDeptId>0)
  13563. {
  13564. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID
  13565. (modelT_Bus_WorkOrder.F_WorkOrderId);
  13566. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  13567. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  13568. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13569. {
  13570. 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());
  13571. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13572. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13573. 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];
  13574. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  13575. if (!string.IsNullOrEmpty(resdatetime))
  13576. {
  13577. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  13578. }
  13579. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  13580. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  13581. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  13582. newmodelT_Bus_AssignedInfo.F_State = 1;
  13583. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13584. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13585. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  13586. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13587. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  13588. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  13589. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  13590. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  13591. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  13592. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  13593. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  13594. {
  13595. #region 保存工单信息
  13596. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  13597. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  13598. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13599. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13600. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13601. {
  13602. modelT_Bus_WorkOrder.F_RemindDay = 1;
  13603. }
  13604. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  13605. if (!string.IsNullOrEmpty(resdatetime))
  13606. modelT_Bus_WorkOrder.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");
  13607. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13608. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  13609. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  13610. modelT_Bus_WorkOrder.F_Result = "";
  13611. modelT_Bus_WorkOrder.F_DealDeptId = null;
  13612. modelT_Bus_WorkOrder.F_DealUser = "";
  13613. modelT_Bus_WorkOrder.F_DealTime = null;
  13614. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  13615. {
  13616. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  13617. if (user != null && user.Count > 0)
  13618. {
  13619. foreach (var it in user)
  13620. {
  13621. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  13622. string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  13623. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  13624. }
  13625. }
  13626. #region 插入操作记录
  13627. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13628. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13629. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  13630. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13631. string deptname = "";
  13632. #region 20191021调整为多个主办单位时调整
  13633. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13634. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  13635. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  13636. #endregion
  13637. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13638. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  13639. if (!string.IsNullOrEmpty(otherdeptids))
  13640. {
  13641. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  13642. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  13643. }
  13644. oper.F_CreateUser = User.F_UserCode;
  13645. oper.F_CreateTime = DateTime.Now;
  13646. oper.F_IsDelete = 0;
  13647. operBLL.Add(oper);
  13648. //推送消息表
  13649. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13650. foreach (var u in users)
  13651. {
  13652. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  13653. }
  13654. #endregion
  13655. return Success("操作成功");
  13656. }
  13657. else
  13658. {
  13659. return Error("重办失败");
  13660. }
  13661. #endregion
  13662. }
  13663. else
  13664. {
  13665. return Error("退回失败");
  13666. }
  13667. }
  13668. else
  13669. {
  13670. return Error("已经处理过了");
  13671. }
  13672. }
  13673. else
  13674. {
  13675. #region 保存工单信息
  13676. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  13677. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  13678. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13679. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13680. modelT_Bus_WorkOrder.F_IsReload = 1;
  13681. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13682. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  13683. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  13684. modelT_Bus_WorkOrder.F_Result = "";
  13685. modelT_Bus_WorkOrder.F_DealDeptId = null;
  13686. modelT_Bus_WorkOrder.F_DealUser = "";
  13687. modelT_Bus_WorkOrder.F_DealTime = null;
  13688. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  13689. {
  13690. #region 插入操作记录
  13691. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13692. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13693. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13694. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13695. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  13696. if (!string.IsNullOrEmpty(otherdeptids))
  13697. {
  13698. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  13699. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  13700. }
  13701. oper.F_CreateUser = User.F_UserCode;
  13702. oper.F_CreateTime = DateTime.Now;
  13703. oper.F_IsDelete = 0;
  13704. operBLL.Add(oper);
  13705. //推送消息表
  13706. #endregion
  13707. }
  13708. else
  13709. {
  13710. return Error("重办失败");
  13711. }
  13712. #endregion
  13713. }
  13714. }
  13715. }
  13716. else
  13717. {
  13718. return Error("操作失败");
  13719. }
  13720. return Success("操作成功");
  13721. }
  13722. else
  13723. {
  13724. return Error("操作失败");
  13725. }
  13726. }
  13727. else
  13728. {
  13729. return Error("权限不足");
  13730. }
  13731. }
  13732. /// <summary>
  13733. /// 驳回重办,驳回后状态为重办驳回状态
  13734. /// 调度员可驳回
  13735. /// </summary>
  13736. /// <param name="ids"></param>
  13737. /// <returns></returns>
  13738. //[Authority]
  13739. public ActionResult RejReloadWorkOrder(string id,string reason)
  13740. {
  13741. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  13742. {
  13743. if (!string.IsNullOrEmpty(id))
  13744. {
  13745. using (TransactionScope trans = new TransactionScope())
  13746. {
  13747. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  13748. if (modelT_Bus_WorkOrder != null)
  13749. {
  13750. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='"+modelT_Bus_WorkOrder.F_WorkOrderId+ "' order by F_CreateTime desc ").FirstOrDefault();
  13751. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  13752. {
  13753. #region 保存工单信息
  13754. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  13755. if (modelT_Bus_AssignedInfo != null)
  13756. {
  13757. 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();
  13758. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  13759. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  13760. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  13761. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  13762. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  13763. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  13764. #endregion
  13765. }
  13766. workorderBLL.Update(modelT_Bus_WorkOrder);
  13767. #endregion
  13768. #region 插入操作记录
  13769. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13770. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13771. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13772. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13773. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  13774. oper.F_CreateUser = User.F_UserCode;
  13775. oper.F_CreateTime = DateTime.Now;
  13776. oper.F_IsDelete = 0;
  13777. operBLL.Add(oper);
  13778. #endregion
  13779. }
  13780. }
  13781. trans.Complete();
  13782. }
  13783. return Success("操作成功");
  13784. }
  13785. else
  13786. {
  13787. return Error("参数异常");
  13788. }
  13789. }
  13790. else
  13791. {
  13792. return Error("权限不足");
  13793. }
  13794. }
  13795. /// <summary>
  13796. /// 重办工单
  13797. /// </summary>
  13798. /// <returns></returns>
  13799. //[Authority]
  13800. public ActionResult NewReloadWorkOrder()
  13801. {
  13802. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  13803. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  13804. {
  13805. string workorderid = RequestString.GetFormString("workorderid");
  13806. int maindeptid = RequestString.GetInt("maindeptid", 0);
  13807. string otherdeptids = RequestString.GetFormString("otherdeptids");
  13808. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  13809. string assignedopinion = RequestString.GetFormString("assignedopinion");
  13810. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13811. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13812. if (modelT_Bus_WorkOrder != null)
  13813. {
  13814. if (!string.IsNullOrEmpty(otherdeptids))
  13815. {
  13816. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  13817. {
  13818. return Error("主办单位不能出现在协办单位");
  13819. }
  13820. }
  13821. if (limittime < DateTime.Now)
  13822. {
  13823. return Error("办理时限不能小于当前时间");
  13824. }
  13825. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  13826. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13827. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  13828. {
  13829. using (TransactionScope trans = new TransactionScope())
  13830. {
  13831. 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());
  13832. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13833. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13834. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  13835. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  13836. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  13837. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  13838. newmodelT_Bus_AssignedInfo.F_State = 1;
  13839. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  13840. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13841. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  13842. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13843. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  13844. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  13845. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  13846. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  13847. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  13848. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  13849. #region 保存工单信息
  13850. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  13851. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  13852. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  13853. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13854. modelT_Bus_WorkOrder.F_MainDeptID3 = "";
  13855. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  13856. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  13857. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  13858. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  13859. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  13860. modelT_Bus_WorkOrder.F_Result = "";
  13861. modelT_Bus_WorkOrder.F_DealDeptId = null;
  13862. modelT_Bus_WorkOrder.F_DealUser = "";
  13863. modelT_Bus_WorkOrder.F_DealTime = null;
  13864. workorderBLL.Update(modelT_Bus_WorkOrder);
  13865. #endregion
  13866. #region 插入操作记录
  13867. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13868. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13869. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  13870. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13871. string deptname = "";
  13872. #region 20191021调整为多个主办单位时调整
  13873. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13874. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  13875. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  13876. #endregion
  13877. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13878. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  13879. if (!string.IsNullOrEmpty(otherdeptids))
  13880. {
  13881. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  13882. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  13883. }
  13884. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + maindeptid + "') ");
  13885. if (user != null && user.Count > 0)
  13886. {
  13887. foreach (var it in user)
  13888. {
  13889. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  13890. string msg = workorderid;
  13891. bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  13892. }
  13893. }
  13894. oper.F_CreateUser = User.F_UserCode;
  13895. oper.F_CreateTime = DateTime.Now;
  13896. oper.F_IsDelete = 0;
  13897. operBLL.Add(oper);
  13898. //推送消息表
  13899. //var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13900. //foreach (var u in users)
  13901. //{
  13902. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  13903. //}
  13904. #endregion
  13905. trans.Complete();
  13906. }
  13907. return Success("操作成功");
  13908. }
  13909. else
  13910. {
  13911. return Error("已经处理过了");
  13912. }
  13913. }
  13914. else
  13915. {
  13916. return Error("操作失败");
  13917. }
  13918. }
  13919. else
  13920. {
  13921. return Error("权限不足");
  13922. }
  13923. }
  13924. /// <summary>
  13925. /// 结案工单
  13926. /// </summary>
  13927. /// <returns></returns>
  13928. //[Authority]
  13929. public ActionResult FinishWorkOrder()
  13930. {
  13931. //if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY")
  13932. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  13933. {
  13934. string workorderid = RequestString.GetFormString("workorderid");
  13935. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  13936. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  13937. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  13938. string deptids = RequestString.GetFormString("deptids");//通告单位
  13939. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  13940. //2020-3-4添加通告选项
  13941. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  13942. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  13943. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  13944. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  13945. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13946. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13947. if (modelT_Bus_WorkOrder != null)
  13948. {
  13949. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  13950. //{
  13951. // return Error("操作失败");
  13952. //}
  13953. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  13954. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState==(int)EnumWorkState.rejload)
  13955. {
  13956. using (TransactionScope trans = new TransactionScope())
  13957. {
  13958. #region 修改工单记录
  13959. //modelT_Bus_WorkOrder.F_WorkState = 9;
  13960. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  13961. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  13962. modelT_Bus_WorkOrder.F_IsClosed = 1;
  13963. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  13964. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  13965. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  13966. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  13967. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  13968. modelT_Bus_WorkOrder.F_ToBereply = 0;
  13969. if (isnotice == 1)
  13970. {
  13971. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  13972. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  13973. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13974. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  13975. modelT_Bus_NoticeCriticism.F_State = 1;
  13976. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  13977. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  13978. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  13979. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  13980. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  13981. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  13982. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13983. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  13984. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  13985. modelT_Bus_WorkOrder.F_IsNotice = 1;
  13986. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  13987. }
  13988. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  13989. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  13990. assignBLL.Update(modelT_Bus_AssignedInfo);
  13991. workorderBLL.Update(modelT_Bus_WorkOrder);
  13992. #endregion
  13993. #region 插入操作记录
  13994. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13995. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13996. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13997. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13998. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  13999. if (isnotice == 1)
  14000. {
  14001. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  14002. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  14003. }
  14004. if (isstandard == 1)
  14005. {
  14006. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  14007. var sts= DbHelperSQL.GetSingle(sqlstand);
  14008. oper.F_Message = oper.F_Message + ";办理结果出现不规范"+ sts + "情况,请及时查看";
  14009. }
  14010. oper.F_CreateUser = User.F_UserCode;
  14011. oper.F_CreateTime = DateTime.Now;
  14012. oper.F_IsDelete = 0;
  14013. operBLL.Add(oper);
  14014. //调用科大讯飞
  14015. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  14016. {
  14017. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  14018. if (tbf != null)
  14019. {
  14020. string deptname = string.Empty;
  14021. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  14022. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  14023. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  14024. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  14025. if (bl)
  14026. {
  14027. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  14028. }
  14029. else
  14030. {
  14031. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  14032. }
  14033. }
  14034. }
  14035. #endregion
  14036. trans.Complete();
  14037. }
  14038. return Success("操作成功");
  14039. }
  14040. else
  14041. {
  14042. return Error("已经处理过了");
  14043. }
  14044. }
  14045. else
  14046. {
  14047. return Error("操作失败");
  14048. }
  14049. }
  14050. else
  14051. {
  14052. return Error("权限不足");
  14053. }
  14054. }
  14055. /// <summary>
  14056. /// 结案工单
  14057. /// </summary>
  14058. /// <returns></returns>
  14059. //[Authority]
  14060. public ActionResult ForceFinishWorkOrder()
  14061. {
  14062. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  14063. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  14064. {
  14065. string workorderid = RequestString.GetFormString("workorderid");
  14066. string result = RequestString.GetFormString("result");//处理结果
  14067. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  14068. int issatisfie = RequestString.GetInt("issatisfie", 1);//0不满意 1满意
  14069. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  14070. //是否发送短信0否1是
  14071. int issms = RequestString.GetInt("issms", 0);
  14072. string deptids = RequestString.GetFormString("deptids");//通告单位
  14073. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  14074. //2020-3-4添加通告选项
  14075. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  14076. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  14077. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  14078. string standardids= RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  14079. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14080. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14081. if (modelT_Bus_WorkOrder != null)
  14082. {
  14083. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"
  14084. && User.F_RoleCode != "ZXLD"&& User.F_RoleCode != "MTDD")
  14085. {
  14086. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  14087. {
  14088. return Error("操作失败");
  14089. }
  14090. }
  14091. using (TransactionScope trans = new TransactionScope())
  14092. {
  14093. #region 修改工单记录
  14094. if(!string .IsNullOrEmpty (result))
  14095. modelT_Bus_WorkOrder.F_Result = result;
  14096. else if (string .IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  14097. {
  14098. if (!string .IsNullOrEmpty (finalopinion))
  14099. modelT_Bus_WorkOrder.F_Result = finalopinion;
  14100. }
  14101. if (modelT_Bus_WorkOrder.F_DealTime == null)
  14102. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14103. //modelT_Bus_WorkOrder.F_WorkState = 9;
  14104. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  14105. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  14106. modelT_Bus_WorkOrder.F_IsClosed = 1;
  14107. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  14108. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14109. if (!string .IsNullOrEmpty (finalopinion))
  14110. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  14111. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  14112. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  14113. if (isnotice == 1)
  14114. {
  14115. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  14116. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  14117. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14118. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  14119. modelT_Bus_NoticeCriticism.F_State = 1;
  14120. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  14121. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  14122. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  14123. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  14124. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  14125. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  14126. modelT_Bus_WorkOrder.F_IsNotice = 1;
  14127. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  14128. if (modelT_Bus_AssignedInfo != null)
  14129. {
  14130. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  14131. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  14132. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  14133. }
  14134. }
  14135. if (modelT_Bus_AssignedInfo!=null )
  14136. {
  14137. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  14138. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  14139. assignBLL.Update(modelT_Bus_AssignedInfo);
  14140. }
  14141. workorderBLL.Update(modelT_Bus_WorkOrder);
  14142. #endregion
  14143. #region 插入操作记录
  14144. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14145. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14146. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14147. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14148. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  14149. if (isnotice == 1)
  14150. {
  14151. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  14152. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  14153. }
  14154. if(isstandard==1)
  14155. {
  14156. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  14157. }
  14158. if (issms >0)
  14159. {
  14160. string count = "您反映的诉求已办理完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果并对办理情况进行评价,谢谢";
  14161. string mag = "";
  14162. bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "213014", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  14163. }
  14164. oper.F_CreateUser = User.F_UserCode;
  14165. oper.F_CreateTime = DateTime.Now;
  14166. oper.F_IsDelete = 0;
  14167. operBLL.Add(oper);
  14168. if (!string .IsNullOrEmpty (modelT_Bus_WorkOrder.F_MainWorkorder1) )
  14169. {
  14170. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  14171. if (model != null)
  14172. {
  14173. model.F_IsClosed = 1;
  14174. model.F_CloseTime = DateTime.Now;
  14175. model.F_CloseUser = User.F_UserCode;
  14176. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  14177. if (string .IsNullOrEmpty(model.F_Result))
  14178. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  14179. else
  14180. model.F_Result +="; " + modelT_Bus_WorkOrder.F_Result;
  14181. if (!string .IsNullOrEmpty (finalopinion))
  14182. {
  14183. if (string.IsNullOrEmpty(model.F_FinalOpinion))
  14184. model.F_FinalOpinion = finalopinion;
  14185. else
  14186. model.F_FinalOpinion += "; " + modelT_Bus_WorkOrder.F_FinalOpinion;
  14187. }
  14188. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  14189. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  14190. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  14191. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  14192. workorderBLL.Update(model);
  14193. }
  14194. }
  14195. if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  14196. {
  14197. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  14198. {
  14199. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  14200. if (orderlist.Length > 0)
  14201. {
  14202. foreach (var it in orderlist)
  14203. {
  14204. var model = workorderBLL.GetModel(it);
  14205. if (model != null)
  14206. {
  14207. model.F_IsClosed = 1;
  14208. model.F_CloseTime = DateTime.Now;
  14209. model.F_CloseUser = User.F_UserCode;
  14210. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  14211. model.F_Result = modelT_Bus_WorkOrder.F_Result;
  14212. if (!string.IsNullOrEmpty(finalopinion))
  14213. {
  14214. model.F_FinalOpinion = finalopinion;
  14215. }
  14216. model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  14217. model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  14218. model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  14219. model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  14220. workorderBLL.Update(model);
  14221. }
  14222. }
  14223. }
  14224. }
  14225. }
  14226. #endregion
  14227. trans.Complete();
  14228. }
  14229. return Success("操作成功");
  14230. }
  14231. else
  14232. {
  14233. return Error("操作失败");
  14234. }
  14235. }
  14236. else
  14237. {
  14238. return Error("权限不足");
  14239. }
  14240. }
  14241. /// <summary>
  14242. /// 删除工单
  14243. /// </summary>
  14244. /// <returns></returns>
  14245. public ActionResult DelWorkOrder(string[] ids)
  14246. {
  14247. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  14248. {
  14249. //StringBuilder sb = new StringBuilder();
  14250. foreach (var item in ids)
  14251. {
  14252. //sb.Append("'" + item + "',");
  14253. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  14254. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  14255. {
  14256. using (TransactionScope trans = new TransactionScope())
  14257. {
  14258. #region 修改工单记录
  14259. modelT_Bus_WorkOrder.F_IsDelete = 1;
  14260. modelT_Bus_WorkOrder.F_DeleteUser= User.F_UserCode;
  14261. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  14262. workorderBLL.Update(modelT_Bus_WorkOrder);
  14263. #endregion
  14264. #region 插入操作记录
  14265. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14266. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14267. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14268. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14269. oper.F_Message = userinfo + " 删除了工单";
  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. trans.Complete();
  14276. }
  14277. }
  14278. }
  14279. return Success("删除成功");
  14280. }
  14281. else
  14282. {
  14283. return Error("权限不足");
  14284. }
  14285. }
  14286. /// <summary>
  14287. /// 转公开工单
  14288. /// </summary>
  14289. /// <returns></returns>
  14290. //[Authority]
  14291. public ActionResult ReleaseWorkOrder()
  14292. {
  14293. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  14294. {
  14295. string workorderid = RequestString.GetFormString("workorderid");
  14296. int isrelease = RequestString.GetInt("isrelease", -1);
  14297. // int isopen = RequestString.GetInt("isopen", 0);
  14298. if (isrelease > -1)
  14299. {
  14300. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14301. if (modelT_Bus_WorkOrder != null)
  14302. {
  14303. using (TransactionScope trans = new TransactionScope())
  14304. {
  14305. #region 修改工单记录
  14306. if (isrelease > 0)
  14307. modelT_Bus_WorkOrder.F_IsOpen = 1;
  14308. else
  14309. modelT_Bus_WorkOrder.F_IsOpen = 0;
  14310. workorderBLL.Update(modelT_Bus_WorkOrder);
  14311. #endregion
  14312. #region 插入操作记录
  14313. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14314. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14315. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14316. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14317. if (modelT_Bus_WorkOrder.F_IsOpen == 1)
  14318. oper.F_Message = userinfo + "公开了工单";
  14319. else
  14320. oper.F_Message = userinfo + "撤回了公开工单";
  14321. oper.F_CreateUser = User.F_UserCode;
  14322. oper.F_CreateTime = DateTime.Now;
  14323. oper.F_IsDelete = 0;
  14324. operBLL.Add(oper);
  14325. #endregion
  14326. trans.Complete();
  14327. }
  14328. return Success("操作成功");
  14329. }
  14330. else
  14331. return Error("操作失败");
  14332. }
  14333. else
  14334. return Error("操作失败");
  14335. }
  14336. else
  14337. {
  14338. return Error("权限不足否");
  14339. }
  14340. }
  14341. /// <summary>
  14342. /// 关联工单
  14343. /// </summary>
  14344. /// <returns></returns>
  14345. //[Authority]
  14346. public ActionResult RelationWorkOrder()
  14347. {
  14348. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  14349. {
  14350. string workorderid = RequestString.GetFormString("workorderid");
  14351. string subworkorderid = RequestString.GetFormString("subworkorderid");
  14352. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14353. if (string.IsNullOrEmpty(workorderid))
  14354. return Error("请选择主工单");
  14355. if (string.IsNullOrEmpty(subworkorderid))
  14356. return Error("请选择子工单");
  14357. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14358. if (modelT_Bus_WorkOrder == null)
  14359. return Error("主工单不存在");
  14360. if(modelT_Bus_WorkOrder.F_IsRelease ==3)
  14361. return Error(modelT_Bus_WorkOrder.F_WorkOrderId +"工单已被设置为子工单不能设置为主工单");
  14362. string[] orderlist = subworkorderid.Split(',');
  14363. if (subworkorderid.Contains(workorderid))
  14364. {
  14365. return Error("主工单不能出现在子工单中");
  14366. }
  14367. if (orderlist.Length > 0)
  14368. {
  14369. foreach (var it in orderlist)
  14370. {
  14371. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = workorderBLL.GetModel(it);
  14372. if (modelT_Bus_WorkOrder1 == null)
  14373. return Error("子工单"+ it + "不存在");
  14374. if (modelT_Bus_WorkOrder1.F_IsRelease ==2)
  14375. return Error("" + it + "已被设置为主工单,不能设置为子工单");
  14376. modelT_Bus_WorkOrder1.F_MainWorkorder = modelT_Bus_WorkOrder.F_WorkOrderId;
  14377. modelT_Bus_WorkOrder1.F_IsRelease = 3;
  14378. bool n = workorderBLL.Update(modelT_Bus_WorkOrder1);
  14379. if (!n )
  14380. return Error("设置子工单" + it + "失败");
  14381. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14382. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  14383. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  14384. oper.F_Message = userinfo + "设置该工单为子工单,主工单为:"+ modelT_Bus_WorkOrder.F_WorkOrderId;
  14385. oper.F_CreateUser = User.F_UserCode;
  14386. oper.F_CreateTime = DateTime.Now;
  14387. oper.F_IsDelete = 0;
  14388. operBLL.Add(oper);
  14389. }
  14390. }
  14391. else
  14392. {
  14393. return Error("请选择子工单");
  14394. }
  14395. modelT_Bus_WorkOrder.F_SubWorkorder = subworkorderid;
  14396. modelT_Bus_WorkOrder.F_IsRelease = 2;
  14397. Model.T_Bus_Operation ope = new Model.T_Bus_Operation();
  14398. ope.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14399. ope.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14400. ope.F_Message = userinfo + "设置该工单为主工单,子工单为:" + subworkorderid;
  14401. ope.F_CreateUser = User.F_UserCode;
  14402. ope.F_CreateTime = DateTime.Now;
  14403. ope.F_IsDelete = 0;
  14404. operBLL.Add(ope);
  14405. if (workorderBLL .Update (modelT_Bus_WorkOrder))
  14406. return Success("操作成功");
  14407. else
  14408. return Error ("操作失败");
  14409. }
  14410. else
  14411. {
  14412. return Error("权限不足");
  14413. }
  14414. }
  14415. ///// <summary>
  14416. ///// 通告和撤销通告
  14417. ///// </summary>
  14418. ///// <returns></returns>
  14419. ////[Authority]
  14420. //public ActionResult NoticeWorkOrder()
  14421. //{
  14422. //
  14423. //
  14424. // if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" ||User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY")
  14425. // {
  14426. // int assignid = RequestString.GetInt("id", 0);
  14427. // int isnotice = RequestString.GetInt("isnotice", -1);
  14428. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  14429. // if (modelT_Bus_AssignedInfo != null)
  14430. // {
  14431. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  14432. // {
  14433. // using (TransactionScope trans = new TransactionScope())
  14434. // {
  14435. // #region 修改交办记录
  14436. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  14437. // assignBLL.Update(modelT_Bus_AssignedInfo);
  14438. // #endregion
  14439. // #region 插入操作记录
  14440. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14441. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14442. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  14443. // string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  14444. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  14445. // oper.F_CreateUser = User.F_UserCode;
  14446. // oper.F_CreateTime = DateTime.Now;
  14447. // oper.F_IsDelete = 0;
  14448. // operBLL.Add(oper);
  14449. // #endregion
  14450. // trans.Complete();
  14451. // }
  14452. // return Success("操作成功");
  14453. // }
  14454. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  14455. // {
  14456. // using (TransactionScope trans = new TransactionScope())
  14457. // {
  14458. // #region 修改交办记录
  14459. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  14460. // assignBLL.Update(modelT_Bus_AssignedInfo);
  14461. // #endregion
  14462. // #region 插入操作记录
  14463. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14464. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14465. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  14466. // string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  14467. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  14468. // oper.F_CreateUser = User.F_UserCode;
  14469. // oper.F_CreateTime = DateTime.Now;
  14470. // oper.F_IsDelete = 0;
  14471. // operBLL.Add(oper);
  14472. // #endregion
  14473. // trans.Complete();
  14474. // }
  14475. // return Success("操作成功");
  14476. // }
  14477. // else
  14478. // {
  14479. // return Error("操作失败");
  14480. // }
  14481. // }
  14482. // else
  14483. // {
  14484. // return Error("操作失败");
  14485. // }
  14486. // }
  14487. // else
  14488. // {
  14489. // return Error("权限不足");
  14490. // }
  14491. //}
  14492. /// <summary>
  14493. /// 通告和撤销通告
  14494. /// </summary>
  14495. /// <returns></returns>
  14496. //[Authority]
  14497. public ActionResult NoticeWorkOrder()
  14498. {
  14499. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  14500. {
  14501. string workorderid = RequestString.GetFormString("workorderid");
  14502. int isnotice = RequestString.GetInt("isnotice", -1);
  14503. string deptids = RequestString.GetFormString("deptids");//通告单位
  14504. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  14505. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14506. if (modelT_Bus_WorkOrder != null)
  14507. {
  14508. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  14509. {
  14510. using (TransactionScope trans = new TransactionScope())
  14511. {
  14512. #region 修改工单记录
  14513. modelT_Bus_WorkOrder.F_IsNotice = 0;
  14514. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  14515. workorderBLL.Update(modelT_Bus_WorkOrder);
  14516. #endregion
  14517. #region 修改通告记录
  14518. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  14519. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  14520. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  14521. modelT_Bus_NoticeCriticism.F_DeleteUser = User.F_UserCode;
  14522. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  14523. #endregion
  14524. #region 插入操作记录
  14525. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14526. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14527. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  14528. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14529. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  14530. oper.F_CreateUser = User.F_UserCode;
  14531. oper.F_CreateTime = DateTime.Now;
  14532. oper.F_IsDelete = 0;
  14533. operBLL.Add(oper);
  14534. #endregion
  14535. trans.Complete();
  14536. }
  14537. return Success("操作成功");
  14538. }
  14539. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  14540. {
  14541. using (TransactionScope trans = new TransactionScope())
  14542. {
  14543. #region 修改工单记录
  14544. modelT_Bus_WorkOrder.F_IsNotice = 1;
  14545. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  14546. workorderBLL.Update(modelT_Bus_WorkOrder);
  14547. #endregion
  14548. #region 新增通告记录
  14549. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  14550. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  14551. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14552. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  14553. modelT_Bus_NoticeCriticism.F_State = 1;
  14554. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  14555. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  14556. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  14557. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  14558. #endregion
  14559. #region 插入操作记录
  14560. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14561. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14562. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  14563. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14564. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  14565. oper.F_CreateUser = User.F_UserCode;
  14566. oper.F_CreateTime = DateTime.Now;
  14567. oper.F_IsDelete = 0;
  14568. operBLL.Add(oper);
  14569. #endregion
  14570. trans.Complete();
  14571. }
  14572. return Success("操作成功");
  14573. }
  14574. else
  14575. {
  14576. return Error("操作失败");
  14577. }
  14578. }
  14579. else
  14580. {
  14581. return Error("操作失败");
  14582. }
  14583. }
  14584. else
  14585. {
  14586. return Error("权限不足");
  14587. }
  14588. }
  14589. /// <summary>
  14590. /// 市民催单
  14591. /// </summary>
  14592. /// <returns></returns>
  14593. //[Authority]
  14594. public ActionResult AdditionalWorkOrder()
  14595. {
  14596. string workorderid = RequestString.GetFormString("workorderid");
  14597. string title = RequestString.GetFormString("title");
  14598. string content = RequestString.GetFormString("content");
  14599. string files = RequestString.GetFormString("files");
  14600. string callid = RequestString.GetFormString("callid");
  14601. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  14602. if (modelT_Bus_WorkOrder != null)
  14603. {
  14604. using (TransactionScope trans = new TransactionScope())
  14605. {
  14606. #region 插入附加记录
  14607. //批示记录
  14608. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  14609. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  14610. model_T_Bus_Additional.F_Title = title;
  14611. model_T_Bus_Additional.F_Content = content;
  14612. if (!string.IsNullOrEmpty(callid))
  14613. {
  14614. model_T_Bus_Additional.F_CallId = callid;
  14615. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  14616. if (rd != null)
  14617. {
  14618. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  14619. }
  14620. }
  14621. model_T_Bus_Additional.F_File = files;//附件
  14622. model_T_Bus_Additional.F_CreateUser = User.F_UserCode;//呈批人
  14623. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  14624. model_T_Bus_Additional.F_IsDelete = 0;
  14625. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  14626. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  14627. #endregion
  14628. #region 插入操作记录
  14629. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14630. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14631. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14632. string userinfo = User.depname+ "(" + User.F_UserCode + ")";
  14633. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  14634. oper.F_CreateUser = User.F_UserCode;
  14635. oper.F_CreateTime = DateTime.Now;
  14636. oper.F_IsDelete = 0;
  14637. operBLL.Add(oper);
  14638. #endregion
  14639. #region 根据状态不同给出提醒
  14640. var sqlusers = " F_DeleteFlag=0 ";
  14641. #region 获取被提醒人
  14642. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14643. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  14644. sqlusers += " and F_UserCode='"+ modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  14645. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  14646. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  14647. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  14648. {
  14649. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  14650. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  14651. }
  14652. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  14653. {
  14654. if (modelT_Bus_AssignedInfo != null )
  14655. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  14656. }
  14657. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  14658. {
  14659. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  14660. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  14661. }
  14662. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  14663. {
  14664. if (modelT_Bus_AssignedInfo != null)
  14665. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  14666. }
  14667. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  14668. {
  14669. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  14670. }
  14671. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  14672. {
  14673. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  14674. }
  14675. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  14676. {
  14677. if (modelT_Bus_AssignedInfo != null)
  14678. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  14679. }
  14680. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  14681. {
  14682. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  14683. }
  14684. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  14685. {
  14686. if (modelT_Bus_AssignedInfo != null)
  14687. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  14688. }
  14689. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  14690. {
  14691. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  14692. }
  14693. #endregion
  14694. var userlists = userBLL.GetModelListNoCache(sqlusers);
  14695. //推送消息表
  14696. foreach (var u in userlists)
  14697. {
  14698. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  14699. }
  14700. #endregion
  14701. trans.Complete();
  14702. }
  14703. return Success("操作成功");
  14704. }
  14705. else
  14706. {
  14707. return Error("操作失败");
  14708. }
  14709. }
  14710. #endregion
  14711. #region 语音附件其他
  14712. /// <summary>
  14713. /// 验证当前单位是否交办单位
  14714. /// </summary>
  14715. /// <param name="modelT_Bus_AssignedInfo"></param>
  14716. /// <param name="deptid"></param>
  14717. /// <returns></returns>
  14718. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  14719. {
  14720. int type = 0;
  14721. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  14722. {
  14723. type = 1;//主办
  14724. }
  14725. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  14726. {
  14727. type = 2;//协办
  14728. }
  14729. return type;
  14730. }
  14731. /// <summary>
  14732. /// 获取留言路径
  14733. /// </summary>
  14734. /// <param name="lid">留言id</param>
  14735. /// <param name="prefix">前缀</param>
  14736. /// <returns></returns>
  14737. public string GetLeavePath(string lid, string prefix)
  14738. {
  14739. string path = string.Empty;
  14740. try
  14741. {
  14742. var liuyan = new BLL.T_Call_LeaveRecord().GetModel(int.Parse(lid));
  14743. if (liuyan != null)
  14744. {
  14745. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  14746. {
  14747. path = prefix + liuyan.F_RecFileUrl;
  14748. }
  14749. }
  14750. }
  14751. catch
  14752. {
  14753. }
  14754. return path;
  14755. }
  14756. /// <summary>
  14757. /// 获取通话录音路径
  14758. /// </summary>
  14759. /// <param name="cid">通话id</param>
  14760. /// <param name="prefix">前缀</param>
  14761. /// <returns></returns>
  14762. public string GetCallPath(string cid, string prefix)
  14763. {
  14764. string path = string.Empty;
  14765. try
  14766. {
  14767. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(cid));
  14768. if (luyin != null)
  14769. {
  14770. if (!string.IsNullOrEmpty(luyin.FilePath))
  14771. {
  14772. var ym = prefix;
  14773. ym = ym.Substring(0, ym.Length - 1);
  14774. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  14775. path = ym + lujing;
  14776. }
  14777. }
  14778. }
  14779. catch
  14780. {
  14781. }
  14782. return path;
  14783. }
  14784. public ActionResult Uploads(string ids)
  14785. {
  14786. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  14787. string prefix = configfj.F_ParamValue;
  14788. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  14789. foreach (DataRow dr in dt.Rows)
  14790. {
  14791. if (dr["F_UserCode"].ToString() == "jianhang")
  14792. {
  14793. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  14794. {
  14795. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14796. }
  14797. else
  14798. {
  14799. 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(), ""));
  14800. if (url == "1")
  14801. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14802. else
  14803. dr["F_FileUrl"] = url;
  14804. }
  14805. }
  14806. else
  14807. {
  14808. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14809. }
  14810. }
  14811. return Success("成功");
  14812. }
  14813. public string Upload(string pathUrl,string newFileName, string path)
  14814. {
  14815. //文件下载地址
  14816. try
  14817. {
  14818. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pathUrl);
  14819. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  14820. Stream responseStream = response.GetResponseStream();
  14821. string Currentpath = "F:/WEB/anyang12345Api" + path;
  14822. // 如果不存在就创建file文件夹
  14823. if (!Directory.Exists(Currentpath))
  14824. {
  14825. if (Currentpath != null) Directory.CreateDirectory(Currentpath);
  14826. }
  14827. Stream stream = new FileStream(Currentpath + newFileName, FileMode.Create);
  14828. byte[] bArr = new byte[1024];
  14829. int size = responseStream.Read(bArr, 0, bArr.Length);
  14830. while (size > 0)
  14831. {
  14832. stream.Write(bArr, 0, size);
  14833. size = responseStream.Read(bArr, 0, bArr.Length);
  14834. }
  14835. stream.Close();
  14836. responseStream.Close();
  14837. return "1";
  14838. }
  14839. catch (Exception e)
  14840. {
  14841. return e.Message ;
  14842. }
  14843. }
  14844. /// <summary>
  14845. /// 获取附件数据
  14846. /// </summary>
  14847. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  14848. /// <param name="prefix">前缀</param>
  14849. /// <returns></returns>
  14850. public DataTable GetFileData(string ids, string prefix)
  14851. {
  14852. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  14853. foreach (DataRow dr in dt.Rows)
  14854. {
  14855. if (dr["F_UserCode"].ToString() == "jianhang")
  14856. {
  14857. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  14858. {
  14859. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14860. }
  14861. else
  14862. {
  14863. 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(), ""));
  14864. if (url == "1")
  14865. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14866. else
  14867. dr["F_FileUrl"] = url;
  14868. }
  14869. }
  14870. else
  14871. {
  14872. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14873. }
  14874. }
  14875. return dt;
  14876. }
  14877. /// <summary>
  14878. /// 绑定追问回复附件信息
  14879. /// </summary>
  14880. /// <param name="dt"></param>
  14881. /// <param name="prefix"></param>
  14882. /// <returns></returns>
  14883. public DataTable BindFileDatas(DataTable dt, string prefix)
  14884. {
  14885. dt.Columns.Add("File", typeof(object));
  14886. foreach (DataRow dr in dt.Rows)
  14887. {
  14888. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  14889. {
  14890. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  14891. }
  14892. }
  14893. dt.Columns.Add("Files", typeof(object));
  14894. foreach (DataRow dr in dt.Rows)
  14895. {
  14896. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  14897. {
  14898. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  14899. }
  14900. }
  14901. return dt;
  14902. }
  14903. /// <summary>
  14904. /// 绑定附件信息
  14905. /// </summary>
  14906. /// <param name="dt"></param>
  14907. /// <param name="prefix"></param>
  14908. /// <returns></returns>
  14909. public DataTable BindFileData(DataTable dt, string prefix)
  14910. {
  14911. dt.Columns.Add("File", typeof(object));
  14912. foreach (DataRow dr in dt.Rows)
  14913. {
  14914. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  14915. {
  14916. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  14917. }
  14918. }
  14919. return dt;
  14920. }
  14921. #endregion
  14922. #region 修改工单 by admin
  14923. /// <summary>
  14924. /// 获取详情
  14925. /// </summary>
  14926. /// <returns></returns>
  14927. //[Authority]
  14928. public ActionResult GetInfoByAdmin(int id, int type)
  14929. {
  14930. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14931. {
  14932. //string sql = "select * from ";
  14933. string table = string.Empty;
  14934. switch (type)
  14935. {
  14936. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  14937. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  14938. case 3: table = "T_Bus_Feedback"; break;//办理信息
  14939. case 4: table = "T_Bus_RemindRecord"; break;//督办
  14940. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  14941. case 6: table = "T_Bus_VisitResult"; break;//回访
  14942. }
  14943. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  14944. var dt = DbHelperSQL.Query(sql).Tables[0];
  14945. return Success("操作成功", dt);
  14946. }
  14947. else
  14948. {
  14949. return Error("权限不足");
  14950. }
  14951. }
  14952. /// <summary>
  14953. /// 修改工单信息
  14954. /// </summary>
  14955. /// <returns></returns>
  14956. //[Authority]
  14957. public ActionResult EditWorkOrderByAdmin()
  14958. {
  14959. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14960. {
  14961. string workorderid = RequestString.GetFormString("workorderid");
  14962. int source = RequestString.GetInt("source", 0);
  14963. string cusname = RequestString.GetFormString("cusname");
  14964. string cussex = RequestString.GetFormString("cussex");
  14965. string cusphone = RequestString.GetFormString("cusphone");
  14966. string cusaddress = RequestString.GetFormString("cusaddress");
  14967. string email = RequestString.GetFormString("email");
  14968. string zipcode = RequestString.GetFormString("zipcode");
  14969. string conname = RequestString.GetFormString("conname");
  14970. string conphone = RequestString.GetFormString("conphone");
  14971. string title = RequestString.GetFormString("title");
  14972. string content = RequestString.GetFormString("content");
  14973. string files = RequestString.GetFormString("files");
  14974. int sourcearea = RequestString.GetInt("sourcearea", 0);
  14975. string sourceaddress = RequestString.GetFormString("sourceaddress");
  14976. string keys = RequestString.GetFormString("keys");
  14977. string splituser = RequestString.GetFormString("splituser");
  14978. int type = RequestString.GetInt("type", 0);
  14979. int bigtype = RequestString.GetInt("bigtype", 0);
  14980. int smalltype = RequestString.GetInt("smalltype", 0);
  14981. int isprotect = RequestString.GetInt("isprotect", 0);
  14982. int level = RequestString.GetInt("level", 0);
  14983. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14984. if (modelT_Bus_WorkOrder != null)
  14985. {
  14986. using (TransactionScope trans = new TransactionScope())
  14987. {
  14988. #region 保存工单信息
  14989. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  14990. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  14991. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  14992. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  14993. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  14994. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  14995. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  14996. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  14997. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  14998. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  14999. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  15000. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  15001. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  15002. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  15003. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  15004. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  15005. modelT_Bus_WorkOrder.F_File = files;//附件
  15006. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  15007. modelT_Bus_WorkOrder.F_Key = keys;
  15008. modelT_Bus_WorkOrder.F_Level = level;
  15009. workorderBLL.Update(modelT_Bus_WorkOrder);
  15010. #endregion
  15011. #region 插入操作记录
  15012. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15013. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15014. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15015. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  15016. oper.F_File = modelT_Bus_WorkOrder.F_File;
  15017. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15018. oper.F_Message = userinfo + " 修改了工单基本信息";
  15019. oper.F_CreateUser = User.F_UserCode;
  15020. oper.F_CreateTime = DateTime.Now;
  15021. oper.F_IsDelete = 0;
  15022. operBLL.Add(oper);
  15023. #endregion
  15024. trans.Complete();
  15025. }
  15026. return Success("操作成功");
  15027. }
  15028. else
  15029. {
  15030. return Error("操作失败");
  15031. }
  15032. }
  15033. else
  15034. {
  15035. return Success("权限不足");
  15036. }
  15037. }
  15038. /// <summary>
  15039. /// 修改批示信息
  15040. /// </summary>
  15041. /// <returns></returns>
  15042. //[Authority]
  15043. public ActionResult EditSuperInfoByAdmin()
  15044. {
  15045. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15046. {
  15047. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  15048. string superuser = RequestString.GetFormString("superuser");
  15049. string superopinion = RequestString.GetFormString("superopinion");
  15050. string files = RequestString.GetFormString("files");
  15051. int id = RequestString.GetInt("id", 0);
  15052. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  15053. if (model_T_Bus_SubmitSuper != null)
  15054. {
  15055. using (TransactionScope trans = new TransactionScope())
  15056. {
  15057. #region 保存批示信息
  15058. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  15059. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  15060. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  15061. if (!string.IsNullOrEmpty(files))
  15062. model_T_Bus_SubmitSuper.F_File = files;//附件
  15063. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  15064. #endregion
  15065. #region 插入操作记录
  15066. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15067. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  15068. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  15069. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15070. oper.F_Message = userinfo + " 修改了工单批示信息";
  15071. oper.F_CreateUser = User.F_UserCode;
  15072. oper.F_CreateTime = DateTime.Now;
  15073. oper.F_IsDelete = 0;
  15074. operBLL.Add(oper);
  15075. #endregion
  15076. trans.Complete();
  15077. }
  15078. return Success("操作成功");
  15079. }
  15080. else
  15081. {
  15082. return Error("操作失败");
  15083. }
  15084. }
  15085. else
  15086. {
  15087. return Error("权限不足");
  15088. }
  15089. }
  15090. /// <summary>
  15091. /// 修改交办信息
  15092. /// </summary>
  15093. /// <returns></returns>
  15094. //[Authority]
  15095. public ActionResult EditAssignInfoByAdmin()
  15096. {
  15097. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15098. {
  15099. int assignid = RequestString.GetInt("id", 0);
  15100. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  15101. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  15102. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  15103. string assignedopinion = RequestString.GetFormString("assignedopinion");
  15104. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  15105. if (modelT_Bus_AssignedInfo != null)
  15106. {
  15107. using (TransactionScope trans = new TransactionScope())
  15108. {
  15109. #region 保存交办信息
  15110. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  15111. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  15112. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  15113. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  15114. assignBLL.Update(modelT_Bus_AssignedInfo);
  15115. #endregion
  15116. #region 插入操作记录
  15117. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15118. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  15119. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  15120. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15121. oper.F_Message = userinfo + " 修改了工单交办信息";
  15122. oper.F_CreateUser = User.F_UserCode;
  15123. oper.F_CreateTime = DateTime.Now;
  15124. oper.F_IsDelete = 0;
  15125. operBLL.Add(oper);
  15126. #endregion
  15127. trans.Complete();
  15128. }
  15129. return Success("操作成功");
  15130. }
  15131. else
  15132. {
  15133. return Error("操作失败");
  15134. }
  15135. }
  15136. else
  15137. {
  15138. return Error("权限不足");
  15139. }
  15140. }
  15141. /// <summary>
  15142. /// 修改办理信息
  15143. /// </summary>
  15144. /// <returns></returns>
  15145. //[Authority]
  15146. public ActionResult EditFeedBackInfoByAdmin()
  15147. {
  15148. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15149. {
  15150. string dealman = RequestString.GetFormString("dealman");
  15151. string result = RequestString.GetFormString("result");
  15152. string files = RequestString.GetFormString("files");
  15153. int feedbackid = RequestString.GetInt("id", 0);
  15154. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  15155. if (model_T_Bus_Feedback != null)
  15156. {
  15157. using (TransactionScope trans = new TransactionScope())
  15158. {
  15159. #region 保存办理信息
  15160. model_T_Bus_Feedback.F_DealUser = dealman;
  15161. model_T_Bus_Feedback.F_Result = result;//反馈内容
  15162. model_T_Bus_Feedback.F_File = files;
  15163. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  15164. #endregion
  15165. #region 保存工单信息
  15166. 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());
  15167. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  15168. if (maxid == assign.F_Id)
  15169. {
  15170. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  15171. order.F_Result = result;//反馈内容
  15172. workorderBLL.Update(order);
  15173. }
  15174. #endregion
  15175. #region 插入操作记录
  15176. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15177. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  15178. oper.F_File = model_T_Bus_Feedback.F_File;
  15179. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15180. oper.F_Message = userinfo + " 修改了工单办理信息";
  15181. oper.F_CreateUser = User.F_UserCode;
  15182. oper.F_CreateTime = DateTime.Now;
  15183. oper.F_IsDelete = 0;
  15184. operBLL.Add(oper);
  15185. #endregion
  15186. trans.Complete();
  15187. }
  15188. return Success("操作成功");
  15189. }
  15190. else
  15191. {
  15192. return Error("操作失败");
  15193. }
  15194. }
  15195. else
  15196. {
  15197. return Error("权限不足");
  15198. }
  15199. }
  15200. /// <summary>
  15201. /// 修改回访信息
  15202. /// </summary>
  15203. /// <returns></returns>
  15204. //[Authority]
  15205. public ActionResult EditVisitInfoByAdmin()
  15206. {
  15207. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15208. {
  15209. string visituser = RequestString.GetFormString("visituser");//回访人
  15210. int type = RequestString.GetInt("type", 0);//回访方式
  15211. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  15212. int visitid = RequestString.GetInt("id", 0);
  15213. string result = RequestString.GetFormString("result");//回访情况
  15214. string guid = RequestString.GetFormString("guid");
  15215. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  15216. if (modelT_Bus_VisitResult != null)
  15217. {
  15218. using (TransactionScope trans = new TransactionScope())
  15219. {
  15220. #region 保存回访信息
  15221. modelT_Bus_VisitResult.F_VisitUser = visituser;
  15222. modelT_Bus_VisitResult.F_Type = type;
  15223. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  15224. modelT_Bus_VisitResult.F_Result = result;
  15225. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  15226. //保存回访记录
  15227. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  15228. #endregion
  15229. #region 插入操作记录
  15230. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15231. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  15232. oper.F_File = modelT_Bus_VisitResult.F_File;
  15233. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15234. oper.F_Message = userinfo + " 修改了工单回访信息";
  15235. oper.F_CreateUser = User.F_UserCode;
  15236. oper.F_CreateTime = DateTime.Now;
  15237. oper.F_IsDelete = 0;
  15238. operBLL.Add(oper);
  15239. #endregion
  15240. trans.Complete();
  15241. }
  15242. return Success("操作成功");
  15243. }
  15244. else
  15245. {
  15246. return Error("操作失败");
  15247. }
  15248. }
  15249. else
  15250. {
  15251. return Error("权限不足");
  15252. }
  15253. }
  15254. /// <summary>
  15255. /// 修改退回审核信息
  15256. /// </summary>
  15257. /// <returns></returns>
  15258. //[Authority]
  15259. public ActionResult EditAuditRebackByAdmin()
  15260. {
  15261. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15262. {
  15263. string reason = RequestString.GetFormString("reason");
  15264. int rebackid = RequestString.GetInt("id", 0);
  15265. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  15266. if (modelT_Bus_Feedback != null)
  15267. {
  15268. using (TransactionScope trans = new TransactionScope())
  15269. {
  15270. #region 保存反馈信息
  15271. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  15272. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  15273. #endregion
  15274. #region 插入操作记录
  15275. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15276. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  15277. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15278. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  15279. oper.F_CreateUser = User.F_UserCode;
  15280. oper.F_CreateTime = DateTime.Now;
  15281. oper.F_IsDelete = 0;
  15282. operBLL.Add(oper);
  15283. #endregion
  15284. trans.Complete();
  15285. }
  15286. return Success("操作成功");
  15287. }
  15288. else
  15289. {
  15290. return Error("操作失败");
  15291. }
  15292. }
  15293. else
  15294. {
  15295. return Error("权限不足");
  15296. }
  15297. }
  15298. /// <summary>
  15299. /// 修改延时审核信息
  15300. /// </summary>
  15301. /// <returns></returns>
  15302. //[Authority]
  15303. public ActionResult EditAuditDelayByAdmin()
  15304. {
  15305. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  15306. {
  15307. string reason = RequestString.GetFormString("reason");
  15308. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  15309. int delayid = RequestString.GetInt("id", 0);
  15310. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  15311. if (modelT_Bus_DelayTime != null)
  15312. {
  15313. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  15314. using (TransactionScope trans = new TransactionScope())
  15315. {
  15316. #region 保存延时审核信息
  15317. modelT_Bus_DelayTime.F_RefuseReason = reason;
  15318. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  15319. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  15320. #endregion
  15321. #region 插入操作记录
  15322. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15323. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  15324. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15325. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  15326. oper.F_CreateUser = User.F_UserCode;
  15327. oper.F_CreateTime = DateTime.Now;
  15328. oper.F_IsDelete = 0;
  15329. operBLL.Add(oper);
  15330. #endregion
  15331. trans.Complete();
  15332. }
  15333. return Success("操作成功");
  15334. }
  15335. else
  15336. {
  15337. return Error("操作失败");
  15338. }
  15339. }
  15340. else
  15341. {
  15342. return Error("权限不足");
  15343. }
  15344. }
  15345. #endregion
  15346. #region 县级对接
  15347. /// <summary>
  15348. /// 获取网点列表
  15349. /// </summary>
  15350. /// <param name="code"></param>
  15351. /// <param name="name"></param>
  15352. /// <returns></returns>
  15353. //[Authority]
  15354. public ActionResult GetCityList(string code, string name)
  15355. {
  15356. string signcode = Configs.GetValue("CityOutSignCode");
  15357. string url = Configs.GetValue("CityOutUrl");
  15358. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  15359. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  15360. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  15361. return Content(result);
  15362. }
  15363. /// <summary>
  15364. /// 获取网点详情
  15365. /// </summary>
  15366. /// <param name="code"></param>
  15367. /// <returns></returns>
  15368. //[Authority]
  15369. public ActionResult GetCityDetail(string code)
  15370. {
  15371. string signcode = Configs.GetValue("CityOutSignCode");
  15372. string url = Configs.GetValue("CityOutUrl");
  15373. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  15374. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  15375. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  15376. return Content(result);
  15377. }
  15378. /// <summary>
  15379. /// 转派工单到县级
  15380. /// </summary>
  15381. /// <returns></returns>
  15382. //[Authority]
  15383. public ActionResult TurnWorkOrder()
  15384. {
  15385. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD")
  15386. {
  15387. string workorderid = RequestString.GetFormString("workorderid");
  15388. string citycode = RequestString.GetFormString("citycode");
  15389. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15390. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  15391. {
  15392. string code = Configs.GetValue("CityCode");
  15393. var branchmodel = GetCityInfo(code);
  15394. var citymodel = GetCityInfo(citycode);
  15395. if (branchmodel != null && citymodel != null)
  15396. {
  15397. using (TransactionScope trans = new TransactionScope())
  15398. {
  15399. string cityworkorderid = string.Empty;
  15400. #region 转单
  15401. string turnsigncode = citymodel["F_Sign"].ToString();
  15402. string turnurl = citymodel["F_Url"].ToString();
  15403. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  15404. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  15405. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  15406. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  15407. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  15408. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  15409. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  15410. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  15411. var turnresult = turnresultstr.ToJObject();
  15412. if (turnresult["state"].ToString() != "success")
  15413. {
  15414. return Content(turnresultstr);
  15415. }
  15416. else
  15417. {
  15418. cityworkorderid = turnresult["data"].ToString();
  15419. }
  15420. #endregion
  15421. #region 保存工单信息
  15422. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  15423. modelT_Bus_WorkOrder.F_IsClosed = 1;
  15424. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  15425. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  15426. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  15427. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  15428. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  15429. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  15430. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  15431. workorderBLL.Update(modelT_Bus_WorkOrder);
  15432. #endregion
  15433. #region 删除草稿信息
  15434. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  15435. foreach (var cg in cglist)
  15436. {
  15437. cg.F_IsDelete = 1;
  15438. cg.F_DeleteUser = User.F_UserCode;
  15439. cg.F_DeleteTime = DateTime.Now;
  15440. assignBLL.Update(cg);
  15441. }
  15442. #endregion
  15443. #region 新增转单记录
  15444. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  15445. modelT_Bus_CityTurn.F_CityCode = citycode;
  15446. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  15447. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  15448. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15449. modelT_Bus_CityTurn.F_Type = 2;
  15450. modelT_Bus_CityTurn.F_State = 1;
  15451. modelT_Bus_CityTurn.F_IsSure = 0;
  15452. modelT_Bus_CityTurn.F_IsDelete = 0;
  15453. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  15454. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  15455. #endregion
  15456. #region 插入操作记录
  15457. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15458. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15459. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15460. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15461. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  15462. oper.F_CreateUser = User.F_UserCode;
  15463. oper.F_CreateTime = DateTime.Now;
  15464. oper.F_IsDelete = 0;
  15465. operBLL.Add(oper);
  15466. #endregion
  15467. trans.Complete();
  15468. }
  15469. return Success("操作成功");
  15470. }
  15471. else
  15472. {
  15473. return Error("操作失败");
  15474. }
  15475. }
  15476. else
  15477. {
  15478. return Error("操作失败");
  15479. }
  15480. }
  15481. else
  15482. {
  15483. return Success("权限不足");
  15484. }
  15485. }
  15486. /// <summary>
  15487. /// 获取当前网点信息
  15488. /// </summary>
  15489. /// <returns></returns>
  15490. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  15491. {
  15492. string signcode = Configs.GetValue("CityOutSignCode");
  15493. string url = Configs.GetValue("CityOutUrl");
  15494. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  15495. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  15496. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  15497. if (result["state"].ToString() == "success")
  15498. {
  15499. return result["data"].ToString().ToJObject();
  15500. }
  15501. else
  15502. {
  15503. return null;
  15504. }
  15505. }
  15506. #endregion
  15507. #region 私有方法
  15508. /// <summary>
  15509. /// 添加操作日志
  15510. /// </summary>
  15511. /// <param name="workorderid"></param>
  15512. /// <param name="workstate"></param>
  15513. /// <param name="msgs"></param>
  15514. /// <param name="usercode"></param>
  15515. private void addoptlog(string workorderid,int? workstate,int assid,string msgs,string usercode,int type=0)
  15516. {
  15517. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15518. oper.F_WorkOrderId = workorderid;
  15519. oper.F_State = workstate;
  15520. oper.F_AssignedId = assid;
  15521. oper.F_Message = msgs;
  15522. oper.F_CreateUser = usercode;
  15523. oper.F_CreateTime = DateTime.Now;
  15524. oper.F_IsDelete = 0;
  15525. oper.F_Type = type;
  15526. operBLL.Add(oper);
  15527. }
  15528. #endregion
  15529. }
  15530. }