Нет описания

WorkOrderController.cs 842KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061
  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.Linq;
  12. using System.Text;
  13. using System.Text.RegularExpressions;
  14. using System.Transactions;
  15. using System.Web;
  16. using System.Web.Mvc;
  17. namespace CallCenterApi.Interface.Controllers.workorder
  18. {
  19. public class WorkOrderController : BaseController
  20. {
  21. // GET: WorkOrder
  22. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  23. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  24. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  25. private information.InternalMessagesController msg = new information.InternalMessagesController();
  26. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  27. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  28. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  29. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  30. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  31. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  32. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  33. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  34. #region 获取工单
  35. /// <summary>
  36. /// 获取工单列表
  37. /// </summary>
  38. /// <returns></returns>
  39. //[Authority]
  40. #region MyRegion
  41. public ActionResult GetList(int isdc = 0)
  42. {
  43. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  44. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  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 wjstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  54. string wjstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  55. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  56. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  57. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  58. //回传时间筛选
  59. string hcstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrstarttime"));
  60. string hcstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrendtime"));
  61. int source = RequestString.GetInt("source", 0);
  62. int keyid = RequestString.GetInt("keyid", 0);
  63. int type = RequestString.GetInt("type", 0);
  64. int bigtype = RequestString.GetInt("bigtype", 0);
  65. int smalltype = RequestString.GetInt("smalltype", 0);
  66. int sourcearea = RequestString.GetInt("sourcearea", 0);
  67. int files = RequestString.GetInt("files", 0);
  68. int deptid = RequestString.GetInt("deptid", 0);
  69. int dealtype = RequestString.GetInt("dealtype", -1);
  70. int issend = RequestString.GetInt("issend", -1);
  71. int deptlevel = RequestString.GetInt("deptlevel", 0);
  72. int satisfaction = RequestString.GetInt("satisfaction", -1);
  73. int timesort = RequestString.GetInt("timesort", -1);
  74. string strpageindex = RequestString.GetQueryString("page");
  75. int pageindex = 1;
  76. string strpagesize = RequestString.GetQueryString("pagesize");
  77. int pagesize = 10;
  78. int IsExport = RequestString.GetInt("isexport", -1);
  79. if (IsExport > -1)
  80. {
  81. if (IsExport == 0)
  82. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  83. else
  84. sql += " and IsExport = '" + IsExport + "' ";
  85. }
  86. #region sql 语句相关处理
  87. if (strstate.Trim() != "" && strstate != "undefined")
  88. {
  89. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  90. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  91. else
  92. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  93. }
  94. if (files > 1)
  95. {
  96. sql += " and F_Files is not null and F_Files!='' ";
  97. }
  98. if (strworkid.Trim() != "" && strworkid != "undefined")
  99. {
  100. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  101. }
  102. if (strname.Trim() != "" && strname != "undefined")
  103. {
  104. sql += " and F_CusName like '%" + strname + "%' ";
  105. }
  106. if (strtel.Trim() != "" && strtel != "undefined")
  107. {
  108. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  109. }
  110. if (strkey.Trim() != "" && strkey != "undefined")
  111. {
  112. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  113. }
  114. if (strusercode.Trim() != "" && strusercode != "undefined")
  115. {//坐席
  116. var usercode = strusercode.Trim().Split(',');
  117. var newusercode = "";
  118. foreach (var item in usercode)
  119. {
  120. if (!string.IsNullOrWhiteSpace(item.Trim()))
  121. newusercode += "'" + item + "',";
  122. }
  123. newusercode = newusercode.Trim(',');
  124. if (newusercode.Trim() != "" && newusercode != "undefined")
  125. {
  126. sql += " and F_CreateUser in (" + newusercode + ") ";
  127. //sql += " and F_CreateUser ='" + strusercode + "' ";
  128. }
  129. }
  130. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  131. {//调度员
  132. var ddusercode = strddusercode.Trim().Split(',');
  133. var newusercode = "";
  134. foreach (var item in ddusercode)
  135. {
  136. if (!string.IsNullOrWhiteSpace(item.Trim()))
  137. newusercode += "'" + item + "',";
  138. }
  139. newusercode = newusercode.Trim(',');
  140. if (newusercode.Trim() != "" && newusercode != "undefined")
  141. {
  142. sql += " and F_AssignUser in(" + newusercode + ") ";
  143. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  144. }
  145. }
  146. if (source != 0)
  147. {
  148. sql += " and F_InfoSource = '" + source + "' ";
  149. }
  150. if (satisfaction > -1)
  151. {
  152. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  153. }
  154. if (keyid != 0)
  155. {
  156. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  157. }
  158. else if (userModel.F_RoleCode == "DFZF")
  159. {
  160. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  161. }
  162. if (type != 0)
  163. {
  164. sql += " and F_InfoType = '" + type + "' ";
  165. }
  166. if (bigtype != 0)
  167. {
  168. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  169. }
  170. if (smalltype != 0)
  171. {
  172. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  173. }
  174. if (sourcearea != 0)
  175. {
  176. sql += " and F_SourceArea = '" + sourcearea + "' ";
  177. }
  178. if (deptid != 0)
  179. {
  180. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  181. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  182. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  183. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  184. //if (deptlevel == 0)
  185. //{
  186. // 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 ";
  187. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  188. //}
  189. //else
  190. //{
  191. // 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 ";
  192. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  193. //}
  194. #endregion
  195. }
  196. if (dealtype != -1)
  197. {
  198. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  199. }
  200. if (issend != -1)
  201. {
  202. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  203. }
  204. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  205. {
  206. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  207. }
  208. if (strendtime.Trim() != "" && strendtime != "undefined")
  209. {
  210. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  211. }
  212. #region 结案时间
  213. if (wjstrstarttime.Trim() != "" && wjstrstarttime != "undefined")
  214. {
  215. sql += " and datediff(day,F_CloseTime,'" + wjstrstarttime + "')<=0 ";
  216. }
  217. if (wjstrendtime.Trim() != "" && wjstrendtime != "undefined")
  218. {
  219. sql += " and datediff(day,F_CloseTime,'" + wjstrendtime + "')>=0 ";
  220. }
  221. #endregion
  222. //根据回传时间判断
  223. if (hcstrstarttime.Trim() != "" && hcstrstarttime != "undefined")
  224. {
  225. //sql += " and F_Hcdatetime >= '"+ hcstrstarttime + "'";
  226. sql += " and datediff(day,F_Hcdatetime,'" + hcstrstarttime + "')<=0 ";
  227. }
  228. if (hcstrendtime.Trim() != "" && hcstrendtime != "undefined")
  229. {
  230. // sql += " and F_Hcdatetime<='"+ hcstrendtime + "' ";
  231. sql += " and datediff(day,F_Hcdatetime,'" + hcstrendtime + "')>=0 ";
  232. }
  233. #endregion
  234. if (strpageindex.Trim() != "")
  235. {
  236. pageindex = Convert.ToInt32(strpageindex);
  237. }
  238. if (strpagesize.Trim() != "")
  239. {
  240. pagesize = Convert.ToInt32(strpagesize);
  241. }
  242. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  243. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  244. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  245. string sort = "ORDER BY F_CreateTime DESC";
  246. if (timesort == 0)
  247. sort = "ORDER BY LimitTime ASC";
  248. else if (timesort == 1)
  249. sort = "ORDER BY F_CreateTime DESC";
  250. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_Scanning,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,IsExport,F_Files,F_WorkRemarks";
  251. #region 导出
  252. if (isdc > 0)
  253. {
  254. var top = " "; var orderby = " order by F_CreateTime";
  255. if (sql == " and F_IsDelete=0 ")
  256. {
  257. top = " top 1000 "; orderby += " desc ";
  258. }
  259. //20190715调整导出字段 zhengbingbing
  260. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  261. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  262. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  263. + " (select top 1 F_Situation 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_CreateTime) 办理结果,"
  264. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 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) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  265. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  266. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  267. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  268. if (msg == "")
  269. {
  270. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  271. // {
  272. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  273. // }
  274. return Success("导出成功");
  275. }
  276. else
  277. {
  278. return Error("导出失败");
  279. }
  280. }
  281. #endregion
  282. int recordCount = 0;
  283. dt = BLL.PagerBLL.GetListPager(
  284. "T_Bus_WorkOrder WITH(NOLOCK)",
  285. "F_WorkOrderId",
  286. cols,
  287. sql,
  288. sort,
  289. pagesize,
  290. pageindex,
  291. true,
  292. out recordCount);
  293. #region 声音文件和交办超时
  294. dt.Columns.Add("DeptName", typeof(string));//交办单位
  295. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  296. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  297. dt.Columns.Add("OverState", typeof(string));//超时状态
  298. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  299. dt.Columns.Add("GapTime", typeof(string));//时间差
  300. dt.Columns.Add("PDState", typeof(string));//派单状态
  301. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  302. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  303. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  304. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  305. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  306. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  307. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  308. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  309. foreach (DataRow dr in dt.Rows)
  310. {
  311. string iszbdw = "0";
  312. string ispd = "";
  313. int state = Int32.Parse(dr["F_WorkState"].ToString());
  314. if (state > 1)
  315. {
  316. //获取最新交办信息
  317. 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";
  318. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  319. if (dtjb.Rows.Count > 0)
  320. {
  321. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  322. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  323. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  324. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  325. {
  326. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  327. }
  328. #region 20191016
  329. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  330. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  331. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  332. //{
  333. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  334. //}
  335. #endregion
  336. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  337. #region
  338. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  339. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  340. //if (deptinfo != null)
  341. //{
  342. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  343. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  344. //}
  345. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  346. //{
  347. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  348. // string dns = string.Empty;
  349. // foreach (string strid in strids)
  350. // {
  351. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  352. // if (dinfo != null)
  353. // {
  354. // if (string.IsNullOrEmpty(dns))
  355. // {
  356. // dns = dinfo.F_DeptName;//交办单位
  357. // }
  358. // else
  359. // {
  360. // dns += "," + dinfo.F_DeptName;//交办单位
  361. // }
  362. // }
  363. // }
  364. // dr["OtherDeptName"] = dns;
  365. //}
  366. #endregion
  367. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  368. dr["LimitTime"] = lt;
  369. #region 超时时限
  370. //if (state < 6 || state == 8)
  371. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  372. {
  373. if (!string.IsNullOrWhiteSpace(lt))
  374. {
  375. var ltime = DateTime.Parse(lt);
  376. TimeSpan ts = ltime.Subtract(DateTime.Now);
  377. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  378. if (tss < 0) { tss = -tss; }
  379. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  380. if (ltime > DateTime.Now)
  381. {
  382. if (configcs != null)
  383. {
  384. int cs = Int32.Parse(configcs.F_ParamValue);
  385. if (ts.TotalHours > cs)
  386. {
  387. dr["OverState"] = 1;
  388. }
  389. else
  390. {
  391. dr["OverState"] = 2;
  392. }
  393. }
  394. dr["GapTime"] = "剩余" + gshsj;
  395. }
  396. else
  397. {
  398. dr["OverState"] = 3;
  399. dr["GapTime"] = "超时" + gshsj;
  400. }
  401. }
  402. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  403. dr["PDState"] = ispd;
  404. }
  405. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  406. {
  407. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  408. if (!string.IsNullOrEmpty(closetime))
  409. {
  410. var dttime = DateTime.Parse(closetime);
  411. if (!string.IsNullOrEmpty(lt))
  412. {
  413. var ltime = DateTime.Parse(lt);
  414. TimeSpan ts = ltime.Subtract(dttime);
  415. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  416. if (tss < 0) { tss = -tss; }
  417. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  418. if (ltime < dttime)
  419. {
  420. dr["OverState"] = 3;
  421. dr["GapTime"] = "超时" + gshsj;
  422. }
  423. }
  424. }
  425. }
  426. #endregion
  427. }
  428. }
  429. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  430. {
  431. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  432. }
  433. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  434. {
  435. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  436. }
  437. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  438. {
  439. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  440. dr["IsFiles"] = 1;
  441. else
  442. dr["IsFiles"] = 0;
  443. }
  444. else
  445. {
  446. dr["IsFiles"] = 0;
  447. }
  448. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, dr["IsExport"].ToString());
  449. #region 判断是否存在待督办
  450. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  451. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  452. if (userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "ZXLD")
  453. {
  454. buttons.Add(ButtonGroup.delete());
  455. }
  456. if (recount > 0 && butt != null)
  457. buttons.Remove(butt);
  458. #endregion
  459. dr["Buttons"] = buttons;
  460. }
  461. #endregion
  462. var obj = new
  463. {
  464. state = "success",
  465. message = "成功",
  466. rows = dt,
  467. total = recordCount
  468. };
  469. return Content(obj.ToJson());
  470. }
  471. #endregion
  472. #region MyRegion
  473. public ActionResult GetListTimeOut(int isdc = 0)
  474. {
  475. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  476. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  477. var configcs1 = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  478. int cscount = 1;
  479. if (configcs1 != null)
  480. {
  481. cscount= Int32.Parse(configcs1.F_ParamValue);
  482. }
  483. DataTable dt = new DataTable();
  484. string sql = " and F_IsDelete=0 and (F_LimitTime<= DATEADD(hh, "+ cscount + ", GETDATE())) and (F_WorkState<6 or F_WorkState=8) and F_MainDeptId >0";
  485. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  486. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  487. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  488. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  489. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  490. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  491. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  492. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  493. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  494. int source = RequestString.GetInt("source", 0);
  495. int keyid = RequestString.GetInt("keyid", 0);
  496. int type = RequestString.GetInt("type", 0);
  497. int bigtype = RequestString.GetInt("bigtype", 0);
  498. int smalltype = RequestString.GetInt("smalltype", 0);
  499. int sourcearea = RequestString.GetInt("sourcearea", 0);
  500. int files = RequestString.GetInt("files", 0);
  501. int deptid = RequestString.GetInt("deptid", 0);
  502. int dealtype = RequestString.GetInt("dealtype", -1);
  503. int issend = RequestString.GetInt("issend", -1);
  504. int deptlevel = RequestString.GetInt("deptlevel", 0);
  505. int satisfaction = RequestString.GetInt("satisfaction", -1);
  506. int timesort = RequestString.GetInt("timesort", -1);
  507. string strpageindex = RequestString.GetQueryString("page");
  508. int pageindex = 1;
  509. string strpagesize = RequestString.GetQueryString("pagesize");
  510. int pagesize = 10;
  511. int IsExport = RequestString.GetInt("isexport", -1);
  512. if (IsExport > -1)
  513. {
  514. if (IsExport == 0)
  515. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  516. else
  517. sql += " and IsExport = '" + IsExport + "' ";
  518. }
  519. #region sql 语句相关处理
  520. if (strstate.Trim() != "" && strstate != "undefined")
  521. {
  522. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  523. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  524. else
  525. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  526. }
  527. if (files > 1)
  528. {
  529. sql += " and F_Files is not null and F_Files!='' ";
  530. }
  531. if (strworkid.Trim() != "" && strworkid != "undefined")
  532. {
  533. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  534. }
  535. if (strname.Trim() != "" && strname != "undefined")
  536. {
  537. sql += " and F_CusName like '%" + strname + "%' ";
  538. }
  539. if (strtel.Trim() != "" && strtel != "undefined")
  540. {
  541. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  542. }
  543. if (strkey.Trim() != "" && strkey != "undefined")
  544. {
  545. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  546. }
  547. if (strusercode.Trim() != "" && strusercode != "undefined")
  548. {//坐席
  549. var usercode = strusercode.Trim().Split(',');
  550. var newusercode = "";
  551. foreach (var item in usercode)
  552. {
  553. if (!string.IsNullOrWhiteSpace(item.Trim()))
  554. newusercode += "'" + item + "',";
  555. }
  556. newusercode = newusercode.Trim(',');
  557. if (newusercode.Trim() != "" && newusercode != "undefined")
  558. {
  559. sql += " and F_CreateUser in (" + newusercode + ") ";
  560. //sql += " and F_CreateUser ='" + strusercode + "' ";
  561. }
  562. }
  563. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  564. {//调度员
  565. var ddusercode = strddusercode.Trim().Split(',');
  566. var newusercode = "";
  567. foreach (var item in ddusercode)
  568. {
  569. if (!string.IsNullOrWhiteSpace(item.Trim()))
  570. newusercode += "'" + item + "',";
  571. }
  572. newusercode = newusercode.Trim(',');
  573. if (newusercode.Trim() != "" && newusercode != "undefined")
  574. {
  575. sql += " and F_AssignUser in(" + newusercode + ") ";
  576. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  577. }
  578. }
  579. if (source != 0)
  580. {
  581. sql += " and F_InfoSource = '" + source + "' ";
  582. }
  583. if (satisfaction > -1)
  584. {
  585. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  586. }
  587. if (keyid != 0)
  588. {
  589. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  590. }
  591. else if (userModel.F_RoleCode == "DFZF")
  592. {
  593. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  594. }
  595. if (type != 0)
  596. {
  597. sql += " and F_InfoType = '" + type + "' ";
  598. }
  599. if (bigtype != 0)
  600. {
  601. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  602. }
  603. if (smalltype != 0)
  604. {
  605. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  606. }
  607. if (sourcearea != 0)
  608. {
  609. sql += " and F_SourceArea = '" + sourcearea + "' ";
  610. }
  611. if (deptid != 0)
  612. {
  613. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  614. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  615. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  616. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  617. //if (deptlevel == 0)
  618. //{
  619. // 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 ";
  620. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  621. //}
  622. //else
  623. //{
  624. // 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 ";
  625. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  626. //}
  627. #endregion
  628. }
  629. if (dealtype != -1)
  630. {
  631. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  632. }
  633. if (issend != -1)
  634. {
  635. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  636. }
  637. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  638. {
  639. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  640. }
  641. if (strendtime.Trim() != "" && strendtime != "undefined")
  642. {
  643. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  644. }
  645. #endregion
  646. if (strpageindex.Trim() != "")
  647. {
  648. pageindex = Convert.ToInt32(strpageindex);
  649. }
  650. if (strpagesize.Trim() != "")
  651. {
  652. pagesize = Convert.ToInt32(strpagesize);
  653. }
  654. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  655. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  656. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  657. string sort = "ORDER BY F_LimitTime desc";
  658. if (timesort == 0)
  659. sort = "ORDER BY LimitTime ASC";
  660. else if (timesort == 1)
  661. sort = "ORDER BY F_CreateTime DESC";
  662. string cols = "F_OldWorkOrderId,F_LimitTime,F_WorkOrderId,F_Scanning,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,IsExport,F_Files,F_WorkRemarks";
  663. #region 导出
  664. if (isdc > 0)
  665. {
  666. var top = " "; var orderby = " order by F_CreateTime";
  667. if (sql == " and F_IsDelete=0 ")
  668. {
  669. top = " top 1000 "; orderby += " desc ";
  670. }
  671. sql+= " and (F_LimitTime>= DATEADD(hh,"+ cscount + ",F_LimitTime) or F_LimitTime<GETDATE()) and (F_WorkState<6 or F_WorkState=8) ";
  672. //20190715调整导出字段 zhengbingbing
  673. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  674. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  675. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  676. + " (select top 1 F_Situation 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_CreateTime) 办理结果,"
  677. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 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) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  678. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  679. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  680. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  681. if (msg == "")
  682. {
  683. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  684. // {
  685. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  686. // }
  687. return Success("导出成功");
  688. }
  689. else
  690. {
  691. return Error("导出失败");
  692. }
  693. }
  694. #endregion
  695. int recordCount = 0;
  696. dt = BLL.PagerBLL.GetListPager(
  697. "T_Bus_WorkOrder WITH(NOLOCK)",
  698. "F_WorkOrderId",
  699. cols,
  700. sql,
  701. sort,
  702. pagesize,
  703. pageindex,
  704. true,
  705. out recordCount);
  706. // var dtt = workorderBLL.GetList(" 1=1" +sql);
  707. // dt = dtt.Tables[0];
  708. #region 声音文件和交办超时
  709. dt.Columns.Add("DeptName", typeof(string));//交办单位
  710. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  711. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  712. dt.Columns.Add("OverState", typeof(int));//超时状态
  713. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  714. dt.Columns.Add("GapTime", typeof(string));//时间差
  715. dt.Columns.Add("PDState", typeof(string));//派单状态
  716. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  717. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  718. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  719. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  720. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  721. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  722. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  723. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  724. foreach (DataRow dr in dt.Rows)
  725. {
  726. string iszbdw = "0";
  727. string ispd = "";
  728. int state = Int32.Parse(dr["F_WorkState"].ToString());
  729. if (state > 1)
  730. {
  731. //获取最新交办信息
  732. 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";
  733. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  734. if (dtjb.Rows.Count > 0)
  735. {
  736. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  737. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  738. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  739. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  740. {
  741. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  742. }
  743. #region 20191016
  744. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  745. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  746. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  747. //{
  748. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  749. //}
  750. #endregion
  751. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  752. #region
  753. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  754. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  755. //if (deptinfo != null)
  756. //{
  757. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  758. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  759. //}
  760. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  761. //{
  762. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  763. // string dns = string.Empty;
  764. // foreach (string strid in strids)
  765. // {
  766. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  767. // if (dinfo != null)
  768. // {
  769. // if (string.IsNullOrEmpty(dns))
  770. // {
  771. // dns = dinfo.F_DeptName;//交办单位
  772. // }
  773. // else
  774. // {
  775. // dns += "," + dinfo.F_DeptName;//交办单位
  776. // }
  777. // }
  778. // }
  779. // dr["OtherDeptName"] = dns;
  780. //}
  781. #endregion
  782. var lt = dr["F_LimitTime"].ToString();//限制时间
  783. dr["LimitTime"] = lt;
  784. #region 超时时限
  785. //if (state < 6 || state == 8)
  786. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  787. {
  788. if (!string.IsNullOrWhiteSpace(lt))
  789. {
  790. var ltime = DateTime.Parse(lt);
  791. TimeSpan ts = ltime.Subtract(DateTime.Now);
  792. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  793. if (tss < 0) { tss = -tss; }
  794. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  795. if (ltime > DateTime.Now)
  796. {
  797. if (configcs != null)
  798. {
  799. int cs = Int32.Parse(configcs.F_ParamValue);
  800. if (ts.TotalHours > cs)
  801. {
  802. dr["OverState"] = 1;
  803. }
  804. else
  805. {
  806. dr["OverState"] = 2;
  807. }
  808. }
  809. dr["GapTime"] = "剩余" + gshsj;
  810. }
  811. else
  812. {
  813. dr["OverState"] = 3;
  814. dr["GapTime"] = "超时" + gshsj;
  815. }
  816. }
  817. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  818. dr["PDState"] = ispd;
  819. }
  820. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  821. {
  822. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  823. if (!string.IsNullOrEmpty(closetime))
  824. {
  825. var dttime = DateTime.Parse(closetime);
  826. if (!string.IsNullOrEmpty(lt))
  827. {
  828. var ltime = DateTime.Parse(lt);
  829. TimeSpan ts = ltime.Subtract(dttime);
  830. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  831. if (tss < 0) { tss = -tss; }
  832. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  833. if (ltime < dttime)
  834. {
  835. dr["OverState"] = 3;
  836. dr["GapTime"] = "超时" + gshsj;
  837. }
  838. }
  839. }
  840. }
  841. #endregion
  842. }
  843. }
  844. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  845. {
  846. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  847. }
  848. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  849. {
  850. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  851. }
  852. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  853. {
  854. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  855. dr["IsFiles"] = 1;
  856. else
  857. dr["IsFiles"] = 0;
  858. }
  859. else
  860. {
  861. dr["IsFiles"] = 0;
  862. }
  863. var buttons = ButtonGroup.GetButtonstimeout();
  864. dr["Buttons"] = buttons;
  865. }
  866. #endregion
  867. //dt.DefaultView.Sort = "";
  868. // dt = dt.DefaultView.ToTable();
  869. // var allcount = dt.Rows.Count;
  870. // dt = GetPagedTable(dt,pageindex,pagesize);
  871. var obj = new
  872. {
  873. state = "success",
  874. message = "成功",
  875. rows = dt,
  876. total = recordCount
  877. };
  878. return Content(obj.ToJson());
  879. }
  880. #endregion
  881. public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)//PageIndex表示第几页,PageSize表示每页的记录数
  882. {
  883. if (PageIndex == 0)
  884. return dt;//0页代表每页数据,直接返回
  885. DataTable newdt = dt.Copy();
  886. newdt.Clear();//copy dt的框架
  887. int rowbegin = (PageIndex - 1) * PageSize;
  888. int rowend = PageIndex * PageSize;
  889. if (rowbegin >= dt.Rows.Count)
  890. return newdt;//源数据记录数小于等于要显示的记录,直接返回dt
  891. if (rowend > dt.Rows.Count)
  892. rowend = dt.Rows.Count;
  893. for (int i = rowbegin; i <= rowend - 1; i++)
  894. {
  895. DataRow newdr = newdt.NewRow();
  896. DataRow dr = dt.Rows[i];
  897. foreach (DataColumn column in dt.Columns)
  898. {
  899. newdr[column.ColumnName] = dr[column.ColumnName];
  900. }
  901. newdt.Rows.Add(newdr);
  902. }
  903. return newdt;
  904. }
  905. /// <summary>
  906. /// 获取坐席处理列表
  907. /// </summary>
  908. /// <returns></returns>
  909. [Authority]
  910. public ActionResult GetZXDealList(int isdc = 0)
  911. {
  912. DataTable dt = new DataTable();
  913. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  914. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  915. string sql = " and F_IsDelete=0";
  916. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  917. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  918. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  919. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  920. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  921. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  922. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  923. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  924. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  925. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  926. int source = RequestString.GetInt("source", 0);
  927. int keyid = RequestString.GetInt("keyid", 0);
  928. int type = RequestString.GetInt("type", 0);
  929. int bigtype = RequestString.GetInt("bigtype", 0);
  930. int smalltype = RequestString.GetInt("smalltype", 0);
  931. int sourcearea = RequestString.GetInt("sourcearea", 0);
  932. int deptid = RequestString.GetInt("deptid", 0);
  933. int deptlevel = RequestString.GetInt("deptlevel", 0);
  934. string strpageindex = RequestString.GetQueryString("page");
  935. int pageindex = 1;
  936. string strpagesize = RequestString.GetQueryString("pagesize");
  937. int pagesize = 10;
  938. int IsExport = RequestString.GetInt("isexport",0);
  939. int timesort = RequestString.GetInt("timesort", -1);
  940. string sort = "ORDER BY F_CreateTime ASC";
  941. if (timesort == 0)
  942. sort = "ORDER BY LimitTime ASC";
  943. else if (timesort == 1)
  944. sort = "ORDER BY F_CreateTime DESC";
  945. if (IsExport>0)
  946. {
  947. sql += " and IsExport = '" + IsExport + "' ";
  948. }
  949. switch (strtab)
  950. {
  951. case "-1"://待处理工单(其他来源)
  952. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  953. break;
  954. case "0"://待处理工单
  955. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  956. {
  957. if (userModel.F_RoleCode != "ZJZY")
  958. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  959. }
  960. if (strstate.Trim() != "" && strstate != "undefined")
  961. {
  962. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  963. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  964. else
  965. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  966. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  967. }
  968. else
  969. {
  970. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + ") ";
  971. //sql += " and F_WorkState in (0,6) ";
  972. }
  973. break;
  974. case "1"://已提交的工单
  975. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  976. sql += " and F_WorkState >0 ";
  977. if (strstate.Trim() != "" && strstate != "undefined")
  978. {
  979. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  980. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  981. else
  982. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  983. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  984. }
  985. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  986. {
  987. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  988. }
  989. break;
  990. case "2"://已回访的工单
  991. if (strstate.Trim() != "" && strstate != "undefined")
  992. {
  993. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  994. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  995. else
  996. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  997. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  998. }
  999. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1000. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1001. {
  1002. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1003. }
  1004. else
  1005. {
  1006. sql += ")";
  1007. }
  1008. break;
  1009. case "3"://已回退的工单
  1010. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  1011. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  1012. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1013. {
  1014. sql += " and F_CreateUser='" + userModel.F_UserCode;
  1015. }
  1016. break;
  1017. }
  1018. if (strworkid.Trim() != "" && strworkid != "undefined")
  1019. {
  1020. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  1021. }
  1022. if (strname.Trim() != "" && strname != "undefined")
  1023. {
  1024. sql += " and F_CusName like '%" + strname + "%' ";
  1025. }
  1026. if (strtel.Trim() != "" && strtel != "undefined")
  1027. {
  1028. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1029. }
  1030. if (strkey.Trim() != "" && strkey != "undefined")
  1031. {
  1032. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1033. }
  1034. #region 坐席&调度员
  1035. if (strusercode.Trim() != "" && strusercode != "undefined")
  1036. {//坐席
  1037. var usercode = strusercode.Trim().Split(',');
  1038. var newusercode = "";
  1039. foreach (var item in usercode)
  1040. {
  1041. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1042. newusercode += "'" + item + "',";
  1043. }
  1044. newusercode = newusercode.Trim(',');
  1045. if (newusercode.Trim() != "" && newusercode != "undefined")
  1046. {
  1047. sql += " and F_CreateUser in (" + newusercode + ") ";
  1048. }
  1049. }
  1050. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1051. {//调度员
  1052. var ddusercode = strddusercode.Trim().Split(',');
  1053. var newusercode = "";
  1054. foreach (var item in ddusercode)
  1055. {
  1056. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1057. newusercode += "'" + item + "',";
  1058. }
  1059. newusercode = newusercode.Trim(',');
  1060. if (newusercode.Trim() != "" && newusercode != "undefined")
  1061. {
  1062. sql += " and F_AssignUser in(" + newusercode + ") ";
  1063. }
  1064. }
  1065. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1066. //{
  1067. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1068. //}
  1069. #endregion
  1070. if (source != 0)
  1071. {
  1072. sql += " and F_InfoSource = '" + source + "' ";
  1073. }
  1074. if (keyid != 0)
  1075. {
  1076. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1077. }
  1078. if (type != 0)
  1079. {
  1080. sql += " and F_InfoType = '" + type + "' ";
  1081. }
  1082. if (bigtype != 0)
  1083. {
  1084. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1085. }
  1086. if (smalltype != 0)
  1087. {
  1088. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1089. }
  1090. if (sourcearea != 0)
  1091. {
  1092. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1093. }
  1094. if (deptid != 0)
  1095. {
  1096. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1097. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  1098. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1099. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1100. //if (deptlevel == 0)
  1101. //{
  1102. // 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 ";
  1103. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1104. //}
  1105. //else
  1106. //{
  1107. // 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 ";
  1108. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1109. //}
  1110. #endregion
  1111. }
  1112. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1113. {
  1114. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1115. }
  1116. if (strendtime.Trim() != "" && strendtime != "undefined")
  1117. {
  1118. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1119. }
  1120. if (strpageindex.Trim() != "")
  1121. {
  1122. pageindex = Convert.ToInt32(strpageindex);
  1123. }
  1124. if (strpagesize.Trim() != "")
  1125. {
  1126. pagesize = Convert.ToInt32(strpagesize);
  1127. }
  1128. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1129. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1130. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1131. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  1132. if (isdc > 0)
  1133. {
  1134. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  1135. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1136. if (msg == "")
  1137. {
  1138. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  1139. //{
  1140. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  1141. //}
  1142. return Success("导出成功");
  1143. }
  1144. else
  1145. {
  1146. return Error("导出失败");
  1147. }
  1148. }
  1149. int recordCount = 0;
  1150. dt = BLL.PagerBLL.GetListPager(
  1151. "T_Bus_WorkOrder WITH(NOLOCK)",
  1152. "F_WorkOrderId",
  1153. cols,
  1154. sql,
  1155. sort ,
  1156. pagesize,
  1157. pageindex,
  1158. true,
  1159. out recordCount);
  1160. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1161. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1162. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1163. dt.Columns.Add("OverState", typeof(string));//超时状态
  1164. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1165. dt.Columns.Add("GapTime", typeof(string));//时间差
  1166. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1167. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1168. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  1169. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1170. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1171. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1172. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1173. foreach (DataRow dr in dt.Rows)
  1174. {
  1175. //获取最新交办信息
  1176. string iszbdw = "0";
  1177. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1178. if (state > 1)
  1179. {
  1180. 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";
  1181. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1182. if (dtjb.Rows.Count > 0)
  1183. {
  1184. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  1185. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  1186. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1187. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1188. {
  1189. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1190. }
  1191. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1192. #region
  1193. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1194. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1195. //if (deptinfo != null)
  1196. //{
  1197. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  1198. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1199. //}
  1200. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1201. //{
  1202. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1203. // string dns = string.Empty;
  1204. // foreach (string strid in strids)
  1205. // {
  1206. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1207. // if (dinfo != null)
  1208. // {
  1209. // if (string.IsNullOrEmpty(dns))
  1210. // {
  1211. // dns = dinfo.F_DeptName;//交办单位
  1212. // }
  1213. // else
  1214. // {
  1215. // dns += "," + dinfo.F_DeptName;//交办单位
  1216. // }
  1217. // }
  1218. // }
  1219. // dr["OtherDeptName"] = dns;
  1220. //}
  1221. #endregion
  1222. #region
  1223. //if (state < 6 || state == 8)
  1224. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1225. {
  1226. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1227. dr["LimitTime"] = lt;
  1228. if (!string.IsNullOrWhiteSpace(lt))
  1229. {
  1230. var ltime = DateTime.Parse(lt);
  1231. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1232. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1233. if (tss < 0) { tss = -tss; }
  1234. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1235. if (ltime > DateTime.Now)
  1236. {
  1237. if (configcs != null)
  1238. {
  1239. int cs = Int32.Parse(configcs.F_ParamValue);
  1240. if (ts.TotalHours > cs)
  1241. {
  1242. dr["OverState"] = 1;
  1243. }
  1244. else
  1245. {
  1246. dr["OverState"] = 2;
  1247. }
  1248. }
  1249. dr["GapTime"] = "剩余" + gshsj;
  1250. }
  1251. else
  1252. {
  1253. dr["OverState"] = 3;
  1254. dr["GapTime"] = "超时" + gshsj;
  1255. }
  1256. }
  1257. }
  1258. if (state == (int)EnumWorkState.finish)
  1259. {
  1260. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1261. var dttime = DateTime.Now;
  1262. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1263. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1264. dr["LimitTime"] = lt;
  1265. if (!string.IsNullOrWhiteSpace(lt))
  1266. {
  1267. var ltime = DateTime.Parse(lt);
  1268. TimeSpan ts = ltime.Subtract(dttime);
  1269. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1270. if (tss < 0) { tss = -tss; }
  1271. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1272. if (ltime < dttime)
  1273. {
  1274. dr["OverState"] = 3;
  1275. dr["GapTime"] = "超时" + gshsj;
  1276. }
  1277. }
  1278. }
  1279. #endregion
  1280. }
  1281. }
  1282. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1283. {
  1284. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1285. }
  1286. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1287. {
  1288. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1289. }
  1290. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  1291. {
  1292. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  1293. dr["IsFiles"] = 1;
  1294. else
  1295. dr["IsFiles"] = 0;
  1296. }
  1297. else
  1298. {
  1299. dr["IsFiles"] = 0;
  1300. }
  1301. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1302. if (Int32.Parse(strtab) == 0)
  1303. {
  1304. btns.Clear();
  1305. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1306. #region 判断是否存在待督办
  1307. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1308. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1309. if (recount > 0 && butt != null)
  1310. btns.Remove(butt);
  1311. #endregion
  1312. }
  1313. else if (Int32.Parse(strtab) == -1)
  1314. {
  1315. btns.Clear();
  1316. btns.Add(ButtonGroup.query());
  1317. btns.Add(ButtonGroup.edit());
  1318. }
  1319. else
  1320. {
  1321. btns.Clear();
  1322. btns.Add(ButtonGroup.query());
  1323. }
  1324. dr["Buttons"] = btns;
  1325. }
  1326. var obj = new
  1327. {
  1328. state = "success",
  1329. message = "成功",
  1330. rows = dt,
  1331. total = recordCount
  1332. };
  1333. return Content(obj.ToJson());
  1334. }
  1335. /// <summary>
  1336. /// 上传阿里云
  1337. /// </summary>
  1338. public class uploadAddWorders
  1339. {
  1340. /// <summary>
  1341. /// 案件编号
  1342. /// </summary>
  1343. public string cenrollid { set; get; }
  1344. /// <summary>
  1345. /// 来电人
  1346. /// </summary>
  1347. public string custname { set; get; }
  1348. /// <summary>
  1349. /// 登记时间
  1350. /// </summary>
  1351. public string tsystime { set; get; }
  1352. /// <summary>
  1353. /// 事件类别
  1354. /// </summary>
  1355. public string ismallcategory { set; get; }
  1356. /// <summary>
  1357. /// 转办人
  1358. /// </summary>
  1359. public string unit_code { set; get; }
  1360. /// <summary>
  1361. /// 转办时间
  1362. /// </summary>
  1363. public string transferTime { set; get; }
  1364. /// <summary>
  1365. /// 转办单位
  1366. /// </summary>
  1367. public string transferunit { set; get; }
  1368. /// <summary>
  1369. /// 详细内容
  1370. /// </summary>
  1371. public string content { set; get; }
  1372. /// <summary>
  1373. /// 拟办意见
  1374. /// </summary>
  1375. public string advice { set; get; }
  1376. /// <summary>
  1377. /// 处理结果
  1378. /// </summary>
  1379. public string result { set; get; }
  1380. /// <summary>
  1381. /// 回访情况
  1382. /// </summary>
  1383. public string remark { set; get; }
  1384. public int ideliverprogress { set; get; }
  1385. public int type { set; get; }
  1386. public string phone { set; get; }
  1387. public string title { set; get; }
  1388. public string backreason { set; get; }
  1389. public string workorderremark { set; get; }
  1390. }
  1391. public class uploadSatisfaction
  1392. {
  1393. public string cenrollid { set; get; }
  1394. public int Satisfaction { set; get; }
  1395. }
  1396. [HttpPost]
  1397. public ActionResult updateSatisfaction(uploadSatisfaction info)
  1398. {
  1399. if (info == null)
  1400. return Error("内容为空");
  1401. try
  1402. {
  1403. using (TransactionScope trans = new TransactionScope())
  1404. {
  1405. #region 保存工单信息
  1406. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1407. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1408. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1409. "and F_IsDelete=0");
  1410. if (workorder != null && workorder.Count > 0)
  1411. {
  1412. // modelT_Bus_WorkOrder = workorder[0];
  1413. // modelT_Bus_WorkOrder.F_Satisfaction = info.Satisfaction;
  1414. // var workorderlist = workorderBLL.GetModelList("F_MainWorkOrderId='" + workorder[0].F_WorkOrderId +
  1415. // "and F_IsDelete=0");
  1416. // if (workorderlist != null && workorderlist.Count > 0)
  1417. // {
  1418. foreach (var it in workorder)
  1419. {
  1420. it.F_Satisfaction = info.Satisfaction;
  1421. workorderBLL.Update(it);
  1422. }
  1423. // }
  1424. }
  1425. else
  1426. {
  1427. return Error("系统不存在此工单");
  1428. }
  1429. workorderBLL.Update(modelT_Bus_WorkOrder);
  1430. #endregion
  1431. trans.Complete();
  1432. }
  1433. return Success("操作成功");
  1434. }
  1435. catch (Exception ex)
  1436. {
  1437. return Error("操作失败" + ex.Message);
  1438. }
  1439. }
  1440. [HttpPost]
  1441. public ActionResult uploadAddWorkorders(uploadAddWorders info)
  1442. {
  1443. if (info == null)
  1444. return Error("内容为空");
  1445. try
  1446. {
  1447. using (TransactionScope trans = new TransactionScope())
  1448. {
  1449. #region 保存工单信息
  1450. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1451. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1452. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1453. "and F_IsDelete=0");
  1454. if (workorder != null && workorder.Count > 0)
  1455. {
  1456. modelT_Bus_WorkOrder = workorder[0];
  1457. if (info .ideliverprogress ==11)
  1458. {
  1459. if (workorder[0].IsExport !=1 )
  1460. {
  1461. return Success("操作成功");
  1462. }
  1463. workorder[0].IsExport = 0;
  1464. workorder[0].F_WorkState = 11;
  1465. }
  1466. else
  1467. {
  1468. return Success("操作成功");
  1469. //Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1470. //if (modelT_Bus_AssignedInfo != null)
  1471. //{
  1472. // 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();
  1473. // #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1474. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1475. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1476. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1477. // modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1478. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1479. // #endregion
  1480. //}
  1481. //workorder[0].F_WorkState = 13;
  1482. }
  1483. }
  1484. else
  1485. {
  1486. modelT_Bus_WorkOrder.F_WorkState = 1;
  1487. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1488. }
  1489. if (info.ideliverprogress == 11)
  1490. modelT_Bus_WorkOrder.F_Backreason = info.backreason;
  1491. if (info .type ==1)
  1492. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1493. else
  1494. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1495. modelT_Bus_WorkOrder.F_CusName = info.custname;
  1496. modelT_Bus_WorkOrder.F_ConName = info.custname; ;//联系人姓名
  1497. modelT_Bus_WorkOrder.F_CusPhone = info .phone;//
  1498. modelT_Bus_WorkOrder.F_ConPhone = info.phone;//联系人
  1499. try
  1500. {
  1501. modelT_Bus_WorkOrder.F_CreateTime =DateTime .Parse ( info.tsystime);
  1502. }
  1503. catch
  1504. {
  1505. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1506. }
  1507. modelT_Bus_WorkOrder.F_Event = info .ismallcategory ;//事件类别
  1508. modelT_Bus_WorkOrder.F_Transferor =info .unit_code ;//转办人
  1509. try
  1510. {
  1511. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(info .transferTime );
  1512. }
  1513. catch
  1514. {
  1515. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1516. }
  1517. modelT_Bus_WorkOrder.F_ComTitle = info.title;
  1518. modelT_Bus_WorkOrder.F_Transferunit =info .transferunit ;//转办单位
  1519. modelT_Bus_WorkOrder.F_ComContent = info .content ;//
  1520. modelT_Bus_WorkOrder.F_ResultRemarks = info .advice ;//拟办意见
  1521. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1522. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1523. {
  1524. try
  1525. {
  1526. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1527. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1528. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1529. }
  1530. catch
  1531. {
  1532. }
  1533. }
  1534. modelT_Bus_WorkOrder.F_FinalOpinion =info .result ;//处理结果
  1535. modelT_Bus_WorkOrder.F_Result = info .remark ;//回访情况
  1536. modelT_Bus_WorkOrder.F_Remarks = "★以上登记信息仅供市长热线平台及承办人员查阅,未经许可不得向外提供";//
  1537. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1538. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1539. modelT_Bus_WorkOrder.F_WorkRemarks = info.workorderremark;
  1540. if (modelT_Bus_WorkOrder.F_Id > 0)
  1541. {
  1542. workorderBLL.Update(modelT_Bus_WorkOrder);
  1543. }
  1544. else
  1545. {
  1546. workorderBLL.Add(modelT_Bus_WorkOrder);
  1547. }
  1548. #endregion
  1549. #region 插入操作记录
  1550. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1551. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1552. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1553. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  1554. oper.F_File = modelT_Bus_WorkOrder.F_File;
  1555. string userinfo = "系统";
  1556. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  1557. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  1558. {
  1559. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1560. }
  1561. oper.F_CreateUser = "8000";
  1562. oper.F_CreateTime = DateTime.Now;
  1563. oper.F_IsDelete = 0;
  1564. operBLL.Add(oper);
  1565. #endregion
  1566. trans.Complete();
  1567. }
  1568. return Success("操作成功");
  1569. }
  1570. catch (Exception ex)
  1571. {
  1572. return Error("操作失败" + ex.Message);
  1573. }
  1574. }
  1575. [HttpPost]
  1576. public ActionResult AddWorkorders(string message )
  1577. {
  1578. if (string.IsNullOrEmpty(message))
  1579. return Error("内容为空");
  1580. try
  1581. {
  1582. using (TransactionScope trans = new TransactionScope())
  1583. {
  1584. #region 保存工单信息
  1585. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1586. string[] value = { "案件编号:", "来电人", "联系电话",
  1587. "登记时间" ,"事件类别","转办人" ,
  1588. "转办时间","转办单位","详细内容"
  1589. ,"拟办意见","处理结果","回访情况","★"};
  1590. string[] values = message.Split(value, StringSplitOptions.RemoveEmptyEntries);
  1591. modelT_Bus_WorkOrder.F_OldWorkOrderId = values[1].Replace("\r", "")
  1592. .Replace("\a", "");
  1593. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1594. "and F_IsDelete=0");
  1595. if (workorder!=null&& workorder.Count >0)
  1596. {
  1597. modelT_Bus_WorkOrder = workorder[0];
  1598. if (workorder[0].F_WorkState <=3)
  1599. {
  1600. workorder[0].F_WorkState = 11;
  1601. }
  1602. else if (workorder[0].F_WorkState == 4)
  1603. {
  1604. workorder[0].F_WorkState = 8;
  1605. }
  1606. else
  1607. {
  1608. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1609. if (modelT_Bus_AssignedInfo!=null )
  1610. {
  1611. 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();
  1612. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1613. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1614. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1615. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1616. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1617. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1618. #endregion
  1619. }
  1620. workorder[0].F_WorkState = 13;
  1621. }
  1622. }
  1623. else
  1624. modelT_Bus_WorkOrder.F_WorkState = 1;
  1625. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1626. if (modelT_Bus_WorkOrder.F_OldWorkOrderId.Contains("xx"))
  1627. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1628. else
  1629. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1630. modelT_Bus_WorkOrder.F_CusName = values[2].Replace("\r", "")
  1631. .Replace("\a", "");//
  1632. modelT_Bus_WorkOrder.F_ConName = values[2].Replace("\r", "")
  1633. .Replace("\a", "");//联系人姓名
  1634. modelT_Bus_WorkOrder.F_CusPhone = values[3].Replace("\r", "")
  1635. .Replace("\a", "");//
  1636. modelT_Bus_WorkOrder.F_ConPhone = values[3].Replace("\r", "")
  1637. .Replace("\a", "");//联系人姓名
  1638. try
  1639. {
  1640. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Parse(values[4].Replace("\r", "")
  1641. .Replace("\a", ""));
  1642. }
  1643. catch
  1644. {
  1645. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1646. }
  1647. modelT_Bus_WorkOrder.F_Event = values[5].Replace("\r", "")
  1648. .Replace("\a", "");//事件类别
  1649. modelT_Bus_WorkOrder.F_Transferor = values[6].Replace("\r", "")
  1650. .Replace("\a", "");//转办人
  1651. try
  1652. {
  1653. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(values[7].Replace("\r", "")
  1654. .Replace("\a", ""));
  1655. }
  1656. catch
  1657. {
  1658. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1659. }
  1660. modelT_Bus_WorkOrder.F_Transferunit = values[8].Replace("\r", "")
  1661. .Replace("\a", "");//转办单位
  1662. modelT_Bus_WorkOrder.F_ComContent = values[9].Replace("\r", "")
  1663. .Replace("\a", "");//
  1664. modelT_Bus_WorkOrder.F_ResultRemarks = values[10].Replace("\r", "")
  1665. .Replace("\a", "");//拟办意见
  1666. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1667. if (!string .IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1668. {
  1669. try
  1670. {
  1671. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1672. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1673. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1674. }
  1675. catch
  1676. {
  1677. }
  1678. }
  1679. modelT_Bus_WorkOrder.F_FinalOpinion = values[11].Replace("\r", "")
  1680. .Replace("\a", "");//处理结果
  1681. modelT_Bus_WorkOrder.F_Result = values[12].Replace("\r", "")
  1682. .Replace("\a", "");//回访情况
  1683. modelT_Bus_WorkOrder.F_Remarks = "★" + values[13].Replace("\r", "")
  1684. .Replace("\a", "");//
  1685. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1686. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1687. if(modelT_Bus_WorkOrder.F_Id >0)
  1688. {
  1689. workorderBLL.Update (modelT_Bus_WorkOrder);
  1690. }
  1691. else
  1692. {
  1693. workorderBLL.Add(modelT_Bus_WorkOrder);
  1694. }
  1695. #endregion
  1696. #region 插入操作记录
  1697. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1698. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1699. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1700. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  1701. oper.F_File = modelT_Bus_WorkOrder.F_File;
  1702. string userinfo = "系统";
  1703. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  1704. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  1705. {
  1706. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1707. }
  1708. oper.F_CreateUser = "8000";
  1709. oper.F_CreateTime = DateTime.Now;
  1710. oper.F_IsDelete = 0;
  1711. operBLL.Add(oper);
  1712. #endregion
  1713. trans.Complete();
  1714. }
  1715. return Success("操作成功");
  1716. }
  1717. catch (Exception ex)
  1718. {
  1719. return Error ("操作失败"+ex .Message );
  1720. }
  1721. }
  1722. /// <summary>
  1723. /// 获取领导处理列表
  1724. /// </summary>
  1725. /// <returns></returns>
  1726. [Authority]
  1727. public ActionResult GetLDDealList(int isdc = 0)
  1728. {
  1729. DataTable dt = new DataTable();
  1730. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  1731. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  1732. string sql = " and F_IsDelete=0";
  1733. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1734. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1735. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1736. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1737. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1738. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1739. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1740. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1741. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1742. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1743. int source = RequestString.GetInt("source", 0);
  1744. int keyid = RequestString.GetInt("keyid", 0);
  1745. int type = RequestString.GetInt("type", 0);
  1746. int bigtype = RequestString.GetInt("bigtype", 0);
  1747. int smalltype = RequestString.GetInt("smalltype", 0);
  1748. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1749. int deptid = RequestString.GetInt("deptid", 0);
  1750. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1751. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1752. string strpageindex = RequestString.GetQueryString("page");
  1753. int pageindex = 1;
  1754. string strpagesize = RequestString.GetQueryString("pagesize");
  1755. int pagesize = 10;
  1756. int IsExport = RequestString.GetInt("isexport", 0);
  1757. int timesort = RequestString.GetInt("timesort", -1);
  1758. string sort = "ORDER BY F_CreateTime ASC";
  1759. if (timesort == 0)
  1760. sort = "ORDER BY LimitTime ASC";
  1761. else if (timesort == 1)
  1762. sort = "ORDER BY F_CreateTime DESC";
  1763. if (IsExport > 0)
  1764. {
  1765. sql += " and IsExport = '" + IsExport + "' ";
  1766. }
  1767. switch (strtab)
  1768. {
  1769. case "0"://待处理工单
  1770. if (strstate.Trim() != "" && strstate != "undefined")
  1771. {
  1772. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1773. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1774. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  1775. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  1776. else
  1777. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1778. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1779. if (strstate.Trim() == ((int)EnumWorkState.visit).ToString() && issatisfie != -1)
  1780. {
  1781. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1782. sql += " and F_IsSatisfie='" + issatisfie + "')";
  1783. }
  1784. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  1785. {
  1786. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1787. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG"&& userModel.F_RoleCode != "ZXLD")
  1788. {
  1789. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1790. }
  1791. else
  1792. {
  1793. sql += ")";
  1794. }
  1795. }
  1796. else
  1797. {
  1798. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1799. {
  1800. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  1801. + "and F_CreateUser = '" + userModel.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  1802. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  1803. }
  1804. }
  1805. }
  1806. else
  1807. {
  1808. //int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1809. //sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1810. ////sql += " and F_WorkState in (1,2,3,5,7,8)";
  1811. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1812. sql += " and (F_WorkState='" + (int)EnumWorkState.submit + "' or ( F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ") and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1813. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1814. {
  1815. sql += " and F_CreateUser='" + userModel.F_UserCode + "')))";
  1816. }
  1817. else
  1818. {
  1819. sql += ")))";
  1820. }
  1821. }
  1822. break;
  1823. case "1"://已交办的工单
  1824. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  1825. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  1826. if (strstate.Trim() != "" && strstate != "undefined")
  1827. {
  1828. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1829. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1830. else
  1831. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1832. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1833. }
  1834. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1835. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  1836. {
  1837. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  1838. }
  1839. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  1840. {
  1841. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  1842. }
  1843. //if (deptid != 0)
  1844. //{
  1845. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1846. // sql += " and F_MainDeptId = '" + deptid + "'";
  1847. //}
  1848. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1849. {
  1850. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1851. }
  1852. else
  1853. {
  1854. sql += ")";
  1855. }
  1856. break;
  1857. case "2"://已审核退回的工单
  1858. if (strstate.Trim() != "" && strstate != "undefined")
  1859. {
  1860. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1861. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1862. else
  1863. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1864. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1865. }
  1866. 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 ";
  1867. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1868. {
  1869. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  1870. }
  1871. else
  1872. {
  1873. sql += ")";
  1874. }
  1875. break;
  1876. case "3"://已审核延时的工单
  1877. if (strstate.Trim() != "" && strstate != "undefined")
  1878. {
  1879. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1880. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1881. else
  1882. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1883. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1884. }
  1885. 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 ";
  1886. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1887. {
  1888. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  1889. }
  1890. else
  1891. {
  1892. sql += ")";
  1893. }
  1894. break;
  1895. case "4"://已重办的工单
  1896. if (strstate.Trim() != "" && strstate != "undefined")
  1897. {
  1898. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1899. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1900. else
  1901. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1902. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1903. }
  1904. 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 ";
  1905. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1906. {
  1907. sql += " and F_ReloadUser='" + userModel.F_UserCode + "')";
  1908. }
  1909. else
  1910. {
  1911. sql += ")";
  1912. }
  1913. break;
  1914. case "5"://已结案的工单
  1915. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  1916. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  1917. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  1918. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1919. {
  1920. sql += " and F_CloseUser='" + userModel.F_UserCode + "'";
  1921. }
  1922. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  1923. {
  1924. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  1925. }
  1926. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  1927. {
  1928. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  1929. }
  1930. break;
  1931. case "6"://已督办的工单
  1932. if (strstate.Trim() != "" && strstate != "undefined")
  1933. {
  1934. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1935. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1936. else
  1937. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1938. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1939. }
  1940. 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 ";
  1941. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1942. {
  1943. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1944. }
  1945. else
  1946. {
  1947. sql += ")";
  1948. }
  1949. break;
  1950. case "7"://已监察的工单
  1951. if (strstate.Trim() != "" && strstate != "undefined")
  1952. {
  1953. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1954. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1955. else
  1956. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1957. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1958. }
  1959. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  1960. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  1961. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1962. {
  1963. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1964. }
  1965. else
  1966. {
  1967. sql += ")";
  1968. }
  1969. break;
  1970. case "8"://待督办列表
  1971. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  1972. if (strstate.Trim() != "" && strstate != "undefined")
  1973. {
  1974. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1975. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1976. else
  1977. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1978. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1979. }
  1980. 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 ";
  1981. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode!= "DBZY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1982. {
  1983. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1984. }
  1985. else
  1986. {
  1987. sql += ")";
  1988. }
  1989. break;
  1990. case "9"://重办驳回列表
  1991. sql += " and F_WorkState="+ (int)EnumWorkState.rejload;
  1992. 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)";
  1993. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1994. {
  1995. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  1996. }
  1997. sql += ")";
  1998. break;
  1999. }
  2000. if (strworkid.Trim() != "" && strworkid != "undefined")
  2001. {
  2002. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2003. }
  2004. if (strname.Trim() != "" && strname != "undefined")
  2005. {
  2006. sql += " and F_CusName like '%" + strname + "%' ";
  2007. }
  2008. if (strtel.Trim() != "" && strtel != "undefined")
  2009. {
  2010. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2011. }
  2012. if (strkey.Trim() != "" && strkey != "undefined")
  2013. {
  2014. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2015. }
  2016. #region 坐席&调度员
  2017. if (strusercode.Trim() != "" && strusercode != "undefined")
  2018. {//坐席
  2019. var usercode = strusercode.Trim().Split(',');
  2020. var newusercode = "";
  2021. foreach (var item in usercode)
  2022. {
  2023. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2024. newusercode += "'" + item + "',";
  2025. }
  2026. newusercode = newusercode.Trim(',');
  2027. if (newusercode.Trim() != "" && newusercode != "undefined")
  2028. {
  2029. sql += " and F_CreateUser in (" + newusercode + ") ";
  2030. }
  2031. }
  2032. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2033. {//调度员
  2034. var ddusercode = strddusercode.Trim().Split(',');
  2035. var newusercode = "";
  2036. foreach (var item in ddusercode)
  2037. {
  2038. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2039. newusercode += "'" + item + "',";
  2040. }
  2041. newusercode = newusercode.Trim(',');
  2042. if (newusercode.Trim() != "" && newusercode != "undefined")
  2043. {
  2044. sql += " and F_AssignUser in(" + newusercode + ") ";
  2045. }
  2046. }
  2047. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2048. //{
  2049. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2050. //}
  2051. #endregion
  2052. if (source != 0)
  2053. {
  2054. sql += " and F_InfoSource = '" + source + "' ";
  2055. }
  2056. if (keyid != 0)
  2057. {
  2058. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2059. }
  2060. if (type != 0)
  2061. {
  2062. sql += " and F_InfoType = '" + type + "' ";
  2063. }
  2064. if (bigtype != 0)
  2065. {
  2066. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2067. }
  2068. if (smalltype != 0)
  2069. {
  2070. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2071. }
  2072. if (sourcearea != 0)
  2073. {
  2074. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2075. }
  2076. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2077. {
  2078. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2079. }
  2080. if (strendtime.Trim() != "" && strendtime != "undefined")
  2081. {
  2082. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2083. }
  2084. if (deptid != 0 && strtab != "1")
  2085. {
  2086. if (deptlevel == 0)
  2087. {
  2088. 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 ";
  2089. //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 ";
  2090. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2091. }
  2092. else
  2093. {
  2094. //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 ";
  2095. 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 ";
  2096. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2097. }
  2098. }
  2099. if(deptid!=0)
  2100. {
  2101. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2102. }
  2103. if (strpageindex.Trim() != "")
  2104. {
  2105. pageindex = Convert.ToInt32(strpageindex);
  2106. }
  2107. if (strpagesize.Trim() != "")
  2108. {
  2109. pagesize = Convert.ToInt32(strpagesize);
  2110. }
  2111. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2112. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2113. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2114. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  2115. string colst = "F_OldWorkOrderId,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";
  2116. if (isdc > 0)
  2117. {
  2118. var dtdc = DbHelperSQL.Query(" select " + colst + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  2119. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2120. if (msg == "")
  2121. {
  2122. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2123. //{
  2124. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2125. //}
  2126. return Success("导出成功");
  2127. }
  2128. else
  2129. {
  2130. return Error("导出失败");
  2131. }
  2132. }
  2133. int recordCount = 0;
  2134. dt = BLL.PagerBLL.GetListPager(
  2135. "T_Bus_WorkOrder WITH(NOLOCK)",
  2136. "F_WorkOrderId",
  2137. cols,
  2138. sql,
  2139. sort ,
  2140. pagesize,
  2141. pageindex,
  2142. true,
  2143. out recordCount);
  2144. #region 声音文件
  2145. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2146. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2147. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2148. dt.Columns.Add("OverState", typeof(string));//超时状态
  2149. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2150. dt.Columns.Add("GapTime", typeof(string));//时间差
  2151. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2152. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2153. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2154. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2155. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2156. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2157. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2158. foreach (DataRow dr in dt.Rows)
  2159. {
  2160. //获取最新交办信息
  2161. string iszbdw = "0";
  2162. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2163. if (state > 1)
  2164. {
  2165. 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";
  2166. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2167. if (dtjb.Rows.Count > 0)
  2168. {
  2169. //if (dtjb.Rows[0]["F_MainDeptId"] != null && dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  2170. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2171. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2172. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2173. {
  2174. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2175. }
  2176. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2177. #region
  2178. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2179. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2180. //if (deptinfo != null)
  2181. //{
  2182. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2183. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2184. //}
  2185. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2186. //{
  2187. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2188. // string dns = string.Empty;
  2189. // foreach (string strid in strids)
  2190. // {
  2191. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2192. // if (dinfo != null)
  2193. // {
  2194. // if (string.IsNullOrEmpty(dns))
  2195. // {
  2196. // dns = dinfo.F_DeptName;//交办单位
  2197. // }
  2198. // else
  2199. // {
  2200. // dns += "," + dinfo.F_DeptName;//交办单位
  2201. // }
  2202. // }
  2203. // }
  2204. // dr["OtherDeptName"] = dns;
  2205. //}
  2206. #endregion
  2207. #region
  2208. //if (state < 6 || state == 8)
  2209. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2210. {
  2211. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2212. dr["LimitTime"] = lt;
  2213. if (!string.IsNullOrWhiteSpace(lt))
  2214. {
  2215. var ltime = DateTime.Parse(lt);
  2216. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2217. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2218. if (tss < 0) { tss = -tss; }
  2219. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2220. if (ltime > DateTime.Now)
  2221. {
  2222. if (configcs != null)
  2223. {
  2224. int cs = Int32.Parse(configcs.F_ParamValue);
  2225. if (ts.TotalHours > cs)
  2226. {
  2227. dr["OverState"] = 1;
  2228. }
  2229. else
  2230. {
  2231. dr["OverState"] = 2;
  2232. }
  2233. }
  2234. dr["GapTime"] = "剩余" + gshsj;
  2235. }
  2236. else
  2237. {
  2238. dr["OverState"] = 3;
  2239. dr["GapTime"] = "超时" + gshsj;
  2240. }
  2241. }
  2242. }
  2243. if (state == (int)EnumWorkState.finish)
  2244. {
  2245. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2246. var dttime = DateTime.Now;
  2247. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2248. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2249. dr["LimitTime"] = lt;
  2250. if (!string.IsNullOrWhiteSpace(lt))
  2251. {
  2252. var ltime = DateTime.Parse(lt);
  2253. TimeSpan ts = ltime.Subtract(dttime);
  2254. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2255. if (tss < 0) { tss = -tss; }
  2256. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2257. if (ltime < dttime)
  2258. {
  2259. dr["OverState"] = 3;
  2260. dr["GapTime"] = "超时" + gshsj;
  2261. }
  2262. }
  2263. }
  2264. #endregion
  2265. }
  2266. }
  2267. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2268. {
  2269. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2270. }
  2271. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2272. {
  2273. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2274. }
  2275. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  2276. {
  2277. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  2278. dr["IsFiles"] = 1;
  2279. else
  2280. dr["IsFiles"] = 0;
  2281. }
  2282. else
  2283. {
  2284. dr["IsFiles"] = 0;
  2285. }
  2286. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2287. if (Int32.Parse(strtab) <= 1)
  2288. {
  2289. btns.Add(ButtonGroup.query());
  2290. if (Int32.Parse(strtab)==1)
  2291. {
  2292. // btns.Add(ButtonGroup.query());
  2293. if (dr["F_WorkState"].ToString() == "2" || dr["F_WorkState"].ToString() == "4" || dr["F_WorkState"].ToString() == "8")
  2294. {
  2295. if (userModel.F_RoleCode.ToUpper() == "ZXLD" || userModel.F_RoleCode.ToUpper() == "ZXLDGLYGLY" || userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "DDZG")
  2296. {
  2297. btns.Add(ButtonGroup.takeback());
  2298. }
  2299. }
  2300. }
  2301. else
  2302. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2303. #region 判断是否存在待督办
  2304. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2305. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2306. if (recount > 0 && butt != null)
  2307. btns.Remove(butt);
  2308. #endregion
  2309. }
  2310. else
  2311. {
  2312. btns.Clear();
  2313. if (Int32.Parse(strtab) == 8)
  2314. btns = ButtonGroup.GetButtons("12", userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2315. else
  2316. btns.Add(ButtonGroup.query());
  2317. }
  2318. dr["Buttons"] = btns;
  2319. }
  2320. #endregion
  2321. var obj = new
  2322. {
  2323. state = "success",
  2324. message = "成功",
  2325. rows = dt,
  2326. total = recordCount
  2327. };
  2328. return Content(obj.ToJson());
  2329. }
  2330. /// <summary>
  2331. /// 获取单位处理列表
  2332. /// </summary>
  2333. /// <returns></returns>
  2334. [Authority]
  2335. public ActionResult GetDWDealList(int isdc = 0)
  2336. {
  2337. DataTable dt = new DataTable();
  2338. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2339. //int userId = 689;
  2340. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2341. string sql = " and F_IsDelete=0";
  2342. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2343. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2344. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2345. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2346. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2347. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2348. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2349. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2350. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2351. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2352. int source = RequestString.GetInt("source", 0);
  2353. int keyid = RequestString.GetInt("keyid", 0);
  2354. int type = RequestString.GetInt("type", 0);
  2355. int bigtype = RequestString.GetInt("bigtype", 0);
  2356. int smalltype = RequestString.GetInt("smalltype", 0);
  2357. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2358. int deptid = RequestString.GetInt("deptid", 0);
  2359. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2360. string strpageindex = RequestString.GetQueryString("page");
  2361. int pageindex = 1;
  2362. string strpagesize = RequestString.GetQueryString("pagesize");
  2363. int pagesize = 10;
  2364. int IsExport = RequestString.GetInt("isexport", 0);
  2365. int timesort = RequestString.GetInt("timesort", -1);
  2366. string sort = "ORDER BY F_CreateTime DESC";
  2367. if (timesort == 0)
  2368. sort = "ORDER BY LimitTime ASC";
  2369. else if (timesort == 1)
  2370. sort = "ORDER BY F_CreateTime DESC";
  2371. if (IsExport > 0)
  2372. {
  2373. sql += " and IsExport = '" + IsExport + "' ";
  2374. }
  2375. #region 模块
  2376. switch (strtab)
  2377. {
  2378. case "0"://待处理工单
  2379. int isyq = RequestString.GetInt("isyq", -1);
  2380. if (strstate.Trim() != "" && strstate != "undefined")
  2381. {
  2382. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2383. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2384. else
  2385. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2386. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2387. }
  2388. else
  2389. {
  2390. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  2391. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2392. //sql += " and F_WorkState in (2,4,8)";
  2393. }
  2394. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2395. {
  2396. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2397. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)) or "
  2398. //+ "(','+F_OtherDeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_IsSure=1))";
  2399. //+ " ISNULL(F_FeedbackTime, '')='' and ',' + F_MainDeptID + ',' like '%," + userModel.F_DeptId + ",%' and F_IsSure in (0,1)";
  2400. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  2401. if (isyq != -1)
  2402. {
  2403. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2404. }
  2405. else
  2406. {
  2407. sql += ")";
  2408. }
  2409. }
  2410. break;
  2411. case "1"://已查收的工单
  2412. if (strstate.Trim() != "" && strstate != "undefined")
  2413. {
  2414. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2415. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2416. else
  2417. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2418. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2419. }
  2420. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure=1 ";
  2421. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2422. {
  2423. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2424. }
  2425. else
  2426. {
  2427. sql += ")";
  2428. }
  2429. break;
  2430. case "2"://已申请退回的工单
  2431. if (strstate.Trim() != "" && strstate != "undefined")
  2432. {
  2433. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2434. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2435. else
  2436. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2437. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2438. }
  2439. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type = 3 ";
  2440. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2441. {
  2442. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2443. }
  2444. else
  2445. {
  2446. sql += ")";
  2447. }
  2448. break;
  2449. case "3"://已申请延时的工单
  2450. if (strstate.Trim() != "" && strstate != "undefined")
  2451. {
  2452. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2453. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2454. else
  2455. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2456. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2457. }
  2458. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2459. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2460. {
  2461. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2462. }
  2463. else
  2464. {
  2465. sql += ")";
  2466. }
  2467. break;
  2468. case "4"://已办理的工单
  2469. if (strstate.Trim() != "" && strstate != "undefined")
  2470. {
  2471. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2472. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2473. else
  2474. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2475. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2476. }
  2477. sort = "ORDER BY F_CreateTime DESC";
  2478. 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) ";
  2479. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2480. {
  2481. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2482. }
  2483. else
  2484. {
  2485. sql += ")";
  2486. }
  2487. break;
  2488. case "5"://被督办的工单
  2489. if (strstate.Trim() != "" && strstate != "undefined")
  2490. {
  2491. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2492. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2493. else
  2494. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2495. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2496. }
  2497. 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 ";
  2498. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2499. {
  2500. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2501. }
  2502. else
  2503. {
  2504. sql += ")";
  2505. }
  2506. break;
  2507. case "6"://被监察的工单
  2508. if (strstate.Trim() != "" && strstate != "undefined")
  2509. {
  2510. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2511. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2512. else
  2513. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2514. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2515. }
  2516. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2517. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2518. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2519. {
  2520. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2521. }
  2522. else
  2523. {
  2524. sql += ")";
  2525. }
  2526. break;
  2527. case "7"://延时审核中的工单
  2528. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2529. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2530. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2531. {
  2532. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2533. }
  2534. else
  2535. {
  2536. sql += ")";
  2537. }
  2538. break;
  2539. case "8"://退回审核中的工单
  2540. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2541. 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,'')=''";
  2542. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2543. {
  2544. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2545. }
  2546. else
  2547. {
  2548. sql += ")";
  2549. }
  2550. break;
  2551. case "9"://需履职界定表
  2552. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2553. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2554. 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 ";
  2555. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2556. {
  2557. sql += " and F_MainDeptId='" + userModel.F_DeptId + "' ";
  2558. }
  2559. sql += "))";
  2560. break;
  2561. case "10"://履职界定待审核表
  2562. 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 )";
  2563. break;
  2564. case "11"://履职界定已审核表
  2565. 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 )";
  2566. break;
  2567. case "12"://领导批示
  2568. 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=1 )";
  2569. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2570. {
  2571. sql += " and F_MainDeptId='" + userModel.F_DeptId + "'";
  2572. }
  2573. break;
  2574. #region 增加催办列表:被催办的工单可以在此列表进行显示处理,二级单位可以在此进行催办处理 20220316
  2575. case "13"://被催办的工单
  2576. if (strstate.Trim() != "" && strstate != "undefined")
  2577. {
  2578. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2579. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2580. else
  2581. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2582. }
  2583. sql += " and F_WorkState in ('" + (int)EnumWorkState.receive + "','" + (int)EnumWorkState.dealing +"','"+ (int)EnumWorkState.reload + "' )";
  2584. sql += " and ReminderNum>0 and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure in (0,1)";
  2585. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2586. {
  2587. sql += " and F_MainDeptId='" + userModel.F_DeptId + "')";
  2588. }
  2589. else
  2590. {
  2591. sql += ")";
  2592. }
  2593. break;
  2594. #endregion
  2595. }
  2596. #endregion
  2597. #region 条件
  2598. if (strworkid.Trim() != "" && strworkid != "undefined")
  2599. {
  2600. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2601. }
  2602. if (strname.Trim() != "" && strname != "undefined")
  2603. {
  2604. sql += " and F_CusName like '%" + strname + "%' ";
  2605. }
  2606. if (strtel.Trim() != "" && strtel != "undefined")
  2607. {
  2608. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2609. }
  2610. if (strkey.Trim() != "" && strkey != "undefined")
  2611. {
  2612. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2613. }
  2614. #region 坐席&调度员
  2615. if (strusercode.Trim() != "" && strusercode != "undefined")
  2616. {//坐席
  2617. var usercode = strusercode.Trim().Split(',');
  2618. var newusercode = "";
  2619. foreach (var item in usercode)
  2620. {
  2621. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2622. newusercode += "'" + item + "',";
  2623. }
  2624. newusercode = newusercode.Trim(',');
  2625. if (newusercode.Trim() != "" && newusercode != "undefined")
  2626. {
  2627. sql += " and F_CreateUser in (" + newusercode + ") ";
  2628. }
  2629. }
  2630. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2631. {//调度员
  2632. var ddusercode = strddusercode.Trim().Split(',');
  2633. var newusercode = "";
  2634. foreach (var item in ddusercode)
  2635. {
  2636. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2637. newusercode += "'" + item + "',";
  2638. }
  2639. newusercode = newusercode.Trim(',');
  2640. if (newusercode.Trim() != "" && newusercode != "undefined")
  2641. {
  2642. sql += " and F_AssignUser in(" + newusercode + ") ";
  2643. }
  2644. }
  2645. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2646. //{
  2647. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2648. //}
  2649. #endregion
  2650. if (source != 0)
  2651. {
  2652. sql += " and F_InfoSource = '" + source + "' ";
  2653. }
  2654. if (keyid != 0)
  2655. {
  2656. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2657. }
  2658. if (type != 0)
  2659. {
  2660. sql += " and F_InfoType = '" + type + "' ";
  2661. }
  2662. if (bigtype != 0)
  2663. {
  2664. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2665. }
  2666. if (smalltype != 0)
  2667. {
  2668. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2669. }
  2670. if (sourcearea != 0)
  2671. {
  2672. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2673. }
  2674. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2675. {
  2676. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2677. }
  2678. if (strendtime.Trim() != "" && strendtime != "undefined")
  2679. {
  2680. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2681. }
  2682. if(deptid!=0)
  2683. {
  2684. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2685. }
  2686. if (strpageindex.Trim() != "")
  2687. {
  2688. pageindex = Convert.ToInt32(strpageindex);
  2689. }
  2690. if (strpagesize.Trim() != "")
  2691. {
  2692. pagesize = Convert.ToInt32(strpagesize);
  2693. }
  2694. #endregion
  2695. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2696. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2697. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2698. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_Scanning,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  2699. if (isdc > 0)
  2700. {
  2701. var top = " "; var orderby = " order by F_CreateTime";
  2702. if (sql == " and F_IsDelete=0 ")
  2703. {
  2704. top = " top 1000 "; orderby += " desc ";
  2705. }
  2706. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2707. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  2708. + " (select top 1 F_Situation 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_CreateTime) 办理结果,"
  2709. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 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) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  2710. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  2711. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  2712. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2713. if (msg == "")
  2714. {
  2715. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2716. //{
  2717. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2718. //}
  2719. return Success("导出成功");
  2720. }
  2721. else
  2722. {
  2723. return Error("导出失败");
  2724. }
  2725. }
  2726. int recordCount = 0;
  2727. dt = BLL.PagerBLL.GetListPager(
  2728. "T_Bus_WorkOrder WITH(NOLOCK)",
  2729. "F_WorkOrderId",
  2730. cols,
  2731. sql,
  2732. sort ,
  2733. pagesize,
  2734. pageindex,
  2735. true,
  2736. out recordCount);
  2737. #region 声音文件
  2738. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2739. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2740. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2741. dt.Columns.Add("OverState", typeof(string));//超时状态
  2742. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2743. dt.Columns.Add("GapTime", typeof(string));//时间差
  2744. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2745. dt.Columns.Add("PDState", typeof(string));//派单状态
  2746. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2747. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2748. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2749. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2750. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2751. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2752. foreach (DataRow dr in dt.Rows)
  2753. {
  2754. //获取最新交办信息
  2755. string iszbdw = "0";
  2756. string ispd = "";
  2757. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2758. if (state > 1)
  2759. {
  2760. 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";
  2761. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2762. if (dtjb.Rows.Count > 0)
  2763. {
  2764. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2765. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2766. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2767. {
  2768. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2769. }
  2770. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2771. dr["LimitTime"] = dtjb.Rows[0]["F_LimitTime"].ToString();
  2772. #region
  2773. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2774. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2775. //if (deptinfo != null)
  2776. //{
  2777. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2778. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2779. //}
  2780. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2781. //{
  2782. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2783. // string dns = string.Empty;
  2784. // foreach (string strid in strids)
  2785. // {
  2786. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2787. // if (dinfo != null)
  2788. // {
  2789. // if (string.IsNullOrEmpty(dns))
  2790. // {
  2791. // dns = dinfo.F_DeptName;//交办单位
  2792. // }
  2793. // else
  2794. // {
  2795. // dns += "," + dinfo.F_DeptName;//交办单位
  2796. // }
  2797. // }
  2798. // }
  2799. // dr["OtherDeptName"] = dns;
  2800. //}
  2801. #endregion
  2802. #region
  2803. //if (state < 6 || state == 8)
  2804. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2805. {
  2806. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2807. dr["LimitTime"] = lt;
  2808. if (!string.IsNullOrWhiteSpace(lt))
  2809. {
  2810. var ltime = DateTime.Parse(lt);
  2811. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2812. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2813. if (tss < 0) { tss = -tss; }
  2814. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2815. if (ltime > DateTime.Now)
  2816. {
  2817. if (configcs != null)
  2818. {
  2819. int cs = Int32.Parse(configcs.F_ParamValue);
  2820. if (ts.TotalHours > cs)
  2821. {
  2822. dr["OverState"] = 1;
  2823. }
  2824. else
  2825. {
  2826. dr["OverState"] = 2;
  2827. }
  2828. }
  2829. dr["GapTime"] = "剩余" + gshsj;
  2830. }
  2831. else
  2832. {
  2833. dr["OverState"] = 3;
  2834. dr["GapTime"] = "超时" + gshsj;
  2835. }
  2836. }
  2837. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  2838. dr["PDState"] = ispd;
  2839. }
  2840. if (state == (int)EnumWorkState.finish)
  2841. {
  2842. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2843. var dttime = DateTime.Now;
  2844. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2845. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2846. if (!string.IsNullOrWhiteSpace(lt))
  2847. {
  2848. var ltime = DateTime.Parse(lt);
  2849. TimeSpan ts = ltime.Subtract(dttime);
  2850. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2851. if (tss < 0) { tss = -tss; }
  2852. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2853. if (ltime < dttime)
  2854. {
  2855. dr["OverState"] = 3;
  2856. dr["GapTime"] = "超时" + gshsj;
  2857. }
  2858. }
  2859. }
  2860. #endregion
  2861. }
  2862. }
  2863. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2864. {
  2865. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2866. }
  2867. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2868. {
  2869. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2870. }
  2871. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  2872. {
  2873. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  2874. dr["IsFiles"] = 1;
  2875. else
  2876. dr["IsFiles"] = 0;
  2877. }
  2878. else
  2879. {
  2880. dr["IsFiles"] = 0;
  2881. }
  2882. //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";
  2883. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  2884. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2885. if (Int32.Parse(strtab) < 1)
  2886. {
  2887. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2888. #region 判断是否存在待督办
  2889. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2890. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2891. if (recount > 0 && butt != null)
  2892. btns.Remove(butt);
  2893. #endregion
  2894. }
  2895. else
  2896. {
  2897. if (Int32.Parse(strtab) == 9)
  2898. {//需履职界定
  2899. btns.Add(ButtonGroup.perform());
  2900. }
  2901. else if (Int32.Parse(strtab) == 10)
  2902. {//履职界定待审核
  2903. btns.Add(ButtonGroup.performaudit());
  2904. }
  2905. else if (Int32.Parse(strtab) == 12)
  2906. {//领导批示
  2907. btns.Add(ButtonGroup.subreload());
  2908. }
  2909. else if (Int32.Parse(strtab) == 4)
  2910. {//履职界定待审核
  2911. if (dr["F_WorkState"].ToString()=="6")
  2912. btns.Add(ButtonGroup.visit());
  2913. if (dr["F_WorkState"].ToString() == "7"|| dr["F_WorkState"].ToString() == "9")
  2914. {
  2915. if (userModel.F_RoleCode.ToUpper() == "WLDW")
  2916. btns.Add(ButtonGroup.Upload());
  2917. }
  2918. }
  2919. else if (Int32.Parse(strtab) == 7)
  2920. {//履职界定待审核
  2921. btns.Add(ButtonGroup.auditdelay());
  2922. }
  2923. else if (Int32.Parse(strtab) == 13)
  2924. {//工单催办
  2925. if (userModel.F_RoleCode.ToUpper() == "DDZG" || userModel.F_RoleCode.ToUpper() == "GLY")
  2926. {
  2927. btns.Add(ButtonGroup.Reminder());
  2928. }
  2929. else
  2930. {
  2931. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2932. var butt = btns.Find(c => c.key == ButtonGroup.Remkers().key);
  2933. if ( butt != null)
  2934. btns.Remove(butt);
  2935. }
  2936. }
  2937. btns.Add(ButtonGroup.query());
  2938. }
  2939. dr["Buttons"] = btns;
  2940. }
  2941. #endregion
  2942. var obj = new
  2943. {
  2944. state = "success",
  2945. message = "成功",
  2946. rows = dt,
  2947. total = recordCount
  2948. };
  2949. return Content(obj.ToJson());
  2950. }
  2951. /// <summary>
  2952. /// 获取办理数量、催办数量、未上传数量
  2953. /// </summary>
  2954. /// <returns></returns>
  2955. [Authority]
  2956. public ActionResult GetDcsCount()
  2957. {
  2958. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2959. // int userId = 751;
  2960. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2961. int isyq = RequestString.GetInt("isyq", -1);
  2962. //获取待办理工单数量
  2963. string sql = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and F_WorkState in (2,4,8) and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2964. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  2965. if (isyq != -1)
  2966. {
  2967. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2968. }
  2969. else
  2970. {
  2971. sql += ")";
  2972. }
  2973. //获取催办数量
  2974. string sql1 = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and ReminderNum>0 and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure in (0,1) and F_MainDeptId=" + userModel.F_DeptId + ") ";
  2975. //扫描件未上传数量
  2976. string sql2 = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and F_Files ='' 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_CreateUser=" + userModel.F_UserCode + ") ";
  2977. #region 获取待办理数量
  2978. var dbldatable = DbHelperSQL.Query(sql).Tables[0];
  2979. var dblrow = dbldatable.Rows;
  2980. ///待办理数量
  2981. var dblcount = dblrow[0]["dblcount"].ToString();
  2982. #endregion
  2983. #region 获取催办数量
  2984. var cbdatable = DbHelperSQL.Query(sql1).Tables[0];
  2985. var cblrow = cbdatable.Rows;
  2986. ///催办数量
  2987. var cblcount = cblrow[0]["dblcount"].ToString();
  2988. #endregion
  2989. #region 扫描件未上传数量
  2990. var smjdatable = DbHelperSQL.Query(sql2).Tables[0];
  2991. var smjlrow = smjdatable.Rows;
  2992. ///扫描件未上传数量
  2993. var smjcount = smjlrow[0]["dblcount"].ToString();
  2994. #endregion
  2995. var obj = new
  2996. {
  2997. state = "success",
  2998. message = "成功",
  2999. dblcount= dblcount,
  3000. cblcount= cblcount,
  3001. smjcount= smjcount
  3002. };
  3003. return Content(obj.ToJson());
  3004. }
  3005. /// <summary>
  3006. /// 获取单位处理列表
  3007. /// </summary>
  3008. /// <returns></returns>
  3009. [Authority]
  3010. public ActionResult GetXBDWDealList(int isdc = 0)
  3011. {
  3012. DataTable dt = new DataTable();
  3013. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3014. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3015. string sql = " and F_IsDelete=0";
  3016. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3017. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3018. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3019. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3020. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3021. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3022. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3023. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3024. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3025. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3026. int source = RequestString.GetInt("source", 0);
  3027. int keyid = RequestString.GetInt("keyid", 0);
  3028. int type = RequestString.GetInt("type", 0);
  3029. int bigtype = RequestString.GetInt("bigtype", 0);
  3030. int smalltype = RequestString.GetInt("smalltype", 0);
  3031. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3032. int deptid = RequestString.GetInt("deptid", 0);
  3033. int timesort = RequestString.GetInt("timesort", -1);
  3034. string sort = "ORDER BY F_CreateTime ASC";
  3035. if (timesort == 0)
  3036. sort = "ORDER BY LimitTime ASC";
  3037. else if (timesort == 1)
  3038. sort = "ORDER BY F_CreateTime DESC";
  3039. string strpageindex = RequestString.GetQueryString("page");
  3040. int pageindex = 1;
  3041. string strpagesize = RequestString.GetQueryString("pagesize");
  3042. int pagesize = 10;
  3043. switch (strtab)
  3044. {
  3045. case "0"://待处理工单
  3046. int isyq = RequestString.GetInt("isyq", -1);
  3047. if (strstate.Trim() != "" && strstate != "undefined")
  3048. {
  3049. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3050. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3051. else
  3052. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3053. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3054. }
  3055. else
  3056. {
  3057. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  3058. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3059. //sql += " and F_WorkState in (2,4,8)";
  3060. }
  3061. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3062. + " ISNULL(F_FeedbackTime, '')='' ";
  3063. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3064. {
  3065. sql += " and F_DeptId =" + userModel.F_DeptId;
  3066. }
  3067. if (isyq != -1)
  3068. {
  3069. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3070. }
  3071. else
  3072. {
  3073. sql += ")";
  3074. }
  3075. break;
  3076. case "1"://已办理的工单
  3077. 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) ";
  3078. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3079. {
  3080. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3081. }
  3082. else
  3083. {
  3084. sql += ")";
  3085. }
  3086. break;
  3087. }
  3088. if(deptid!=0)
  3089. {
  3090. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3091. }
  3092. if (strworkid.Trim() != "" && strworkid != "undefined")
  3093. {
  3094. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3095. }
  3096. if (strname.Trim() != "" && strname != "undefined")
  3097. {
  3098. sql += " and F_CusName like '%" + strname + "%' ";
  3099. }
  3100. if (strtel.Trim() != "" && strtel != "undefined")
  3101. {
  3102. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3103. }
  3104. if (strkey.Trim() != "" && strkey != "undefined")
  3105. {
  3106. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3107. }
  3108. #region 坐席&调度员
  3109. if (strusercode.Trim() != "" && strusercode != "undefined")
  3110. {//坐席
  3111. var usercode = strusercode.Trim().Split(',');
  3112. var newusercode = "";
  3113. foreach (var item in usercode)
  3114. {
  3115. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3116. newusercode += "'" + item + "',";
  3117. }
  3118. newusercode = newusercode.Trim(',');
  3119. if (newusercode.Trim() != "" && newusercode != "undefined")
  3120. {
  3121. sql += " and F_CreateUser in (" + newusercode + ") ";
  3122. }
  3123. }
  3124. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3125. {//调度员
  3126. var ddusercode = strddusercode.Trim().Split(',');
  3127. var newusercode = "";
  3128. foreach (var item in ddusercode)
  3129. {
  3130. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3131. newusercode += "'" + item + "',";
  3132. }
  3133. newusercode = newusercode.Trim(',');
  3134. if (newusercode.Trim() != "" && newusercode != "undefined")
  3135. {
  3136. sql += " and F_AssignUser in(" + newusercode + ") ";
  3137. }
  3138. }
  3139. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3140. //{
  3141. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3142. //}
  3143. #endregion
  3144. if (source != 0)
  3145. {
  3146. sql += " and F_InfoSource = '" + source + "' ";
  3147. }
  3148. if (keyid != 0)
  3149. {
  3150. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3151. }
  3152. if (type != 0)
  3153. {
  3154. sql += " and F_InfoType = '" + type + "' ";
  3155. }
  3156. if (bigtype != 0)
  3157. {
  3158. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3159. }
  3160. if (smalltype != 0)
  3161. {
  3162. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3163. }
  3164. if (sourcearea != 0)
  3165. {
  3166. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3167. }
  3168. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3169. {
  3170. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3171. }
  3172. if (strendtime.Trim() != "" && strendtime != "undefined")
  3173. {
  3174. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3175. }
  3176. if (strpageindex.Trim() != "")
  3177. {
  3178. pageindex = Convert.ToInt32(strpageindex);
  3179. }
  3180. if (strpagesize.Trim() != "")
  3181. {
  3182. pagesize = Convert.ToInt32(strpagesize);
  3183. }
  3184. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3185. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3186. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3187. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  3188. if (isdc > 0)
  3189. {
  3190. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3191. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3192. if (msg == "")
  3193. {
  3194. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3195. //{
  3196. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3197. //}
  3198. return Success("导出成功");
  3199. }
  3200. else
  3201. {
  3202. return Error("导出失败");
  3203. }
  3204. }
  3205. int recordCount = 0;
  3206. dt = BLL.PagerBLL.GetListPager(
  3207. "T_Bus_WorkOrder WITH(NOLOCK)",
  3208. "F_WorkOrderId",
  3209. cols,
  3210. sql,
  3211. sort ,
  3212. pagesize,
  3213. pageindex,
  3214. true,
  3215. out recordCount);
  3216. #region 声音文件
  3217. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3218. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3219. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3220. dt.Columns.Add("OverState", typeof(string));//超时状态
  3221. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3222. dt.Columns.Add("GapTime", typeof(string));//时间差
  3223. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3224. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3225. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  3226. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3227. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3228. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3229. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3230. foreach (DataRow dr in dt.Rows)
  3231. {
  3232. //获取最新交办信息
  3233. string iszbdw = "0";
  3234. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3235. if (state > 1)
  3236. {
  3237. 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";
  3238. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3239. if (dtjb.Rows.Count > 0)
  3240. {
  3241. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3242. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3243. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3244. {
  3245. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3246. }
  3247. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3248. #region
  3249. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3250. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3251. //if (deptinfo != null)
  3252. //{
  3253. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  3254. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3255. //}
  3256. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3257. //{
  3258. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3259. // string dns = string.Empty;
  3260. // foreach (string strid in strids)
  3261. // {
  3262. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3263. // if (dinfo != null)
  3264. // {
  3265. // if (string.IsNullOrEmpty(dns))
  3266. // {
  3267. // dns = dinfo.F_DeptName;//交办单位
  3268. // }
  3269. // else
  3270. // {
  3271. // dns += "," + dinfo.F_DeptName;//交办单位
  3272. // }
  3273. // }
  3274. // }
  3275. // dr["OtherDeptName"] = dns;
  3276. //}
  3277. #endregion
  3278. #region
  3279. //if (state < 6 || state == 8)
  3280. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3281. {
  3282. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3283. dr["LimitTime"] = lt;
  3284. if (!string.IsNullOrWhiteSpace(lt))
  3285. {
  3286. var ltime = DateTime.Parse(lt);
  3287. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3288. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3289. if (tss < 0) { tss = -tss; }
  3290. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3291. if (ltime > DateTime.Now)
  3292. {
  3293. if (configcs != null)
  3294. {
  3295. int cs = Int32.Parse(configcs.F_ParamValue);
  3296. if (ts.TotalHours > cs)
  3297. {
  3298. dr["OverState"] = 1;
  3299. }
  3300. else
  3301. {
  3302. dr["OverState"] = 2;
  3303. }
  3304. }
  3305. dr["GapTime"] = "剩余" + gshsj;
  3306. }
  3307. else
  3308. {
  3309. dr["OverState"] = 3;
  3310. dr["GapTime"] = "超时" + gshsj;
  3311. }
  3312. }
  3313. }
  3314. if (state == (int)EnumWorkState.finish)
  3315. {
  3316. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3317. var dttime = DateTime.Now;
  3318. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3319. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3320. dr["LimitTime"] = lt;
  3321. if (!string.IsNullOrWhiteSpace(lt))
  3322. {
  3323. var ltime = DateTime.Parse(lt);
  3324. TimeSpan ts = ltime.Subtract(dttime);
  3325. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3326. if (tss < 0) { tss = -tss; }
  3327. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3328. if (ltime < dttime)
  3329. {
  3330. dr["OverState"] = 3;
  3331. dr["GapTime"] = "超时" + gshsj;
  3332. }
  3333. }
  3334. }
  3335. #endregion
  3336. }
  3337. }
  3338. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3339. {
  3340. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3341. }
  3342. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3343. {
  3344. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3345. }
  3346. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3347. {
  3348. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3349. dr["IsFiles"] = 1;
  3350. else
  3351. dr["IsFiles"] = 0;
  3352. }
  3353. else
  3354. {
  3355. dr["IsFiles"] = 0;
  3356. }
  3357. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3358. if (Int32.Parse(strtab) < 1)
  3359. {
  3360. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  3361. #region 判断是否存在待督办
  3362. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3363. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3364. if (recount > 0 && butt != null)
  3365. btns.Remove(butt);
  3366. #endregion
  3367. }
  3368. else
  3369. {
  3370. btns.Add(ButtonGroup.query());
  3371. }
  3372. dr["Buttons"] = btns;
  3373. }
  3374. #endregion
  3375. var obj = new
  3376. {
  3377. state = "success",
  3378. message = "成功",
  3379. rows = dt,
  3380. total = recordCount
  3381. };
  3382. return Content(obj.ToJson());
  3383. }
  3384. /// <summary>
  3385. /// 获取单位主办协办未处理工单列表
  3386. /// </summary>
  3387. /// <returns></returns>
  3388. [Authority]
  3389. public ActionResult GetDWNoDealList(int isdc = 0)
  3390. {
  3391. DataTable dt = new DataTable();
  3392. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3393. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3394. string sql = " and F_IsDelete=0";
  3395. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3396. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3397. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3398. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3399. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3400. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3401. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3402. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3403. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3404. int source = RequestString.GetInt("source", 0);
  3405. int keyid = RequestString.GetInt("keyid", 0);
  3406. int type = RequestString.GetInt("type", 0);
  3407. int bigtype = RequestString.GetInt("bigtype", 0);
  3408. int smalltype = RequestString.GetInt("smalltype", 0);
  3409. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3410. int deptid = RequestString.GetInt("deptid", 0);
  3411. int timesort = RequestString.GetInt("timesort", -1);
  3412. string sort = "ORDER BY F_CreateTime ASC";
  3413. if (timesort == 0)
  3414. sort = "ORDER BY LimitTime ASC";
  3415. else if (timesort == 1)
  3416. sort = "ORDER BY F_CreateTime DESC";
  3417. string strpageindex = RequestString.GetQueryString("page");
  3418. int pageindex = 1;
  3419. string strpagesize = RequestString.GetQueryString("pagesize");
  3420. int pagesize = 10;
  3421. if (userModel.F_RoleCode == "ZXHWY")
  3422. {
  3423. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  3424. }
  3425. #region 坐席&调度员
  3426. if (strusercode.Trim() != "" && strusercode != "undefined")
  3427. {//坐席
  3428. var usercode = strusercode.Trim().Split(',');
  3429. var newusercode = "";
  3430. foreach (var item in usercode)
  3431. {
  3432. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3433. newusercode += "'" + item + "',";
  3434. }
  3435. newusercode = newusercode.Trim(',');
  3436. if (newusercode.Trim() != "" && newusercode != "undefined")
  3437. {
  3438. sql += " and F_CreateUser in (" + newusercode + ") ";
  3439. }
  3440. }
  3441. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3442. {//调度员
  3443. var ddusercode = strddusercode.Trim().Split(',');
  3444. var newusercode = "";
  3445. foreach (var item in ddusercode)
  3446. {
  3447. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3448. newusercode += "'" + item + "',";
  3449. }
  3450. newusercode = newusercode.Trim(',');
  3451. if (newusercode.Trim() != "" && newusercode != "undefined")
  3452. {
  3453. sql += " and F_AssignUser in(" + newusercode + ") ";
  3454. }
  3455. }
  3456. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3457. //{
  3458. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3459. //}
  3460. #endregion
  3461. 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) ";
  3462. if (userModel.F_RoleCode == "WLDW")
  3463. {
  3464. sql += " and (F_MainDeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3465. }
  3466. else if (deptid != 0)
  3467. {
  3468. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3469. }
  3470. 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, '')='' ";
  3471. if (userModel.F_RoleCode == "WLDW")
  3472. {
  3473. sql += " and (F_DeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3474. }
  3475. else if (deptid != 0)
  3476. {
  3477. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3478. }
  3479. sql += "))";
  3480. if (strstate.Trim() != "" && strstate != "undefined")
  3481. {
  3482. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3483. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3484. else
  3485. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3486. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3487. }
  3488. else
  3489. {
  3490. sql += " and F_WorkState in (2,4,8)";
  3491. }
  3492. if (strworkid.Trim() != "" && strworkid != "undefined")
  3493. {
  3494. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3495. }
  3496. if (strname.Trim() != "" && strname != "undefined")
  3497. {
  3498. sql += " and F_CusName like '%" + strname + "%' ";
  3499. }
  3500. if (strtel.Trim() != "" && strtel != "undefined")
  3501. {
  3502. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3503. }
  3504. if (strkey.Trim() != "" && strkey != "undefined")
  3505. {
  3506. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3507. }
  3508. if (source != 0)
  3509. {
  3510. sql += " and F_InfoSource = '" + source + "' ";
  3511. }
  3512. if (keyid != 0)
  3513. {
  3514. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3515. }
  3516. if (type != 0)
  3517. {
  3518. sql += " and F_InfoType = '" + type + "' ";
  3519. }
  3520. if (bigtype != 0)
  3521. {
  3522. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3523. }
  3524. if (smalltype != 0)
  3525. {
  3526. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3527. }
  3528. if (sourcearea != 0)
  3529. {
  3530. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3531. }
  3532. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3533. {
  3534. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3535. }
  3536. if (strendtime.Trim() != "" && strendtime != "undefined")
  3537. {
  3538. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3539. }
  3540. if (strpageindex.Trim() != "")
  3541. {
  3542. pageindex = Convert.ToInt32(strpageindex);
  3543. }
  3544. if (strpagesize.Trim() != "")
  3545. {
  3546. pagesize = Convert.ToInt32(strpagesize);
  3547. }
  3548. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3549. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  3550. if (isdc > 0)
  3551. {
  3552. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3553. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3554. if (msg == "")
  3555. {
  3556. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3557. //{
  3558. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3559. //}
  3560. return Success("导出成功");
  3561. }
  3562. else
  3563. {
  3564. return Error("导出失败");
  3565. }
  3566. }
  3567. int recordCount = 0;
  3568. dt = BLL.PagerBLL.GetListPager(
  3569. "T_Bus_WorkOrder WITH(NOLOCK)",
  3570. "F_WorkOrderId",
  3571. cols,
  3572. sql,
  3573. sort ,
  3574. pagesize,
  3575. pageindex,
  3576. true,
  3577. out recordCount);
  3578. #region 声音文件
  3579. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3580. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3581. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3582. dt.Columns.Add("OverState", typeof(string));//超时状态
  3583. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3584. dt.Columns.Add("GapTime", typeof(string));//时间差
  3585. dt.Columns.Add("FilePath", typeof(string));
  3586. dt.Columns.Add("Buttons", typeof(object));
  3587. dt.Columns.Add("IsFiles", typeof(object));
  3588. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3589. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3590. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3591. foreach (DataRow dr in dt.Rows)
  3592. {
  3593. //获取最新交办信息
  3594. string iszbdw = "0";
  3595. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3596. if (state > 1)
  3597. {
  3598. 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";
  3599. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3600. if (dtjb.Rows.Count > 0)
  3601. {
  3602. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3603. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3604. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3605. {
  3606. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3607. }
  3608. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3609. #region
  3610. //if (state < 6 || state == 8)
  3611. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3612. {
  3613. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3614. dr["LimitTime"] = lt;
  3615. if (!string.IsNullOrWhiteSpace(lt))
  3616. {
  3617. var ltime = DateTime.Parse(lt);
  3618. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3619. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3620. if (tss < 0) { tss = -tss; }
  3621. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3622. if (ltime > DateTime.Now)
  3623. {
  3624. if (configcs != null)
  3625. {
  3626. int cs = Int32.Parse(configcs.F_ParamValue);
  3627. if (ts.TotalHours > cs)
  3628. {
  3629. dr["OverState"] = 1;
  3630. }
  3631. else
  3632. {
  3633. dr["OverState"] = 2;
  3634. }
  3635. }
  3636. dr["GapTime"] = "剩余" + gshsj;
  3637. }
  3638. else
  3639. {
  3640. dr["OverState"] = 3;
  3641. dr["GapTime"] = "超时" + gshsj;
  3642. }
  3643. }
  3644. }
  3645. if (state == (int)EnumWorkState.finish)
  3646. {
  3647. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3648. var dttime = DateTime.Now;
  3649. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3650. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3651. dr["LimitTime"] = lt;
  3652. if (!string.IsNullOrWhiteSpace(lt))
  3653. {
  3654. var ltime = DateTime.Parse(lt);
  3655. TimeSpan ts = ltime.Subtract(dttime);
  3656. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3657. if (tss < 0) { tss = -tss; }
  3658. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3659. if (ltime < dttime)
  3660. {
  3661. dr["OverState"] = 3;
  3662. dr["GapTime"] = "超时" + gshsj;
  3663. }
  3664. }
  3665. }
  3666. #endregion
  3667. }
  3668. }
  3669. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3670. {
  3671. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3672. }
  3673. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3674. {
  3675. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3676. }
  3677. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3678. {
  3679. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3680. dr["IsFiles"] = 1;
  3681. else
  3682. dr["IsFiles"] = 0;
  3683. }
  3684. else
  3685. {
  3686. dr["IsFiles"] = 0;
  3687. }
  3688. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3689. btns.Add(ButtonGroup.query());
  3690. dr["Buttons"] = btns;
  3691. }
  3692. #endregion
  3693. var obj = new
  3694. {
  3695. state = "success",
  3696. message = "成功",
  3697. rows = dt,
  3698. total = recordCount
  3699. };
  3700. return Content(obj.ToJson());
  3701. }
  3702. /// <summary>
  3703. /// 获取二级单位处理列表
  3704. /// </summary>
  3705. /// <returns></returns>
  3706. [Authority]
  3707. public ActionResult GetEJDWDealList(int isdc = 0)
  3708. {
  3709. DataTable dt = new DataTable();
  3710. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3711. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3712. string sql = " and F_IsDelete=0";
  3713. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3714. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3715. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3716. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3717. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3718. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3719. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3720. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3721. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3722. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3723. int source = RequestString.GetInt("source", 0);
  3724. int keyid = RequestString.GetInt("keyid", 0);
  3725. int type = RequestString.GetInt("type", 0);
  3726. int bigtype = RequestString.GetInt("bigtype", 0);
  3727. int smalltype = RequestString.GetInt("smalltype", 0);
  3728. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3729. int deptid = RequestString.GetInt("deptid", 0);
  3730. int timesort = RequestString.GetInt("timesort", -1);
  3731. string sort = "ORDER BY F_CreateTime ASC";
  3732. if (timesort == 0)
  3733. sort = "ORDER BY LimitTime ASC";
  3734. else if (timesort == 1)
  3735. sort = "ORDER BY F_CreateTime DESC";
  3736. string strpageindex = RequestString.GetQueryString("page");
  3737. int pageindex = 1;
  3738. string strpagesize = RequestString.GetQueryString("pagesize");
  3739. int pagesize = 10;
  3740. #region 模块
  3741. switch (strtab)
  3742. {
  3743. case "0"://待处理工单
  3744. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  3745. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3746. //sql += " and F_WorkState in (4,5) ";
  3747. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3748. {
  3749. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3750. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1))";
  3751. }
  3752. break;
  3753. case "1"://已办理的工单
  3754. if (strstate.Trim() != "" && strstate != "undefined")
  3755. {
  3756. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3757. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3758. else
  3759. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3760. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3761. }
  3762. 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) ";
  3763. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3764. {
  3765. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3766. }
  3767. else
  3768. {
  3769. sql += ")";
  3770. }
  3771. break;
  3772. }
  3773. #endregion
  3774. #region 条件
  3775. if (strworkid.Trim() != "" && strworkid != "undefined")
  3776. {
  3777. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3778. }
  3779. if (strname.Trim() != "" && strname != "undefined")
  3780. {
  3781. sql += " and F_CusName like '%" + strname + "%' ";
  3782. }
  3783. if (strtel.Trim() != "" && strtel != "undefined")
  3784. {
  3785. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3786. }
  3787. if (strkey.Trim() != "" && strkey != "undefined")
  3788. {
  3789. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3790. }
  3791. #region 坐席&调度员
  3792. if (strusercode.Trim() != "" && strusercode != "undefined")
  3793. {//坐席
  3794. var usercode = strusercode.Trim().Split(',');
  3795. var newusercode = "";
  3796. foreach (var item in usercode)
  3797. {
  3798. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3799. newusercode += "'" + item + "',";
  3800. }
  3801. newusercode = newusercode.Trim(',');
  3802. if (newusercode.Trim() != "" && newusercode != "undefined")
  3803. {
  3804. sql += " and F_CreateUser in (" + newusercode + ") ";
  3805. }
  3806. }
  3807. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3808. {//调度员
  3809. var ddusercode = strddusercode.Trim().Split(',');
  3810. var newusercode = "";
  3811. foreach (var item in ddusercode)
  3812. {
  3813. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3814. newusercode += "'" + item + "',";
  3815. }
  3816. newusercode = newusercode.Trim(',');
  3817. if (newusercode.Trim() != "" && newusercode != "undefined")
  3818. {
  3819. sql += " and F_AssignUser in(" + newusercode + ") ";
  3820. }
  3821. }
  3822. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3823. //{
  3824. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3825. //}
  3826. #endregion
  3827. if (source != 0)
  3828. {
  3829. sql += " and F_InfoSource = '" + source + "' ";
  3830. }
  3831. if (keyid != 0)
  3832. {
  3833. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3834. }
  3835. if (type != 0)
  3836. {
  3837. sql += " and F_InfoType = '" + type + "' ";
  3838. }
  3839. if (bigtype != 0)
  3840. {
  3841. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3842. }
  3843. if (smalltype != 0)
  3844. {
  3845. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3846. }
  3847. if (sourcearea != 0)
  3848. {
  3849. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3850. }
  3851. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3852. {
  3853. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3854. }
  3855. if (strendtime.Trim() != "" && strendtime != "undefined")
  3856. {
  3857. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3858. }
  3859. if (deptid != 0)
  3860. {
  3861. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='"+deptid+"')";
  3862. }
  3863. if (strpageindex.Trim() != "")
  3864. {
  3865. pageindex = Convert.ToInt32(strpageindex);
  3866. }
  3867. if (strpagesize.Trim() != "")
  3868. {
  3869. pagesize = Convert.ToInt32(strpagesize);
  3870. }
  3871. #endregion
  3872. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3873. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3874. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3875. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  3876. if (isdc > 0)
  3877. {
  3878. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3879. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3880. if (msg == "")
  3881. {
  3882. return Success("导出成功");
  3883. }
  3884. else
  3885. {
  3886. return Error("导出失败");
  3887. }
  3888. }
  3889. int recordCount = 0;
  3890. dt = BLL.PagerBLL.GetListPager(
  3891. "T_Bus_WorkOrder WITH(NOLOCK)",
  3892. "F_WorkOrderId",
  3893. cols,
  3894. sql,
  3895. sort ,
  3896. pagesize,
  3897. pageindex,
  3898. true,
  3899. out recordCount);
  3900. #region 声音文件
  3901. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3902. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3903. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3904. dt.Columns.Add("OverState", typeof(string));//超时状态
  3905. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3906. dt.Columns.Add("GapTime", typeof(string));//时间差
  3907. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3908. dt.Columns.Add("PDState", typeof(string));//派单状态
  3909. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3910. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  3911. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3912. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3913. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3914. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3915. foreach (DataRow dr in dt.Rows)
  3916. {
  3917. //获取最新交办信息
  3918. string iszbdw = "0";
  3919. string ispd = "";
  3920. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3921. if (state > 1)
  3922. {
  3923. 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";
  3924. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3925. if (dtjb.Rows.Count > 0)
  3926. {
  3927. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3928. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3929. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3930. {
  3931. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3932. }
  3933. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3934. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3935. dr["LimitTime"] = lt;
  3936. #region
  3937. //if (state < 6 || state == 8)
  3938. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3939. {
  3940. if (!string.IsNullOrWhiteSpace(lt))
  3941. {
  3942. var ltime = DateTime.Parse(lt);
  3943. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3944. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3945. if (tss < 0) { tss = -tss; }
  3946. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3947. if (ltime > DateTime.Now)
  3948. {
  3949. if (configcs != null)
  3950. {
  3951. int cs = Int32.Parse(configcs.F_ParamValue);
  3952. if (ts.TotalHours > cs)
  3953. {
  3954. dr["OverState"] = 1;
  3955. }
  3956. else
  3957. {
  3958. dr["OverState"] = 2;
  3959. }
  3960. }
  3961. dr["GapTime"] = "剩余" + gshsj;
  3962. }
  3963. else
  3964. {
  3965. dr["OverState"] = 3;
  3966. dr["GapTime"] = "超时" + gshsj;
  3967. }
  3968. }
  3969. }
  3970. if (state == (int)EnumWorkState.finish)
  3971. {
  3972. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3973. var dttime = DateTime.Now;
  3974. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3975. if (!string.IsNullOrWhiteSpace(lt))
  3976. {
  3977. var ltime = DateTime.Parse(lt);
  3978. TimeSpan ts = ltime.Subtract(dttime);
  3979. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3980. if (tss < 0) { tss = -tss; }
  3981. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3982. if (ltime < dttime)
  3983. {
  3984. dr["OverState"] = 3;
  3985. dr["GapTime"] = "超时" + gshsj;
  3986. }
  3987. }
  3988. }
  3989. #endregion
  3990. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3991. dr["PDState"] = ispd;
  3992. }
  3993. }
  3994. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3995. {
  3996. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3997. }
  3998. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3999. {
  4000. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4001. }
  4002. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  4003. {
  4004. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  4005. dr["IsFiles"] = 1;
  4006. else
  4007. dr["IsFiles"] = 0;
  4008. }
  4009. else
  4010. {
  4011. dr["IsFiles"] = 0;
  4012. }
  4013. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4014. if (Int32.Parse(strtab) < 1)
  4015. {
  4016. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4017. #region 判断是否存在待督办
  4018. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4019. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4020. if (recount > 0 && butt != null)
  4021. btns.Remove(butt);
  4022. #endregion
  4023. }
  4024. else
  4025. {
  4026. btns.Add(ButtonGroup.query());
  4027. }
  4028. dr["Buttons"] = btns;
  4029. }
  4030. #endregion
  4031. var obj = new
  4032. {
  4033. state = "success",
  4034. message = "成功",
  4035. rows = dt,
  4036. total = recordCount
  4037. };
  4038. return Content(obj.ToJson());
  4039. }
  4040. /// <summary>
  4041. /// 获取三级单位处理列表
  4042. /// </summary>
  4043. /// <returns></returns>
  4044. [Authority]
  4045. public ActionResult GetSJDWDealList(int isdc = 0)
  4046. {
  4047. DataTable dt = new DataTable();
  4048. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4049. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4050. string sql = " and F_IsDelete=0";
  4051. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4052. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4053. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4054. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4055. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4056. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4057. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4058. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4059. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4060. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4061. int source = RequestString.GetInt("source", 0);
  4062. int keyid = RequestString.GetInt("keyid", 0);
  4063. int type = RequestString.GetInt("type", 0);
  4064. int bigtype = RequestString.GetInt("bigtype", 0);
  4065. int smalltype = RequestString.GetInt("smalltype", 0);
  4066. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4067. int deptid = RequestString.GetInt("deptid", 0);
  4068. int timesort = RequestString.GetInt("timesort", -1);
  4069. string sort = "ORDER BY F_CreateTime ASC";
  4070. if (timesort == 0)
  4071. sort = "ORDER BY LimitTime ASC";
  4072. else if (timesort == 1)
  4073. sort = "ORDER BY F_CreateTime DESC";
  4074. string strpageindex = RequestString.GetQueryString("page");
  4075. int pageindex = 1;
  4076. string strpagesize = RequestString.GetQueryString("pagesize");
  4077. int pagesize = 10;
  4078. #region 模块
  4079. switch (strtab)
  4080. {
  4081. case "0"://待处理工单
  4082. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  4083. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4084. if (userModel.F_RoleCode == "EJWLDW")
  4085. {
  4086. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4087. }
  4088. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4089. {
  4090. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4091. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='"+ userModel.F_DeptId + "' and F_IsSure in (0,1)))";
  4092. if(userModel.F_RoleCode== "WLDW")
  4093. {
  4094. sql += " or (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4095. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + "))";
  4096. }
  4097. sql += ")";
  4098. }
  4099. break;
  4100. case "1"://已办理的工单
  4101. if (strstate.Trim() != "" && strstate != "undefined")
  4102. {
  4103. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4104. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4105. else
  4106. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4107. }
  4108. 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) ";
  4109. if (userModel.F_RoleCode == "EJWLDW")
  4110. {
  4111. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4112. }
  4113. else if (userModel.F_RoleCode == "WLDW")
  4114. {
  4115. sql += " and( (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4116. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + ")) )";
  4117. }
  4118. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4119. {
  4120. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  4121. }
  4122. else
  4123. {
  4124. sql += ")";
  4125. }
  4126. break;
  4127. }
  4128. #endregion
  4129. #region 条件
  4130. if (strworkid.Trim() != "" && strworkid != "undefined")
  4131. {
  4132. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4133. }
  4134. if (strname.Trim() != "" && strname != "undefined")
  4135. {
  4136. sql += " and F_CusName like '%" + strname + "%' ";
  4137. }
  4138. if (strtel.Trim() != "" && strtel != "undefined")
  4139. {
  4140. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4141. }
  4142. if (strkey.Trim() != "" && strkey != "undefined")
  4143. {
  4144. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4145. }
  4146. #region 坐席&调度员
  4147. if (strusercode.Trim() != "" && strusercode != "undefined")
  4148. {//坐席
  4149. var usercode = strusercode.Trim().Split(',');
  4150. var newusercode = "";
  4151. foreach (var item in usercode)
  4152. {
  4153. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4154. newusercode += "'" + item + "',";
  4155. }
  4156. newusercode = newusercode.Trim(',');
  4157. if (newusercode.Trim() != "" && newusercode != "undefined")
  4158. {
  4159. sql += " and F_CreateUser in (" + newusercode + ") ";
  4160. }
  4161. }
  4162. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4163. {//调度员
  4164. var ddusercode = strddusercode.Trim().Split(',');
  4165. var newusercode = "";
  4166. foreach (var item in ddusercode)
  4167. {
  4168. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4169. newusercode += "'" + item + "',";
  4170. }
  4171. newusercode = newusercode.Trim(',');
  4172. if (newusercode.Trim() != "" && newusercode != "undefined")
  4173. {
  4174. sql += " and F_AssignUser in(" + newusercode + ") ";
  4175. }
  4176. }
  4177. #endregion
  4178. if (source != 0)
  4179. {
  4180. sql += " and F_InfoSource = '" + source + "' ";
  4181. }
  4182. if (keyid != 0)
  4183. {
  4184. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4185. }
  4186. if (type != 0)
  4187. {
  4188. sql += " and F_InfoType = '" + type + "' ";
  4189. }
  4190. if (bigtype != 0)
  4191. {
  4192. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4193. }
  4194. if (smalltype != 0)
  4195. {
  4196. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4197. }
  4198. if (sourcearea != 0)
  4199. {
  4200. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4201. }
  4202. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4203. {
  4204. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4205. }
  4206. if (strendtime.Trim() != "" && strendtime != "undefined")
  4207. {
  4208. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4209. }
  4210. if (deptid != 0)
  4211. {
  4212. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4213. }
  4214. if (strpageindex.Trim() != "")
  4215. {
  4216. pageindex = Convert.ToInt32(strpageindex);
  4217. }
  4218. if (strpagesize.Trim() != "")
  4219. {
  4220. pagesize = Convert.ToInt32(strpagesize);
  4221. }
  4222. #endregion
  4223. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4224. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  4225. if (isdc > 0)
  4226. {
  4227. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4228. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4229. if (msg == "")
  4230. {
  4231. return Success("导出成功");
  4232. }
  4233. else
  4234. {
  4235. return Error("导出失败");
  4236. }
  4237. }
  4238. int recordCount = 0;
  4239. dt = BLL.PagerBLL.GetListPager(
  4240. "T_Bus_WorkOrder WITH(NOLOCK)",
  4241. "F_WorkOrderId",
  4242. cols,
  4243. sql,
  4244. sort ,
  4245. pagesize,
  4246. pageindex,
  4247. true,
  4248. out recordCount);
  4249. #region 声音文件
  4250. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4251. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4252. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4253. dt.Columns.Add("OverState", typeof(string));//超时状态
  4254. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4255. dt.Columns.Add("GapTime", typeof(string));//时间差
  4256. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4257. dt.Columns.Add("PDState", typeof(string));//派单状态
  4258. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4259. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4260. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4261. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4262. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4263. foreach (DataRow dr in dt.Rows)
  4264. {
  4265. //获取最新交办信息
  4266. string iszbdw = "0";
  4267. string ispd = "";
  4268. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4269. if (state > 1)
  4270. {
  4271. 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";
  4272. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4273. if (dtjb.Rows.Count > 0)
  4274. {
  4275. if (dtjb.Rows[0]["F_MainDeptId"].ToString()==userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4276. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4277. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4278. {
  4279. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4280. }
  4281. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4282. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4283. dr["LimitTime"] = lt;
  4284. #region
  4285. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4286. {
  4287. if (!string.IsNullOrWhiteSpace(lt))
  4288. {
  4289. var ltime = DateTime.Parse(lt);
  4290. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4291. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4292. if (tss < 0) { tss = -tss; }
  4293. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4294. if (ltime > DateTime.Now)
  4295. {
  4296. if (configcs != null)
  4297. {
  4298. int cs = Int32.Parse(configcs.F_ParamValue);
  4299. if (ts.TotalHours > cs)
  4300. {
  4301. dr["OverState"] = 1;
  4302. }
  4303. else
  4304. {
  4305. dr["OverState"] = 2;
  4306. }
  4307. }
  4308. dr["GapTime"] = "剩余" + gshsj;
  4309. }
  4310. else
  4311. {
  4312. dr["OverState"] = 3;
  4313. dr["GapTime"] = "超时" + gshsj;
  4314. }
  4315. }
  4316. }
  4317. if (state == (int)EnumWorkState.finish)
  4318. {
  4319. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4320. var dttime = DateTime.Now;
  4321. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4322. if (!string.IsNullOrWhiteSpace(lt))
  4323. {
  4324. var ltime = DateTime.Parse(lt);
  4325. TimeSpan ts = ltime.Subtract(dttime);
  4326. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4327. if (tss < 0) { tss = -tss; }
  4328. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4329. if (ltime < dttime)
  4330. {
  4331. dr["OverState"] = 3;
  4332. dr["GapTime"] = "超时" + gshsj;
  4333. }
  4334. }
  4335. }
  4336. #endregion
  4337. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4338. dr["PDState"] = ispd;
  4339. }
  4340. }
  4341. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4342. {
  4343. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4344. }
  4345. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4346. {
  4347. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4348. }
  4349. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4350. if (Int32.Parse(strtab) < 1)
  4351. {
  4352. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4353. #region 判断是否存在待督办
  4354. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4355. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4356. if (recount > 0 && butt != null)
  4357. btns.Remove(butt);
  4358. #endregion
  4359. }
  4360. else
  4361. {
  4362. btns.Add(ButtonGroup.query());
  4363. }
  4364. dr["Buttons"] = btns;
  4365. }
  4366. #endregion
  4367. var obj = new
  4368. {
  4369. state = "success",
  4370. message = "成功",
  4371. rows = dt,
  4372. total = recordCount
  4373. };
  4374. return Content(obj.ToJson());
  4375. }
  4376. /// <summary>
  4377. /// 获取自己提交工单
  4378. /// </summary>
  4379. /// <param name="isdc"></param>
  4380. /// <returns></returns>
  4381. [Authority]
  4382. public ActionResult GetSelfList(int isdc = 0)
  4383. {
  4384. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4385. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4386. DataTable dt = new DataTable();
  4387. string sql = " and F_IsDelete=0 ";
  4388. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4389. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4390. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4391. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4392. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4393. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4394. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4395. int source = RequestString.GetInt("source", 0);
  4396. int keyid = RequestString.GetInt("keyid", 0);
  4397. int type = RequestString.GetInt("type", 0);
  4398. int bigtype = RequestString.GetInt("bigtype", 0);
  4399. int smalltype = RequestString.GetInt("smalltype", 0);
  4400. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4401. int deptid = RequestString.GetInt("deptid", 0);
  4402. int dealtype = RequestString.GetInt("dealtype", -1);
  4403. int issend = RequestString.GetInt("issend", -1);
  4404. int deptlevel = RequestString.GetInt("deptlevel", 0);
  4405. int timesort = RequestString.GetInt("timesort", -1);
  4406. string sort = "ORDER BY F_CreateTime ASC";
  4407. if (timesort == 0)
  4408. sort = "ORDER BY LimitTime ASC";
  4409. else if (timesort == 1)
  4410. sort = "ORDER BY F_CreateTime DESC";
  4411. string strpageindex = RequestString.GetQueryString("page");
  4412. int pageindex = 1;
  4413. string strpagesize = RequestString.GetQueryString("pagesize");
  4414. int pagesize = 10;
  4415. #region sql 语句相关处理
  4416. if(userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4417. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  4418. if (strstate.Trim() != "" && strstate != "undefined")
  4419. {
  4420. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4421. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4422. else
  4423. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4424. }
  4425. if (strworkid.Trim() != "" && strworkid != "undefined")
  4426. {
  4427. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4428. }
  4429. if (strname.Trim() != "" && strname != "undefined")
  4430. {
  4431. sql += " and F_CusName like '%" + strname + "%' ";
  4432. }
  4433. if (strtel.Trim() != "" && strtel != "undefined")
  4434. {
  4435. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4436. }
  4437. if (strkey.Trim() != "" && strkey != "undefined")
  4438. {
  4439. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4440. }
  4441. if (source != 0)
  4442. {
  4443. sql += " and F_InfoSource = '" + source + "' ";
  4444. }
  4445. if (keyid != 0)
  4446. {
  4447. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4448. }
  4449. if (type != 0)
  4450. {
  4451. sql += " and F_InfoType = '" + type + "' ";
  4452. }
  4453. if (bigtype != 0)
  4454. {
  4455. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4456. }
  4457. if (smalltype != 0)
  4458. {
  4459. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4460. }
  4461. if (sourcearea != 0)
  4462. {
  4463. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4464. }
  4465. if (deptid != 0)
  4466. {
  4467. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4468. }
  4469. if (dealtype != -1)
  4470. {
  4471. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  4472. }
  4473. if (issend != -1)
  4474. {
  4475. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  4476. }
  4477. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4478. {
  4479. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4480. }
  4481. if (strendtime.Trim() != "" && strendtime != "undefined")
  4482. {
  4483. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4484. }
  4485. #endregion
  4486. if (strpageindex.Trim() != "")
  4487. {
  4488. pageindex = Convert.ToInt32(strpageindex);
  4489. }
  4490. if (strpagesize.Trim() != "")
  4491. {
  4492. pagesize = Convert.ToInt32(strpagesize);
  4493. }
  4494. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  4495. #region 导出
  4496. if (isdc > 0)
  4497. {
  4498. var top = " "; var orderby = " order by F_CreateTime";
  4499. if (sql == " and F_IsDelete=0 ")
  4500. {
  4501. top = " top 1000 "; orderby += " desc ";
  4502. }
  4503. //20190715调整导出字段 zhengbingbing
  4504. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4505. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4506. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  4507. + " (select top 1 F_Situation 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_CreateTime) 办理结果,"
  4508. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 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) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  4509. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  4510. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  4511. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4512. if (msg == "")
  4513. {
  4514. return Success("导出成功");
  4515. }
  4516. else
  4517. {
  4518. return Error("导出失败");
  4519. }
  4520. }
  4521. #endregion
  4522. int recordCount = 0;
  4523. dt = BLL.PagerBLL.GetListPager(
  4524. "T_Bus_WorkOrder WITH(NOLOCK)",
  4525. "F_WorkOrderId",
  4526. cols,
  4527. sql,
  4528. sort ,
  4529. pagesize,
  4530. pageindex,
  4531. true,
  4532. out recordCount);
  4533. #region 声音文件和交办超时
  4534. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4535. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4536. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4537. dt.Columns.Add("OverState", typeof(string));//超时状态
  4538. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4539. dt.Columns.Add("GapTime", typeof(string));//时间差
  4540. dt.Columns.Add("PDState", typeof(string));//派单状态
  4541. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4542. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4543. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4544. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4545. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4546. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4547. foreach (DataRow dr in dt.Rows)
  4548. {
  4549. string iszbdw = "0";
  4550. string ispd = "";
  4551. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4552. if (state > 1)
  4553. {
  4554. //获取最新交办信息
  4555. 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";
  4556. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4557. if (dtjb.Rows.Count > 0)
  4558. {
  4559. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4560. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4561. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  4562. {
  4563. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  4564. }
  4565. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4566. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4567. dr["LimitTime"] = lt;
  4568. #region 超时时限
  4569. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4570. {
  4571. if (!string.IsNullOrWhiteSpace(lt))
  4572. {
  4573. var ltime = DateTime.Parse(lt);
  4574. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4575. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4576. if (tss < 0) { tss = -tss; }
  4577. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4578. if (ltime > DateTime.Now)
  4579. {
  4580. if (configcs != null)
  4581. {
  4582. int cs = Int32.Parse(configcs.F_ParamValue);
  4583. if (ts.TotalHours > cs)
  4584. {
  4585. dr["OverState"] = 1;
  4586. }
  4587. else
  4588. {
  4589. dr["OverState"] = 2;
  4590. }
  4591. }
  4592. dr["GapTime"] = "剩余" + gshsj;
  4593. }
  4594. else
  4595. {
  4596. dr["OverState"] = 3;
  4597. dr["GapTime"] = "超时" + gshsj;
  4598. }
  4599. }
  4600. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4601. dr["PDState"] = ispd;
  4602. }
  4603. if (state == (int)EnumWorkState.finish)
  4604. {
  4605. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4606. var dttime = DateTime.Now;
  4607. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4608. if (!string.IsNullOrWhiteSpace(lt))
  4609. {
  4610. var ltime = DateTime.Parse(lt);
  4611. TimeSpan ts = ltime.Subtract(dttime);
  4612. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4613. if (tss < 0) { tss = -tss; }
  4614. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4615. if (ltime < dttime)
  4616. {
  4617. dr["OverState"] = 3;
  4618. dr["GapTime"] = "超时" + gshsj;
  4619. }
  4620. }
  4621. }
  4622. #endregion
  4623. }
  4624. }
  4625. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4626. {
  4627. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4628. }
  4629. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4630. {
  4631. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4632. }
  4633. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4634. #region 判断是否存在待督办
  4635. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  4636. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  4637. if (recount > 0 && butt != null)
  4638. buttons.Remove(butt);
  4639. #endregion
  4640. dr["Buttons"] = buttons;
  4641. }
  4642. #endregion
  4643. var obj = new
  4644. {
  4645. state = "success",
  4646. message = "成功",
  4647. rows = dt,
  4648. total = recordCount
  4649. };
  4650. return Content(obj.ToJson());
  4651. }
  4652. /// <summary>
  4653. /// 获取逾期未回复工单列表
  4654. /// </summary>
  4655. /// <returns></returns>
  4656. [Authority]
  4657. public ActionResult GetTimeOutList(int isdc = 0)
  4658. {
  4659. DataTable dt = new DataTable();
  4660. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4661. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4662. string sql = " and F_IsDelete=0";
  4663. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4664. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4665. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4666. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4667. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4668. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4669. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4670. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4671. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4672. int source = RequestString.GetInt("source", 0);
  4673. int keyid = RequestString.GetInt("keyid", 0);
  4674. int type = RequestString.GetInt("type", 0);
  4675. int bigtype = RequestString.GetInt("bigtype", 0);
  4676. int smalltype = RequestString.GetInt("smalltype", 0);
  4677. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4678. int deptid = RequestString.GetInt("deptid", 0);
  4679. int timesort = RequestString.GetInt("timesort", -1);
  4680. string sort = "ORDER BY F_CreateTime ASC";
  4681. if (timesort == 0)
  4682. sort = "ORDER BY LimitTime ASC";
  4683. else if (timesort == 1)
  4684. sort = "ORDER BY F_CreateTime DESC";
  4685. string strpageindex = RequestString.GetQueryString("page");
  4686. int pageindex = 1;
  4687. string strpagesize = RequestString.GetQueryString("pagesize");
  4688. int pagesize = 10;
  4689. if (userModel.F_RoleCode == "ZXHWY")
  4690. {
  4691. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4692. }
  4693. else
  4694. {
  4695. #region 坐席&调度员
  4696. if (strusercode.Trim() != "" && strusercode != "undefined")
  4697. {//坐席
  4698. var usercode = strusercode.Trim().Split(',');
  4699. var newusercode = "";
  4700. foreach (var item in usercode)
  4701. {
  4702. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4703. newusercode += "'" + item + "',";
  4704. }
  4705. newusercode = newusercode.Trim(',');
  4706. if (newusercode.Trim() != "" && newusercode != "undefined")
  4707. {
  4708. sql += " and F_CreateUser in (" + newusercode + ") ";
  4709. }
  4710. }
  4711. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4712. {//调度员
  4713. var ddusercode = strddusercode.Trim().Split(',');
  4714. var newusercode = "";
  4715. foreach (var item in ddusercode)
  4716. {
  4717. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4718. newusercode += "'" + item + "',";
  4719. }
  4720. newusercode = newusercode.Trim(',');
  4721. if (newusercode.Trim() != "" && newusercode != "undefined")
  4722. {
  4723. sql += " and F_AssignUser in(" + newusercode + ") ";
  4724. }
  4725. }
  4726. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4727. //{
  4728. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4729. //}
  4730. #endregion
  4731. }
  4732. string sqlwhere = "";string sqlwhere1 = "";
  4733. 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) ";
  4734. if (userModel.F_RoleCode == "WLDW")
  4735. {
  4736. sqlwhere += " and F_MainDeptId = '" + userModel.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  4737. + " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + userModel.F_DeptId + "' ";
  4738. sqlwhere1 += " and F_MainDeptId = '" + userModel.F_DeptId + "'";
  4739. }
  4740. else if (deptid != 0)
  4741. {
  4742. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4743. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4744. }
  4745. if (userModel.F_RoleCode == "ZXLD")
  4746. {
  4747. sqlwhere += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4748. sqlwhere1 += " and F_CreateUser = '" + userModel.F_UserCode + "'";
  4749. }
  4750. sqlwhere += "))";
  4751. if (strstate.Trim() != "" && strstate != "undefined")
  4752. {
  4753. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  4754. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4755. else
  4756. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4757. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  4758. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  4759. else
  4760. sql += sqlwhere;
  4761. }
  4762. else
  4763. {
  4764. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4765. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4766. sql += sqlwhere;
  4767. //sql += " and F_WorkState in (2,4,8)";
  4768. }
  4769. if (strworkid.Trim() != "" && strworkid != "undefined")
  4770. {
  4771. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  4772. }
  4773. if (strname.Trim() != "" && strname != "undefined")
  4774. {
  4775. sql += " and F_CusName like '%" + strname + "%' ";
  4776. }
  4777. if (strtel.Trim() != "" && strtel != "undefined")
  4778. {
  4779. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4780. }
  4781. if (strkey.Trim() != "" && strkey != "undefined")
  4782. {
  4783. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4784. }
  4785. if (source != 0)
  4786. {
  4787. sql += " and F_InfoSource = '" + source + "' ";
  4788. }
  4789. if (keyid != 0)
  4790. {
  4791. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4792. }
  4793. if (type != 0)
  4794. {
  4795. sql += " and F_InfoType = '" + type + "' ";
  4796. }
  4797. if (bigtype != 0)
  4798. {
  4799. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4800. }
  4801. if (smalltype != 0)
  4802. {
  4803. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4804. }
  4805. if (sourcearea != 0)
  4806. {
  4807. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4808. }
  4809. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4810. {
  4811. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4812. }
  4813. if (strendtime.Trim() != "" && strendtime != "undefined")
  4814. {
  4815. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4816. }
  4817. if (strpageindex.Trim() != "")
  4818. {
  4819. pageindex = Convert.ToInt32(strpageindex);
  4820. }
  4821. if (strpagesize.Trim() != "")
  4822. {
  4823. pagesize = Convert.ToInt32(strpagesize);
  4824. }
  4825. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  4826. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  4827. if (isdc > 0)
  4828. {
  4829. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4830. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4831. if (msg == "")
  4832. {
  4833. return Success("导出成功");
  4834. }
  4835. else
  4836. {
  4837. return Error("导出失败");
  4838. }
  4839. }
  4840. int recordCount = 0;
  4841. dt = BLL.PagerBLL.GetListPager(
  4842. "T_Bus_WorkOrder WITH(NOLOCK)",
  4843. "F_WorkOrderId",
  4844. cols,
  4845. sql,
  4846. sort ,
  4847. pagesize,
  4848. pageindex,
  4849. true,
  4850. out recordCount);
  4851. #region 声音文件
  4852. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4853. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4854. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4855. dt.Columns.Add("OverState", typeof(string));//超时状态
  4856. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4857. dt.Columns.Add("GapTime", typeof(string));//时间差
  4858. dt.Columns.Add("FilePath", typeof(string));
  4859. dt.Columns.Add("Buttons", typeof(object));
  4860. dt.Columns.Add("IsFiles", typeof(object));
  4861. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4862. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4863. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4864. foreach (DataRow dr in dt.Rows)
  4865. {
  4866. //获取最新交办信息
  4867. string iszbdw = "0";
  4868. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4869. if (state > 1)
  4870. {
  4871. 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";
  4872. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4873. if (dtjb.Rows.Count > 0)
  4874. {
  4875. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4876. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4877. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4878. {
  4879. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4880. }
  4881. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4882. #region 时限
  4883. //if (state < 6 || state == 8)
  4884. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4885. {
  4886. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4887. dr["LimitTime"] = lt;
  4888. if (!string.IsNullOrWhiteSpace(lt))
  4889. {
  4890. var ltime = DateTime.Parse(lt);
  4891. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4892. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4893. if (tss < 0) { tss = -tss; }
  4894. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4895. if (ltime > DateTime.Now)
  4896. {
  4897. if (configcs != null)
  4898. {
  4899. int cs = Int32.Parse(configcs.F_ParamValue);
  4900. if (ts.TotalHours > cs)
  4901. {
  4902. dr["OverState"] = 1;
  4903. }
  4904. else
  4905. {
  4906. dr["OverState"] = 2;
  4907. }
  4908. }
  4909. dr["GapTime"] = "剩余" + gshsj;
  4910. }
  4911. else
  4912. {
  4913. dr["OverState"] = 3;
  4914. dr["GapTime"] = "超时" + gshsj;
  4915. }
  4916. }
  4917. }
  4918. if (state == (int)EnumWorkState.finish)
  4919. {
  4920. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4921. var dttime = DateTime.Now;
  4922. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4923. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4924. dr["LimitTime"] = lt;
  4925. if (!string.IsNullOrWhiteSpace(lt))
  4926. {
  4927. var ltime = DateTime.Parse(lt);
  4928. TimeSpan ts = ltime.Subtract(dttime);
  4929. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4930. if (tss < 0) { tss = -tss; }
  4931. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4932. if (ltime < dttime)
  4933. {
  4934. dr["OverState"] = 3;
  4935. dr["GapTime"] = "超时" + gshsj;
  4936. }
  4937. }
  4938. }
  4939. #endregion
  4940. }
  4941. }
  4942. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4943. {
  4944. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4945. }
  4946. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4947. {
  4948. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4949. }
  4950. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  4951. {
  4952. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  4953. dr["IsFiles"] = 1;
  4954. else
  4955. dr["IsFiles"] = 0;
  4956. }
  4957. else
  4958. {
  4959. dr["IsFiles"] = 0;
  4960. }
  4961. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4962. btns.Add(ButtonGroup.query());
  4963. dr["Buttons"] = btns;
  4964. }
  4965. #endregion
  4966. var obj = new
  4967. {
  4968. state = "success",
  4969. message = "成功",
  4970. rows = dt,
  4971. total = recordCount
  4972. };
  4973. return Content(obj.ToJson());
  4974. }
  4975. /// <summary>
  4976. /// 获取媒体工单列表
  4977. /// </summary>
  4978. /// <returns></returns>
  4979. [Authority]
  4980. public ActionResult GetMediaList(int isdc = 0)
  4981. {
  4982. DataTable dt = new DataTable();
  4983. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4984. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4985. string sql = " and F_IsDelete=0";
  4986. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4987. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4988. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4989. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4990. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4991. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4992. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4993. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4994. int source = RequestString.GetInt("source", 0);
  4995. int keyid = RequestString.GetInt("keyid", 0);
  4996. int type = RequestString.GetInt("type", 0);
  4997. int bigtype = RequestString.GetInt("bigtype", 0);
  4998. int smalltype = RequestString.GetInt("smalltype", 0);
  4999. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5000. int deptid = RequestString.GetInt("deptid", 0);
  5001. int timesort = RequestString.GetInt("timesort", -1);
  5002. string sort = "ORDER BY F_CreateTime ASC";
  5003. if (timesort == 0)
  5004. sort = "ORDER BY LimitTime ASC";
  5005. else if (timesort == 1)
  5006. sort = "ORDER BY F_CreateTime DESC";
  5007. string strpageindex = RequestString.GetQueryString("page");
  5008. int pageindex = 1;
  5009. string strpagesize = RequestString.GetQueryString("pagesize");
  5010. int pagesize = 10;
  5011. sql += " and isnull(F_IsRelease,0) =1 ";
  5012. if (strworkid.Trim() != "" && strworkid != "undefined")
  5013. {
  5014. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5015. }
  5016. if (strname.Trim() != "" && strname != "undefined")
  5017. {
  5018. sql += " and F_CusName like '%" + strname + "%' ";
  5019. }
  5020. if (strtel.Trim() != "" && strtel != "undefined")
  5021. {
  5022. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5023. }
  5024. if (strkey.Trim() != "" && strkey != "undefined")
  5025. {
  5026. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5027. }
  5028. #region 坐席&调度员
  5029. if (strusercode.Trim() != "" && strusercode != "undefined")
  5030. {//坐席
  5031. var usercode = strusercode.Trim().Split(',');
  5032. var newusercode = "";
  5033. foreach (var item in usercode)
  5034. {
  5035. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5036. newusercode += "'" + item + "',";
  5037. }
  5038. newusercode = newusercode.Trim(',');
  5039. if (newusercode.Trim() != "" && newusercode != "undefined")
  5040. {
  5041. sql += " and F_CreateUser in (" + newusercode + ") ";
  5042. }
  5043. }
  5044. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5045. {//调度员
  5046. var ddusercode = strddusercode.Trim().Split(',');
  5047. var newusercode = "";
  5048. foreach (var item in ddusercode)
  5049. {
  5050. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5051. newusercode += "'" + item + "',";
  5052. }
  5053. newusercode = newusercode.Trim(',');
  5054. if (newusercode.Trim() != "" && newusercode != "undefined")
  5055. {
  5056. sql += " and F_AssignUser in(" + newusercode + ") ";
  5057. }
  5058. }
  5059. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5060. //{
  5061. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5062. //}
  5063. #endregion
  5064. if (source != 0)
  5065. {
  5066. sql += " and F_InfoSource = '" + source + "' ";
  5067. }
  5068. if (keyid != 0)
  5069. {
  5070. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5071. }
  5072. if (type != 0)
  5073. {
  5074. sql += " and F_InfoType = '" + type + "' ";
  5075. }
  5076. if (bigtype != 0)
  5077. {
  5078. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5079. }
  5080. if (smalltype != 0)
  5081. {
  5082. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5083. }
  5084. if (sourcearea != 0)
  5085. {
  5086. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5087. }
  5088. if (deptid != 0)
  5089. {
  5090. 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 ";
  5091. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5092. }
  5093. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5094. {
  5095. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5096. }
  5097. if (strendtime.Trim() != "" && strendtime != "undefined")
  5098. {
  5099. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5100. }
  5101. if (strpageindex.Trim() != "")
  5102. {
  5103. pageindex = Convert.ToInt32(strpageindex);
  5104. }
  5105. if (strpagesize.Trim() != "")
  5106. {
  5107. pagesize = Convert.ToInt32(strpagesize);
  5108. }
  5109. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5110. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5111. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  5112. if (isdc > 0)
  5113. {
  5114. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5115. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5116. if (msg == "")
  5117. {
  5118. return Success("导出成功");
  5119. }
  5120. else
  5121. {
  5122. return Error("导出失败");
  5123. }
  5124. }
  5125. int recordCount = 0;
  5126. dt = BLL.PagerBLL.GetListPager(
  5127. "T_Bus_WorkOrder WITH(NOLOCK)",
  5128. "F_WorkOrderId",
  5129. cols,
  5130. sql,
  5131. sort ,
  5132. pagesize,
  5133. pageindex,
  5134. true,
  5135. out recordCount);
  5136. #region 声音文件
  5137. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5138. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5139. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5140. dt.Columns.Add("IsReturnMedia", typeof(string));
  5141. dt.Columns.Add("Buttons", typeof(object));
  5142. int IsReturnMedia = 0;
  5143. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5144. {
  5145. IsReturnMedia = 1;
  5146. }
  5147. foreach (DataRow dr in dt.Rows)
  5148. {
  5149. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5150. if (state > 1)
  5151. {
  5152. //获取最新交办信息
  5153. 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";
  5154. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5155. if (dtjb.Rows.Count > 0)
  5156. {
  5157. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5158. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5159. {
  5160. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5161. }
  5162. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5163. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5164. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5165. //if (deptinfo != null)
  5166. //{
  5167. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5168. //}
  5169. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5170. //{
  5171. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5172. // string dns = string.Empty;
  5173. // foreach (string strid in strids)
  5174. // {
  5175. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5176. // if (dinfo != null)
  5177. // {
  5178. // if (string.IsNullOrEmpty(dns))
  5179. // {
  5180. // dns = dinfo.F_DeptName;//交办单位
  5181. // }
  5182. // else
  5183. // {
  5184. // dns += "," + dinfo.F_DeptName;//交办单位
  5185. // }
  5186. // }
  5187. // }
  5188. // dr["OtherDeptName"] = dns;
  5189. //}
  5190. }
  5191. }
  5192. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5193. btns.Add(ButtonGroup.query());
  5194. dr["Buttons"] = btns;
  5195. dr["IsReturnMedia"] = IsReturnMedia;
  5196. }
  5197. #endregion
  5198. var obj = new
  5199. {
  5200. state = "success",
  5201. message = "成功",
  5202. rows = dt,
  5203. total = recordCount
  5204. };
  5205. return Content(obj.ToJson());
  5206. }
  5207. ///// <summary>
  5208. ///// 获取通报工单列表
  5209. ///// </summary>
  5210. ///// <returns></returns>
  5211. //[Authority]
  5212. //public ActionResult GetNoticeList(int isdc = 0)
  5213. //{
  5214. // DataTable dt = new DataTable();
  5215. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5216. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5217. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  5218. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5219. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5220. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5221. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5222. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5223. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5224. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5225. // int source = RequestString.GetInt("source", 0);
  5226. // int keyid = RequestString.GetInt("keyid", 0);
  5227. // int type = RequestString.GetInt("type", 0);
  5228. // int bigtype = RequestString.GetInt("bigtype", 0);
  5229. // int smalltype = RequestString.GetInt("smalltype", 0);
  5230. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  5231. // int deptid = RequestString.GetInt("deptid", 0);
  5232. // string strpageindex = RequestString.GetQueryString("page");
  5233. // int pageindex = 1;
  5234. // string strpagesize = RequestString.GetQueryString("pagesize");
  5235. // int pagesize = 10;
  5236. // if (strworkid.Trim() != "" && strworkid != "undefined")
  5237. // {
  5238. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5239. // }
  5240. // if (strname.Trim() != "" && strname != "undefined")
  5241. // {
  5242. // sql += " and F_CusName like '%" + strname + "%' ";
  5243. // }
  5244. // if (strtel.Trim() != "" && strtel != "undefined")
  5245. // {
  5246. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5247. // }
  5248. // if (strkey.Trim() != "" && strkey != "undefined")
  5249. // {
  5250. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5251. // }
  5252. // if (strusercode.Trim() != "" && strusercode != "undefined")
  5253. // {
  5254. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5255. // }
  5256. // if (source != 0)
  5257. // {
  5258. // sql += " and F_InfoSource = '" + source + "' ";
  5259. // }
  5260. // if (keyid != 0)
  5261. // {
  5262. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5263. // }
  5264. // if (type != 0)
  5265. // {
  5266. // sql += " and F_InfoType = '" + type + "' ";
  5267. // }
  5268. // if (bigtype != 0)
  5269. // {
  5270. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5271. // }
  5272. // if (smalltype != 0)
  5273. // {
  5274. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5275. // }
  5276. // if (sourcearea != 0)
  5277. // {
  5278. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  5279. // }
  5280. // if (deptid != 0)
  5281. // {
  5282. // 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 ";
  5283. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5284. // }
  5285. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5286. // {
  5287. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5288. // }
  5289. // if (strendtime.Trim() != "" && strendtime != "undefined")
  5290. // {
  5291. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5292. // }
  5293. // if (strpageindex.Trim() != "")
  5294. // {
  5295. // pageindex = Convert.ToInt32(strpageindex);
  5296. // }
  5297. // if (strpagesize.Trim() != "")
  5298. // {
  5299. // pagesize = Convert.ToInt32(strpagesize);
  5300. // }
  5301. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5302. // if (isdc > 0)
  5303. // {
  5304. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  5305. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5306. // if (msg == "")
  5307. // {
  5308. // return Success("导出成功");
  5309. // }
  5310. // else
  5311. // {
  5312. // return Error("导出失败");
  5313. // }
  5314. // }
  5315. // int recordCount = 0;
  5316. // dt = BLL.PagerBLL.GetListPager(
  5317. // "T_Bus_WorkOrder",
  5318. // "F_WorkOrderId",
  5319. // cols,
  5320. // sql,
  5321. // "ORDER BY F_CreateTime DESC",
  5322. // pagesize,
  5323. // pageindex,
  5324. // true,
  5325. // out recordCount);
  5326. // #region 声音文件
  5327. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5328. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5329. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5330. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5331. // dt.Columns.Add("IsReturnNotice", typeof(string));
  5332. // dt.Columns.Add("FilePath", typeof(string));
  5333. // dt.Columns.Add("Buttons", typeof(object));
  5334. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5335. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5336. // int IsReturnNotice = 0;
  5337. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  5338. // {
  5339. // IsReturnNotice = 1;
  5340. // }
  5341. // foreach (DataRow dr in dt.Rows)
  5342. // {
  5343. // //获取最新交办信息
  5344. // //string iszbdw = "0";
  5345. // 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";
  5346. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5347. // if (dtjb.Rows.Count > 0)
  5348. // {
  5349. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  5350. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5351. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5352. // {
  5353. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5354. // }
  5355. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5356. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5357. // //if (deptinfo != null)
  5358. // //{
  5359. // // //if (did == userModel.F_DeptId) { iszbdw = "1"; }
  5360. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5361. // //}
  5362. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5363. // //{
  5364. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5365. // // string dns = string.Empty;
  5366. // // foreach (string strid in strids)
  5367. // // {
  5368. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5369. // // if (dinfo != null)
  5370. // // {
  5371. // // if (string.IsNullOrEmpty(dns))
  5372. // // {
  5373. // // dns = dinfo.F_DeptName;//交办单位
  5374. // // }
  5375. // // else
  5376. // // {
  5377. // // dns += "," + dinfo.F_DeptName;//交办单位
  5378. // // }
  5379. // // }
  5380. // // }
  5381. // // dr["OtherDeptName"] = dns;
  5382. // //}
  5383. // }
  5384. // //获取最新通报信息
  5385. // 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";
  5386. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5387. // if (dttb.Rows.Count > 0)
  5388. // {
  5389. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5390. // {
  5391. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5392. // }
  5393. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  5394. // }
  5395. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5396. // {
  5397. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5398. // }
  5399. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5400. // {
  5401. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5402. // }
  5403. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5404. // btns.Add(ButtonGroup.query());
  5405. // dr["Buttons"] = btns;
  5406. // dr["IsReturnNotice"] = IsReturnNotice;
  5407. // }
  5408. // #endregion
  5409. // var obj = new
  5410. // {
  5411. // state = "success",
  5412. // message = "成功",
  5413. // rows = dt,
  5414. // total = recordCount
  5415. // };
  5416. // return Content(obj.ToJson());
  5417. //}
  5418. /// <summary>
  5419. /// 获取通报工单列表
  5420. /// </summary>
  5421. /// <returns></returns>
  5422. [Authority]
  5423. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  5424. {
  5425. DataTable dt = new DataTable();
  5426. //int userId = 8000;
  5427. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5428. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5429. string sql = " and F_IsDelete=0 ";
  5430. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5431. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5432. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5433. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5434. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5435. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5436. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5437. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5438. int source = RequestString.GetInt("source", 0);
  5439. int keyid = RequestString.GetInt("keyid", 0);
  5440. int type = RequestString.GetInt("type", 0);
  5441. int bigtype = RequestString.GetInt("bigtype", 0);
  5442. int smalltype = RequestString.GetInt("smalltype", 0);
  5443. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5444. int deptid = RequestString.GetInt("deptid", 0);
  5445. int timesort = RequestString.GetInt("timesort", -1);
  5446. string sort = "ORDER BY F_CreateTime ASC";
  5447. if (timesort == 0)
  5448. sort = "ORDER BY LimitTime ASC";
  5449. else if (timesort == 1)
  5450. sort = "ORDER BY F_CreateTime DESC";
  5451. string strpageindex = RequestString.GetQueryString("page");
  5452. int pageindex = 1;
  5453. string strpagesize = RequestString.GetQueryString("pagesize");
  5454. int pagesize = 10;
  5455. if (strworkid.Trim() != "" && strworkid != "undefined")
  5456. {
  5457. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5458. }
  5459. if (strname.Trim() != "" && strname != "undefined")
  5460. {
  5461. sql += " and F_CusName like '%" + strname + "%' ";
  5462. }
  5463. if (strtel.Trim() != "" && strtel != "undefined")
  5464. {
  5465. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5466. }
  5467. if (strkey.Trim() != "" && strkey != "undefined")
  5468. {
  5469. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5470. }
  5471. #region 坐席&调度员
  5472. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  5473. {//坐席
  5474. var usercode = strusercode.Trim().Split(',');
  5475. var newusercode = "";
  5476. foreach (var item in usercode)
  5477. {
  5478. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5479. newusercode += "'" + item + "',";
  5480. }
  5481. newusercode = newusercode.Trim(',');
  5482. if (newusercode.Trim() != "" && newusercode != "undefined")
  5483. {
  5484. sql += " and F_CreateUser in (" + newusercode + ") ";
  5485. }
  5486. }*/
  5487. #region
  5488. if (usercode != null && usercode.Length > 0)
  5489. {
  5490. var newusercode = "";
  5491. //string codes = "";
  5492. for (int i = 0; i < usercode.Length; i++)
  5493. {
  5494. if (usercode[i] != "")
  5495. {
  5496. newusercode += "'" + usercode[i] + "',";
  5497. }
  5498. }
  5499. newusercode = newusercode.Trim(',');
  5500. if (newusercode.Trim() != "" && newusercode != "undefined")
  5501. {
  5502. sql += " and F_CreateUser in (" + newusercode + ") ";
  5503. }
  5504. }
  5505. if (ddusercode != null && ddusercode.Length > 0)
  5506. {
  5507. var newusercode = "";
  5508. //string codes = "";
  5509. for (int i = 0; i < ddusercode.Length; i++)
  5510. {
  5511. if (ddusercode[i] != "")
  5512. {
  5513. newusercode += "'" + ddusercode[i] + "',";
  5514. }
  5515. }
  5516. newusercode = newusercode.Trim(',');
  5517. if (newusercode.Trim() != "" && newusercode != "undefined")
  5518. {
  5519. sql += " and F_AssignUser in (" + newusercode + ") ";
  5520. }
  5521. }
  5522. #endregion
  5523. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5524. {//调度员
  5525. var ddusercode = strddusercode.Trim().Split(',');
  5526. var newusercode = "";
  5527. foreach (var item in ddusercode)
  5528. {
  5529. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5530. newusercode += "'" + item + "',";
  5531. }
  5532. newusercode = newusercode.Trim(',');
  5533. if (newusercode.Trim() != "" && newusercode != "undefined")
  5534. {
  5535. sql += " and F_AssignUser in(" + newusercode + ") ";
  5536. }
  5537. }*/
  5538. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5539. //{
  5540. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5541. //}
  5542. #endregion
  5543. if (source != 0)
  5544. {
  5545. sql += " and F_InfoSource = '" + source + "' ";
  5546. }
  5547. if (keyid != 0)
  5548. {
  5549. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5550. }
  5551. if (type != 0)
  5552. {
  5553. sql += " and F_InfoType = '" + type + "' ";
  5554. }
  5555. if (bigtype != 0)
  5556. {
  5557. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5558. }
  5559. if (smalltype != 0)
  5560. {
  5561. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5562. }
  5563. if (sourcearea != 0)
  5564. {
  5565. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5566. }
  5567. if (deptid != 0)
  5568. {
  5569. 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 ";
  5570. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5571. }
  5572. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5573. {
  5574. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5575. }
  5576. if (strendtime.Trim() != "" && strendtime != "undefined")
  5577. {
  5578. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5579. }
  5580. if (userModel.F_RoleCode == "WLDW")
  5581. {
  5582. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  5583. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5584. }
  5585. else
  5586. {
  5587. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5588. }
  5589. if (strpageindex.Trim() != "")
  5590. {
  5591. pageindex = Convert.ToInt32(strpageindex);
  5592. }
  5593. if (strpagesize.Trim() != "")
  5594. {
  5595. pagesize = Convert.ToInt32(strpagesize);
  5596. }
  5597. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5598. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  5599. if (isdc > 0)
  5600. {
  5601. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5602. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5603. if (msg == "")
  5604. {
  5605. return Success("导出成功");
  5606. }
  5607. else
  5608. {
  5609. return Error("导出失败");
  5610. }
  5611. }
  5612. int recordCount = 0;
  5613. dt = BLL.PagerBLL.GetListPager(
  5614. "T_Bus_WorkOrder WITH(NOLOCK)",
  5615. "F_WorkOrderId",
  5616. cols,
  5617. sql,
  5618. sort ,
  5619. pagesize,
  5620. pageindex,
  5621. true,
  5622. out recordCount);
  5623. #region 声音文件
  5624. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5625. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5626. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5627. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5628. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5629. dt.Columns.Add("IsReturnNotice", typeof(string));
  5630. dt.Columns.Add("FilePath", typeof(string));
  5631. dt.Columns.Add("Buttons", typeof(object));
  5632. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5633. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5634. int IsReturnNotice = 0;
  5635. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5636. {
  5637. IsReturnNotice = 1;
  5638. }
  5639. foreach (DataRow dr in dt.Rows)
  5640. {
  5641. //获取最新交办信息
  5642. //string iszbdw = "0";
  5643. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5644. if (state > 1)
  5645. {
  5646. 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";
  5647. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5648. if (dtjb.Rows.Count > 0)
  5649. {
  5650. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5651. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5652. {
  5653. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5654. }
  5655. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5656. }
  5657. }
  5658. //获取最新通报信息
  5659. 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";
  5660. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5661. if (dttb.Rows.Count > 0)
  5662. {
  5663. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5664. {
  5665. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5666. }
  5667. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5668. }
  5669. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5670. {
  5671. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5672. }
  5673. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5674. {
  5675. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5676. }
  5677. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5678. btns.Add(ButtonGroup.query());
  5679. dr["Buttons"] = btns;
  5680. dr["IsReturnNotice"] = IsReturnNotice;
  5681. }
  5682. #endregion
  5683. var obj = new
  5684. {
  5685. state = "success",
  5686. message = "成功",
  5687. rows = dt,
  5688. total = recordCount
  5689. };
  5690. return Content(obj.ToJson());
  5691. }
  5692. public ActionResult GetNoticeListOLD(int isdc = 0)
  5693. {
  5694. DataTable dt = new DataTable();
  5695. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5696. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5697. string sql = " and F_IsDelete=0 ";
  5698. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5699. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5700. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5701. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5702. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5703. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5704. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5705. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5706. int source = RequestString.GetInt("source", 0);
  5707. int keyid = RequestString.GetInt("keyid", 0);
  5708. int type = RequestString.GetInt("type", 0);
  5709. int bigtype = RequestString.GetInt("bigtype", 0);
  5710. int smalltype = RequestString.GetInt("smalltype", 0);
  5711. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5712. int deptid = RequestString.GetInt("deptid", 0);
  5713. int timesort = RequestString.GetInt("timesort", -1);
  5714. string sort = "ORDER BY F_CreateTime ASC";
  5715. if (timesort == 0)
  5716. sort = "ORDER BY LimitTime ASC";
  5717. else if (timesort == 1)
  5718. sort = "ORDER BY F_CreateTime DESC";
  5719. string strpageindex = RequestString.GetQueryString("page");
  5720. int pageindex = 1;
  5721. string strpagesize = RequestString.GetQueryString("pagesize");
  5722. int pagesize = 10;
  5723. if (strworkid.Trim() != "" && strworkid != "undefined")
  5724. {
  5725. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5726. }
  5727. if (strname.Trim() != "" && strname != "undefined")
  5728. {
  5729. sql += " and F_CusName like '%" + strname + "%' ";
  5730. }
  5731. if (strtel.Trim() != "" && strtel != "undefined")
  5732. {
  5733. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5734. }
  5735. if (strkey.Trim() != "" && strkey != "undefined")
  5736. {
  5737. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5738. }
  5739. #region 坐席&调度员
  5740. if (strusercode.Trim() != "" && strusercode != "undefined")
  5741. {//坐席
  5742. var usercode = strusercode.Trim().Split(',');
  5743. var newusercode = "";
  5744. foreach (var item in usercode)
  5745. {
  5746. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5747. newusercode += "'" + item + "',";
  5748. }
  5749. newusercode = newusercode.Trim(',');
  5750. if (newusercode.Trim() != "" && newusercode != "undefined")
  5751. {
  5752. sql += " and F_CreateUser in (" + newusercode + ") ";
  5753. }
  5754. }
  5755. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5756. {//调度员
  5757. var ddusercode = strddusercode.Trim().Split(',');
  5758. var newusercode = "";
  5759. foreach (var item in ddusercode)
  5760. {
  5761. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5762. newusercode += "'" + item + "',";
  5763. }
  5764. newusercode = newusercode.Trim(',');
  5765. if (newusercode.Trim() != "" && newusercode != "undefined")
  5766. {
  5767. sql += " and F_AssignUser in(" + newusercode + ") ";
  5768. }
  5769. }
  5770. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5771. //{
  5772. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5773. //}
  5774. #endregion
  5775. if (source != 0)
  5776. {
  5777. sql += " and F_InfoSource = '" + source + "' ";
  5778. }
  5779. if (keyid != 0)
  5780. {
  5781. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5782. }
  5783. if (type != 0)
  5784. {
  5785. sql += " and F_InfoType = '" + type + "' ";
  5786. }
  5787. if (bigtype != 0)
  5788. {
  5789. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5790. }
  5791. if (smalltype != 0)
  5792. {
  5793. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5794. }
  5795. if (sourcearea != 0)
  5796. {
  5797. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5798. }
  5799. if (deptid != 0)
  5800. {
  5801. 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 ";
  5802. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5803. }
  5804. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5805. {
  5806. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5807. }
  5808. if (strendtime.Trim() != "" && strendtime != "undefined")
  5809. {
  5810. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5811. }
  5812. if (userModel.F_RoleCode == "WLDW")
  5813. {
  5814. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  5815. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5816. }
  5817. else
  5818. {
  5819. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5820. }
  5821. if (strpageindex.Trim() != "")
  5822. {
  5823. pageindex = Convert.ToInt32(strpageindex);
  5824. }
  5825. if (strpagesize.Trim() != "")
  5826. {
  5827. pagesize = Convert.ToInt32(strpagesize);
  5828. }
  5829. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5830. string cols = "F_OldWorkOrderId,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_Files,F_WorkRemarks";
  5831. if (isdc > 0)
  5832. {
  5833. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5834. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5835. if (msg == "")
  5836. {
  5837. return Success("导出成功");
  5838. }
  5839. else
  5840. {
  5841. return Error("导出失败");
  5842. }
  5843. }
  5844. int recordCount = 0;
  5845. dt = BLL.PagerBLL.GetListPager(
  5846. "T_Bus_WorkOrder WITH(NOLOCK)",
  5847. "F_WorkOrderId",
  5848. cols,
  5849. sql,
  5850. sort ,
  5851. pagesize,
  5852. pageindex,
  5853. true,
  5854. out recordCount);
  5855. #region 声音文件
  5856. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5857. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5858. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5859. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5860. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5861. dt.Columns.Add("IsReturnNotice", typeof(string));
  5862. dt.Columns.Add("FilePath", typeof(string));
  5863. dt.Columns.Add("Buttons", typeof(object));
  5864. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5865. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5866. int IsReturnNotice = 0;
  5867. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5868. {
  5869. IsReturnNotice = 1;
  5870. }
  5871. foreach (DataRow dr in dt.Rows)
  5872. {
  5873. //获取最新交办信息
  5874. //string iszbdw = "0";
  5875. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5876. if (state > 1)
  5877. {
  5878. 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";
  5879. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5880. if (dtjb.Rows.Count > 0)
  5881. {
  5882. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5883. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5884. {
  5885. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5886. }
  5887. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5888. }
  5889. }
  5890. //获取最新通报信息
  5891. 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";
  5892. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5893. if (dttb.Rows.Count > 0)
  5894. {
  5895. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5896. {
  5897. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5898. }
  5899. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5900. }
  5901. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5902. {
  5903. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5904. }
  5905. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5906. {
  5907. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5908. }
  5909. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5910. btns.Add(ButtonGroup.query());
  5911. dr["Buttons"] = btns;
  5912. dr["IsReturnNotice"] = IsReturnNotice;
  5913. }
  5914. #endregion
  5915. var obj = new
  5916. {
  5917. state = "success",
  5918. message = "成功",
  5919. rows = dt,
  5920. total = recordCount
  5921. };
  5922. return Content(obj.ToJson());
  5923. }
  5924. public ActionResult GetWorkorderSimp()
  5925. {
  5926. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5927. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5928. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  5929. if (!string.IsNullOrEmpty(strworkorderid))
  5930. {
  5931. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  5932. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  5933. var dt = DbHelperSQL.Query(sql).Tables[0];
  5934. if (dt.Rows.Count > 0)
  5935. {
  5936. return Success("成功", dt);
  5937. }
  5938. return Error("获取失败");
  5939. }
  5940. return Error("参数错误");
  5941. }
  5942. /// <summary>
  5943. /// 获取工单信息
  5944. /// </summary>
  5945. /// <returns></returns>
  5946. [Authority]
  5947. public ActionResult GetWorkOrder()
  5948. {
  5949. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5950. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5951. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  5952. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  5953. if (!string.IsNullOrEmpty(strworkorderid))
  5954. {
  5955. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  5956. //+ "dbo.GetDictionaryName(F_InfoConBigType) as TypeName2,dbo.GetDictionaryName(F_InfoConSmallType) as TypeName3,"
  5957. //+ "dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName,dbo.GetDictionaryName(F_InfoSource) as SourceName ,"
  5958. + "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)"
  5959. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'"
  5960. ;
  5961. var dt = DbHelperSQL.Query(sql).Tables[0];
  5962. if (dt.Rows.Count > 0)
  5963. {
  5964. #region 结果汇总
  5965. //if (dt.Rows[0]["F_IsResult"] != null && dt.Rows[0]["F_IsResult"].ToString() == "0"){
  5966. // string result = "";
  5967. // string createtime = DateTime.Parse(dt.Rows[0]["F_CreateTime"].ToString()).ToString("yyyy年MM月dd日");
  5968. // string deptname = dt.Rows[0]["deptname"].ToString();
  5969. // string sourcename = dt.Rows[0]["SourceName"].ToString();
  5970. // string title = dt.Rows[0]["F_ComTitle"].ToString();
  5971. // string conresult= dt.Rows[0]["F_Result"].ToString();
  5972. // var blmodel = new BLL.T_Bus_Feedback().GetModelList("F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc").FirstOrDefault();
  5973. // if (blmodel != null)
  5974. // {
  5975. // string bljg = blmodel.F_IsProResult != null && blmodel.F_IsProResult == 1 ? "已办理" : "未办理";
  5976. // string hfcont = "";
  5977. // if (blmodel.F_IsProResult == 1)
  5978. // {
  5979. // hfcont = "";
  5980. // if (blmodel.F_IsProtect == 0)
  5981. // {
  5982. // string blmy = "未回访";
  5983. // switch (blmodel.F_IsSatisfied)
  5984. // {
  5985. // case 1:
  5986. // blmy = "满意";
  5987. // break;
  5988. // case 2:
  5989. // blmy = "基本满意";
  5990. // break;
  5991. // case 3:
  5992. // blmy = "不满意";
  5993. // break;
  5994. // }
  5995. // string connttime = "";
  5996. // if (blmodel.F_ConnectTime != null)
  5997. // connttime = "在" + blmodel.F_ConnectTime.Value.ToString("yyyy年MM月dd日HH时mm分");
  5998. // hfcont = " 回访:承办人 用" + blmodel.F_ConnectMode + connttime + "对反应人进行了回复,反应人对结果表示" + blmy + "。";
  5999. // }
  6000. // }
  6001. // else if (blmodel.F_IsProResult == 2)
  6002. // {
  6003. // hfcont = " 处理方案/进程:" + blmodel.F_ProSituation;
  6004. // }
  6005. // result = createtime + "," + deptname + "接到" + sourcename + "工单(编号:" + strworkorderid + ")反映" + title + ",经落实,具体情况回复如下:" + conresult + " 办理结果:" + bljg + " 承办人:" + blmodel.F_DealUser + " 职务:" + blmodel.F_Duties + " 联系电话:" + blmodel.F_DealUserContact + hfcont;
  6006. // dt.Rows[0]["F_Result"] = result;
  6007. // }
  6008. //}
  6009. #endregion
  6010. if (dt.Rows[0]["F_IsProtect"] != null && (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "EJWLDW"))
  6011. {
  6012. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  6013. if (isp == "1")
  6014. {
  6015. dt.Rows[0]["F_CusName"] = "";
  6016. dt.Rows[0]["F_CusPhone"] = "";
  6017. dt.Rows[0]["F_ConPhone"] = "";
  6018. }
  6019. }
  6020. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6021. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6022. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6023. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6024. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  6025. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6026. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6027. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6028. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6029. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6030. + "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";
  6031. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6032. + "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";
  6033. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6034. + "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";
  6035. 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 "
  6036. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6037. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  6038. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6039. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6040. + "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";
  6041. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6042. + "from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6043. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6044. + "from T_Bus_Feedback WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6045. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6046. + "from T_Bus_Feedback_Next WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6047. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6048. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6049. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6050. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6051. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6052. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6053. #region 声音文件
  6054. dt.Columns.Add("FilePath", typeof(string));
  6055. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  6056. {
  6057. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6058. }
  6059. else if (dt.Rows[0]["F_CallRecordId"] != null)
  6060. {
  6061. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  6062. }
  6063. #endregion
  6064. #region 附件
  6065. if (configfj != null)
  6066. {
  6067. dt = BindFileData(dt, configfj.F_ParamValue);
  6068. dt = BindFileDataFiles(dt, configfj.F_ParamValue);
  6069. }
  6070. #endregion
  6071. #region 监察信息
  6072. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  6073. if (configfj != null)
  6074. {
  6075. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  6076. }
  6077. #endregion
  6078. #region 批示信息
  6079. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  6080. if (configfj != null)
  6081. {
  6082. psdt = BindFileData(psdt, configfj.F_ParamValue);
  6083. }
  6084. #endregion
  6085. #region 指示信息
  6086. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  6087. if (configfj != null)
  6088. {
  6089. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  6090. }
  6091. #endregion
  6092. #region 回退信息
  6093. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  6094. #endregion
  6095. #region 督办信息
  6096. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  6097. if (configfj != null)
  6098. {
  6099. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  6100. }
  6101. #endregion
  6102. #region 交办信息
  6103. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  6104. if (configfj != null)
  6105. {
  6106. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  6107. }
  6108. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  6109. if (configfj != null)
  6110. {
  6111. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  6112. }
  6113. #endregion
  6114. #region 退回信息
  6115. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  6116. #endregion
  6117. #region 延时信息
  6118. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  6119. if (configfj != null)
  6120. {
  6121. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  6122. }
  6123. #endregion
  6124. #region 办理情况
  6125. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  6126. if (configfj != null)
  6127. {
  6128. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6129. }
  6130. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  6131. if (configfj != null)
  6132. {
  6133. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  6134. }
  6135. #endregion
  6136. #region 回访信息
  6137. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  6138. hfdt.Columns.Add("FilePath", typeof(string));
  6139. foreach (DataRow bldr in hfdt.Rows)
  6140. {
  6141. if (bldr["F_CallRecordId"] != null && config != null)
  6142. {
  6143. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6144. }
  6145. }
  6146. #endregion
  6147. #region 市民催单
  6148. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  6149. cbdt.Columns.Add("FilePath", typeof(string));
  6150. foreach (DataRow bldr in cbdt.Rows)
  6151. {
  6152. if (bldr["F_CallRecordId"] != null && config != null)
  6153. {
  6154. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6155. }
  6156. }
  6157. #endregion
  6158. #region 办理过程
  6159. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  6160. gcdt.Columns.Add("File", typeof(object));
  6161. gcdt.Columns.Add("FilePath", typeof(string));
  6162. gcdt.Columns.Add("czusername", typeof(string));
  6163. gcdt.Columns.Add("msginfos", typeof(string));
  6164. if (configfj != null || configly != null || config != null)
  6165. {
  6166. foreach (DataRow bldr in gcdt.Rows)
  6167. {
  6168. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  6169. {
  6170. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  6171. }
  6172. if (bldr["F_LeaveRecordId"] != null && configly != null)
  6173. {
  6174. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6175. }
  6176. else if (bldr["F_CallRecordId"] != null && config != null)
  6177. {
  6178. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6179. }
  6180. if (bldr["F_Message"] != null)
  6181. {
  6182. var F_Message = bldr["F_Message"].ToString().Split(')');
  6183. var a = F_Message.Count();
  6184. if (F_Message[0] != "" && bldr["F_Message"].ToString().Contains(')'))
  6185. {
  6186. string str = bldr["F_Message"].ToString().Substring(0, F_Message[0].Length + 1);
  6187. bldr["czusername"] = str;
  6188. bldr["msginfos"] = F_Message[1].ToString();
  6189. }
  6190. else {
  6191. bldr["czusername"] = "";
  6192. bldr["msginfos"] = F_Message[0].ToString();
  6193. }
  6194. }
  6195. }
  6196. }
  6197. #endregion
  6198. #region 操作按钮
  6199. var btns = new List<ButtonGroup.button>();
  6200. if (jbdt.Rows.Count > 0)
  6201. {
  6202. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  6203. string ispd = jbzx["F_IsNext"].ToString();
  6204. string iszbdw = "0";
  6205. string fmd = jbzx["F_MainDeptId"].ToString();
  6206. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  6207. if (fmd == userModel.F_DeptId.ToString())
  6208. { iszbdw = "1"; }
  6209. else if (fod != "" && fod.Split(',').Contains(userModel.F_DeptId.ToString()))
  6210. {
  6211. iszbdw = "2";
  6212. }
  6213. if (!(userModel.F_RoleCode == "WLDW" && iszbdw == "0"))
  6214. {
  6215. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  6216. }
  6217. }
  6218. else
  6219. {
  6220. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  6221. }
  6222. #region 判断是否存在待督办
  6223. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  6224. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6225. if (recount > 0)
  6226. {
  6227. if (butt != null)
  6228. btns.Remove(butt);
  6229. if(userModel.F_RoleCode == "DBZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6230. {
  6231. btns.Add(ButtonGroup.oversee());
  6232. btns.Add(ButtonGroup.turnnosee());
  6233. }
  6234. }
  6235. if (btns == null)
  6236. {
  6237. btns.Add(ButtonGroup.query());
  6238. }
  6239. else
  6240. {
  6241. if (btns.Count == 0)
  6242. btns.Add(ButtonGroup.query());
  6243. }
  6244. #endregion
  6245. #endregion
  6246. #region 其他权限
  6247. int issend = 0;
  6248. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6249. {
  6250. if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  6251. {
  6252. issend = 1;
  6253. }
  6254. }
  6255. int isnotice = 0;
  6256. if (dt.Rows[0]["F_IsNotice"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6257. {
  6258. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  6259. {
  6260. isnotice = 1;
  6261. }
  6262. }
  6263. int isedit = 0;
  6264. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6265. {
  6266. isedit = 1;
  6267. }
  6268. #endregion
  6269. #region 获取所有工单部门名称
  6270. var olderworkerid = dt.Rows[0]["F_OldWorkOrderId"].ToString();
  6271. string alldeptname = "";
  6272. if (olderworkerid != "")
  6273. {
  6274. //var olderallworker = dt.Select(" F_OldWorkOrderId='" + olderworkerid + "'");
  6275. string sqlallwo = "select *,b.F_DeptName from T_Bus_WorkOrder a left join T_Sys_Department b on a.F_MainDeptId=b.F_DeptId where F_IsDelete=0 and F_OldWorkOrderId='" + olderworkerid + "'";
  6276. var aaa = DbHelperSQL.Query(sqlallwo).Tables[0];
  6277. var bbb = aaa.Rows;
  6278. foreach (DataRow oldtrs in aaa.Rows)
  6279. {
  6280. alldeptname += oldtrs["F_DeptName"].ToString();
  6281. alldeptname += ",";
  6282. }
  6283. }
  6284. //else
  6285. //{
  6286. // alldeptname = dt.Rows[0]["DeptName"].ToString();
  6287. //}
  6288. #endregion
  6289. var obj = new
  6290. {
  6291. data = dt,
  6292. jcdata = jcdt,
  6293. psdata = psdt,
  6294. zsdata = zsdt,
  6295. htdata = htdt,
  6296. dbdata = dbdt,
  6297. jbdata = jbdt,
  6298. ejjbdata = ejjbdt,
  6299. thdata = thdt,
  6300. ysdata = ysdt,
  6301. bldata = bldt,
  6302. ejbldata = ejbldt,
  6303. hfdata = hfdt,
  6304. cbdata = cbdt,
  6305. gcdata = gcdt,
  6306. issend = issend,
  6307. isedit = isedit,
  6308. isnotice = isnotice,
  6309. btndata = btns,
  6310. alldeptname = alldeptname
  6311. };
  6312. return Success("获取成功", obj);
  6313. }
  6314. else
  6315. {
  6316. return Error("获取失败");
  6317. }
  6318. }
  6319. else
  6320. {
  6321. return Error("参数传输失败");
  6322. }
  6323. }
  6324. /// <summary>
  6325. /// 获取草稿信息
  6326. /// </summary>
  6327. /// <returns></returns>
  6328. [Authority]
  6329. public ActionResult GetDraftInfo()
  6330. {
  6331. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6332. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6333. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6334. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  6335. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6336. {
  6337. string sql = string.Empty;
  6338. switch (type)
  6339. {
  6340. case 1:
  6341. 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;
  6342. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  6343. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  6344. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  6345. }
  6346. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + userModel.F_UserCode + " order by F_CreateTime desc";
  6347. var dt = DbHelperSQL.Query(sql).Tables[0];
  6348. if (dt.Rows.Count > 0)
  6349. {
  6350. #region 附件
  6351. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6352. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6353. {
  6354. BindFileData(dt, configfj.F_ParamValue);
  6355. }
  6356. #endregion
  6357. }
  6358. return Success("获取成功", dt);
  6359. }
  6360. else
  6361. {
  6362. return Error("参数传输失败");
  6363. }
  6364. }
  6365. /// <summary>
  6366. /// 获取审核信息
  6367. /// </summary>
  6368. /// <returns></returns>
  6369. [Authority]
  6370. public ActionResult GetAuditInfo()
  6371. {
  6372. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6373. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6374. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6375. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  6376. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6377. {
  6378. string sql = string.Empty;
  6379. switch (type)
  6380. {
  6381. case 1: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and "; break;
  6382. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  6383. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where "; break;
  6384. }
  6385. if (type ==2)
  6386. {
  6387. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6388. }
  6389. else
  6390. {
  6391. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6392. }
  6393. var dt = DbHelperSQL.Query(sql).Tables[0];
  6394. if (dt.Rows.Count > 0)
  6395. {
  6396. #region 附件
  6397. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6398. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6399. {
  6400. BindFileData(dt, configfj.F_ParamValue);
  6401. }
  6402. #endregion
  6403. }
  6404. return Success("获取成功", dt);
  6405. }
  6406. else
  6407. {
  6408. return Error("参数传输失败");
  6409. }
  6410. }
  6411. /// <summary>
  6412. /// 获取所有交办单位
  6413. /// </summary>
  6414. /// <returns></returns>
  6415. [Authority]
  6416. public ActionResult GetAllAssignDept()
  6417. {
  6418. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6419. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6420. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6421. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  6422. if (modelT_Bus_WorkOrder != null)
  6423. {
  6424. string ids = string.Empty;
  6425. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  6426. foreach (var assign in Assigns)
  6427. {
  6428. if (string.IsNullOrEmpty(ids))
  6429. {
  6430. ids = assign.F_MainDeptId.Value.ToString();
  6431. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6432. {
  6433. ids += "," + assign.F_OtherDeptIds;
  6434. }
  6435. }
  6436. else
  6437. {
  6438. ids += "," + assign.F_MainDeptId.Value.ToString();
  6439. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6440. {
  6441. ids += "," + assign.F_OtherDeptIds;
  6442. }
  6443. }
  6444. }
  6445. if (string.IsNullOrEmpty(ids))
  6446. {
  6447. ids = "0";
  6448. }
  6449. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  6450. return Success("获取成功", dt);
  6451. }
  6452. else
  6453. {
  6454. return Error("操作失败");
  6455. }
  6456. }
  6457. /// <summary>
  6458. /// 获取二级单位处理信息
  6459. /// </summary>
  6460. /// <returns></returns>
  6461. [Authority]
  6462. public ActionResult GetSecondDealInfo()
  6463. {
  6464. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6465. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6466. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6467. if (!string.IsNullOrEmpty(strworkorderid))
  6468. {
  6469. //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, ";
  6470. //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, ";
  6471. //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, ";
  6472. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  6473. //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";
  6474. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  6475. //var dt = DbHelperSQL.Query(sql).Tables[0];
  6476. 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";
  6477. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  6478. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  6479. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6480. if (configfj != null)
  6481. {
  6482. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6483. }
  6484. var obj = new {
  6485. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  6486. fkinfo = bldt
  6487. };
  6488. return Success("获取成功", obj);
  6489. }
  6490. else
  6491. {
  6492. return Error("参数传输失败");
  6493. }
  6494. }
  6495. /// <summary>
  6496. /// 获取二级单位最新处理信息
  6497. /// </summary>
  6498. /// <returns></returns>
  6499. [Authority]
  6500. public ActionResult GetNewSecondDealInfo()
  6501. {
  6502. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6503. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6504. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6505. if (!string.IsNullOrEmpty(strworkorderid))
  6506. {
  6507. 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";
  6508. var bldt = DbHelperSQL.Query(sql).Tables[0];
  6509. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6510. if (configfj != null)
  6511. {
  6512. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6513. }
  6514. return Success("获取成功", bldt);
  6515. }
  6516. else
  6517. {
  6518. return Error("参数传输失败");
  6519. }
  6520. }
  6521. /// <summary>
  6522. /// 查看回访信息
  6523. /// </summary>
  6524. /// <returns></returns>
  6525. [Authority]
  6526. public ActionResult GetVisitInfo()
  6527. {
  6528. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6529. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6530. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6531. if (!string.IsNullOrEmpty(strworkorderid))
  6532. {
  6533. 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";
  6534. 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";
  6535. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  6536. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  6537. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6538. dtvisit.Columns.Add("FilePath", typeof(string));
  6539. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  6540. if (dtvisit.Rows.Count > 0)
  6541. {
  6542. foreach (DataRow bldr in dtvisit.Rows)
  6543. {
  6544. #region 是否可勾选
  6545. var IsShowCheck = 0;
  6546. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  6547. if (drass.Length > 0)
  6548. {
  6549. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  6550. if(ass>0)
  6551. {
  6552. if (ass == userModel.F_DeptId)
  6553. IsShowCheck = 1;
  6554. }
  6555. }
  6556. bldr["IsShowCheck"] = IsShowCheck;
  6557. #endregion
  6558. #region 录音
  6559. if (bldr["F_CallRecordId"] != null && config != null)
  6560. {
  6561. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6562. }
  6563. #endregion
  6564. }
  6565. }
  6566. return Success("获取成功", dtvisit);
  6567. }
  6568. else
  6569. {
  6570. return Error("参数传输失败");
  6571. }
  6572. }
  6573. #endregion
  6574. #region 新增工单
  6575. /// <summary>
  6576. /// 上传附件
  6577. /// </summary>
  6578. /// <returns></returns>
  6579. [Authority]
  6580. public ActionResult UploadFile()
  6581. {
  6582. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6583. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6584. #region 单个上传 no use
  6585. //string path = string.Empty;
  6586. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  6587. //if (_upfile != null)
  6588. //{
  6589. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  6590. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  6591. // string name = string.Empty;
  6592. // FileUp fu = new FileUp();
  6593. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  6594. // if (model != null)
  6595. // {
  6596. // name = fu.Upload(_upfile, model.F_ParamValue);
  6597. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6598. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6599. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  6600. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  6601. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  6602. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  6603. // model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6604. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6605. // return Success("成功", model_T_Sys_Accessories);
  6606. // }
  6607. // else
  6608. // {
  6609. // return Error("上传失败");
  6610. // }
  6611. //}
  6612. //else
  6613. //{
  6614. // return Error("请选择要上传的文件");
  6615. //}
  6616. #endregion
  6617. #region 多个上传
  6618. HttpFileCollection files = RequestString.GetFiles();
  6619. if (files.Count > 0)
  6620. {
  6621. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  6622. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  6623. for (int i = 0; i < files.Count; i++)
  6624. {
  6625. HttpPostedFile file = files[i];
  6626. FileUp fu = new FileUp();
  6627. string name = fu.Upload(file, path);
  6628. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6629. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6630. model_T_Sys_Accessories.F_FileName = name;//附件名称
  6631. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  6632. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  6633. model_T_Sys_Accessories.F_Size = file.ContentLength;
  6634. model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6635. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6636. model_T_Sys_Accessories.F_FileId = id;
  6637. acs.Add(model_T_Sys_Accessories);
  6638. }
  6639. return Success("成功", acs);
  6640. }
  6641. else
  6642. {
  6643. return Error("请选择要上传的文件");
  6644. }
  6645. #endregion
  6646. }
  6647. private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
  6648. /// <summary>
  6649. /// 添加工单模板
  6650. /// </summary>
  6651. /// <param name="input"></param>
  6652. /// <returns></returns>
  6653. /// [Authority]
  6654. public ActionResult AddConfig(string id)
  6655. {
  6656. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6657. if (model !=null )
  6658. {
  6659. var sysConfig = model.FirstOrDefault();
  6660. sysConfig.F_ParamValue = id;
  6661. if (sysConfigBLL.Update (sysConfig))
  6662. return Success("修改成功");
  6663. else
  6664. return Error("修改失败");
  6665. }
  6666. else
  6667. {
  6668. var sysConfig = new Model.T_Sys_SystemConfig();
  6669. sysConfig.F_ParamCode = "GDMB";
  6670. sysConfig.F_ParamValue = id;
  6671. sysConfig.F_ParamDes = "工单模板";
  6672. sysConfig.F_State = 1;
  6673. if (sysConfigBLL.Add(sysConfig) > 0)
  6674. return Success("添加成功");
  6675. else
  6676. return Error("添加失败");
  6677. }
  6678. }
  6679. /// <summary>
  6680. /// 添加基础数据
  6681. /// </summary>
  6682. /// <param name="input"></param>
  6683. /// <returns></returns>
  6684. /// [Authority]
  6685. public ActionResult GetConfig()
  6686. {
  6687. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6688. if (model!=null )
  6689. {
  6690. DataTable dt = new DataTable();
  6691. var sysConfig = model.FirstOrDefault();
  6692. dt = BindFileConfig(dt, sysConfig.F_ParamValue);
  6693. return Success("获取成功");
  6694. }
  6695. else
  6696. {
  6697. return Error("附件不存在");
  6698. }
  6699. }
  6700. /// <summary>
  6701. /// 绑定附件信息
  6702. /// </summary>
  6703. /// <param name="dt"></param>
  6704. /// <param name="prefix"></param>
  6705. /// <returns></returns>
  6706. public DataTable BindFileConfig(DataTable dt, string prefix)
  6707. {
  6708. dt.Columns.Add("Files", typeof(object));
  6709. foreach (DataRow dr in dt.Rows)
  6710. {
  6711. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  6712. {
  6713. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  6714. }
  6715. }
  6716. return dt;
  6717. }
  6718. /// <summary>
  6719. /// 添加工单信息
  6720. /// </summary>
  6721. /// <returns></returns>
  6722. [Authority]
  6723. public ActionResult AddWorkOrder()
  6724. {
  6725. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6726. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6727. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ"
  6728. || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY"
  6729. || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "DBZY"
  6730. || userModel.F_RoleCode == "11" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"
  6731. || userModel.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  6732. {
  6733. int source = RequestString.GetInt("source", 0);
  6734. string cusname = RequestString.GetFormString("cusname");
  6735. string cussex = RequestString.GetFormString("cussex");
  6736. string cusphone = RequestString.GetFormString("cusphone");
  6737. string cusaddress = RequestString.GetFormString("cusaddress");
  6738. string email = RequestString.GetFormString("email");
  6739. string zipcode = RequestString.GetFormString("zipcode");
  6740. string conname = RequestString.GetFormString("conname");
  6741. string conphone = RequestString.GetFormString("conphone");
  6742. string title = RequestString.GetFormString("title");
  6743. string content = RequestString.GetFormString("content");
  6744. string files = RequestString.GetFormString("files");
  6745. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6746. string sourceaddress = RequestString.GetFormString("sourceaddress");
  6747. int isresult = RequestString.GetInt("isresult", 0);
  6748. string result = RequestString.GetFormString("result");
  6749. string keys = RequestString.GetFormString("keys");
  6750. string splituser = RequestString.GetFormString("splituser");
  6751. int type = RequestString.GetInt("type", 0);
  6752. int bigtype = RequestString.GetInt("bigtype", 0);
  6753. int smalltype = RequestString.GetInt("smalltype", 0);
  6754. int isprotect = RequestString.GetInt("isprotect", 0);
  6755. int level = RequestString.GetInt("level", 0);
  6756. int issubmit = RequestString.GetInt("issubmit", 0);
  6757. string callid = RequestString.GetFormString("callid");
  6758. string longitude = RequestString.GetFormString("longitude");//经度
  6759. string latitude = RequestString.GetFormString("latitude");//纬度
  6760. using (TransactionScope trans = new TransactionScope())
  6761. {
  6762. #region 保存工单信息
  6763. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6764. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  6765. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6766. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6767. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6768. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  6769. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  6770. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  6771. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  6772. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  6773. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  6774. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  6775. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  6776. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  6777. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  6778. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  6779. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  6780. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  6781. modelT_Bus_WorkOrder.F_File = files;//附件
  6782. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  6783. modelT_Bus_WorkOrder.F_Key = keys;
  6784. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  6785. modelT_Bus_WorkOrder.F_Level = level;
  6786. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  6787. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  6788. //是否直办(即时答复)0:,否1: 是
  6789. modelT_Bus_WorkOrder.F_IsResult = isresult;
  6790. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  6791. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  6792. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  6793. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  6794. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  6795. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  6796. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  6797. //如果选择即刻答复:是,即为直办,工单结束
  6798. if (isresult == 1)
  6799. {
  6800. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  6801. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  6802. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  6803. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  6804. modelT_Bus_WorkOrder.F_IsClosed = 1;
  6805. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  6806. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  6807. }
  6808. else if (issubmit == 1)
  6809. {
  6810. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  6811. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  6812. }
  6813. #region
  6814. //20190715需求变动,去掉审核环节 提交后直接调度指派 zhengbingbing
  6815. //else
  6816. //{
  6817. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  6818. //}
  6819. #region
  6820. //20190315需求变动,保存并提交按钮取消,保存后提交待审核 20190329 zhengbingbing
  6821. //else if (issubmit == 1)
  6822. //{
  6823. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  6824. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  6825. //}
  6826. #endregion
  6827. #endregion
  6828. if (!string.IsNullOrEmpty(callid))
  6829. {
  6830. modelT_Bus_WorkOrder.F_CallId = callid;
  6831. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  6832. if (rd != null)
  6833. {
  6834. rd.IsExitWorkOrder = true;
  6835. new BLL.T_Call_CallRecords().Update(rd);
  6836. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  6837. }
  6838. }
  6839. workorderBLL.Add(modelT_Bus_WorkOrder);
  6840. #endregion
  6841. #region 插入操作记录
  6842. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6843. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6844. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6845. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  6846. oper.F_File = modelT_Bus_WorkOrder.F_File;
  6847. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6848. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  6849. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  6850. {
  6851. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6852. }
  6853. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  6854. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  6855. {
  6856. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6857. }
  6858. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  6859. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  6860. {
  6861. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6862. }
  6863. oper.F_CreateUser = userModel.F_UserCode;
  6864. oper.F_CreateTime = DateTime.Now;
  6865. oper.F_IsDelete = 0;
  6866. operBLL.Add(oper);
  6867. //推送消息表
  6868. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  6869. {
  6870. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  6871. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  6872. foreach (var u in users)
  6873. {
  6874. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  6875. }
  6876. }
  6877. #endregion
  6878. trans.Complete();
  6879. }
  6880. return Success("操作成功");
  6881. }
  6882. else
  6883. {
  6884. return Error("权限不足");
  6885. }
  6886. }
  6887. /// <summary>
  6888. /// 添加工单信息
  6889. /// </summary>
  6890. /// <returns></returns>
  6891. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  6892. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  6893. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  6894. {
  6895. string workorderid = string.Empty;
  6896. using (TransactionScope trans = new TransactionScope())
  6897. {
  6898. #region 保存工单信息
  6899. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6900. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source.ToString().PadLeft(4, '0'));
  6901. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6902. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6903. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6904. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  6905. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  6906. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  6907. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  6908. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  6909. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  6910. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  6911. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  6912. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  6913. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  6914. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  6915. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  6916. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  6917. modelT_Bus_WorkOrder.F_File = files;//附件
  6918. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  6919. modelT_Bus_WorkOrder.F_Key = keys;
  6920. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  6921. modelT_Bus_WorkOrder.F_Level = level;
  6922. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  6923. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  6924. //modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  6925. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  6926. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  6927. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  6928. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  6929. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  6930. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  6931. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  6932. workorderBLL.Add(modelT_Bus_WorkOrder);
  6933. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  6934. #endregion
  6935. #region 插入操作记录
  6936. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6937. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6938. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6939. string userinfo = "";
  6940. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  6941. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  6942. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  6943. {
  6944. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6945. }
  6946. //oper.F_CreateUser = userModel.F_UserCode;
  6947. oper.F_CreateTime = DateTime.Now;
  6948. oper.F_IsDelete = 0;
  6949. operBLL.Add(oper);
  6950. #endregion
  6951. trans.Complete();
  6952. }
  6953. return workorderid;
  6954. }
  6955. /// <summary>
  6956. /// 添加工单信息留言
  6957. /// </summary>
  6958. /// <returns></returns>
  6959. [Authority]
  6960. public ActionResult AddWorkOrderByLY()
  6961. {
  6962. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6963. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6964. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6965. {
  6966. int source = RequestString.GetInt("source", 0);
  6967. string cusname = RequestString.GetFormString("cusname");
  6968. string cussex = RequestString.GetFormString("cussex");
  6969. string cusphone = RequestString.GetFormString("cusphone");
  6970. string cusaddress = RequestString.GetFormString("cusaddress");
  6971. string email = RequestString.GetFormString("email");
  6972. string zipcode = RequestString.GetFormString("zipcode");
  6973. string conname = RequestString.GetFormString("conname");
  6974. string conphone = RequestString.GetFormString("conphone");
  6975. string title = RequestString.GetFormString("title");
  6976. string content = RequestString.GetFormString("content");
  6977. string files = RequestString.GetFormString("files");
  6978. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6979. string sourceaddress = RequestString.GetFormString("sourceaddress");
  6980. int isresult = RequestString.GetInt("isresult", 0);
  6981. string result = RequestString.GetFormString("result");
  6982. string keys = RequestString.GetFormString("keys");
  6983. string splituser = RequestString.GetFormString("splituser");
  6984. int type = RequestString.GetInt("type", 0);
  6985. int bigtype = RequestString.GetInt("bigtype", 0);
  6986. int smalltype = RequestString.GetInt("smalltype", 0);
  6987. int isprotect = RequestString.GetInt("isprotect", 0);
  6988. int level = RequestString.GetInt("level", 0);
  6989. int issubmit = RequestString.GetInt("issubmit", 0);
  6990. int lyid = RequestString.GetInt("lyid", 0);
  6991. using (TransactionScope trans = new TransactionScope())
  6992. {
  6993. #region 保存工单信息
  6994. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6995. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  6996. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6997. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6998. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6999. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7000. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7001. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7002. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7003. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7004. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7005. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7006. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7007. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7008. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7009. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7010. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7011. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7012. modelT_Bus_WorkOrder.F_File = files;//附件
  7013. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7014. modelT_Bus_WorkOrder.F_Key = keys;
  7015. modelT_Bus_WorkOrder.F_Level = level;
  7016. //是否直办(即时答复)0:,否1: 是
  7017. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7018. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7019. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  7020. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  7021. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  7022. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  7023. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  7024. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  7025. //如果选择即刻答复:是,即为直办,工单结束
  7026. if (isresult == 1)
  7027. {
  7028. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7029. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7030. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7031. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7032. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7033. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7034. }
  7035. else if (issubmit == 1)
  7036. {
  7037. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7038. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7039. }
  7040. #region
  7041. //20190715去掉审核环节
  7042. //else
  7043. //{
  7044. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  7045. //}
  7046. //else if (issubmit == 1)
  7047. //{
  7048. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7049. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7050. //}
  7051. #endregion
  7052. if (lyid != 0)
  7053. {
  7054. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  7055. if (rd != null)
  7056. {
  7057. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  7058. }
  7059. }
  7060. workorderBLL.Add(modelT_Bus_WorkOrder);
  7061. #endregion
  7062. #region 插入操作记录
  7063. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7064. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7065. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7066. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7067. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7068. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7069. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7070. {
  7071. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7072. }
  7073. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7074. {
  7075. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7076. }
  7077. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7078. {
  7079. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7080. }
  7081. oper.F_CreateUser = userModel.F_UserCode;
  7082. oper.F_CreateTime = DateTime.Now;
  7083. oper.F_IsDelete = 0;
  7084. operBLL.Add(oper);
  7085. //推送消息表
  7086. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  7087. {
  7088. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7089. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7090. foreach (var u in users)
  7091. {
  7092. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7093. }
  7094. }
  7095. #endregion
  7096. trans.Complete();
  7097. }
  7098. return Success("操作成功");
  7099. }
  7100. else
  7101. {
  7102. return Error("权限不足");
  7103. }
  7104. }
  7105. /// <summary>
  7106. /// 添加工单信息
  7107. /// </summary>
  7108. /// <returns></returns>
  7109. [Authority]
  7110. public ActionResult AddWorkOrderByAPP()
  7111. {
  7112. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7113. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7114. int source = RequestString.GetInt("source", 6);
  7115. string cusname = RequestString.GetFormString("cusname");
  7116. string cussex = RequestString.GetFormString("cussex");
  7117. string cusphone = RequestString.GetFormString("cusphone");
  7118. string cusaddress = RequestString.GetFormString("cusaddress");
  7119. string email = RequestString.GetFormString("email");
  7120. string zipcode = RequestString.GetFormString("zipcode");
  7121. string conname = RequestString.GetFormString("conname");
  7122. string conphone = RequestString.GetFormString("conphone");
  7123. string title = RequestString.GetFormString("title");
  7124. string content = RequestString.GetFormString("content");
  7125. string files = RequestString.GetFormString("files");
  7126. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7127. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7128. int isresult = RequestString.GetInt("isresult", 0);
  7129. string result = RequestString.GetFormString("result");
  7130. string keys = RequestString.GetFormString("keys");
  7131. string splituser = RequestString.GetFormString("splituser");
  7132. int type = RequestString.GetInt("type", 0);
  7133. int bigtype = RequestString.GetInt("bigtype", 0);
  7134. int smalltype = RequestString.GetInt("smalltype", 0);
  7135. int isprotect = RequestString.GetInt("isprotect", 0);
  7136. int level = RequestString.GetInt("level", 0);
  7137. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  7138. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  7139. if (!string.IsNullOrEmpty(workorderid))
  7140. {
  7141. using (TransactionScope trans = new TransactionScope())
  7142. {
  7143. #region 保存用户工单信息
  7144. var model = new BLL.T_Sys_Users().GetModel(userModel.F_UserCode);
  7145. if (model == null)
  7146. {
  7147. model = new Model.T_Sys_Users();
  7148. model.F_OpenId = userModel.F_UserCode;
  7149. model.F_Type = (int)EnumUserType.app;//3;
  7150. model.F_CreateTime = DateTime.Now;
  7151. model.F_Id = new BLL.T_Sys_Users().Add(model);
  7152. }
  7153. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  7154. tbu.F_UserId = model.F_Id;
  7155. tbu.F_WorkOrderId = workorderid;
  7156. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  7157. #endregion
  7158. trans.Complete();
  7159. }
  7160. return Success("操作成功");
  7161. }
  7162. else
  7163. {
  7164. return Error("操作失败");
  7165. }
  7166. }
  7167. #endregion
  7168. #region 操作工单
  7169. /// <summary>
  7170. /// 修改工单信息
  7171. /// </summary>
  7172. /// <returns></returns>
  7173. [Authority]
  7174. public ActionResult EditWorkOrder()
  7175. {
  7176. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7177. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7178. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7179. {
  7180. string workorderid = RequestString.GetFormString("workorderid");
  7181. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7182. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7183. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))
  7184. {
  7185. int source = RequestString.GetInt("source", 0);
  7186. string cusname = RequestString.GetFormString("cusname");
  7187. string cussex = RequestString.GetFormString("cussex");
  7188. string cusphone = RequestString.GetFormString("cusphone");
  7189. string cusaddress = RequestString.GetFormString("cusaddress");
  7190. string email = RequestString.GetFormString("email");
  7191. string zipcode = RequestString.GetFormString("zipcode");
  7192. string conname = RequestString.GetFormString("conname");
  7193. string conphone = RequestString.GetFormString("conphone");
  7194. string title = RequestString.GetFormString("title");
  7195. string content = RequestString.GetFormString("content");
  7196. string files = RequestString.GetFormString("files");
  7197. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7198. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7199. int isresult = RequestString.GetInt("isresult", 0);
  7200. string result = RequestString.GetFormString("result");
  7201. string keys = RequestString.GetFormString("keys");
  7202. string splituser = RequestString.GetFormString("splituser");
  7203. int type = RequestString.GetInt("type", 0);
  7204. int bigtype = RequestString.GetInt("bigtype", 0);
  7205. int smalltype = RequestString.GetInt("smalltype", 0);
  7206. int isprotect = RequestString.GetInt("isprotect", 0);
  7207. int level = RequestString.GetInt("level", 0);
  7208. int issubmit = RequestString.GetInt("issubmit", 0);
  7209. using (TransactionScope trans = new TransactionScope())
  7210. {
  7211. #region 保存工单信息
  7212. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7213. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7214. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7215. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7216. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7217. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7218. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7219. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7220. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7221. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7222. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7223. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7224. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7225. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7226. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7227. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7228. modelT_Bus_WorkOrder.F_File = files;//附件
  7229. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7230. modelT_Bus_WorkOrder.F_Key = keys;
  7231. modelT_Bus_WorkOrder.F_Level = level;
  7232. //是否直办(即时答复)0:,否1: 是
  7233. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7234. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7235. //如果选择即刻答复:是,即为直办,工单结束
  7236. if (isresult == 1)
  7237. {
  7238. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7239. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7240. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7241. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7242. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7243. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7244. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7245. }
  7246. else if (issubmit == 1)
  7247. {
  7248. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7249. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7250. }
  7251. #region
  7252. //20190715 审核环节去掉 zhengbingbing
  7253. //else
  7254. //{
  7255. // if(modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7256. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7257. //}
  7258. //else if (issubmit == 1)
  7259. //{
  7260. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7261. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7262. //}
  7263. #endregion
  7264. workorderBLL.Update(modelT_Bus_WorkOrder);
  7265. #endregion
  7266. #region 插入操作记录
  7267. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7268. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7269. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7270. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7271. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7272. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7273. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7274. {
  7275. oper.F_Message = userinfo + " 修改了工单";
  7276. }
  7277. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7278. {
  7279. oper.F_Message = userinfo + " 修改并提交了工单";
  7280. }
  7281. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7282. {
  7283. oper.F_Message = userinfo + " 修改并结案了工单";
  7284. }
  7285. oper.F_CreateUser = userModel.F_UserCode;
  7286. oper.F_CreateTime = DateTime.Now;
  7287. oper.F_IsDelete = 0;
  7288. operBLL.Add(oper);
  7289. //推送消息表
  7290. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7291. {
  7292. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7293. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7294. foreach (var u in users)
  7295. {
  7296. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7297. }
  7298. }
  7299. //调用科大讯飞
  7300. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7301. {
  7302. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7303. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, userModel.F_UserCode, userModel.depname, modelT_Bus_WorkOrder.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  7304. if (bl)
  7305. {
  7306. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7307. }
  7308. else
  7309. {
  7310. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7311. }
  7312. }
  7313. #endregion
  7314. trans.Complete();
  7315. }
  7316. return Success("操作成功");
  7317. }
  7318. else
  7319. {
  7320. return Error("操作失败");
  7321. }
  7322. }
  7323. else
  7324. {
  7325. return Success("权限不足");
  7326. }
  7327. }
  7328. /// <summary>
  7329. /// 修改工单信息
  7330. /// </summary>
  7331. /// <returns></returns>
  7332. [Authority]
  7333. public ActionResult UpdateWorkOrder()
  7334. {
  7335. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7336. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7337. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7338. {
  7339. string workorderid = RequestString.GetFormString("workorderid");
  7340. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7341. int isover = RequestString.GetInt("isover", 0);
  7342. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7343. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish))
  7344. {
  7345. string newresult = RequestString.GetFormString("newresult");
  7346. using (TransactionScope trans = new TransactionScope())
  7347. {
  7348. #region 保存工单信息
  7349. modelT_Bus_WorkOrder.F_NewResult = newresult;//
  7350. workorderBLL.Update(modelT_Bus_WorkOrder);
  7351. #endregion
  7352. #region 插入操作记录
  7353. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7354. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7355. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7356. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7357. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7358. #region 修改工单记录
  7359. if (isover==1&& modelT_Bus_WorkOrder.F_WorkState!=9)
  7360. {
  7361. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  7362. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7363. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7364. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7365. modelT_Bus_WorkOrder.F_FinalOpinion = newresult;
  7366. workorderBLL.Update(modelT_Bus_WorkOrder);
  7367. }
  7368. #endregion
  7369. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7370. if (isover==1)
  7371. {
  7372. oper.F_Message = userinfo + " 修改办理内容并结案了工单";
  7373. }
  7374. else
  7375. {
  7376. oper.F_Message = userinfo + " 修改了办理内容";
  7377. }
  7378. oper.F_CreateUser = userModel.F_UserCode;
  7379. oper.F_CreateTime = DateTime.Now;
  7380. oper.F_IsDelete = 0;
  7381. operBLL.Add(oper);
  7382. #endregion
  7383. trans.Complete();
  7384. }
  7385. return Success("操作成功");
  7386. }
  7387. else
  7388. {
  7389. return Error("操作失败");
  7390. }
  7391. }
  7392. else
  7393. {
  7394. return Success("权限不足");
  7395. }
  7396. }
  7397. /// <summary>
  7398. /// 修改工单信息
  7399. /// </summary>
  7400. /// <returns></returns>
  7401. [Authority]
  7402. public ActionResult UpdateRemarks()
  7403. {
  7404. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7405. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7406. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7407. {
  7408. string workorderid = RequestString.GetFormString("workorderid");
  7409. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7410. string workRemarks = RequestString.GetFormString("workRemarks");
  7411. using (TransactionScope trans = new TransactionScope())
  7412. {
  7413. #region 保存工单信息
  7414. modelT_Bus_WorkOrder.F_WorkRemarks = workRemarks;//
  7415. workorderBLL.Update(modelT_Bus_WorkOrder);
  7416. #endregion
  7417. #region 插入操作记录
  7418. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7419. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7420. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7421. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7422. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7423. #region 修改工单记录
  7424. #endregion
  7425. oper.F_Message = " 修改了备注信息:" + workRemarks;
  7426. oper.F_CreateUser = userModel.F_UserCode;
  7427. oper.F_CreateTime = DateTime.Now;
  7428. oper.F_IsDelete = 0;
  7429. operBLL.Add(oper);
  7430. #endregion
  7431. trans.Complete();
  7432. }
  7433. return Success("操作成功");
  7434. }
  7435. else
  7436. {
  7437. return Success("权限不足");
  7438. }
  7439. }
  7440. /// <summary>
  7441. /// 修改工单信息
  7442. /// </summary>
  7443. /// <returns></returns>
  7444. [Authority]
  7445. public ActionResult EditWorkOrderBySource()
  7446. {
  7447. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7448. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7449. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7450. {
  7451. string workorderid = RequestString.GetFormString("workorderid");
  7452. int source = RequestString.GetInt("source", 0);
  7453. string cusname = RequestString.GetFormString("cusname");
  7454. string cussex = RequestString.GetFormString("cussex");
  7455. string cusphone = RequestString.GetFormString("cusphone");
  7456. string cusaddress = RequestString.GetFormString("cusaddress");
  7457. string email = RequestString.GetFormString("email");
  7458. string zipcode = RequestString.GetFormString("zipcode");
  7459. string conname = RequestString.GetFormString("conname");
  7460. string conphone = RequestString.GetFormString("conphone");
  7461. string title = RequestString.GetFormString("title");
  7462. string content = RequestString.GetFormString("content");
  7463. string files = RequestString.GetFormString("files");
  7464. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7465. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7466. int isresult = RequestString.GetInt("isresult", 0);
  7467. string result = RequestString.GetFormString("result");
  7468. string resultremarks = RequestString.GetFormString("resultremarks");
  7469. string keys = RequestString.GetFormString("keys");
  7470. string splituser = RequestString.GetFormString("splituser");
  7471. int type = RequestString.GetInt("type", 0);
  7472. int bigtype = RequestString.GetInt("bigtype", 0);
  7473. int smalltype = RequestString.GetInt("smalltype", 0);
  7474. int isprotect = RequestString.GetInt("isprotect", 0);
  7475. int level = RequestString.GetInt("level", 0);
  7476. int issubmit = RequestString.GetInt("issubmit", 0);
  7477. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7478. if (modelT_Bus_WorkOrder != null)
  7479. {
  7480. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  7481. {
  7482. using (TransactionScope trans = new TransactionScope())
  7483. {
  7484. #region 保存工单信息
  7485. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7486. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7487. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7488. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7489. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7490. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7491. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7492. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7493. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7494. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7495. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7496. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7497. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7498. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7499. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7500. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7501. modelT_Bus_WorkOrder.F_File = files;//附件
  7502. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7503. modelT_Bus_WorkOrder.F_Key = keys;
  7504. modelT_Bus_WorkOrder.F_Level = level;
  7505. //是否直办(即时答复)0:,否1: 是
  7506. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7507. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7508. modelT_Bus_WorkOrder.F_ResultRemarks = resultremarks;
  7509. //如果选择即刻答复:是,即为直办,工单结束
  7510. if (isresult == 1)
  7511. {
  7512. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7513. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7514. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7515. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7516. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7517. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7518. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7519. }
  7520. else if (issubmit == 1)
  7521. {
  7522. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7523. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7524. }
  7525. #region
  7526. //20190715 去掉审核环节 zhengbingbing
  7527. //else
  7528. //{
  7529. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7530. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7531. //}
  7532. //20190329
  7533. //else if (issubmit == 1)
  7534. //{
  7535. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7536. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7537. //}
  7538. #endregion
  7539. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;
  7540. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  7541. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  7542. modelT_Bus_WorkOrder.F_IsDelete = 0;
  7543. workorderBLL.Update(modelT_Bus_WorkOrder);
  7544. #endregion
  7545. #region 插入操作记录
  7546. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7547. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7548. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7549. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7550. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7551. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7552. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7553. {
  7554. oper.F_Message = userinfo + " 处理了工单";
  7555. }
  7556. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7557. {
  7558. oper.F_Message = userinfo + " 处理并提交了工单";
  7559. }
  7560. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7561. {
  7562. oper.F_Message = userinfo + " 处理并结案了工单";
  7563. }
  7564. oper.F_CreateUser = userModel.F_UserCode;
  7565. oper.F_CreateTime = DateTime.Now;
  7566. oper.F_IsDelete = 0;
  7567. operBLL.Add(oper);
  7568. //推送消息表
  7569. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7570. {
  7571. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7572. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7573. foreach (var u in users)
  7574. {
  7575. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7576. }
  7577. }
  7578. //调用科大讯飞
  7579. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7580. {
  7581. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7582. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, userModel.F_UserCode, userModel.depname, modelT_Bus_WorkOrder.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  7583. if (bl)
  7584. {
  7585. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7586. }
  7587. else
  7588. {
  7589. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7590. }
  7591. }
  7592. #endregion
  7593. trans.Complete();
  7594. }
  7595. return Success("操作成功");
  7596. }
  7597. else
  7598. {
  7599. return Error("已经处理过了");
  7600. }
  7601. }
  7602. else
  7603. {
  7604. return Error("操作失败");
  7605. }
  7606. }
  7607. else
  7608. {
  7609. return Success("权限不足");
  7610. }
  7611. }
  7612. #region 新增审核工单流程
  7613. /// <summary>
  7614. /// 20190315需求变动,新增审核工单,由组长审核
  7615. /// </summary>
  7616. /// <param name="ids"></param>
  7617. /// <returns></returns>
  7618. [Authority]
  7619. public ActionResult AuditWorkOrder()
  7620. {
  7621. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7622. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7623. if (userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7624. {
  7625. string workorderid = RequestString.GetFormString("workorderid");
  7626. int state = RequestString.GetInt("state", 0);
  7627. string reason = RequestString.GetFormString("reason");
  7628. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7629. if (modelT_Bus_WorkOrder != null)
  7630. {
  7631. using (TransactionScope trans = new TransactionScope())
  7632. {
  7633. if (modelT_Bus_WorkOrder != null)
  7634. {
  7635. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7636. {
  7637. var opt = "审核并提交"; var re = "";
  7638. #region 保存工单信息
  7639. if (state == 1)
  7640. {
  7641. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7642. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  7643. }
  7644. else
  7645. {
  7646. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  7647. opt = "审核并退回";
  7648. re = ",退回原因:" + reason;
  7649. }
  7650. workorderBLL.Update(modelT_Bus_WorkOrder);
  7651. #endregion
  7652. #region 插入操作记录
  7653. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7654. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7655. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7656. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7657. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  7658. oper.F_CreateUser = userModel.F_UserCode;
  7659. oper.F_CreateTime = DateTime.Now;
  7660. oper.F_IsDelete = 0;
  7661. operBLL.Add(oper);
  7662. //推送消息表
  7663. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7664. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7665. {
  7666. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7667. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7668. foreach (var u in users)
  7669. {
  7670. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7671. }
  7672. }
  7673. #endregion
  7674. }
  7675. }
  7676. trans.Complete();
  7677. }
  7678. return Success("操作成功");
  7679. }
  7680. else
  7681. {
  7682. return Error("操作失败");
  7683. }
  7684. }
  7685. else
  7686. {
  7687. return Error("权限不足");
  7688. }
  7689. }
  7690. #endregion
  7691. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  7692. /// <summary>
  7693. /// 回传工单
  7694. /// </summary>
  7695. /// <param name="ids"></param>
  7696. /// <returns></returns>
  7697. [Authority]
  7698. public ActionResult Sendback(string[] ids)
  7699. {
  7700. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7701. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7702. if (ids != null && ids.Length > 0)
  7703. {
  7704. foreach (string str in ids)
  7705. {
  7706. using (TransactionScope trans = new TransactionScope())
  7707. {
  7708. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7709. if (modelT_Bus_WorkOrder != null)
  7710. {
  7711. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7712. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  7713. {
  7714. #region 保存工单信息
  7715. modelT_Bus_WorkOrder.IsExport = 1;
  7716. if (!string .IsNullOrEmpty (modelT_Bus_WorkOrder.F_Files))
  7717. {
  7718. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed ;
  7719. }
  7720. modelT_Bus_WorkOrder.F_Hcdatetime = DateTime.Now;//回传时间
  7721. workorderBLL.Update(modelT_Bus_WorkOrder);
  7722. #endregion
  7723. #region 插入操作记录
  7724. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7725. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7726. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7727. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7728. oper.F_Message = userinfo + " 回传了工单";
  7729. oper.F_CreateUser = userModel.F_UserCode;
  7730. oper.F_CreateTime = DateTime.Now;
  7731. oper.F_IsDelete = 0;
  7732. operBLL.Add(oper);
  7733. //推送消息表
  7734. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7735. #endregion
  7736. }
  7737. }
  7738. trans.Complete();
  7739. }
  7740. }
  7741. return Success("操作成功");
  7742. }
  7743. else
  7744. {
  7745. return Error("操作失败");
  7746. }
  7747. }
  7748. /// <summary>
  7749. /// 提交工单
  7750. /// </summary>
  7751. /// <param name="ids"></param>
  7752. /// <returns></returns>
  7753. [Authority]
  7754. public ActionResult SubmitWorkOrder(string[] ids)
  7755. {
  7756. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7757. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7758. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7759. {
  7760. if (ids != null && ids.Length > 0)
  7761. {
  7762. foreach (string str in ids)
  7763. {
  7764. using (TransactionScope trans = new TransactionScope())
  7765. {
  7766. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7767. if (modelT_Bus_WorkOrder != null)
  7768. {
  7769. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7770. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7771. {
  7772. #region 保存工单信息
  7773. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7774. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  7775. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  7776. workorderBLL.Update(modelT_Bus_WorkOrder);
  7777. #endregion
  7778. #region 插入操作记录
  7779. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7780. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7781. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7782. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7783. oper.F_Message = userinfo + " 提交了工单";
  7784. oper.F_CreateUser = userModel.F_UserCode;
  7785. oper.F_CreateTime = DateTime.Now;
  7786. oper.F_IsDelete = 0;
  7787. operBLL.Add(oper);
  7788. //推送消息表
  7789. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7790. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7791. {
  7792. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7793. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7794. foreach (var u in users)
  7795. {
  7796. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7797. }
  7798. }
  7799. #endregion
  7800. }
  7801. }
  7802. trans.Complete();
  7803. }
  7804. }
  7805. return Success("操作成功");
  7806. }
  7807. else
  7808. {
  7809. return Error("操作失败");
  7810. }
  7811. }
  7812. else
  7813. {
  7814. return Error("权限不足");
  7815. }
  7816. }
  7817. /// <summary>
  7818. /// 回退工单
  7819. /// </summary>
  7820. /// <returns></returns>
  7821. [Authority]
  7822. public ActionResult ReturnWorkOrder()
  7823. {
  7824. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7825. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  7826. string workorderid = RequestString.GetFormString("workorderid");
  7827. string backuser = RequestString.GetFormString("backuser");
  7828. string backreason = RequestString.GetFormString("backreason");
  7829. string files = RequestString.GetFormString("files");
  7830. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  7831. if (modelT_Bus_WorkOrder != null)
  7832. {
  7833. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  7834. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  7835. {
  7836. using (TransactionScope trans = new TransactionScope())
  7837. {
  7838. #region 保存工单信息
  7839. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  7840. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  7841. modelT_Bus_WorkOrder.F_IsResult = 0;
  7842. modelT_Bus_WorkOrder.F_IsReturn = 1;
  7843. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  7844. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  7845. workorderBLL.Update(modelT_Bus_WorkOrder);
  7846. #endregion
  7847. #region 插入批示记录
  7848. //批示记录
  7849. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  7850. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  7851. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  7852. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  7853. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  7854. model_T_Bus_SubmitSuper.F_File = files;//附件
  7855. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  7856. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  7857. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  7858. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  7859. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  7860. #endregion
  7861. #region 插入操作记录
  7862. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7863. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7864. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7865. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7866. oper.F_Message = userinfo + " 回退了工单";
  7867. oper.F_CreateUser = userModel.F_UserCode;
  7868. oper.F_CreateTime = DateTime.Now;
  7869. oper.F_IsDelete = 0;
  7870. operBLL.Add(oper);
  7871. #endregion
  7872. trans.Complete();
  7873. }
  7874. return Success("操作成功");
  7875. }
  7876. else
  7877. {
  7878. return Error("已经处理过了");
  7879. }
  7880. }
  7881. else
  7882. {
  7883. return Error("操作失败");
  7884. }
  7885. }
  7886. /// <summary>
  7887. /// 领导批示/市长指示
  7888. /// </summary>
  7889. /// <param name="ids"></param>
  7890. /// <returns></returns>
  7891. [Authority]
  7892. public ActionResult SuperWorkOrder()
  7893. {
  7894. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7895. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7896. string workorderid = RequestString.GetFormString("workorderid");
  7897. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  7898. string superuser = RequestString.GetFormString("superuser");
  7899. string superopinion = RequestString.GetFormString("superopinion");
  7900. string files = RequestString.GetFormString("files");
  7901. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7902. if (modelT_Bus_WorkOrder != null)
  7903. {
  7904. using (TransactionScope trans = new TransactionScope())
  7905. {
  7906. #region 保存工单信息 no use
  7907. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  7908. //workorderBLL.Update(modelT_Bus_WorkOrder);
  7909. #endregion
  7910. #region 插入批示记录
  7911. //批示记录
  7912. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  7913. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  7914. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  7915. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  7916. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  7917. model_T_Bus_SubmitSuper.F_File = files;//附件
  7918. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  7919. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  7920. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  7921. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  7922. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  7923. #endregion
  7924. #region 插入操作记录
  7925. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7926. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7927. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7928. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7929. oper.F_Message = userinfo+ " 批示了工单";
  7930. oper.F_CreateUser = userModel.F_UserCode;
  7931. oper.F_CreateTime = DateTime.Now;
  7932. oper.F_IsDelete = 0;
  7933. operBLL.Add(oper);
  7934. #endregion
  7935. trans.Complete();
  7936. }
  7937. return Success("操作成功");
  7938. }
  7939. else
  7940. {
  7941. return Error("操作失败");
  7942. }
  7943. }
  7944. /// <summary>
  7945. /// 交办工单
  7946. /// </summary>
  7947. /// <returns></returns>
  7948. [Authority]
  7949. public ActionResult AssignWorkOrder()
  7950. {
  7951. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7952. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7953. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7954. {
  7955. string workorderid = RequestString.GetFormString("workorderid");
  7956. int state = RequestString.GetInt("state", 0);
  7957. int assignid = RequestString.GetInt("assignid", 0);
  7958. int maindeptid = RequestString.GetInt("maindeptid", 0);
  7959. //string maindeptid = RequestString.GetFormString("maindeptid");
  7960. string otherdeptids = RequestString.GetFormString("otherdeptids");
  7961. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  7962. string assignedopinion = RequestString.GetFormString("assignedopinion");
  7963. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  7964. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  7965. {
  7966. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  7967. {
  7968. return Error("操作失败");
  7969. }
  7970. }
  7971. if (!string.IsNullOrEmpty(otherdeptids))
  7972. {
  7973. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  7974. {
  7975. return Error("主办单位不能出现在协办单位");
  7976. }
  7977. }
  7978. if (limittime < DateTime.Now)
  7979. {
  7980. return Error("办理时限不能小于当前时间");
  7981. }
  7982. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7983. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  7984. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  7985. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  7986. {
  7987. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7988. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7989. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7990. {
  7991. int aid = 0;
  7992. using (TransactionScope trans = new TransactionScope())
  7993. {
  7994. if (assignid == 0)
  7995. {
  7996. #region 插入交办记录
  7997. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7998. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  7999. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8000. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8001. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8002. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8003. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8004. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8005. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8006. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8007. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8008. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8009. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8010. modelT_Bus_AssignedInfo.F_TimeResp= assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8011. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8012. #endregion
  8013. }
  8014. else
  8015. {
  8016. #region 修改交办记录
  8017. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8018. if (modelT_Bus_AssignedInfo != null)
  8019. {
  8020. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8021. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8022. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8023. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8024. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8025. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8026. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8027. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8028. assignBLL.Update(modelT_Bus_AssignedInfo);
  8029. aid = modelT_Bus_AssignedInfo.F_Id;
  8030. }
  8031. #endregion
  8032. }
  8033. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8034. {
  8035. #region 保存工单信息
  8036. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  8037. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8038. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8039. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays (3);
  8040. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  8041. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8042. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8043. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8044. workorderBLL.Update(modelT_Bus_WorkOrder);
  8045. #endregion
  8046. #region 删除草稿信息
  8047. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8048. foreach (var cg in cglist)
  8049. {
  8050. cg.F_IsDelete = 1;
  8051. cg.F_DeleteUser = userModel.F_UserCode;
  8052. cg.F_DeleteTime = DateTime.Now;
  8053. assignBLL.Update(cg);
  8054. }
  8055. #endregion
  8056. #region 插入操作记录
  8057. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8058. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8059. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  8060. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8061. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8062. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8063. if (!string.IsNullOrEmpty(otherdeptids))
  8064. {
  8065. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8066. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8067. }
  8068. oper.F_CreateUser = userModel.F_UserCode;
  8069. oper.F_CreateTime = DateTime.Now;
  8070. oper.F_IsDelete = 0;
  8071. operBLL.Add(oper);
  8072. //推送消息表
  8073. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8074. foreach (var u in users)
  8075. {
  8076. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8077. if (!string .IsNullOrEmpty (u.F_Mobile))
  8078. {
  8079. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8080. string[] mag = { oper.F_WorkOrderId };
  8081. bool n =new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8082. }
  8083. if (!string.IsNullOrEmpty(u.F_Telephone ))
  8084. {
  8085. var userlist = u.F_Telephone.Split(',');
  8086. if (userlist !=null )
  8087. {
  8088. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8089. string[] mag = { oper.F_WorkOrderId };
  8090. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8091. }
  8092. }
  8093. }
  8094. #endregion
  8095. }
  8096. trans.Complete();
  8097. }
  8098. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  8099. }
  8100. else
  8101. {
  8102. return Error("已经交办过了");
  8103. }
  8104. }
  8105. else
  8106. {
  8107. return Error("操作失败");
  8108. }
  8109. }
  8110. else
  8111. {
  8112. return Error("权限不足");
  8113. }
  8114. }
  8115. [Authority]
  8116. public ActionResult AssignWorkOrderNew()
  8117. {
  8118. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8119. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8120. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8121. {
  8122. string workorderid = RequestString.GetFormString("workorderid");
  8123. int state = RequestString.GetInt("state", 0);
  8124. int assignid = RequestString.GetInt("assignid", 0);
  8125. string maindeptid = RequestString.GetFormString("maindeptid");
  8126. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8127. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") );
  8128. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8129. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  8130. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  8131. {
  8132. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  8133. {
  8134. return Error("操作失败");
  8135. }
  8136. }
  8137. if (!string.IsNullOrEmpty(otherdeptids))
  8138. {
  8139. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8140. if (both.Count()>0)
  8141. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8142. {
  8143. return Error("主办单位不能出现在协办单位");
  8144. }
  8145. }
  8146. if (limittime < DateTime.Now)
  8147. {
  8148. return Error("办理时限不能小于当前时间");
  8149. }
  8150. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8151. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8152. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8153. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8154. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid+")");
  8155. if (modelT_Bus_WorkOrder != null && deptlist != null&& deptlist.Count>0)
  8156. {
  8157. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8158. {
  8159. int aid = 0; var rre = "";
  8160. using (TransactionScope trans = new TransactionScope())
  8161. {
  8162. if (deptlist.Count == 1)
  8163. {
  8164. var deptinfo = deptlist.FirstOrDefault();
  8165. if (assignid == 0)
  8166. {
  8167. #region 插入交办记录
  8168. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8169. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8170. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8171. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8172. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8173. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8174. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8175. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8176. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8177. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8178. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8179. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8180. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8181. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8182. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8183. #endregion
  8184. }
  8185. else
  8186. {
  8187. #region 修改交办记录
  8188. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8189. if (modelT_Bus_AssignedInfo != null)
  8190. {
  8191. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8192. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8193. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8194. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8195. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8196. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8197. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8198. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8199. assignBLL.Update(modelT_Bus_AssignedInfo);
  8200. aid = modelT_Bus_AssignedInfo.F_Id;
  8201. }
  8202. #endregion
  8203. }
  8204. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8205. {
  8206. #region 保存工单信息
  8207. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8208. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8209. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  8210. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  8211. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8212. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8213. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8214. workorderBLL.Update(modelT_Bus_WorkOrder);
  8215. #endregion
  8216. #region 删除草稿信息
  8217. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8218. foreach (var cg in cglist)
  8219. {
  8220. cg.F_IsDelete = 1;
  8221. cg.F_DeleteUser = userModel.F_UserCode;
  8222. cg.F_DeleteTime = DateTime.Now;
  8223. assignBLL.Update(cg);
  8224. }
  8225. #endregion
  8226. #region 插入操作记录
  8227. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8228. if (!string.IsNullOrEmpty(otherdeptids))
  8229. {
  8230. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8231. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8232. }
  8233. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8234. //推送消息表
  8235. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8236. foreach (var u in users)
  8237. {
  8238. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8239. if (!string.IsNullOrEmpty(u.F_Mobile))
  8240. {
  8241. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8242. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8243. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8244. }
  8245. if (!string.IsNullOrEmpty(u.F_Telephone))
  8246. {
  8247. var userlist = u.F_Telephone.Split(',');
  8248. if (userlist != null)
  8249. {
  8250. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8251. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8252. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8253. }
  8254. }
  8255. }
  8256. #endregion
  8257. }
  8258. }
  8259. else
  8260. {
  8261. string newids = ""; string errdeptid = ""; string deptname = "";
  8262. foreach (var deptmasinfo in deptlist)
  8263. {
  8264. deptname += deptmasinfo.F_DeptName + ",";
  8265. }
  8266. foreach (var deptinfo in deptlist)
  8267. {
  8268. #region 新增工单
  8269. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8270. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8271. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8272. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8273. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8274. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8275. {
  8276. errdeptid += deptinfo.F_DeptName + ",";
  8277. continue;
  8278. }
  8279. #endregion
  8280. #region 交办
  8281. #region 插入交办记录
  8282. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8283. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8284. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8285. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8286. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8287. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8288. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8289. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8290. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8291. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8292. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8293. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8294. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8295. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8296. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8297. #endregion
  8298. #endregion
  8299. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8300. {
  8301. #region 保存工单信息
  8302. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8303. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8304. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8305. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8306. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8307. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8308. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8309. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8310. #endregion
  8311. #region 删除草稿信息
  8312. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  8313. foreach (var cg in cglist)
  8314. {
  8315. cg.F_IsDelete = 1;
  8316. cg.F_DeleteUser = userModel.F_UserCode;
  8317. cg.F_DeleteTime = DateTime.Now;
  8318. assignBLL.Update(cg);
  8319. }
  8320. #endregion
  8321. #region 插入操作记录
  8322. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8323. if (!string.IsNullOrEmpty(otherdeptids))
  8324. {
  8325. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8326. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8327. }
  8328. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8329. //推送消息表
  8330. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8331. foreach (var u in users)
  8332. {
  8333. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8334. if (!string.IsNullOrEmpty(u.F_Mobile))
  8335. {
  8336. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8337. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8338. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8339. }
  8340. if (!string.IsNullOrEmpty(u.F_Telephone))
  8341. {
  8342. var userlist = u.F_Telephone.Split(',');
  8343. if (userlist != null)
  8344. {
  8345. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8346. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8347. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8348. }
  8349. }
  8350. }
  8351. #endregion
  8352. }
  8353. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8354. //deptname += deptinfo.F_DeptName + ",";
  8355. }
  8356. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8357. var msgs = "";
  8358. if (errdeptid == "")
  8359. {
  8360. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8361. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8362. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8363. modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8364. workorderBLL.Update(modelT_Bus_WorkOrder);
  8365. msgs = userinfo + " 交办多单位,工单编号为:" + newids;
  8366. }
  8367. else
  8368. {
  8369. errdeptid = errdeptid.Trim(',');
  8370. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8371. }
  8372. #region 插入操作记录
  8373. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8374. var WorkOrder = newids.Split(',');
  8375. if (WorkOrder!=null && WorkOrder.Length >0)
  8376. {
  8377. foreach (var it in WorkOrder)
  8378. {
  8379. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8380. }
  8381. }
  8382. #endregion
  8383. }
  8384. trans.Complete();
  8385. #region
  8386. if (("," + maindeptid + ",").Contains(",304,"))
  8387. {
  8388. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8389. if(modelT_Bus_WorkOrder.F_IsProtect==1)
  8390. {
  8391. conphone = "保密";
  8392. conname= "保密";
  8393. }
  8394. rre = new ShangQiuWorkOrderController().SendToGrdding(modelT_Bus_AssignedInfo.F_Id, workorderid, modelT_Bus_WorkOrder.F_ComTitle, modelT_Bus_WorkOrder.F_ComContent, modelT_Bus_WorkOrder.F_SourceAddress, conphone, conname, modelT_Bus_WorkOrder.F_File, userModel.F_UserCode, modelT_Bus_WorkOrder.F_InfoType.Value,modelT_Bus_WorkOrder.F_Latitude.ToString(),modelT_Bus_WorkOrder.F_Longitude.ToString()).ToString();
  8395. }
  8396. #endregion
  8397. }
  8398. return Success("操作成功"+ rre, modelT_Bus_AssignedInfo.F_Id);
  8399. }
  8400. else
  8401. {
  8402. return Error("已经交办过了");
  8403. }
  8404. }
  8405. else
  8406. {
  8407. return Error("操作失败");
  8408. }
  8409. }
  8410. else
  8411. {
  8412. return Error("权限不足");
  8413. }
  8414. }
  8415. /// <summary>
  8416. /// 二次转派工单
  8417. /// </summary>
  8418. /// <returns></returns>
  8419. [Authority]
  8420. public ActionResult TurnSendWorkOrder()
  8421. {
  8422. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8423. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8424. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8425. {
  8426. string workorderid = RequestString.GetFormString("workorderid");
  8427. int state = RequestString.GetInt("state", 0);
  8428. int assignid = RequestString.GetInt("assignid", 0);
  8429. string maindeptid = RequestString.GetFormString("maindeptid");
  8430. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8431. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  8432. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8433. if (!string.IsNullOrEmpty(otherdeptids))
  8434. {
  8435. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8436. if (both.Count() > 0)
  8437. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8438. {
  8439. return Error("主办单位不能出现在协办单位");
  8440. }
  8441. }
  8442. if (limittime < DateTime.Now)
  8443. {
  8444. return Error("办理时限不能小于当前时间");
  8445. }
  8446. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8447. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8448. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8449. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8450. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  8451. string newids = ""; string errdeptid = ""; string deptname = "";
  8452. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  8453. {
  8454. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  8455. {
  8456. int aid = 0; var rre = ""; deptname = "";
  8457. using (TransactionScope trans = new TransactionScope())
  8458. {
  8459. if (deptlist.Count == 1)
  8460. {
  8461. var deptinfo = deptlist.FirstOrDefault();
  8462. deptname = deptinfo.F_DeptName;
  8463. #region 新增工单
  8464. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8465. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8466. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8467. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8468. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8469. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8470. #endregion
  8471. #region 插入交办记录
  8472. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8473. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8474. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8475. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8476. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8477. //modelT_Bus_AssignedInfo.F_LimitTime = null;//办理时间
  8478. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8479. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8480. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8481. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8482. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8483. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8484. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8485. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8486. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8487. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8488. #endregion
  8489. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8490. {
  8491. #region 保存工单信息
  8492. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8493. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8494. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8495. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8496. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8497. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8498. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8499. modelT_Bus_WorkOrder1.F_DealTime = null;
  8500. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8501. newids += ',' + modelT_Bus_WorkOrder1.F_WorkOrderId;
  8502. #endregion
  8503. #region 删除草稿信息
  8504. #endregion
  8505. #region 插入操作记录
  8506. var msgss = userinfo + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8507. if (!string.IsNullOrEmpty(otherdeptids))
  8508. {
  8509. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8510. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8511. }
  8512. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8513. //推送消息表
  8514. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8515. foreach (var u in users)
  8516. {
  8517. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8518. if (!string.IsNullOrEmpty(u.F_Mobile))
  8519. {
  8520. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8521. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8522. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8523. }
  8524. if (!string.IsNullOrEmpty(u.F_Telephone))
  8525. {
  8526. var userlist = u.F_Telephone.Split(',');
  8527. if (userlist != null)
  8528. {
  8529. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8530. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8531. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8532. }
  8533. }
  8534. }
  8535. #endregion
  8536. }
  8537. var msgss1 = userinfo + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8538. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8539. }
  8540. else
  8541. {
  8542. foreach (var deptmasinfo in deptlist)
  8543. {
  8544. deptname += deptmasinfo.F_DeptName + ",";
  8545. }
  8546. foreach (var deptinfo in deptlist)
  8547. {
  8548. //deptname += deptinfo.F_DeptName + ",";
  8549. #region 新增工单
  8550. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8551. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8552. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8553. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8554. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8555. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8556. {
  8557. errdeptid += deptinfo.F_DeptName + ",";
  8558. continue;
  8559. }
  8560. #endregion
  8561. #region 交办
  8562. #region 插入交办记录
  8563. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8564. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8565. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8566. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8567. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8568. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8569. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8570. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8571. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8572. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8573. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8574. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8575. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8576. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8577. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8578. #endregion
  8579. #endregion
  8580. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8581. {
  8582. #region 保存工单信息
  8583. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8584. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8585. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8586. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8587. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8588. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8589. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8590. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8591. #endregion
  8592. #region 删除草稿信息
  8593. #endregion
  8594. #region 插入操作记录
  8595. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8596. if (!string.IsNullOrEmpty(otherdeptids))
  8597. {
  8598. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8599. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8600. }
  8601. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8602. //推送消息表
  8603. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8604. foreach (var u in users)
  8605. {
  8606. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8607. if (!string.IsNullOrEmpty(u.F_Mobile))
  8608. {
  8609. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8610. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8611. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8612. }
  8613. if (!string.IsNullOrEmpty(u.F_Telephone))
  8614. {
  8615. var userlist = u.F_Telephone.Split(',');
  8616. if (userlist != null)
  8617. {
  8618. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8619. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8620. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8621. }
  8622. }
  8623. }
  8624. #endregion
  8625. }
  8626. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8627. }
  8628. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8629. var msgs = "";
  8630. if (errdeptid == "")
  8631. {
  8632. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8633. //modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8634. //modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8635. //modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8636. //workorderBLL.Update(modelT_Bus_WorkOrder);
  8637. msgs = userinfo + " 二次转派交办了工单,工单编号为:" + newids;
  8638. }
  8639. else
  8640. {
  8641. errdeptid = errdeptid.Trim(',');
  8642. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8643. }
  8644. #region 插入操作记录
  8645. var msgss1 = userinfo + " 二次转派交办了工单,主办单位:" + deptname;
  8646. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8647. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8648. var WorkOrder = newids.Split(',');
  8649. if (WorkOrder != null && WorkOrder.Length > 0)
  8650. {
  8651. foreach (var it in WorkOrder)
  8652. {
  8653. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, userModel.F_UserCode);
  8654. }
  8655. }
  8656. #endregion
  8657. }
  8658. trans.Complete();
  8659. #region
  8660. if (("," + maindeptid + ",").Contains(",304,"))
  8661. {
  8662. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8663. if (modelT_Bus_WorkOrder.F_IsProtect == 1)
  8664. {
  8665. conphone = "保密";
  8666. conname = "保密";
  8667. }
  8668. rre = new ShangQiuWorkOrderController().SendToGrdding(modelT_Bus_AssignedInfo.F_Id, workorderid, modelT_Bus_WorkOrder.F_ComTitle, modelT_Bus_WorkOrder.F_ComContent, modelT_Bus_WorkOrder.F_SourceAddress, conphone, conname, modelT_Bus_WorkOrder.F_File, userModel.F_UserCode, modelT_Bus_WorkOrder.F_InfoType.Value, modelT_Bus_WorkOrder.F_Latitude.ToString(), modelT_Bus_WorkOrder.F_Longitude.ToString()).ToString();
  8669. }
  8670. #endregion
  8671. }
  8672. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  8673. }
  8674. else
  8675. {
  8676. return Error("已经交办过了");
  8677. }
  8678. }
  8679. else
  8680. {
  8681. return Error("操作失败");
  8682. }
  8683. }
  8684. else
  8685. {
  8686. return Error("权限不足");
  8687. }
  8688. }
  8689. /// <summary>
  8690. /// 工单提醒
  8691. /// </summary>
  8692. /// <param name="workordercode"></param>
  8693. /// <param name="deptid"></param>
  8694. /// <param name="type"></param>
  8695. /// <returns></returns>
  8696. [HttpPost]
  8697. public ActionResult SendSms(string workordercode,string deptid,int type=0,int isfs=0)
  8698. {
  8699. if (string .IsNullOrEmpty (deptid))
  8700. return Error("请选择部门");
  8701. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8702. string msg = "";
  8703. try
  8704. {
  8705. var deptsprit = deptid.Split(',');
  8706. if (deptsprit != null)
  8707. {
  8708. foreach (var iv in deptsprit)
  8709. {
  8710. var dept = new BLL.T_Sys_Department().GetModel(int.Parse(iv));
  8711. if (dept.F_IsSms==1|| isfs==1)
  8712. {
  8713. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + iv + "and F_DeleteFlag=0");
  8714. if (user != null)
  8715. {
  8716. foreach (var it in user)
  8717. {
  8718. if (!string.IsNullOrEmpty(it.F_Mobile))
  8719. {
  8720. string count = "";
  8721. string templetid = "";
  8722. if (type == 0)
  8723. {
  8724. templetid = "43683";
  8725. count = "您有新的工单,请及时查收处理,工单编号"+ workordercode + ",(如通过手机APP登陆,若待查收中无工单,请注意查看重办中列表)" ;
  8726. }
  8727. else if (type == 1)
  8728. {
  8729. templetid = "26155";
  8730. count = "您有工单正在被督办,请及时处理,工单编号" + workordercode;
  8731. }
  8732. else if (type == 2)
  8733. {
  8734. templetid = "26154";
  8735. count = "您有紧急工单,请及时处理,工单编号" + workordercode;
  8736. }
  8737. else
  8738. {
  8739. templetid = "29265";
  8740. count = "您有工单已经超时,请尽快处理,工单编号" + workordercode;
  8741. }
  8742. // bool n = SMSController.AddSmS(userId, count, workordercode, it.F_Mobile, templetid);
  8743. // if (n == false)
  8744. msg += it.F_UserName + "发送短信失败。";
  8745. }
  8746. }
  8747. }
  8748. }
  8749. }
  8750. }
  8751. }
  8752. catch
  8753. {
  8754. return Error("发送失败");
  8755. }
  8756. if (msg != "")
  8757. return Error(msg);
  8758. else
  8759. return Success("发送成功");
  8760. return Error("暂无人员");
  8761. }
  8762. /// <summary>
  8763. /// 办理结果通知
  8764. /// </summary>
  8765. /// <param name="msg1"></param>
  8766. /// <param name="msg2"></param>
  8767. /// <param name="msg3"></param>
  8768. /// <param name="msg4"></param>
  8769. /// <param name="mobile"></param>
  8770. /// <returns></returns>
  8771. public ActionResult SmsHand(string msg1 , string msg2 , string msg3,string msg4,string mobile)
  8772. {
  8773. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8774. string msg = msg1+","+ msg2 + "," + msg3 + "," + msg4;
  8775. string count = "尊敬的市民,您于" + msg1 + "反映的" + msg2 + "问题,工单号:" + msg3 + ",处理结果如下:" + msg4 + "。如有异议,请您再次致电12345,感谢您的支持。";
  8776. // bool n = SMSController.AddSmS(userId, count, msg, mobile, "26213");
  8777. // if (n)
  8778. return Success("发送成功");
  8779. // else
  8780. // return Error ("发送失败");
  8781. }
  8782. public ActionResult SmsOverTime(int Sms=0)
  8783. {
  8784. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  8785. workorder = new BLL.T_Bus_WorkOrder().GetModelList("F_IsDelete=0 and F_WorkState in (2,4) and (F_IsSms<"+ 3 + " or F_IsSms is null)");
  8786. if (workorder != null&& workorder.Count >0)
  8787. {
  8788. foreach (var it in workorder)
  8789. {
  8790. System.TimeSpan time = DateTime.Parse(it.F_LimitTime.ToString()) - DateTime.Now ;
  8791. if (time.TotalHours <= -24)
  8792. {
  8793. int ivn = int.Parse(string.Format("{0:f0}", time.TotalHours / 24));
  8794. if ((ivn + 2) > it.F_IsSms)
  8795. {
  8796. if (it.F_IsSms < 3 )
  8797. {
  8798. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8799. if (user != null)
  8800. {
  8801. foreach (var iv in user)
  8802. {
  8803. msg.AddInternalMessagesInfo("催单消息", "您有工单已超期"+string .Format ("{0:f0}", ivn*24) +"小时,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8804. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8805. {
  8806. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8807. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  8808. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  8809. bool n = new SMSController().AddSmS(833962, 0, count, mag, iv.F_Mobile);
  8810. it.F_IsSms = ivn + 2;
  8811. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8812. }
  8813. if (!string.IsNullOrEmpty(iv.F_Telephone))
  8814. {
  8815. var userlist = iv.F_Telephone.Split(',');
  8816. if (userlist != null)
  8817. {
  8818. foreach (var io in userlist)
  8819. {
  8820. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  8821. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  8822. bool n = new SMSController().AddSmS(833962, 0, count, mag, io);
  8823. it.F_IsSms = ivn + 2;
  8824. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8825. }
  8826. }
  8827. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8828. }
  8829. }
  8830. }
  8831. }
  8832. }
  8833. }
  8834. else if (time.TotalHours <= 1)
  8835. {
  8836. if (it.F_IsSms < 2 )
  8837. {
  8838. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8839. if (user != null)
  8840. {
  8841. foreach (var iv in user)
  8842. {
  8843. msg.AddInternalMessagesInfo("催单消息", "您有工单1小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8844. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8845. {
  8846. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  8847. string[] mag = { it.F_WorkOrderId+ ",1" };
  8848. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  8849. it.F_IsSms = 2;
  8850. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8851. }
  8852. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  8853. {
  8854. var userlist = iv.F_Telephone.Split(',');
  8855. if (userlist != null)
  8856. {
  8857. foreach (var io in userlist)
  8858. {
  8859. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  8860. string[] mag = { it.F_WorkOrderId + ",1" };
  8861. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  8862. it.F_IsSms = 2;
  8863. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8864. }
  8865. }
  8866. }
  8867. }
  8868. }
  8869. }
  8870. }
  8871. else if (time.TotalHours <= 4)
  8872. {
  8873. if (it.F_IsSms < 1 )
  8874. {
  8875. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8876. if (user != null)
  8877. {
  8878. foreach (var iv in user)
  8879. {
  8880. msg.AddInternalMessagesInfo("催单消息", "您有工单4小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8881. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8882. {
  8883. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  8884. string[] mag = { it.F_WorkOrderId + ",4" };
  8885. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  8886. it.F_IsSms = 1;
  8887. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8888. }
  8889. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  8890. {
  8891. var userlist = iv.F_Telephone.Split(',');
  8892. if (userlist != null)
  8893. {
  8894. foreach (var io in userlist)
  8895. {
  8896. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  8897. string[] mag = { it.F_WorkOrderId + ",4" };
  8898. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  8899. it.F_IsSms = 1;
  8900. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8901. }
  8902. }
  8903. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8904. }
  8905. }
  8906. }
  8907. }
  8908. }
  8909. }
  8910. }
  8911. return Success("发送成功");
  8912. }
  8913. /// <summary>
  8914. /// 市长办使用人员可以对需要催办的转办件进行短信催办或系统催办系统 20220315
  8915. /// </summary>
  8916. /// <param name="woid"></param>
  8917. /// <returns></returns>
  8918. public ActionResult Reminders(string workorderid)
  8919. {
  8920. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8921. //int userId = 133;
  8922. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8923. if (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "ZXLD")
  8924. {
  8925. //string workorderid = RequestString.GetFormString("workorderid");
  8926. var womodel = workorderBLL.GetModel(workorderid);
  8927. var assignmodel = assignBLL.GetNewModelByWorkOrderID(workorderid);
  8928. if (womodel != null && assignmodel != null)
  8929. {
  8930. if (assignmodel.F_IsNext == 1 || assignmodel.F_IsNext == 2)
  8931. {
  8932. Model.T_Bus_AssignedInfo_Next assign_next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  8933. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + (assign_next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  8934. if (user != null)
  8935. {
  8936. foreach (var item in user)
  8937. {
  8938. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  8939. if (!string.IsNullOrEmpty(item.F_Mobile))
  8940. {
  8941. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8942. string[] mag = { womodel.F_WorkOrderId };
  8943. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  8944. }
  8945. if (!string.IsNullOrEmpty(item.F_Telephone))
  8946. {
  8947. var phonlist = item.F_Telephone.Split(',');
  8948. if (phonlist.Count() > 0)
  8949. {
  8950. foreach (var phon in phonlist)
  8951. {
  8952. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8953. string[] mag = { womodel.F_WorkOrderId };
  8954. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  8955. }
  8956. }
  8957. }
  8958. }
  8959. womodel.ReminderNum += 1;
  8960. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  8961. }
  8962. }
  8963. else
  8964. {
  8965. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + womodel.F_MainDeptId ?? 0 + " and F_DeleteFlag=0");
  8966. if (user != null)
  8967. {
  8968. foreach (var item in user)
  8969. {
  8970. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  8971. if (!string.IsNullOrEmpty(item.F_Mobile))
  8972. {
  8973. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8974. string[] mag = { womodel.F_WorkOrderId };
  8975. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  8976. }
  8977. if (!string.IsNullOrEmpty(item.F_Telephone))
  8978. {
  8979. var phonlist = item.F_Telephone.Split(',');
  8980. if (phonlist.Count() > 0)
  8981. {
  8982. foreach (var phon in phonlist)
  8983. {
  8984. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8985. string[] mag = { womodel.F_WorkOrderId };
  8986. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  8987. }
  8988. }
  8989. }
  8990. }
  8991. womodel.ReminderNum += 1;
  8992. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  8993. }
  8994. }
  8995. return Success("催单成功!");
  8996. }
  8997. else return Error("操作失败");
  8998. }
  8999. else
  9000. return Error("权限不足!");
  9001. }
  9002. /// <summary>
  9003. /// 收回工单
  9004. /// </summary>
  9005. /// <returns></returns>
  9006. [Authority]
  9007. public ActionResult TakeBackWorkOrder()
  9008. {
  9009. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9010. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9011. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9012. {
  9013. string workorderid = RequestString.GetFormString("workorderid");
  9014. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9015. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9016. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  9017. {
  9018. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9019. {
  9020. return Error("操作失败");
  9021. }
  9022. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  9023. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  9024. {
  9025. using (TransactionScope trans = new TransactionScope())
  9026. {
  9027. #region 插入交办记录
  9028. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9029. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9030. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9031. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9032. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9033. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9034. AssignedInfo.F_State = 0;//0草稿 1正式
  9035. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9036. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9037. AssignedInfo.F_IsDelete = 0;
  9038. AssignedInfo.F_IsOverdue = 0;
  9039. AssignedInfo.F_IsSure = 0;
  9040. AssignedInfo.F_IsReload = 0;
  9041. AssignedInfo.F_IsNext = 0;
  9042. assignBLL.Add(AssignedInfo);
  9043. #endregion
  9044. #region 保存工单信息
  9045. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9046. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9047. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9048. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  9049. workorderBLL.Update(modelT_Bus_WorkOrder);
  9050. #endregion
  9051. #region 删除交办信息
  9052. modelT_Bus_AssignedInfo.F_State = 0;
  9053. assignBLL.Update(modelT_Bus_AssignedInfo);
  9054. #endregion
  9055. #region 删除派单信息
  9056. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9057. foreach (var cg in pdlist)
  9058. {
  9059. //cg.F_IsDelete = 1;
  9060. //cg.F_DeleteUser = userModel.F_UserCode;
  9061. //cg.F_DeleteTime = DateTime.Now;
  9062. cg.F_State = 0;
  9063. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  9064. }
  9065. #endregion
  9066. #region 删除二级单位处理信息
  9067. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9068. foreach (var cg in cglist)
  9069. {
  9070. // cg.F_IsDelete = 1;
  9071. // cg.F_DeleteUser = userModel.F_UserCode;
  9072. // cg.F_DeleteTime = DateTime.Now;
  9073. cg.F_State = 0;
  9074. new BLL.T_Bus_Feedback_Next().Update(cg);
  9075. }
  9076. #endregion
  9077. #region 插入操作记录
  9078. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9079. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9080. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9081. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9082. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9083. oper.F_Message = userinfo + " 收回了工单";
  9084. oper.F_CreateUser = userModel.F_UserCode;
  9085. oper.F_CreateTime = DateTime.Now;
  9086. oper.F_IsDelete = 0;
  9087. operBLL.Add(oper);
  9088. #endregion
  9089. trans.Complete();
  9090. }
  9091. return Success("操作成功");
  9092. }
  9093. else
  9094. {
  9095. return Error("单位已查收,不能收回");
  9096. }
  9097. }
  9098. else
  9099. {
  9100. return Error("操作失败");
  9101. }
  9102. }
  9103. else
  9104. {
  9105. return Error("权限不足");
  9106. }
  9107. }
  9108. /// <summary>
  9109. /// 查收工单
  9110. /// </summary>
  9111. /// <returns></returns>
  9112. [Authority]
  9113. public ActionResult ReceiveWorkOrder()
  9114. {
  9115. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9116. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9117. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9118. {
  9119. string workorderid = RequestString.GetFormString("workorderid");
  9120. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9121. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9122. //操作前新增判断状态
  9123. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9124. 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 == userModel.F_DeptId || userModel.F_RoleCode == "GLY"))
  9125. {
  9126. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  9127. {
  9128. using (TransactionScope trans = new TransactionScope())
  9129. {
  9130. #region 保存工单信息
  9131. modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9132. workorderBLL.Update(modelT_Bus_WorkOrder);
  9133. #endregion
  9134. #region 保存查收信息
  9135. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  9136. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9137. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9138. assignBLL.Update(modelT_Bus_AssignedInfo);
  9139. #endregion
  9140. #region 保存明细信息
  9141. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  9142. {
  9143. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  9144. foreach (string strid in strids)
  9145. {
  9146. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  9147. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9148. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  9149. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  9150. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9151. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  9152. modelT_Bus_AssignedItemInfo.F_State = 1;
  9153. modelT_Bus_AssignedItemInfo.F_Type = 2;
  9154. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  9155. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  9156. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  9157. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  9158. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  9159. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  9160. }
  9161. }
  9162. #endregion
  9163. #region 插入操作记录
  9164. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9165. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9166. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9167. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9168. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9169. oper.F_Message = userinfo + " 查收了工单";
  9170. oper.F_CreateUser = userModel.F_UserCode;
  9171. oper.F_CreateTime = DateTime.Now;
  9172. oper.F_IsDelete = 0;
  9173. operBLL.Add(oper);
  9174. #endregion
  9175. trans.Complete();
  9176. }
  9177. return Success("操作成功");
  9178. }
  9179. else
  9180. {
  9181. return Error("单位已查收,不能再次查收");
  9182. }
  9183. }
  9184. else
  9185. {
  9186. return Error("操作失败");
  9187. }
  9188. }
  9189. else
  9190. {
  9191. return Error("权限不足");
  9192. }
  9193. }
  9194. /// <summary>
  9195. /// 退回工单
  9196. /// </summary>
  9197. /// <returns></returns>
  9198. [Authority]
  9199. public ActionResult RebackWorkOrder()
  9200. {
  9201. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9202. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9203. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9204. {
  9205. string workorderid = RequestString.GetFormString("workorderid");
  9206. string backreason = RequestString.GetFormString("backreason");
  9207. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9208. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9209. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9210. {
  9211. if (modelT_Bus_AssignedInfo.F_IsSure == 0|| modelT_Bus_AssignedInfo.F_IsSure == 1)
  9212. {
  9213. using (TransactionScope trans = new TransactionScope())
  9214. {
  9215. #region 保存工单信息
  9216. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  9217. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  9218. workorderBLL.Update(modelT_Bus_WorkOrder);
  9219. #endregion
  9220. #region 插入退回申请信息
  9221. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  9222. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9223. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9224. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  9225. model_T_Bus_Feedback.F_IsAudit = 0;
  9226. model_T_Bus_Feedback.F_IsDelete = 0;
  9227. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  9228. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  9229. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  9230. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  9231. model_T_Bus_Feedback.F_State = 1;
  9232. model_T_Bus_Feedback.F_Type = 3;
  9233. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  9234. #endregion
  9235. #region 保存交办信息
  9236. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  9237. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9238. //{
  9239. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  9240. //}
  9241. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  9242. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9243. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9244. assignBLL.Update(modelT_Bus_AssignedInfo);
  9245. #endregion
  9246. #region 插入操作记录
  9247. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9248. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9249. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9250. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9251. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9252. oper.F_Message = userinfo + " 申请退回了工单";
  9253. oper.F_CreateUser = userModel.F_UserCode;
  9254. oper.F_CreateTime = DateTime.Now;
  9255. oper.F_IsDelete = 0;
  9256. operBLL.Add(oper);
  9257. //推送消息表
  9258. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9259. #endregion
  9260. trans.Complete();
  9261. }
  9262. return Success("操作成功");
  9263. }
  9264. else
  9265. {
  9266. return Error("单位已查收,不能退回");
  9267. }
  9268. }
  9269. else
  9270. {
  9271. return Error("操作失败");
  9272. }
  9273. }
  9274. else
  9275. {
  9276. return Error("权限不足");
  9277. }
  9278. }
  9279. /// <summary>
  9280. /// 审核退回工单
  9281. /// </summary>
  9282. /// <returns></returns>
  9283. [Authority]
  9284. public ActionResult AuditRebackWorkOrder()
  9285. {
  9286. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9287. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9288. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9289. {
  9290. string workorderid = RequestString.GetFormString("workorderid");
  9291. int state = RequestString.GetInt("state", 0);
  9292. string reason = RequestString.GetFormString("reason");
  9293. int rebackid = RequestString.GetInt("rebackid", 0);
  9294. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9295. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  9296. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9297. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  9298. {
  9299. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9300. {
  9301. return Error("操作失败");
  9302. }
  9303. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  9304. {
  9305. using (TransactionScope trans = new TransactionScope())
  9306. {
  9307. var rre = "";
  9308. #region 保存查收信息
  9309. modelT_Bus_Feedback.F_IsAudit = state;//审核
  9310. modelT_Bus_Feedback.F_AuditUser = userModel.F_UserCode;
  9311. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  9312. modelT_Bus_Feedback.F_AuditReason = reason;
  9313. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  9314. #endregion
  9315. string strmsg = "同意";
  9316. if (modelT_Bus_Feedback.F_IsAudit == 1)
  9317. {
  9318. #region 插入交办记录
  9319. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9320. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9321. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9322. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9323. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9324. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9325. AssignedInfo.F_State = 0;//0草稿 1正式
  9326. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9327. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9328. AssignedInfo.F_IsDelete = 0;
  9329. AssignedInfo.F_IsOverdue = 0;
  9330. AssignedInfo.F_IsSure = 0;
  9331. AssignedInfo.F_IsNext = 0;
  9332. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  9333. assignBLL.Add(AssignedInfo);
  9334. #endregion
  9335. #region 保存交办信息
  9336. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  9337. assignBLL.Update(modelT_Bus_AssignedInfo);
  9338. #endregion
  9339. #region 保存工单信息
  9340. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9341. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9342. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9343. workorderBLL.Update(modelT_Bus_WorkOrder);
  9344. #endregion
  9345. }
  9346. else
  9347. {
  9348. #region 保存工单信息
  9349. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9350. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9351. workorderBLL.Update(modelT_Bus_WorkOrder);
  9352. #endregion
  9353. #region 保存交办信息
  9354. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  9355. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9356. modelT_Bus_AssignedInfo.F_SureUser = "";
  9357. modelT_Bus_AssignedInfo.F_SureTime = null;
  9358. assignBLL.Update(modelT_Bus_AssignedInfo);
  9359. #endregion
  9360. strmsg = "拒绝";
  9361. }
  9362. #region 插入操作记录
  9363. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9364. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9365. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9366. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9367. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9368. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  9369. oper.F_CreateUser = userModel.F_UserCode;
  9370. oper.F_CreateTime = DateTime.Now;
  9371. oper.F_IsDelete = 0;
  9372. operBLL.Add(oper);
  9373. //推送消息表
  9374. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9375. #endregion
  9376. if (modelT_Bus_AssignedInfo.F_MainDeptId==304)
  9377. {
  9378. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(),reason,userModel.F_UserCode).ToString();
  9379. }
  9380. trans.Complete();
  9381. }
  9382. return Success("操作成功");
  9383. }
  9384. else
  9385. {
  9386. return Error("此审核已经处理");
  9387. }
  9388. }
  9389. else
  9390. {
  9391. return Error("操作失败");
  9392. }
  9393. }
  9394. else
  9395. {
  9396. return Error("权限不足");
  9397. }
  9398. }
  9399. /// <summary>
  9400. /// 申请延时
  9401. /// </summary>
  9402. /// <returns></returns>
  9403. [Authority]
  9404. public ActionResult DelayWorkOrder()
  9405. {
  9406. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9407. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9408. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9409. {
  9410. string workorderid = RequestString.GetFormString("workorderid");
  9411. //int state = RequestString.GetInt("state", 0);
  9412. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9413. string reason = RequestString.GetFormString("reason");
  9414. string files = RequestString.GetFormString("files");
  9415. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9416. #region 获取办理时间的时分秒
  9417. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9418. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9419. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9420. string newhms = " ";
  9421. newhms += h + ":";
  9422. newhms += m + ":";
  9423. newhms += s;
  9424. #endregion
  9425. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9426. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9427. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9428. {
  9429. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  9430. {
  9431. using (TransactionScope trans = new TransactionScope())
  9432. {
  9433. if (userModel.F_RoleCode == "WLDW")
  9434. {
  9435. if (userModel.F_DeptId > 0)
  9436. {
  9437. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  9438. if (dept != null)
  9439. {
  9440. if (dept.F_ExtensionTime!=null )
  9441. {
  9442. if (((DateTime)dept.F_ExtensionTime).Month == DateTime.Now.Month
  9443. && ((DateTime)dept.F_ExtensionTime).Year == DateTime.Now.Year)
  9444. {
  9445. if (dept.F_DelayTimes < 3)
  9446. {
  9447. dept.F_DelayTimes += 1;
  9448. dept.F_ExtensionTime = DateTime.Now;
  9449. bool n = new BLL.T_Sys_Department().Update(dept);
  9450. }
  9451. else
  9452. return Error("本单位本月申请延时已达三次");
  9453. }
  9454. else
  9455. {
  9456. dept.F_DelayTimes = 1;
  9457. dept.F_ExtensionTime = DateTime.Now;
  9458. bool n = new BLL.T_Sys_Department().Update(dept);
  9459. }
  9460. }
  9461. else
  9462. {
  9463. dept.F_DelayTimes = 1;
  9464. dept.F_ExtensionTime = DateTime.Now;
  9465. bool n = new BLL.T_Sys_Department().Update(dept);
  9466. }
  9467. }
  9468. }
  9469. }
  9470. #region 保存工单信息
  9471. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  9472. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  9473. workorderBLL.Update(modelT_Bus_WorkOrder);
  9474. #endregion
  9475. #region 插入申请延时信息
  9476. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  9477. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9478. //delay.F_State = state;
  9479. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9480. delay.F_NewTime = newlimittime;
  9481. delay.F_Reason = reason;
  9482. delay.F_State = 1;
  9483. delay.F_IsAudit = 0;
  9484. delay.F_IsDelete = 0;
  9485. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9486. delay.F_CreateUser = userModel.F_UserCode;
  9487. delay.F_CreateTime = DateTime.Now;
  9488. delay.F_File = files;
  9489. new BLL.T_Bus_DelayTime().Add(delay);
  9490. #endregion
  9491. #region 插入操作记录
  9492. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9493. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9494. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9495. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9496. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9497. oper.F_Message = userinfo + " 申请了延时处理";
  9498. oper.F_CreateUser = userModel.F_UserCode;
  9499. oper.F_CreateTime = DateTime.Now;
  9500. oper.F_IsDelete = 0;
  9501. operBLL.Add(oper);
  9502. //推送消息表
  9503. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9504. #endregion
  9505. trans.Complete();
  9506. }
  9507. return Success("操作成功");
  9508. }
  9509. else
  9510. {
  9511. return Error("操作失敗,已查收");
  9512. }
  9513. }
  9514. else
  9515. {
  9516. return Error("操作失败");
  9517. }
  9518. }
  9519. else
  9520. {
  9521. return Error("权限不足");
  9522. }
  9523. }
  9524. /// <summary>
  9525. /// 审核延时工单
  9526. /// </summary>
  9527. /// <returns></returns>
  9528. [Authority]
  9529. public ActionResult AuditDelayWorkOrder()
  9530. {
  9531. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9532. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9533. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9534. {
  9535. string workorderid = RequestString.GetFormString("workorderid");
  9536. int state = RequestString.GetInt("state", 0);
  9537. string reason = RequestString.GetFormString("reason");
  9538. int delayid = RequestString.GetInt("delayid", 0);
  9539. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9540. #region 获取办理时间的时分秒
  9541. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9542. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9543. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9544. string newhms = " ";
  9545. newhms += h + ":";
  9546. newhms += m + ":";
  9547. newhms += s;
  9548. #endregion
  9549. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9550. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  9551. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9552. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9553. {
  9554. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9555. //{
  9556. // return Error("操作失败");
  9557. //}
  9558. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9559. {
  9560. using (TransactionScope trans = new TransactionScope())
  9561. {
  9562. #region 保存工单信息
  9563. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9564. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9565. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9566. if (modelT_Bus_WorkOrder.F_Scanning!=null )
  9567. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9568. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9569. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9570. workorderBLL.Update(modelT_Bus_WorkOrder);
  9571. #endregion
  9572. #region 保存审核信息
  9573. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  9574. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  9575. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  9576. modelT_Bus_DelayTime.F_RefuseReason = reason;
  9577. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  9578. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  9579. #endregion
  9580. string type = "同意"; string des = "";
  9581. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9582. {
  9583. #region 修改交办记录
  9584. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9585. assignBLL.Update(modelT_Bus_AssignedInfo);
  9586. #endregion
  9587. #region 处理协办单位
  9588. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9589. foreach (var xb in xblist)
  9590. {
  9591. //xb.F_LimitTime = DateTime.Now;
  9592. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9593. assignItemBLL.Update(xb);
  9594. }
  9595. #endregion
  9596. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  9597. }
  9598. else
  9599. {
  9600. type = "拒绝";
  9601. }
  9602. #region 插入操作记录
  9603. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9604. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9605. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9606. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9607. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9608. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  9609. oper.F_CreateUser = userModel.F_UserCode;
  9610. oper.F_CreateTime = DateTime.Now;
  9611. oper.F_IsDelete = 0;
  9612. operBLL.Add(oper);
  9613. //推送消息表
  9614. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9615. #endregion
  9616. trans.Complete();
  9617. }
  9618. return Success("操作成功");
  9619. }
  9620. else
  9621. {
  9622. return Error("此审核已经处理");
  9623. }
  9624. }
  9625. else
  9626. {
  9627. return Error("操作失败");
  9628. }
  9629. }
  9630. else
  9631. {
  9632. return Error("权限不足");
  9633. }
  9634. }
  9635. /// <summary>
  9636. /// 批量审核延时
  9637. /// </summary>
  9638. /// <param name="ids"></param>
  9639. /// <returns></returns>
  9640. [Authority]
  9641. public ActionResult AuditDelayWorkOrderBatch(string ids)
  9642. {
  9643. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9644. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9645. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9646. {
  9647. int state = RequestString.GetInt("state", 0);
  9648. string reason = RequestString.GetFormString("reason");
  9649. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9650. string errids = "";string errids1 = "";
  9651. if (!string.IsNullOrEmpty(ids))
  9652. {
  9653. string[] strids = ids.Split(',');
  9654. foreach (string str in strids)
  9655. {
  9656. using (TransactionScope trans = new TransactionScope())
  9657. {
  9658. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  9659. #region 获取办理时间的时分秒
  9660. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9661. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9662. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9663. string newhms = " ";
  9664. newhms += h + ":";
  9665. newhms += m + ":";
  9666. newhms += s;
  9667. #endregion
  9668. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9669. 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();
  9670. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  9671. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9672. {
  9673. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9674. //{
  9675. // errids += str + ",";
  9676. // continue;
  9677. //}
  9678. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9679. {
  9680. #region 保存工单信息
  9681. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9682. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9683. if (modelT_Bus_WorkOrder.F_Scanning != null)
  9684. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9685. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9686. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9687. workorderBLL.Update(modelT_Bus_WorkOrder);
  9688. #endregion
  9689. #region 保存审核信息
  9690. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  9691. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  9692. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  9693. modelT_Bus_DelayTime.F_RefuseReason = reason;
  9694. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  9695. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  9696. #endregion
  9697. string type = "同意"; string des = "";
  9698. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9699. {
  9700. #region 修改交办记录
  9701. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9702. assignBLL.Update(modelT_Bus_AssignedInfo);
  9703. #endregion
  9704. #region 处理协办单位
  9705. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9706. foreach (var xb in xblist)
  9707. {
  9708. //xb.F_LimitTime = DateTime.Now;
  9709. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9710. assignItemBLL.Update(xb);
  9711. }
  9712. #endregion
  9713. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  9714. }
  9715. else
  9716. {
  9717. type = "拒绝";
  9718. }
  9719. #region 插入操作记录
  9720. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9721. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9722. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9723. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9724. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9725. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  9726. oper.F_CreateUser = userModel.F_UserCode;
  9727. oper.F_CreateTime = DateTime.Now;
  9728. oper.F_IsDelete = 0;
  9729. operBLL.Add(oper);
  9730. //推送消息表
  9731. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9732. #endregion
  9733. }
  9734. else
  9735. errids1 += str + ",";
  9736. }
  9737. trans.Complete();
  9738. }
  9739. }
  9740. if (errids1 != "" && errids != "")
  9741. return Success("操作成功");
  9742. else
  9743. {
  9744. string msg = "";
  9745. if (errids1 != "")
  9746. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  9747. if(errids!="")
  9748. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  9749. return Error("部分工单操作失败"+ msg);
  9750. }
  9751. }
  9752. else
  9753. {
  9754. return Error("参数获取失败");
  9755. }
  9756. }
  9757. else
  9758. {
  9759. return Error("权限不足");
  9760. }
  9761. }
  9762. /// <summary>
  9763. /// 修改扫描件
  9764. /// </summary>
  9765. /// <returns></returns>
  9766. [Authority]
  9767. public ActionResult UpdateFiles()
  9768. {
  9769. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9770. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9771. string workorderid = RequestString.GetFormString("workorderid");
  9772. string files = RequestString.GetFormString("files");
  9773. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9774. if (modelT_Bus_WorkOrder != null)
  9775. {
  9776. modelT_Bus_WorkOrder.F_Files = files;
  9777. if (modelT_Bus_WorkOrder.IsExport == 1)
  9778. {
  9779. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  9780. }
  9781. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9782. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9783. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9784. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9785. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9786. oper.F_Message = userinfo + "修改了扫描件 ";
  9787. oper.F_CreateUser = userModel.F_UserCode;
  9788. oper.F_CreateTime = DateTime.Now;
  9789. oper.F_IsDelete = 0;
  9790. operBLL.Add(oper);
  9791. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  9792. {
  9793. return Success("修改成功");
  9794. }
  9795. else
  9796. return Error("修改失败");
  9797. }
  9798. else
  9799. return Error("工单不存在");
  9800. }
  9801. /// <summary>
  9802. /// 批量上传附件
  9803. /// </summary>
  9804. /// <param name="ids"></param>
  9805. /// <returns></returns>
  9806. [Authority]
  9807. public ActionResult AddFiles()
  9808. {
  9809. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9810. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9811. string workorderid = RequestString.GetFormString("workorderid");
  9812. string files = RequestString.GetFormString("files");
  9813. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9814. if (modelT_Bus_WorkOrder != null)
  9815. {
  9816. if (string .IsNullOrEmpty (files))
  9817. return Error("请上传附件");
  9818. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Files))
  9819. modelT_Bus_WorkOrder.F_Files = files;
  9820. else
  9821. modelT_Bus_WorkOrder.F_Files = modelT_Bus_WorkOrder.F_Files + "," + files;
  9822. if(modelT_Bus_WorkOrder .IsExport ==1)
  9823. {
  9824. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  9825. }
  9826. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9827. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9828. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9829. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9830. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9831. oper.F_Message = userinfo + "上传了扫描件 ";
  9832. oper.F_CreateUser = userModel.F_UserCode;
  9833. oper.F_CreateTime = DateTime.Now;
  9834. oper.F_IsDelete = 0;
  9835. operBLL.Add(oper);
  9836. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  9837. {
  9838. return Success ("上传成功");
  9839. }
  9840. else
  9841. return Error("上传失败");
  9842. }
  9843. else
  9844. return Error("工单不存在");
  9845. }
  9846. /// <summary>
  9847. /// 办理工单
  9848. /// </summary>
  9849. /// <returns></returns>
  9850. [Authority]
  9851. public ActionResult FeedBackWorkOrder()
  9852. {
  9853. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9854. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9855. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9856. {
  9857. string workorderid = RequestString.GetFormString("workorderid");
  9858. string dealman = RequestString.GetFormString("dealman");
  9859. string result = RequestString.GetFormString("result");
  9860. string files = RequestString.GetFormString("files");
  9861. int state = RequestString.GetInt("state", 0);
  9862. int feedbackid = RequestString.GetInt("feedbackid", 0);
  9863. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  9864. string prosituation = RequestString.GetFormString("prosituation");
  9865. string dealcontact = RequestString.GetFormString("dealcontact");
  9866. string connecttime=RequestString.GetFormString("connecttime");
  9867. string connectmode = RequestString.GetFormString("connectmode");
  9868. string replycontent = RequestString.GetFormString("replycontent");
  9869. int isstaisfied= RequestString.GetInt("isstaisfied", 0);
  9870. string duties= RequestString.GetFormString("duties");
  9871. string situation = RequestString.GetFormString("situation");
  9872. string post = RequestString.GetFormString("post");
  9873. string contact = RequestString.GetFormString("contact");
  9874. string liable = RequestString.GetFormString("liable");
  9875. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9876. string visituser = RequestString.GetFormString("visituser");//回访人
  9877. int types = RequestString.GetInt("type", 0);//回访方式
  9878. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意2基本满意
  9879. int states = RequestString.GetInt("states", 0);//0保存 1保存并下一步
  9880. int visitid = RequestString.GetInt("visitid", 0);
  9881. string results = RequestString.GetFormString("results");//回访情况
  9882. int nexttype = RequestString.GetInt("nexttype", 2);//1重办 2结案
  9883. int ishf = RequestString.GetInt("ishf", 0);//是否回访0否1是
  9884. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  9885. // string callid = RequestString.GetFormString("callid");
  9886. string guid = RequestString.GetFormString("guid");
  9887. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY")
  9888. {
  9889. if (maindeptid<=0)
  9890. {
  9891. return Error("请输入办理单位");
  9892. }
  9893. }
  9894. else
  9895. {
  9896. maindeptid = userModel.F_DeptId;
  9897. }
  9898. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9899. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9900. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  9901. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  9902. int type = 1;
  9903. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  9904. {
  9905. // type = AssignDeptType(modelT_Bus_AssignedInfo, maindeptid);
  9906. if (type > 0)
  9907. {
  9908. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  9909. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  9910. {
  9911. using (TransactionScope trans = new TransactionScope())
  9912. {
  9913. if (feedbackid == 0)
  9914. {
  9915. #region 插入反馈记录
  9916. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9917. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9918. modelT_Bus_Feedback.F_DealUser = dealman;
  9919. modelT_Bus_Feedback.F_Result = result;//反馈内容
  9920. #region 20200114新增字段 zhengbingbing
  9921. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  9922. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  9923. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  9924. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  9925. DateTime contime = DateTime.Now;
  9926. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  9927. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  9928. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  9929. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  9930. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  9931. modelT_Bus_Feedback.F_Duties = duties;//职务
  9932. modelT_Bus_Feedback.F_Situation = situation;
  9933. #endregion
  9934. modelT_Bus_Feedback.F_File = files;
  9935. modelT_Bus_Feedback.F_IsAudit = 0;
  9936. modelT_Bus_Feedback.F_IsDelete = 0;
  9937. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  9938. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  9939. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  9940. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  9941. modelT_Bus_Feedback.F_State = state;
  9942. modelT_Bus_Feedback.F_Type = type;
  9943. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  9944. #endregion
  9945. }
  9946. else
  9947. {
  9948. #region 修改反馈记录
  9949. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  9950. if (modelT_Bus_Feedback != null)
  9951. {
  9952. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9953. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9954. modelT_Bus_Feedback.F_DealUser = dealman;
  9955. modelT_Bus_Feedback.F_Result = result;//反馈内容
  9956. modelT_Bus_Feedback.F_File = files;
  9957. #region 20200114新增字段 zhengbingbing
  9958. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  9959. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  9960. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  9961. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  9962. DateTime contime = DateTime.Now;
  9963. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  9964. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  9965. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  9966. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  9967. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  9968. modelT_Bus_Feedback.F_Duties = duties;//职务
  9969. modelT_Bus_Feedback.F_Situation = situation;
  9970. #endregion
  9971. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  9972. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  9973. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  9974. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  9975. modelT_Bus_Feedback.F_State = state;
  9976. if (modelT_Bus_AssignedInfo.F_MainDeptId == maindeptid)
  9977. {
  9978. modelT_Bus_Feedback.F_Type = 1;
  9979. }
  9980. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(maindeptid.ToString()))
  9981. {
  9982. modelT_Bus_Feedback.F_Type = 2;
  9983. }
  9984. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  9985. }
  9986. #endregion
  9987. }
  9988. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  9989. {
  9990. string typemsg = "办理";
  9991. if (type == 1)
  9992. {
  9993. int iscs = 0;
  9994. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9995. {
  9996. iscs = 1;
  9997. }
  9998. #region 保存工单信息
  9999. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  10000. modelT_Bus_WorkOrder.F_WorkState =7;//待回访
  10001. modelT_Bus_WorkOrder.F_Result = result;
  10002. modelT_Bus_WorkOrder.F_DealDeptId = maindeptid;
  10003. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  10004. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10005. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  10006. modelT_Bus_WorkOrder.F_Post = post;//职务
  10007. modelT_Bus_WorkOrder.F_Contact = contact ;//联系方式
  10008. modelT_Bus_WorkOrder.F_Liable =liable ;
  10009. workorderBLL.Update(modelT_Bus_WorkOrder);
  10010. #endregion
  10011. #region 保存交办信息
  10012. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  10013. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10014. {
  10015. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10016. }
  10017. assignBLL.Update(modelT_Bus_AssignedInfo);
  10018. #endregion
  10019. #region 删除草稿信息
  10020. 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='" + maindeptid + "'");
  10021. foreach (var cg in cglist)
  10022. {
  10023. cg.F_IsDelete = 1;
  10024. cg.F_DeleteUser = userModel.F_UserCode;
  10025. cg.F_DeleteTime = DateTime.Now;
  10026. new BLL.T_Bus_Feedback().Update(cg);
  10027. }
  10028. #endregion
  10029. #region 删除二级单位未办理信息
  10030. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10031. foreach (var ej in ejlist)
  10032. {
  10033. ej.F_IsDelete = 1;
  10034. ej.F_DeleteUser = userModel.F_UserCode;
  10035. ej.F_DeleteTime = DateTime.Now;
  10036. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  10037. }
  10038. #endregion
  10039. #region 处理协办单位
  10040. 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 + "'");
  10041. foreach (var xb in xblist)
  10042. {
  10043. xb.F_State = 2;
  10044. xb.F_SureUser = userModel.F_UserCode;
  10045. xb.F_SureTime = DateTime.Now;
  10046. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  10047. }
  10048. #endregion
  10049. typemsg = "主办";
  10050. }
  10051. else if (type == 2)
  10052. {
  10053. #region 保存明细信息
  10054. 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='" + maindeptid + "'").FirstOrDefault();
  10055. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  10056. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  10057. {
  10058. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  10059. }
  10060. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  10061. #endregion
  10062. #region 删除草稿信息
  10063. 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='" + maindeptid + "'");
  10064. foreach (var cg in cglist)
  10065. {
  10066. cg.F_IsDelete = 1;
  10067. cg.F_DeleteUser = userModel.F_UserCode;
  10068. cg.F_DeleteTime = DateTime.Now;
  10069. new BLL.T_Bus_Feedback().Update(cg);
  10070. }
  10071. #endregion
  10072. typemsg = "协办";
  10073. }
  10074. #region 插入操作记录
  10075. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10076. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10077. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10078. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10079. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10080. oper.F_Message = userinfo + " " + typemsg + "了工单";
  10081. oper.F_CreateUser = userModel.F_UserCode;
  10082. oper.F_CreateTime = DateTime.Now;
  10083. oper.F_IsDelete = 0;
  10084. operBLL.Add(oper);
  10085. //推送消息表
  10086. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10087. #endregion
  10088. }
  10089. trans.Complete();
  10090. }
  10091. if (ishf==1)
  10092. {
  10093. using (TransactionScope trans = new TransactionScope())
  10094. {
  10095. #region 回访
  10096. if (visitid == 0)
  10097. {
  10098. #region 新增回访结果记录
  10099. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10100. modelT_Bus_VisitResult.F_AssignedId = 0;
  10101. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10102. modelT_Bus_VisitResult.F_Type = types;
  10103. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10104. modelT_Bus_VisitResult.F_Result = results;
  10105. modelT_Bus_VisitResult.F_State = states;
  10106. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10107. modelT_Bus_VisitResult.F_IsDelete = 0;
  10108. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10109. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10110. if (modelT_Bus_AssignedInfo != null)
  10111. {
  10112. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10113. }
  10114. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10115. modelT_Bus_VisitResult.F_Id = id;
  10116. //保存回访记录
  10117. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10118. #endregion
  10119. }
  10120. else
  10121. {
  10122. #region 修改回访结果记录
  10123. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  10124. if (modelT_Bus_VisitResult != null)
  10125. {
  10126. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10127. modelT_Bus_VisitResult.F_AssignedId = 0;
  10128. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10129. modelT_Bus_VisitResult.F_Type = types;
  10130. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10131. modelT_Bus_VisitResult.F_Result = results;
  10132. modelT_Bus_VisitResult.F_State = states;
  10133. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10134. modelT_Bus_VisitResult.F_IsDelete = 0;
  10135. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10136. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10137. if (modelT_Bus_AssignedInfo != null)
  10138. {
  10139. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10140. }
  10141. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10142. modelT_Bus_VisitResult.F_Id = id;
  10143. //保存回访记录
  10144. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10145. }
  10146. #endregion
  10147. }
  10148. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  10149. {
  10150. #region 保存交办信息
  10151. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  10152. assignBLL.Update(modelT_Bus_AssignedInfo);
  10153. #endregion
  10154. #region 保存工单信息
  10155. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  10156. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  10157. workorderBLL.Update(modelT_Bus_WorkOrder);
  10158. #endregion
  10159. #region 删除草稿信息
  10160. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10161. foreach (var cg in cglist)
  10162. {
  10163. cg.F_IsDelete = 1;
  10164. cg.F_DeleteUser = userModel.F_UserCode;
  10165. cg.F_DeleteTime = DateTime.Now;
  10166. new BLL.T_Bus_VisitResult().Update(cg);
  10167. //保存回访记录
  10168. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10169. }
  10170. #endregion
  10171. var opt = "回访"; var cbreasons = "";
  10172. #region 重办
  10173. if (nexttype == 1)
  10174. {
  10175. #region 保存工单信息
  10176. #region 保存工单信息
  10177. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10178. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  10179. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10180. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10181. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  10182. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  10183. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  10184. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  10185. newmodelT_Bus_AssignedInfo.F_State = 1;
  10186. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  10187. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10188. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  10189. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10190. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  10191. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  10192. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  10193. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  10194. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  10195. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  10196. #region 保存工单信息
  10197. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  10198. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  10199. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  10200. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10201. 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());
  10202. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  10203. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  10204. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  10205. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  10206. modelT_Bus_WorkOrder.F_Result = "";
  10207. modelT_Bus_WorkOrder.F_DealDeptId = null;
  10208. modelT_Bus_WorkOrder.F_DealUser = "";
  10209. modelT_Bus_WorkOrder.F_DealTime = null;
  10210. workorderBLL.Update(modelT_Bus_WorkOrder);
  10211. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  10212. // workorderBLL.Update(modelT_Bus_WorkOrder);
  10213. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  10214. if (users != null && users.Count > 0)
  10215. {
  10216. foreach (var u in users)
  10217. {
  10218. if (!string.IsNullOrEmpty(u.F_Mobile))
  10219. {
  10220. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10221. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10222. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  10223. }
  10224. if (!string.IsNullOrEmpty(u.F_Telephone))
  10225. {
  10226. var userlist = u.F_Telephone.Split(',');
  10227. if (userlist != null)
  10228. {
  10229. foreach (var it in userlist)
  10230. {
  10231. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10232. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10233. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  10234. }
  10235. }
  10236. }
  10237. }
  10238. }
  10239. #endregion
  10240. #endregion
  10241. opt = "回访并提交重办";
  10242. cbreasons = ",重办原因:" + cbreason;
  10243. }
  10244. #endregion
  10245. #endregion
  10246. #region 插入操作记录
  10247. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10248. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10249. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  10250. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10251. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10252. string satisfie = "不满意";
  10253. if (issatisfie == 1)
  10254. satisfie = "满意";
  10255. else if (issatisfie == 2)
  10256. satisfie = "基本满意";
  10257. oper.F_Message = userinfo + " " + opt + "了工单,结果:" + satisfie + cbreasons;
  10258. oper.F_CreateUser = userModel.F_UserCode;
  10259. oper.F_CreateTime = DateTime.Now;
  10260. oper.F_IsDelete = 0;
  10261. operBLL.Add(oper);
  10262. //推送消息表
  10263. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10264. #endregion
  10265. #region 自动语音回访
  10266. if (issatisfie == 1)//如果满意就进行自动语音回访
  10267. {
  10268. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  10269. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  10270. {
  10271. string AutoCallMsg = string.Empty;
  10272. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  10273. }
  10274. }
  10275. #endregion
  10276. }
  10277. #endregion
  10278. trans.Complete();
  10279. }
  10280. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  10281. }
  10282. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  10283. }
  10284. else
  10285. {
  10286. return Error("已经办理过了");
  10287. }
  10288. }
  10289. else
  10290. {
  10291. return Error("权限不足");
  10292. }
  10293. }
  10294. else
  10295. {
  10296. return Error("操作失败");
  10297. }
  10298. }
  10299. else
  10300. {
  10301. return Error("权限不足");
  10302. }
  10303. }
  10304. #region 网格化对接
  10305. /// <summary>
  10306. /// 对接网格化
  10307. /// 工单查收操作
  10308. /// </summary>
  10309. /// <param name="usercode"></param>
  10310. /// <param name="workorderid"></param>
  10311. /// <returns></returns>
  10312. public string ReceiveWorkOrderByDock(string usercode, string workorderid,string content)
  10313. {
  10314. var returns = "";
  10315. using (TransactionScope trans = new TransactionScope())
  10316. {
  10317. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  10318. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10319. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10320. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10321. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10322. if (userModel != null)
  10323. {
  10324. if (modelT_Bus_WorkOrder == null)
  10325. msgss = "要办理的工单已不存在";
  10326. else if (modelT_Bus_AssignedInfo == null)
  10327. {
  10328. msgss = "工单无法处理或已被处理";
  10329. }
  10330. else
  10331. {
  10332. 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 == userModel.F_DeptId)
  10333. {
  10334. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10335. {
  10336. #region 保存工单信息
  10337. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  10338. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  10339. workorderBLL.Update(modelT_Bus_WorkOrder);
  10340. #endregion
  10341. #region 保存查收信息
  10342. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  10343. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10344. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10345. assignBLL.Update(modelT_Bus_AssignedInfo);
  10346. #endregion
  10347. #region 保存明细信息
  10348. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  10349. {
  10350. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  10351. foreach (string strid in strids)
  10352. {
  10353. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  10354. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10355. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  10356. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  10357. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  10358. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  10359. modelT_Bus_AssignedItemInfo.F_State = 1;
  10360. modelT_Bus_AssignedItemInfo.F_Type = 2;
  10361. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  10362. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  10363. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  10364. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  10365. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  10366. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  10367. }
  10368. }
  10369. #endregion
  10370. retbool = "true";
  10371. optmsg = " 查收了工单";
  10372. msgss = optmsg;
  10373. }
  10374. else
  10375. msgss = "工单已被查收";
  10376. assid = modelT_Bus_AssignedInfo.F_Id;
  10377. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10378. }
  10379. else
  10380. msgss = "工单已办理或已被重新指派";
  10381. }
  10382. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10383. }
  10384. else
  10385. {
  10386. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10387. msgss = "无法获取工号信息";
  10388. }
  10389. #region 插入操作记录
  10390. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10391. oper.F_WorkOrderId = workorderid;
  10392. oper.F_AssignedId = assid;
  10393. oper.F_State = state;
  10394. oper.F_Message = userinfo + " " + msgss + msgend;
  10395. oper.F_CreateUser = usercode;
  10396. oper.F_CreateTime = DateTime.Now;
  10397. oper.F_IsDelete = 0;
  10398. oper.F_Type = 1;
  10399. optid = operBLL.Add(oper).ToString();
  10400. #endregion
  10401. trans.Complete();
  10402. returns = retbool + "|" + optid + "|" + msgss;
  10403. }
  10404. return returns;
  10405. }
  10406. /// <summary>
  10407. /// 对接网格化 工单退回操作
  10408. /// </summary>
  10409. /// <returns></returns>
  10410. public string RebackWorkOrderByDock(string usercode,string workorderid,string backreason,string content)
  10411. {
  10412. var returns = "";
  10413. using (TransactionScope trans = new TransactionScope())
  10414. {
  10415. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  10416. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  10417. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10418. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10419. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10420. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10421. if (userModel != null)
  10422. {
  10423. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10424. if (modelT_Bus_WorkOrder == null)
  10425. msgss = "要办理的工单已不存在";
  10426. else if (modelT_Bus_AssignedInfo == null)
  10427. {
  10428. msgss = "工单无法处理或已被处理";
  10429. }
  10430. else
  10431. {
  10432. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10433. {
  10434. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10435. {
  10436. #region 保存工单信息
  10437. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  10438. workorderBLL.Update(modelT_Bus_WorkOrder);
  10439. #endregion
  10440. #region 插入退回申请信息
  10441. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  10442. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10443. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10444. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  10445. model_T_Bus_Feedback.F_IsAudit = 0;
  10446. model_T_Bus_Feedback.F_IsDelete = 0;
  10447. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  10448. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  10449. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  10450. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  10451. model_T_Bus_Feedback.F_State = 1;
  10452. model_T_Bus_Feedback.F_Type = 3;
  10453. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  10454. #endregion
  10455. #region 保存交办信息
  10456. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  10457. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10458. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10459. assignBLL.Update(modelT_Bus_AssignedInfo);
  10460. #endregion
  10461. #region 推送消息
  10462. retbool = "true";
  10463. optmsg = " 申请退回了工单";
  10464. //推送消息表
  10465. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10466. #endregion
  10467. msgss = optmsg;
  10468. }
  10469. else
  10470. msgss = "工单已被查收,不能退回";
  10471. assid = modelT_Bus_AssignedInfo.F_Id;
  10472. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10473. }
  10474. else
  10475. msgss = "工单已办理或已被重新指派";
  10476. }
  10477. }
  10478. else
  10479. {
  10480. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10481. msgss = "无法获取工号信息";
  10482. }
  10483. #region 插入操作记录
  10484. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10485. oper.F_WorkOrderId = workorderid;
  10486. oper.F_AssignedId = assid;
  10487. oper.F_State = state;
  10488. oper.F_Message = userinfo+" " + msgss + msgend;
  10489. oper.F_CreateUser = usercode;
  10490. oper.F_CreateTime = DateTime.Now;
  10491. oper.F_IsDelete = 0;
  10492. oper.F_Type = 1;
  10493. optid = operBLL.Add(oper).ToString();
  10494. #endregion
  10495. trans.Complete();
  10496. returns = retbool + "|" + optid + "|" + msgss;
  10497. }
  10498. return returns;
  10499. }
  10500. /// <summary>
  10501. /// 对接网格化办理
  10502. /// </summary>
  10503. /// <param name="usercode">工号</param>
  10504. /// <param name="workorderid">工单编号</param>
  10505. /// <param name="dealman">承办人人</param>
  10506. /// <param name="result">反馈内容</param>
  10507. /// <param name="files">附件</param>
  10508. /// <param name="prosituation">处理情况/方案/进程</param>
  10509. /// <param name="dealcontact">承办人联系方式</param>
  10510. /// <param name="connecttime">沟通时间</param>
  10511. /// <param name="connectmode">沟通方式</param>
  10512. /// <param name="replycontent">答复内容</param>
  10513. /// <param name="duties">职务</param>
  10514. /// <param name="situation">处理情况</param>
  10515. /// <param name="state">0保存,1保存并办理</param>
  10516. /// <param name="feedbackid"></param>
  10517. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  10518. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  10519. /// <returns></returns>
  10520. 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)
  10521. {
  10522. var returns = "";
  10523. using (TransactionScope trans = new TransactionScope())
  10524. {
  10525. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  10526. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10527. if (userModel != null)
  10528. {
  10529. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10530. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10531. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10532. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  10533. msgend = ",工单编号:" + workorderid;
  10534. int type = 0; var resmsg = ""; string typemsg = "办理";
  10535. if (modelT_Bus_WorkOrder == null)
  10536. msgss = "要办理的工单已不存在";
  10537. else if (modelT_Bus_AssignedInfo == null)
  10538. {
  10539. msgss = "工单无法处理";
  10540. }
  10541. else
  10542. {
  10543. type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  10544. if (type > 0)
  10545. {
  10546. #region 办理结果合成
  10547. result = "";
  10548. #region 获取部门
  10549. var deptname = "";
  10550. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  10551. {
  10552. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  10553. if (deptmodel != null)
  10554. deptname = deptmodel.F_DeptName;
  10555. }
  10556. #endregion
  10557. #region 获取来源
  10558. var sourcename = "";
  10559. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  10560. {
  10561. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  10562. if (dicmodel != null)
  10563. sourcename = dicmodel.F_Value;
  10564. }
  10565. #endregion
  10566. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  10567. var bljg = ""; var endstr = "";
  10568. if (isproresult == 1)
  10569. {
  10570. bljg = "已办理";
  10571. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  10572. {
  10573. var isStaisfiedRadioData = "未评价";
  10574. if (isstaisfied == 1)
  10575. {
  10576. isStaisfiedRadioData = "满意";
  10577. }
  10578. else if (isstaisfied == 2)
  10579. {
  10580. isStaisfiedRadioData = "基本满意";
  10581. }
  10582. else if (isstaisfied == 3)
  10583. {
  10584. isStaisfiedRadioData = "不满意";
  10585. }
  10586. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  10587. }
  10588. }
  10589. else if (isproresult == 2)
  10590. {
  10591. bljg = "未办理";
  10592. endstr = "; 处理方案/进程:" + prosituation;
  10593. }
  10594. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  10595. #endregion
  10596. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  10597. {
  10598. #region 处理办理
  10599. if (feedbackid == 0)
  10600. {
  10601. #region 插入反馈记录
  10602. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10603. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10604. modelT_Bus_Feedback.F_DealUser = dealman;
  10605. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10606. #region 20200114新增字段 zhengbingbing
  10607. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10608. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10609. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10610. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10611. DateTime contime = DateTime.Now;
  10612. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10613. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10614. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10615. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10616. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10617. modelT_Bus_Feedback.F_Duties = duties;//职务
  10618. modelT_Bus_Feedback.F_Situation = situation;
  10619. #endregion
  10620. modelT_Bus_Feedback.F_File = files;
  10621. modelT_Bus_Feedback.F_IsAudit = 0;
  10622. modelT_Bus_Feedback.F_IsDelete = 0;
  10623. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10624. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10625. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  10626. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10627. modelT_Bus_Feedback.F_State = state;
  10628. modelT_Bus_Feedback.F_Type = type;
  10629. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10630. #endregion
  10631. }
  10632. else
  10633. {
  10634. #region 修改反馈记录
  10635. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  10636. if (modelT_Bus_Feedback != null)
  10637. {
  10638. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10639. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10640. modelT_Bus_Feedback.F_DealUser = dealman;
  10641. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10642. modelT_Bus_Feedback.F_File = files;
  10643. #region 20200114新增字段 zhengbingbing
  10644. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10645. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10646. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10647. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10648. DateTime contime = DateTime.Now;
  10649. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10650. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10651. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10652. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10653. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10654. modelT_Bus_Feedback.F_Duties = duties;//职务
  10655. modelT_Bus_Feedback.F_Situation = situation;
  10656. #endregion
  10657. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10658. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10659. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  10660. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10661. modelT_Bus_Feedback.F_State = state;
  10662. if (modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10663. {
  10664. modelT_Bus_Feedback.F_Type = 1;
  10665. }
  10666. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(userModel.F_DeptId.ToString()))
  10667. {
  10668. modelT_Bus_Feedback.F_Type = 2;
  10669. }
  10670. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  10671. }
  10672. #endregion
  10673. }
  10674. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  10675. {
  10676. if (type == 1)
  10677. {
  10678. int iscs = 0;
  10679. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10680. {
  10681. iscs = 1;
  10682. }
  10683. #region 保存工单信息
  10684. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  10685. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  10686. modelT_Bus_WorkOrder.F_Result = result;
  10687. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  10688. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  10689. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10690. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  10691. workorderBLL.Update(modelT_Bus_WorkOrder);
  10692. #endregion
  10693. #region 保存交办信息
  10694. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  10695. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10696. {
  10697. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10698. }
  10699. assignBLL.Update(modelT_Bus_AssignedInfo);
  10700. #endregion
  10701. #region 删除草稿信息
  10702. 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='" + userModel.F_DeptId + "'");
  10703. foreach (var cg in cglist)
  10704. {
  10705. cg.F_IsDelete = 1;
  10706. cg.F_DeleteUser = userModel.F_UserCode;
  10707. cg.F_DeleteTime = DateTime.Now;
  10708. new BLL.T_Bus_Feedback().Update(cg);
  10709. }
  10710. #endregion
  10711. #region 删除二级单位未办理信息
  10712. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10713. foreach (var ej in ejlist)
  10714. {
  10715. ej.F_IsDelete = 1;
  10716. ej.F_DeleteUser = userModel.F_UserCode;
  10717. ej.F_DeleteTime = DateTime.Now;
  10718. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  10719. }
  10720. #endregion
  10721. #region 处理协办单位
  10722. 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 + "'");
  10723. foreach (var xb in xblist)
  10724. {
  10725. xb.F_State = 2;
  10726. xb.F_SureUser = userModel.F_UserCode;
  10727. xb.F_SureTime = DateTime.Now;
  10728. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  10729. }
  10730. #endregion
  10731. typemsg = "主办";
  10732. }
  10733. else if (type == 2)
  10734. {
  10735. #region 保存明细信息
  10736. 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='" + userModel.F_DeptId + "'").FirstOrDefault();
  10737. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  10738. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  10739. {
  10740. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  10741. }
  10742. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  10743. #endregion
  10744. #region 删除草稿信息
  10745. 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='" + userModel.F_DeptId + "'");
  10746. foreach (var cg in cglist)
  10747. {
  10748. cg.F_IsDelete = 1;
  10749. cg.F_DeleteUser = userModel.F_UserCode;
  10750. cg.F_DeleteTime = DateTime.Now;
  10751. new BLL.T_Bus_Feedback().Update(cg);
  10752. }
  10753. #endregion
  10754. typemsg = "协办";
  10755. }
  10756. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  10757. //推送消息表
  10758. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10759. }
  10760. #endregion
  10761. retbool = "true";
  10762. }
  10763. else
  10764. msgss = "工单已办理";
  10765. backid = modelT_Bus_Feedback.F_Id.ToString();
  10766. }
  10767. else
  10768. msgss = "工单已办理或已被重新指派";
  10769. assid = modelT_Bus_AssignedInfo.F_Id;
  10770. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  10771. }
  10772. msgend = resmsg + " " + typemsg + "了工单";
  10773. }
  10774. else
  10775. {
  10776. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10777. msgss = "无法获取工号信息";
  10778. }
  10779. #region 插入操作记录
  10780. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10781. oper.F_WorkOrderId = workorderid;
  10782. oper.F_AssignedId = assid;
  10783. oper.F_State = wostate;
  10784. oper.F_Message = userinfo + msgend;
  10785. oper.F_CreateUser = usercode;
  10786. oper.F_CreateTime = DateTime.Now;
  10787. oper.F_IsDelete = 0;
  10788. oper.F_Type = 1;
  10789. oper.F_File = files;
  10790. operBLL.Add(oper);
  10791. #endregion
  10792. trans.Complete();
  10793. returns = retbool + "|" + backid + "|" + msgss;
  10794. }
  10795. return returns;
  10796. }
  10797. /// <summary>
  10798. /// 对接网格化,记录办理过程
  10799. /// </summary>
  10800. /// <param name="usercode"></param>
  10801. /// <param name="workorderid"></param>
  10802. /// <param name="content"></param>
  10803. /// <returns></returns>
  10804. public string DealProcessWorkOrderByDock(string usercode,string workorderid,string content)
  10805. {
  10806. var returns = "";
  10807. using (TransactionScope trans = new TransactionScope())
  10808. {
  10809. var assid = 0; var msgend = ""; var state = 0;var userinfo = "";var msgss = ""; var optid = string.Empty; var retbool = "false";
  10810. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10811. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10812. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10813. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  10814. if (userModel != null)
  10815. {
  10816. if (modelT_Bus_WorkOrder == null)
  10817. msgss = "要办理的工单已不存在";
  10818. else if (modelT_Bus_AssignedInfo == null)
  10819. {
  10820. msgss = "工单无法处理或已被处理";
  10821. }
  10822. else
  10823. {
  10824. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10825. {
  10826. msgss = "办理工单";
  10827. retbool = "true";
  10828. assid = modelT_Bus_AssignedInfo.F_Id;
  10829. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10830. }
  10831. else
  10832. {
  10833. msgss = "工单无法处理";
  10834. }
  10835. }
  10836. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10837. }
  10838. else
  10839. {
  10840. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10841. msgss = "无法获取工号信息";
  10842. }
  10843. #region 插入操作记录
  10844. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10845. oper.F_WorkOrderId = workorderid;
  10846. oper.F_AssignedId = assid;
  10847. oper.F_State = state;
  10848. oper.F_Message = userinfo + msgend;
  10849. oper.F_CreateUser = usercode;
  10850. oper.F_CreateTime = DateTime.Now;
  10851. oper.F_IsDelete = 0;
  10852. oper.F_Type = 1;
  10853. optid = operBLL.Add(oper).ToString();
  10854. #endregion
  10855. trans.Complete();
  10856. returns = retbool + "|" + optid + "|" + msgss;
  10857. }
  10858. return returns;
  10859. }
  10860. #endregion
  10861. /// <summary>
  10862. /// 派工单
  10863. /// </summary>
  10864. /// <returns></returns>
  10865. [Authority]
  10866. public ActionResult SplitWorkOrder()
  10867. {
  10868. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10869. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10870. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  10871. {
  10872. string workorderid = RequestString.GetFormString("workorderid");
  10873. int maindeptid = RequestString.GetInt("maindeptid", 0);
  10874. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10875. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  10876. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10877. string files = RequestString.GetFormString("files");
  10878. int state = RequestString.GetInt("state", 0);
  10879. int nextid = RequestString.GetInt("nextid", 0);
  10880. if (limittime < DateTime.Now)
  10881. {
  10882. return Error("办理时限不能小于当前时间");
  10883. }
  10884. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10885. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10886. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  10887. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  10888. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  10889. {
  10890. int type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  10891. //if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == 4) || userModel.F_RoleCode == "GLY")
  10892. if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing) || (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  10893. {
  10894. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0)
  10895. {
  10896. using (TransactionScope trans = new TransactionScope())
  10897. {
  10898. if (nextid == 0)
  10899. {
  10900. #region 插入派单记录
  10901. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10902. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  10903. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  10904. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  10905. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  10906. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  10907. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  10908. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  10909. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  10910. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  10911. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  10912. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  10913. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  10914. #endregion
  10915. }
  10916. else
  10917. {
  10918. #region 修改派单记录
  10919. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  10920. if (modelT_Bus_AssignedInfo_Next != null)
  10921. {
  10922. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  10923. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  10924. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  10925. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  10926. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  10927. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  10928. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  10929. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  10930. }
  10931. #endregion
  10932. }
  10933. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  10934. {
  10935. #region 保存交办信息
  10936. modelT_Bus_AssignedInfo.F_IsNext = 1;
  10937. modelT_Bus_AssignedInfo.F_NextUser = userModel.F_UserCode;
  10938. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  10939. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  10940. #endregion
  10941. #region 保存工单信息
  10942. modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  10943. workorderBLL.Update(modelT_Bus_WorkOrder);
  10944. #endregion
  10945. #region 插入操作记录
  10946. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10947. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10948. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10949. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10950. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10951. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  10952. oper.F_CreateUser = userModel.F_UserCode;
  10953. oper.F_CreateTime = DateTime.Now;
  10954. oper.F_IsDelete = 0;
  10955. operBLL.Add(oper);
  10956. //推送消息表
  10957. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10958. #endregion
  10959. }
  10960. trans.Complete();
  10961. }
  10962. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  10963. }
  10964. else
  10965. {
  10966. return Error("已经派过单了");
  10967. }
  10968. }
  10969. else
  10970. {
  10971. return Error("操作失败");
  10972. }
  10973. }
  10974. else
  10975. {
  10976. return Error("操作失败");
  10977. }
  10978. }
  10979. else
  10980. {
  10981. return Error("权限不足");
  10982. }
  10983. }
  10984. /// <summary>
  10985. /// 撤回工单
  10986. /// </summary>
  10987. /// <returns></returns>
  10988. [Authority]
  10989. public ActionResult WithdrawWorkOrder()
  10990. {
  10991. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10992. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10993. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  10994. {
  10995. string workorderid = RequestString.GetFormString("workorderid");
  10996. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10997. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10998. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  10999. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  11000. {
  11001. using (TransactionScope trans = new TransactionScope())
  11002. {
  11003. #region 保存撤单信息
  11004. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  11005. modelT_Bus_AssignedInfo_Next.F_DeleteUser = userModel.F_UserCode;
  11006. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  11007. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11008. #endregion
  11009. #region 删除处理信息
  11010. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  11011. foreach (var cg in cglist)
  11012. {
  11013. cg.F_IsDelete = 1;
  11014. cg.F_DeleteUser = userModel.F_UserCode;
  11015. cg.F_DeleteTime = DateTime.Now;
  11016. new BLL.T_Bus_Feedback_Next().Update(cg);
  11017. }
  11018. #endregion
  11019. #region 保存交办信息
  11020. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11021. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11022. #endregion
  11023. #region 保存工单信息
  11024. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11025. workorderBLL.Update(modelT_Bus_WorkOrder);
  11026. #endregion
  11027. #region 插入操作记录
  11028. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11029. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11030. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11031. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11032. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11033. oper.F_Message = userinfo + " 撤回了工单";
  11034. oper.F_CreateUser = userModel.F_UserCode;
  11035. oper.F_CreateTime = DateTime.Now;
  11036. oper.F_IsDelete = 0;
  11037. operBLL.Add(oper);
  11038. #endregion
  11039. trans.Complete();
  11040. }
  11041. return Success("操作成功");
  11042. }
  11043. else
  11044. {
  11045. return Error("操作失败");
  11046. }
  11047. }
  11048. else
  11049. {
  11050. return Error("权限不足");
  11051. }
  11052. }
  11053. /// <summary>
  11054. /// 签收工单
  11055. /// </summary>
  11056. /// <returns></returns>
  11057. [Authority]
  11058. public ActionResult SignWorkOrder()
  11059. {
  11060. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11061. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11062. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11063. {
  11064. string workorderid = RequestString.GetFormString("workorderid");
  11065. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11066. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11067. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11068. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11069. {
  11070. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11071. {
  11072. using (TransactionScope trans = new TransactionScope())
  11073. {
  11074. #region 保存签收信息
  11075. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  11076. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11077. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11078. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11079. #endregion
  11080. #region 保存交办信息
  11081. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11082. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11083. #endregion
  11084. #region 插入操作记录
  11085. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11086. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11087. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11088. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11089. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11090. oper.F_Message = userinfo + " 签收了工单";
  11091. oper.F_CreateUser = userModel.F_UserCode;
  11092. oper.F_CreateTime = DateTime.Now;
  11093. oper.F_IsDelete = 0;
  11094. operBLL.Add(oper);
  11095. #endregion
  11096. trans.Complete();
  11097. }
  11098. return Success("操作成功");
  11099. }
  11100. else
  11101. {
  11102. return Error("单位已签收,不能再次签收");
  11103. }
  11104. }
  11105. else
  11106. {
  11107. return Error("操作失败");
  11108. }
  11109. }
  11110. else
  11111. {
  11112. return Error("权限不足");
  11113. }
  11114. }
  11115. /// <summary>
  11116. /// 拒收工单
  11117. /// </summary>
  11118. /// <returns></returns>
  11119. [Authority]
  11120. public ActionResult RefuseWorkOrder()
  11121. {
  11122. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11123. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11124. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11125. {
  11126. string workorderid = RequestString.GetFormString("workorderid");
  11127. string reason = RequestString.GetFormString("reason");
  11128. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11129. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11130. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11131. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11132. {
  11133. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11134. {
  11135. using (TransactionScope trans = new TransactionScope())
  11136. {
  11137. #region 保存签收信息
  11138. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  11139. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11140. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11141. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11142. #endregion
  11143. #region 保存交办信息
  11144. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11145. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11146. #endregion
  11147. #region 保存工单信息
  11148. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11149. workorderBLL.Update(modelT_Bus_WorkOrder);
  11150. #endregion
  11151. #region 插入操作记录
  11152. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11153. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11154. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11155. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11156. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11157. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  11158. oper.F_CreateUser = userModel.F_UserCode;
  11159. oper.F_CreateTime = DateTime.Now;
  11160. oper.F_IsDelete = 0;
  11161. operBLL.Add(oper);
  11162. #endregion
  11163. trans.Complete();
  11164. }
  11165. return Success("操作成功");
  11166. }
  11167. else
  11168. {
  11169. return Error("单位已签收,不能再次签收");
  11170. }
  11171. }
  11172. else
  11173. {
  11174. return Error("操作失败");
  11175. }
  11176. }
  11177. else
  11178. {
  11179. return Error("权限不足");
  11180. }
  11181. }
  11182. /// <summary>
  11183. /// 处理工单
  11184. /// </summary>
  11185. /// <returns></returns>
  11186. [Authority]
  11187. public ActionResult DealWorkOrder()
  11188. {
  11189. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11190. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11191. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11192. {
  11193. string workorderid = RequestString.GetFormString("workorderid");
  11194. string dealman = RequestString.GetFormString("dealman");
  11195. string result = RequestString.GetFormString("result");
  11196. string files = RequestString.GetFormString("files");
  11197. int state = RequestString.GetInt("state", 0);
  11198. int dealid = RequestString.GetInt("dealid", 0);
  11199. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  11200. string prosituation = RequestString.GetFormString("prosituation");
  11201. string dealcontact = RequestString.GetFormString("dealcontact");
  11202. string connecttime = RequestString.GetFormString("connecttime");
  11203. string connectmode = RequestString.GetFormString("connectmode");
  11204. string replycontent = RequestString.GetFormString("replycontent");
  11205. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  11206. string duties = RequestString.GetFormString("duties");//职务
  11207. string situation = RequestString.GetFormString("situation");
  11208. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11209. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11210. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11211. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  11212. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId
  11213. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  11214. {
  11215. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  11216. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  11217. {
  11218. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  11219. {
  11220. using (TransactionScope trans = new TransactionScope())
  11221. {
  11222. if (dealid == 0)
  11223. {
  11224. #region 插入反馈记录
  11225. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11226. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11227. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11228. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11229. #region 20200114新增字段 zhengbingbing
  11230. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11231. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11232. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11233. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11234. DateTime contime = DateTime.Now;
  11235. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11236. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11237. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11238. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11239. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11240. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11241. modelT_Bus_Feedback_Next.F_Situation = situation;
  11242. #endregion
  11243. modelT_Bus_Feedback_Next.F_File = files;
  11244. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  11245. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  11246. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11247. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11248. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11249. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11250. modelT_Bus_Feedback_Next.F_State = state;
  11251. modelT_Bus_Feedback_Next.F_Type = 1;
  11252. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  11253. #endregion
  11254. }
  11255. else
  11256. {
  11257. #region 修改反馈记录
  11258. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  11259. if (modelT_Bus_Feedback_Next != null)
  11260. {
  11261. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11262. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11263. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11264. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11265. modelT_Bus_Feedback_Next.F_File = files;
  11266. #region 20200114新增字段 zhengbingbing
  11267. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11268. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11269. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11270. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11271. DateTime contime = DateTime.Now;
  11272. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11273. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11274. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11275. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11276. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11277. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11278. modelT_Bus_Feedback_Next.F_Situation = situation;
  11279. #endregion
  11280. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11281. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11282. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11283. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11284. modelT_Bus_Feedback_Next.F_State = state;
  11285. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11286. }
  11287. #endregion
  11288. }
  11289. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  11290. {
  11291. #region 保存交办信息
  11292. modelT_Bus_AssignedInfo.F_IsNext = 3;
  11293. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11294. #endregion
  11295. #region 保存派单信息
  11296. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  11297. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  11298. {
  11299. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  11300. }
  11301. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11302. #endregion
  11303. #region 删除草稿信息
  11304. 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='" + userModel.F_DeptId + "'");
  11305. foreach (var cg in cglist)
  11306. {
  11307. cg.F_IsDelete = 1;
  11308. cg.F_DeleteUser = userModel.F_UserCode;
  11309. cg.F_DeleteTime = DateTime.Now;
  11310. new BLL.T_Bus_Feedback_Next().Update(cg);
  11311. }
  11312. #endregion
  11313. #region 插入操作记录
  11314. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11315. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11316. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11317. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11318. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11319. oper.F_Message = userinfo + " 办理了工单";
  11320. oper.F_CreateUser = userModel.F_UserCode;
  11321. oper.F_CreateTime = DateTime.Now;
  11322. oper.F_IsDelete = 0;
  11323. operBLL.Add(oper);
  11324. //推送消息表
  11325. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11326. #endregion
  11327. }
  11328. trans.Complete();
  11329. }
  11330. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11331. }
  11332. else
  11333. {
  11334. return Error("已经办理过了");
  11335. }
  11336. }
  11337. else
  11338. {
  11339. return Error("已经办理过了");
  11340. }
  11341. }
  11342. else
  11343. {
  11344. return Error("操作失败");
  11345. }
  11346. }
  11347. else
  11348. {
  11349. return Error("权限不足");
  11350. }
  11351. }
  11352. /// <summary>
  11353. /// 审核派单
  11354. /// </summary>
  11355. /// <returns></returns>
  11356. [Authority]
  11357. public ActionResult AuditSplitWorkOrder()
  11358. {
  11359. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11360. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11361. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11362. {
  11363. string workorderid = RequestString.GetFormString("workorderid");
  11364. int state = RequestString.GetInt("state", 0);
  11365. string reason = RequestString.GetFormString("reason");
  11366. int backid = RequestString.GetInt("backid", 0);
  11367. string files = RequestString.GetFormString("files");
  11368. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11369. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11370. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  11371. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  11372. {
  11373. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  11374. {
  11375. using (TransactionScope trans = new TransactionScope())
  11376. {
  11377. modelT_Bus_Feedback_Next.F_IsAudit = state;
  11378. modelT_Bus_Feedback_Next.F_AuditUser = userModel.F_UserCode;
  11379. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  11380. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  11381. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11382. string strmsg = "";
  11383. if (state == 1)
  11384. {
  11385. strmsg = "同意";
  11386. #region 插入反馈记录
  11387. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  11388. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11389. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11390. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  11391. modelT_Bus_Feedback.F_Result = modelT_Bus_Feedback_Next.F_Result;//反馈内容
  11392. #region 20200114新增字段 zhengbingbing
  11393. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  11394. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  11395. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  11396. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  11397. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  11398. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  11399. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  11400. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11401. #endregion
  11402. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  11403. modelT_Bus_Feedback.F_IsAudit = 0;
  11404. modelT_Bus_Feedback.F_IsDelete = 0;
  11405. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  11406. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11407. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11408. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11409. modelT_Bus_Feedback.F_State = state;
  11410. modelT_Bus_Feedback.F_Type = 1;
  11411. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11412. #endregion
  11413. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11414. {
  11415. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11416. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  11417. }
  11418. #region 保存工单信息
  11419. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11420. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  11421. modelT_Bus_WorkOrder.F_Result = modelT_Bus_Feedback_Next.F_Result;
  11422. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  11423. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  11424. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11425. workorderBLL.Update(modelT_Bus_WorkOrder);
  11426. #endregion
  11427. #region 保存交办信息
  11428. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11429. assignBLL.Update(modelT_Bus_AssignedInfo);
  11430. #endregion
  11431. #region 删除草稿信息
  11432. 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='" + userModel.F_DeptId + "'");
  11433. foreach (var cg in cglist)
  11434. {
  11435. cg.F_IsDelete = 1;
  11436. cg.F_DeleteUser = userModel.F_UserCode;
  11437. cg.F_DeleteTime = DateTime.Now;
  11438. new BLL.T_Bus_Feedback().Update(cg);
  11439. }
  11440. #endregion
  11441. #region 处理协办单位
  11442. 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 + "'");
  11443. foreach (var xb in xblist)
  11444. {
  11445. xb.F_State = 2;
  11446. xb.F_SureUser = userModel.F_UserCode;
  11447. xb.F_SureTime = DateTime.Now;
  11448. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11449. }
  11450. #endregion
  11451. }
  11452. else if (state == 2)
  11453. {
  11454. strmsg = "拒绝";
  11455. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11456. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  11457. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  11458. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11459. assignBLL.Update(modelT_Bus_AssignedInfo);
  11460. //#region 插入派单记录
  11461. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11462. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11463. //modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11464. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo_Next1.F_LimitTime;//办理时限
  11465. //modelT_Bus_AssignedInfo_Next.F_MainDeptId = modelT_Bus_AssignedInfo_Next1.F_MainDeptId;//主办单位id
  11466. //modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = modelT_Bus_AssignedInfo_Next1.F_OtherDeptIds;//协办单位id
  11467. //modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = reason;//交办意见
  11468. //modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11469. //modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  11470. //modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11471. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11472. //modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11473. //modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11474. //modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11475. //modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11476. //#endregion
  11477. }
  11478. #region 插入操作记录
  11479. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11480. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11481. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11482. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11483. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11484. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  11485. oper.F_CreateUser = userModel.F_UserCode;
  11486. oper.F_CreateTime = DateTime.Now;
  11487. oper.F_IsDelete = 0;
  11488. operBLL.Add(oper);
  11489. //推送消息表
  11490. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11491. #endregion
  11492. trans.Complete();
  11493. }
  11494. return Success("操作成功");
  11495. }
  11496. else
  11497. {
  11498. return Error("已经审核过了");
  11499. }
  11500. }
  11501. else
  11502. {
  11503. return Error("操作失败");
  11504. }
  11505. }
  11506. else
  11507. {
  11508. return Error("权限不足");
  11509. }
  11510. }
  11511. /// <summary>
  11512. /// 回访工单
  11513. /// </summary>
  11514. /// <returns></returns>
  11515. [Authority]
  11516. public ActionResult VisitWorkOrder()
  11517. {
  11518. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11519. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11520. //if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  11521. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11522. {
  11523. string workorderid = RequestString.GetFormString("workorderid");
  11524. string visituser = RequestString.GetFormString("visituser");//回访人
  11525. int type = RequestString.GetInt("type", 0);//回访方式
  11526. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  11527. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));//不满意,重办的办理时限
  11528. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  11529. int visitid = RequestString.GetInt("visitid", 0);
  11530. string result = RequestString.GetFormString("result");//回访情况
  11531. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2结案
  11532. //string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  11533. //string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  11534. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  11535. string callid = RequestString.GetFormString("callid");
  11536. string guid = RequestString.GetFormString("guid");
  11537. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11538. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11539. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  11540. if (modelT_Bus_WorkOrder != null)
  11541. {
  11542. //if (modelT_Bus_WorkOrder.F_WorkState == 6)
  11543. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  11544. {
  11545. using (TransactionScope trans = new TransactionScope())
  11546. {
  11547. #region 回访
  11548. if (visitid == 0)
  11549. {
  11550. #region 新增回访结果记录
  11551. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11552. modelT_Bus_VisitResult.F_AssignedId = 0;
  11553. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11554. modelT_Bus_VisitResult.F_Type = type;
  11555. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11556. modelT_Bus_VisitResult.F_Result = result;
  11557. modelT_Bus_VisitResult.F_State = state;
  11558. if (!string.IsNullOrEmpty(callid))
  11559. {
  11560. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11561. if (rd != null)
  11562. {
  11563. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11564. }
  11565. }
  11566. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11567. modelT_Bus_VisitResult.F_IsDelete = 0;
  11568. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11569. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11570. if (modelT_Bus_AssignedInfo != null)
  11571. {
  11572. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11573. }
  11574. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11575. modelT_Bus_VisitResult.F_Id = id;
  11576. //保存回访记录
  11577. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11578. #endregion
  11579. }
  11580. else
  11581. {
  11582. #region 修改回访结果记录
  11583. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  11584. if (modelT_Bus_VisitResult != null)
  11585. {
  11586. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11587. modelT_Bus_VisitResult.F_AssignedId = 0;
  11588. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11589. modelT_Bus_VisitResult.F_Type = type;
  11590. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11591. modelT_Bus_VisitResult.F_Result = result;
  11592. modelT_Bus_VisitResult.F_State = state;
  11593. if (!string.IsNullOrEmpty(callid))
  11594. {
  11595. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11596. if (rd != null)
  11597. {
  11598. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11599. }
  11600. }
  11601. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11602. modelT_Bus_VisitResult.F_IsDelete = 0;
  11603. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11604. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11605. if (modelT_Bus_AssignedInfo != null)
  11606. {
  11607. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11608. }
  11609. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11610. modelT_Bus_VisitResult.F_Id = id;
  11611. //保存回访记录
  11612. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11613. }
  11614. #endregion
  11615. }
  11616. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  11617. {
  11618. #region 保存交办信息
  11619. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  11620. assignBLL.Update(modelT_Bus_AssignedInfo);
  11621. #endregion
  11622. #region 保存工单信息
  11623. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  11624. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  11625. workorderBLL.Update(modelT_Bus_WorkOrder);
  11626. #endregion
  11627. #region 删除草稿信息
  11628. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11629. foreach (var cg in cglist)
  11630. {
  11631. cg.F_IsDelete = 1;
  11632. cg.F_DeleteUser = userModel.F_UserCode;
  11633. cg.F_DeleteTime = DateTime.Now;
  11634. new BLL.T_Bus_VisitResult().Update(cg);
  11635. //保存回访记录
  11636. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11637. }
  11638. #endregion
  11639. var opt = "回访"; var cbreasons = "";
  11640. #region 重办
  11641. if (nexttype == 1)
  11642. {
  11643. #region 保存工单信息
  11644. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  11645. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11646. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11647. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;//办理时限
  11648. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId ;//主办单位id
  11649. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds ;//协办单位id
  11650. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  11651. newmodelT_Bus_AssignedInfo.F_State = 1;
  11652. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  11653. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11654. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  11655. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11656. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  11657. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  11658. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  11659. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  11660. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  11661. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  11662. #region 保存工单信息
  11663. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  11664. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  11665. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  11666. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11667. 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());
  11668. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  11669. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  11670. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  11671. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  11672. modelT_Bus_WorkOrder.F_Result = "";
  11673. modelT_Bus_WorkOrder.F_DealDeptId = null;
  11674. modelT_Bus_WorkOrder.F_DealUser = "";
  11675. modelT_Bus_WorkOrder.F_DealTime = null;
  11676. workorderBLL.Update(modelT_Bus_WorkOrder);
  11677. #endregion
  11678. #region 插入操作记录
  11679. #region 20191021调整为多个主办单位时调整
  11680. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  11681. #endregion
  11682. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  11683. if (users != null && users.Count > 0)
  11684. {
  11685. foreach (var u in users)
  11686. {
  11687. if (!string.IsNullOrEmpty(u.F_Mobile))
  11688. {
  11689. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  11690. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  11691. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  11692. }
  11693. if (!string.IsNullOrEmpty(u.F_Telephone))
  11694. {
  11695. var userlist = u.F_Telephone.Split(',');
  11696. if (userlist != null)
  11697. {
  11698. foreach (var it in userlist)
  11699. {
  11700. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  11701. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  11702. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  11703. }
  11704. }
  11705. }
  11706. }
  11707. }
  11708. #endregion
  11709. workorderBLL.Update(modelT_Bus_WorkOrder);
  11710. #endregion
  11711. opt = "回访并提交重办";
  11712. cbreasons = ",重办原因:"+ cbreason;
  11713. }
  11714. #endregion
  11715. #region 插入操作记录
  11716. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11717. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11718. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  11719. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11720. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11721. string satisfie = "不满意";
  11722. if (issatisfie == 1)
  11723. satisfie = "满意";
  11724. else if (issatisfie == 2)
  11725. satisfie = "基本满意";
  11726. oper.F_Message = userinfo+" " + opt + "了工单,结果:" + satisfie + cbreasons;
  11727. oper.F_CreateUser = userModel.F_UserCode;
  11728. oper.F_CreateTime = DateTime.Now;
  11729. oper.F_IsDelete = 0;
  11730. operBLL.Add(oper);
  11731. //推送消息表
  11732. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11733. #endregion
  11734. #region 自动语音回访
  11735. if (issatisfie == 1)//如果满意就进行自动语音回访
  11736. {
  11737. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  11738. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  11739. {
  11740. string AutoCallMsg = string.Empty;
  11741. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  11742. }
  11743. }
  11744. #endregion
  11745. }
  11746. #endregion
  11747. trans.Complete();
  11748. }
  11749. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  11750. }
  11751. else
  11752. {
  11753. return Error("已经回访过了");
  11754. }
  11755. }
  11756. else
  11757. {
  11758. return Error("操作失败");
  11759. }
  11760. }
  11761. else
  11762. {
  11763. return Error("权限不足");
  11764. }
  11765. }
  11766. #region 20200311 zhengbingbing 增加履职界定操作
  11767. /// <summary>
  11768. /// 履职
  11769. /// </summary>
  11770. /// <returns></returns>
  11771. [Authority]
  11772. public ActionResult PerformWorkOrder()
  11773. {
  11774. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11775. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11776. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11777. {//承办单位和管理员
  11778. string workorderid = RequestString.GetFormString("workorderid");
  11779. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  11780. int perid = RequestString.GetInt("perid", 0);
  11781. string file = RequestString.GetFormString("file");
  11782. string result = RequestString.GetFormString("result");
  11783. string guid = RequestString.GetFormString("guid");
  11784. string visitids = RequestString.GetFormString("visitids");
  11785. if (string.IsNullOrWhiteSpace(visitids))
  11786. return Error("请选择你要履职的回访记录");
  11787. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11788. List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in ("+ visitids + ")");
  11789. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  11790. if (modelT_Bus_WorkOrder != null)
  11791. {
  11792. 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)
  11793. {//已回访,重办待交办,重办中,重办驳回,已结案
  11794. using (TransactionScope trans = new TransactionScope())
  11795. {
  11796. var assids = ""; //读取对应的交办记录
  11797. #region 读取对应的交办id
  11798. foreach (var item in listT_Bus_VisitResult)
  11799. {
  11800. if (item.F_AssignedId != null && item.F_AssignedId != 0)
  11801. assids = item.F_AssignedId + ",";
  11802. }
  11803. assids = assids.Trim(',');
  11804. #endregion
  11805. #region 履职
  11806. if (perid == 0)
  11807. {
  11808. #region 新增履职记录
  11809. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11810. modelT_Bus_PerformDuties.F_AssignedId = assids;
  11811. modelT_Bus_PerformDuties.F_VisitId = visitids;
  11812. modelT_Bus_PerformDuties.F_File = file;
  11813. modelT_Bus_PerformDuties.F_State = state;
  11814. modelT_Bus_PerformDuties.F_Result = result;
  11815. modelT_Bus_PerformDuties.F_IsAudit = 0;
  11816. modelT_Bus_PerformDuties.F_IsDelete = 0;
  11817. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  11818. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  11819. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  11820. int id=new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  11821. modelT_Bus_PerformDuties.F_Id = id;
  11822. //保存回访记录
  11823. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  11824. #endregion
  11825. }
  11826. else
  11827. {
  11828. #region 修改履职记录
  11829. modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  11830. if (modelT_Bus_PerformDuties != null)
  11831. {
  11832. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11833. modelT_Bus_PerformDuties.F_AssignedId = assids;
  11834. modelT_Bus_PerformDuties.F_VisitId = visitids;
  11835. modelT_Bus_PerformDuties.F_File = file;
  11836. modelT_Bus_PerformDuties.F_State = state;
  11837. modelT_Bus_PerformDuties.F_Result = result;
  11838. modelT_Bus_PerformDuties.F_IsAudit = 0;
  11839. modelT_Bus_PerformDuties.F_IsDelete = 0;
  11840. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  11841. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  11842. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  11843. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  11844. modelT_Bus_PerformDuties.F_Id = id;
  11845. //保存回访记录
  11846. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  11847. }
  11848. #endregion
  11849. }
  11850. if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  11851. {
  11852. #region 保存交办信息
  11853. foreach (var item in assids.Split(','))
  11854. {
  11855. var model = assignBLL.GetModel(int.Parse(item));
  11856. if (model != null)
  11857. {
  11858. model.F_IsPerform = 1;
  11859. assignBLL.Update(model);
  11860. }
  11861. }
  11862. #endregion
  11863. #region
  11864. foreach (var item in listT_Bus_VisitResult)
  11865. {
  11866. item.F_IsPerform = 1;
  11867. new BLL.T_Bus_VisitResult().Update(item);
  11868. }
  11869. #endregion
  11870. #region 删除草稿信息
  11871. 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='" + userModel.F_UserCode + "' ");
  11872. foreach (var cg in cglist)
  11873. {
  11874. cg.F_IsDelete = 1;
  11875. cg.F_DeleteUser = userModel.F_UserCode;
  11876. cg.F_DeleteTime = DateTime.Now;
  11877. new BLL.T_Bus_PerformDuties().Update(cg);
  11878. new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, userModel.F_UserCode, guid);
  11879. }
  11880. #endregion
  11881. var opt = "履职界定";
  11882. #region 插入操作记录
  11883. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11884. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11885. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11886. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11887. oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  11888. oper.F_File = modelT_Bus_PerformDuties.F_File;
  11889. oper.F_CreateUser = userModel.F_UserCode;
  11890. oper.F_CreateTime = DateTime.Now;
  11891. oper.F_IsDelete = 0;
  11892. foreach (var item in assids.Split(','))
  11893. {
  11894. oper.F_AssignedId = int.Parse(item);
  11895. operBLL.Add(oper);
  11896. //推送消息表 履职界定消息目前推送给工号8666
  11897. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", userModel.F_UserCode, (int)EnumSmsType.workorder);
  11898. }
  11899. #endregion
  11900. }
  11901. #endregion
  11902. trans.Complete();
  11903. }
  11904. return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  11905. }
  11906. else
  11907. {
  11908. return Error("此状态下不能进行履职操作");
  11909. }
  11910. }
  11911. else
  11912. {
  11913. return Error("操作失败");
  11914. }
  11915. }
  11916. else
  11917. {
  11918. return Error("权限不足");
  11919. }
  11920. }
  11921. /// <summary>
  11922. /// 履职界定审核
  11923. /// </summary>
  11924. /// <returns></returns>
  11925. [Authority]
  11926. public ActionResult DefinitionWorkOrder() {
  11927. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11928. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11929. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11930. {
  11931. string workorderid = RequestString.GetFormString("workorderid");
  11932. int state = RequestString.GetInt("state", 0);
  11933. string reason = RequestString.GetFormString("reason");
  11934. int perid = RequestString.GetInt("perid", 0);
  11935. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11936. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  11937. if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  11938. {
  11939. if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  11940. {
  11941. using (TransactionScope trans = new TransactionScope())
  11942. {
  11943. #region 保存履职界定信息
  11944. modelT_Bus_PerformDuties.F_IsAudit = state;
  11945. modelT_Bus_PerformDuties.F_AuditUser = userModel.F_UserCode;
  11946. modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  11947. modelT_Bus_PerformDuties.F_AuditReason = reason;
  11948. new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  11949. #endregion
  11950. string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  11951. #region
  11952. if (state == 1)
  11953. {
  11954. strmsg = "同意";
  11955. isperform = 2;
  11956. IsSatisfie = 1;
  11957. }
  11958. else if (state == 2)
  11959. {
  11960. strmsg = "拒绝";
  11961. isperform = 3;
  11962. }
  11963. #endregion
  11964. #region 交办记录处理
  11965. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  11966. {
  11967. var model = assignBLL.GetModel(int.Parse(item));
  11968. if (model != null)
  11969. {
  11970. model.F_IsPerform = isperform;
  11971. if (state == 1)//同意此履职界定则修改回访结果为满意
  11972. model.F_IsSatisfie = IsSatisfie;
  11973. assignBLL.Update(model);
  11974. }
  11975. }
  11976. #endregion
  11977. #region 回访记录处理
  11978. foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  11979. {
  11980. var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  11981. if (model != null)
  11982. {
  11983. model.F_IsPerform = isperform;
  11984. if (state == 1)//同意此履职界定则修改回访结果为满意
  11985. model.F_IsSatisfie = IsSatisfie;
  11986. new BLL.T_Bus_VisitResult().Update(model);
  11987. }
  11988. }
  11989. #endregion
  11990. #region 插入操作记录
  11991. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11992. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11993. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11994. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11995. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  11996. if (!string.IsNullOrWhiteSpace(reason))
  11997. oper.F_Message = oper.F_Message + ",理由为:"+ reason;
  11998. oper.F_CreateUser = userModel.F_UserCode;
  11999. oper.F_CreateTime = DateTime.Now;
  12000. oper.F_IsDelete = 0;
  12001. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  12002. {
  12003. oper.F_AssignedId = int.Parse(item);
  12004. operBLL.Add(oper);
  12005. //推送消息表
  12006. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12007. }
  12008. #endregion
  12009. trans.Complete();
  12010. }
  12011. return Success("操作成功");
  12012. }
  12013. else
  12014. return Error("已经审核过了");
  12015. }
  12016. else
  12017. return Error("操作失败");
  12018. }
  12019. else
  12020. return Error("权限不足");
  12021. }
  12022. #endregion
  12023. /// <summary>
  12024. /// 督办或监察工单
  12025. /// </summary>
  12026. /// <returns></returns>
  12027. [Authority]
  12028. public ActionResult RemindWorkOrder()
  12029. {
  12030. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12031. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12032. string workorderid = RequestString.GetFormString("workorderid");
  12033. int type = RequestString.GetInt("type", 0);//1督办 2监察
  12034. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  12035. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12036. string files = RequestString.GetFormString("files");
  12037. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12038. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12039. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  12040. {
  12041. using (TransactionScope trans = new TransactionScope())
  12042. {
  12043. #region 插入督办记录
  12044. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12045. if (type == 1 && state > 0)
  12046. {
  12047. 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();
  12048. if(modelT_Bus_RemindRecord!=null)
  12049. {
  12050. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12051. modelT_Bus_RemindRecord.F_State = state;
  12052. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  12053. }
  12054. }
  12055. else
  12056. {
  12057. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12058. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12059. modelT_Bus_RemindRecord.F_Type = type;
  12060. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12061. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12062. modelT_Bus_RemindRecord.F_File = files;
  12063. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  12064. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12065. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12066. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12067. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12068. }
  12069. #endregion
  12070. #region 插入操作记录
  12071. string typename = "督办";
  12072. if (type == 2) { typename = "监察"; }
  12073. if (type == 1 && state==0) { typename = "提交督办"; }
  12074. if (type == 1 && state == 1) { typename = "督办"; }
  12075. if (type == 1 && state == 2) { typename = "退回督办"; }
  12076. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12077. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12078. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12079. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12080. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12081. oper.F_Message = userinfo + " " + typename + "了工单";
  12082. oper.F_CreateUser = userModel.F_UserCode;
  12083. oper.F_CreateTime = DateTime.Now;
  12084. oper.F_IsDelete = 0;
  12085. operBLL.Add(oper);
  12086. #endregion
  12087. trans.Complete();
  12088. }
  12089. return Success("操作成功");
  12090. }
  12091. else
  12092. {
  12093. return Error("操作失败");
  12094. }
  12095. }
  12096. /// <summary>
  12097. /// 重办工单
  12098. /// </summary>
  12099. /// <returns></returns>
  12100. [Authority]
  12101. public ActionResult ReloadWorkOrder()
  12102. {
  12103. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12104. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12105. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12106. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12107. {
  12108. string workorderid = RequestString.GetFormString("workorderid");
  12109. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12110. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  12111. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12112. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12113. if (modelT_Bus_WorkOrder != null)
  12114. {
  12115. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12116. {
  12117. return Error("操作失败");
  12118. }
  12119. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12120. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12121. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12122. {
  12123. using (TransactionScope trans = new TransactionScope())
  12124. {
  12125. #region 插入督办记录
  12126. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12127. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12128. modelT_Bus_RemindRecord.F_AssignedId = 0;
  12129. modelT_Bus_RemindRecord.F_Type = 1;
  12130. if (modelT_Bus_AssignedInfo != null)//转办后重办
  12131. {
  12132. #region 插入交办记录
  12133. 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());
  12134. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12135. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  12136. modelT_Bus_WorkOrder.F_Scanning = newlimittime.AddDays(3);
  12137. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12138. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12139. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12140. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  12141. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12142. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12143. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12144. AssignedInfo.F_State = 1;//0草稿 1正式
  12145. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12146. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12147. AssignedInfo.F_IsDelete = 0;
  12148. AssignedInfo.F_IsOverdue = 0;
  12149. AssignedInfo.F_IsSure = 0;
  12150. AssignedInfo.F_IsReload = n + 1;
  12151. AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12152. AssignedInfo.F_ReloadTime = DateTime.Now;
  12153. assignBLL.Add(AssignedInfo);
  12154. #endregion
  12155. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  12156. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  12157. }
  12158. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  12159. {
  12160. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  12161. if (cruser != null)
  12162. {
  12163. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  12164. }
  12165. }
  12166. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12167. modelT_Bus_RemindRecord.F_State = 1;
  12168. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12169. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12170. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12171. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12172. #endregion
  12173. #region 保存工单信息
  12174. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12175. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12176. modelT_Bus_WorkOrder.F_Result = "";
  12177. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12178. modelT_Bus_WorkOrder.F_DealUser = "";
  12179. modelT_Bus_WorkOrder.F_DealTime = null;
  12180. workorderBLL.Update(modelT_Bus_WorkOrder);
  12181. #endregion
  12182. #region 插入操作记录
  12183. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12184. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12185. if (modelT_Bus_AssignedInfo != null)
  12186. {
  12187. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12188. }
  12189. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12190. string deptname = "";
  12191. #region 20191021调整为多个主办单位时调整
  12192. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12193. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12194. #endregion
  12195. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12196. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  12197. oper.F_CreateUser = userModel.F_UserCode;
  12198. oper.F_CreateTime = DateTime.Now;
  12199. oper.F_IsDelete = 0;
  12200. operBLL.Add(oper);
  12201. //推送消息表
  12202. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12203. foreach (var u in users)
  12204. {
  12205. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12206. }
  12207. #endregion
  12208. trans.Complete();
  12209. }
  12210. return Success("操作成功");
  12211. }
  12212. else
  12213. {
  12214. return Error("已经处理过了");
  12215. }
  12216. }
  12217. else
  12218. {
  12219. return Error("操作失败");
  12220. }
  12221. }
  12222. else
  12223. {
  12224. return Error("权限不足");
  12225. }
  12226. }
  12227. /// <summary>
  12228. /// 退回原单位重办
  12229. /// </summary>
  12230. /// <returns></returns>
  12231. [Authority]
  12232. public ActionResult SubReloadWorkOrder(string[] ids, string reason)
  12233. {
  12234. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12235. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12236. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12237. {
  12238. if (ids != null && ids.Length > 0)
  12239. {
  12240. foreach (string str in ids)
  12241. {
  12242. using (TransactionScope trans = new TransactionScope())
  12243. {
  12244. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12245. if (modelT_Bus_WorkOrder != null)
  12246. {
  12247. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12248. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12249. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12250. {
  12251. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId );
  12252. #region 保存工单信息
  12253. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12254. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12255. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12256. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12257. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12258. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12259. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12260. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12261. newmodelT_Bus_AssignedInfo.F_State = 1;
  12262. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12263. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12264. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12265. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12266. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12267. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12268. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12269. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12270. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12271. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12272. #region 保存工单信息
  12273. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12274. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12275. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12276. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12277. 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());
  12278. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12279. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12280. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12281. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12282. modelT_Bus_WorkOrder.F_Result = "";
  12283. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12284. modelT_Bus_WorkOrder.F_DealUser = "";
  12285. modelT_Bus_WorkOrder.F_DealTime = null;
  12286. workorderBLL.Update(modelT_Bus_WorkOrder);
  12287. #region 改为未查收
  12288. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12289. assignBLL.Update(modelT_Bus_AssignedInfo);
  12290. #endregion
  12291. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12292. if (users != null && users.Count > 0)
  12293. {
  12294. foreach (var u in users)
  12295. {
  12296. if (!string.IsNullOrEmpty(u.F_Mobile))
  12297. {
  12298. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12299. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12300. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12301. }
  12302. if (!string.IsNullOrEmpty(u.F_Telephone))
  12303. {
  12304. var userlist = u.F_Telephone.Split(',');
  12305. if (userlist != null)
  12306. {
  12307. foreach (var it in userlist)
  12308. {
  12309. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12310. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12311. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  12312. }
  12313. }
  12314. }
  12315. }
  12316. }
  12317. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12318. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  12319. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12320. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  12321. #endregion
  12322. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12323. #endregion
  12324. #endregion
  12325. #region 插入操作记录
  12326. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12327. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12328. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12329. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12330. oper.F_Message = userinfo + " 退回重办了工单,重办原因:" + reason;
  12331. oper.F_CreateUser = userModel.F_UserCode;
  12332. oper.F_CreateTime = DateTime.Now;
  12333. oper.F_IsDelete = 0;
  12334. operBLL.Add(oper);
  12335. #endregion
  12336. }
  12337. }
  12338. trans.Complete();
  12339. }
  12340. }
  12341. return Success("操作成功");
  12342. }
  12343. else
  12344. {
  12345. return Error("操作失败");
  12346. }
  12347. }
  12348. else
  12349. {
  12350. return Error("权限不足");
  12351. }
  12352. }
  12353. /// <summary>
  12354. /// 重办提交工单 提交后为重办待交办
  12355. /// </summary>
  12356. /// <returns></returns>
  12357. [Authority]
  12358. public ActionResult SubReloadWorkOrder1(string[] ids, string reason)
  12359. {
  12360. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12361. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12362. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12363. {
  12364. if (ids != null && ids.Length > 0)
  12365. {
  12366. foreach (string str in ids)
  12367. {
  12368. using (TransactionScope trans = new TransactionScope())
  12369. {
  12370. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12371. if (modelT_Bus_WorkOrder != null)
  12372. {
  12373. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12374. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12375. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12376. {
  12377. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  12378. #region 保存工单信息
  12379. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12380. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12381. //Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12382. //newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12383. //newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12384. //newmodelT_Bus_AssignedInfo.F_MainDeptId = null;// modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12385. //newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12386. //newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12387. //newmodelT_Bus_AssignedInfo.F_State = 1;
  12388. //newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12389. //newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12390. //newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12391. //newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12392. //newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12393. //newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12394. //newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12395. //newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12396. //newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12397. //newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12398. #region 保存工单信息
  12399. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12400. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12401. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12402. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12403. 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());
  12404. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12405. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12406. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12407. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  12408. modelT_Bus_WorkOrder.F_Result = "";
  12409. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12410. modelT_Bus_WorkOrder.F_DealUser = "";
  12411. modelT_Bus_WorkOrder.F_DealTime = null;
  12412. modelT_Bus_WorkOrder.F_MainDeptId = null;
  12413. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12414. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12415. workorderBLL.Update(modelT_Bus_WorkOrder);
  12416. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12417. //modelT_Bus_WorkOrder.F_MainDeptId = null;
  12418. //modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12419. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  12420. #endregion
  12421. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12422. #endregion
  12423. #endregion
  12424. #region 插入操作记录
  12425. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12426. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12427. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12428. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12429. oper.F_Message = userinfo + " 提交了重办待交办工单,重办待交办原因:" + reason;
  12430. oper.F_CreateUser = userModel.F_UserCode;
  12431. oper.F_CreateTime = DateTime.Now;
  12432. oper.F_IsDelete = 0;
  12433. operBLL.Add(oper);
  12434. #endregion
  12435. }
  12436. }
  12437. trans.Complete();
  12438. }
  12439. }
  12440. return Success("操作成功");
  12441. }
  12442. else
  12443. {
  12444. return Error("操作失败");
  12445. }
  12446. }
  12447. else
  12448. {
  12449. return Error("权限不足");
  12450. }
  12451. }
  12452. /// <summary>
  12453. /// 驳回重办,驳回后状态为重办驳回状态
  12454. /// 调度员可驳回
  12455. /// </summary>
  12456. /// <param name="ids"></param>
  12457. /// <returns></returns>
  12458. [Authority]
  12459. public ActionResult RejReloadWorkOrder(string id,string reason)
  12460. {
  12461. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12462. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12463. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12464. {
  12465. if (!string.IsNullOrEmpty(id))
  12466. {
  12467. using (TransactionScope trans = new TransactionScope())
  12468. {
  12469. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  12470. if (modelT_Bus_WorkOrder != null)
  12471. {
  12472. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='"+modelT_Bus_WorkOrder.F_WorkOrderId+ "' order by F_CreateTime desc ").FirstOrDefault();
  12473. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12474. {
  12475. #region 保存工单信息
  12476. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  12477. if (modelT_Bus_AssignedInfo != null)
  12478. {
  12479. 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();
  12480. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  12481. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12482. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12483. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  12484. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  12485. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  12486. #endregion
  12487. }
  12488. workorderBLL.Update(modelT_Bus_WorkOrder);
  12489. #endregion
  12490. #region 插入操作记录
  12491. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12492. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12493. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12494. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12495. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  12496. oper.F_CreateUser = userModel.F_UserCode;
  12497. oper.F_CreateTime = DateTime.Now;
  12498. oper.F_IsDelete = 0;
  12499. operBLL.Add(oper);
  12500. #endregion
  12501. }
  12502. }
  12503. trans.Complete();
  12504. }
  12505. return Success("操作成功");
  12506. }
  12507. else
  12508. {
  12509. return Error("参数异常");
  12510. }
  12511. }
  12512. else
  12513. {
  12514. return Error("权限不足");
  12515. }
  12516. }
  12517. /// <summary>
  12518. /// 重办工单
  12519. /// </summary>
  12520. /// <returns></returns>
  12521. [Authority]
  12522. public ActionResult NewReloadWorkOrder()
  12523. {
  12524. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12525. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12526. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12527. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12528. {
  12529. string workorderid = RequestString.GetFormString("workorderid");
  12530. string maindeptid = RequestString.GetFormString("maindeptid");
  12531. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12532. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  12533. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12534. Model.T_Bus_WorkOrder modeT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12535. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12536. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12537. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12538. if (modelT_Bus_WorkOrder != null)
  12539. {
  12540. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12541. //{
  12542. // return Error("操作失败");
  12543. //}
  12544. if (!string.IsNullOrEmpty(otherdeptids))
  12545. {
  12546. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  12547. {
  12548. return Error("主办单位不能出现在协办单位");
  12549. }
  12550. }
  12551. if (limittime < DateTime.Now)
  12552. {
  12553. return Error("办理时限不能小于当前时间");
  12554. }
  12555. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12556. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12557. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12558. {
  12559. using (TransactionScope trans = new TransactionScope())
  12560. {
  12561. if (deptlist.Count == 1)
  12562. {
  12563. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12564. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12565. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12566. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptlist[0].F_DeptId ;//主办单位id
  12567. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12568. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12569. newmodelT_Bus_AssignedInfo.F_State = 1;
  12570. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12571. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12572. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12573. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12574. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12575. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12576. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12577. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12578. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12579. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12580. #region 保存工单信息
  12581. modelT_Bus_WorkOrder.F_MainDeptId = deptlist[0].F_DeptId;
  12582. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12583. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12584. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12585. 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());
  12586. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12587. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  12588. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  12589. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12590. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12591. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12592. modelT_Bus_WorkOrder.F_Result = "";
  12593. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12594. modelT_Bus_WorkOrder.F_DealUser = "";
  12595. modelT_Bus_WorkOrder.F_DealTime = null;
  12596. workorderBLL.Update(modelT_Bus_WorkOrder);
  12597. #endregion
  12598. #region 插入操作记录
  12599. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12600. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12601. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  12602. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12603. string deptname = "";
  12604. #region 20191021调整为多个主办单位时调整
  12605. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12606. var deptinfo = new BLL.T_Sys_Department().GetModel(deptlist[0].F_DeptId);
  12607. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12608. #endregion
  12609. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12610. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  12611. if (!string.IsNullOrEmpty(otherdeptids))
  12612. {
  12613. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12614. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12615. }
  12616. oper.F_CreateUser = userModel.F_UserCode;
  12617. oper.F_CreateTime = DateTime.Now;
  12618. oper.F_IsDelete = 0;
  12619. operBLL.Add(oper);
  12620. //推送消息表
  12621. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12622. foreach (var u in users)
  12623. {
  12624. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  12625. if (!string.IsNullOrEmpty(u.F_Mobile))
  12626. {
  12627. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12628. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12629. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12630. }
  12631. if (!string.IsNullOrEmpty(u.F_Telephone))
  12632. {
  12633. var userlist = u.F_Telephone.Split(',');
  12634. if (userlist != null)
  12635. {
  12636. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12637. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12638. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  12639. }
  12640. }
  12641. }
  12642. #endregion
  12643. }
  12644. else
  12645. {
  12646. #region 多单位
  12647. string newids = ""; string errdeptid = ""; string deptname = "";
  12648. foreach (var deptmasinfo in deptlist)
  12649. {
  12650. deptname += deptmasinfo.F_DeptName + ",";
  12651. }
  12652. foreach (var deptinfo in deptlist)
  12653. {
  12654. //deptname += deptinfo.F_DeptName + ",";
  12655. #region 新增工单
  12656. var modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  12657. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  12658. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12659. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12660. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12661. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12662. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12663. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12664. newmodelT_Bus_AssignedInfo.F_State = 1;
  12665. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12666. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12667. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12668. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12669. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12670. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12671. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12672. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12673. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12674. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12675. #endregion
  12676. #region 保存工单信息
  12677. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12678. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12679. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12680. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12681. 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());
  12682. modelT_Bus_WorkOrder1.F_IsReload = n + 1;
  12683. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  12684. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  12685. modelT_Bus_WorkOrder1.F_IsOverdue = 0;
  12686. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12687. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.reload;//重办中
  12688. modelT_Bus_WorkOrder1.F_Result = "";
  12689. modelT_Bus_WorkOrder1.F_DealDeptId = null;
  12690. modelT_Bus_WorkOrder1.F_DealUser = "";
  12691. modelT_Bus_WorkOrder1.F_DealTime = null;
  12692. workorderBLL.Add (modelT_Bus_WorkOrder1);
  12693. #endregion
  12694. #region 插入操作记录
  12695. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12696. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12697. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  12698. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  12699. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12700. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  12701. if (!string.IsNullOrEmpty(otherdeptids))
  12702. {
  12703. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12704. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12705. }
  12706. oper.F_CreateUser = userModel.F_UserCode;
  12707. oper.F_CreateTime = DateTime.Now;
  12708. oper.F_IsDelete = 0;
  12709. newids += "," + modelT_Bus_WorkOrder1.F_WorkOrderId;
  12710. operBLL.Add(oper);
  12711. //推送消息表
  12712. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12713. foreach (var u in users)
  12714. {
  12715. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  12716. if (!string.IsNullOrEmpty(u.F_Mobile))
  12717. {
  12718. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  12719. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  12720. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12721. }
  12722. if (!string.IsNullOrEmpty(u.F_Telephone))
  12723. {
  12724. var userlist = u.F_Telephone.Split(',');
  12725. if (userlist != null)
  12726. {
  12727. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  12728. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  12729. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  12730. }
  12731. }
  12732. }
  12733. #endregion
  12734. }
  12735. newids = newids.TrimStart(',');
  12736. var ids = newids.Split(',');
  12737. if (ids!=null && ids.Length >0)
  12738. {
  12739. foreach (var it in ids)
  12740. {
  12741. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12742. oper.F_WorkOrderId = it;
  12743. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12744. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12745. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  12746. oper.F_CreateUser = userModel.F_UserCode;
  12747. oper.F_CreateTime = DateTime.Now;
  12748. oper.F_IsDelete = 0;
  12749. operBLL.Add(oper);
  12750. }
  12751. }
  12752. if (ids != null && ids.Length > 0)
  12753. {
  12754. #region 主工单新增部门记录
  12755. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12756. oper.F_WorkOrderId = workorderid;
  12757. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  12758. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12759. oper.F_Message = userinfo + " 重办交办了工单,主办单位:" + deptname;
  12760. oper.F_CreateUser = userModel.F_UserCode;
  12761. oper.F_CreateTime = DateTime.Now;
  12762. oper.F_IsDelete = 0;
  12763. operBLL.Add(oper);
  12764. #endregion
  12765. #region 新增工单记录
  12766. oper.F_WorkOrderId = workorderid;
  12767. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  12768. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  12769. oper.F_CreateUser = userModel.F_UserCode;
  12770. oper.F_CreateTime = DateTime.Now;
  12771. oper.F_IsDelete = 0;
  12772. operBLL.Add(oper);
  12773. #endregion
  12774. }
  12775. modeT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;// 14;
  12776. modeT_Bus_WorkOrder.IsExport = 1;
  12777. workorderBLL.Update(modeT_Bus_WorkOrder);
  12778. #endregion
  12779. }
  12780. trans.Complete();
  12781. }
  12782. return Success("操作成功");
  12783. }
  12784. else
  12785. {
  12786. return Error("已经处理过了");
  12787. }
  12788. }
  12789. else
  12790. {
  12791. return Error("操作失败");
  12792. }
  12793. }
  12794. else
  12795. {
  12796. return Error("权限不足");
  12797. }
  12798. }
  12799. /// <summary>
  12800. /// 结案工单
  12801. /// </summary>
  12802. /// <returns></returns>
  12803. [Authority]
  12804. public ActionResult FinishWorkOrder()
  12805. {
  12806. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12807. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12808. //if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  12809. if (userModel.F_RoleCode == "ZJZY"|| userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"|| userModel.F_RoleCode == "ZXHWY")
  12810. {
  12811. string workorderid = RequestString.GetFormString("workorderid");
  12812. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  12813. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  12814. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  12815. string deptids = RequestString.GetFormString("deptids");//通告单位
  12816. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  12817. //2020-3-4添加通告选项
  12818. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  12819. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  12820. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  12821. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  12822. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12823. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12824. if (modelT_Bus_WorkOrder != null)
  12825. {
  12826. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12827. //{
  12828. // return Error("操作失败");
  12829. //}
  12830. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12831. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState==(int)EnumWorkState.rejload)
  12832. {
  12833. using (TransactionScope trans = new TransactionScope())
  12834. {
  12835. #region 修改工单记录
  12836. //modelT_Bus_WorkOrder.F_WorkState = 9;
  12837. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  12838. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  12839. modelT_Bus_WorkOrder.F_IsClosed = 1;
  12840. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  12841. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12842. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  12843. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  12844. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  12845. if (isnotice == 1)
  12846. {
  12847. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  12848. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  12849. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12850. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  12851. modelT_Bus_NoticeCriticism.F_State = 1;
  12852. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  12853. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  12854. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  12855. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  12856. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  12857. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  12858. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  12859. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  12860. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  12861. modelT_Bus_WorkOrder.F_IsNotice = 1;
  12862. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  12863. }
  12864. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  12865. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  12866. assignBLL.Update(modelT_Bus_AssignedInfo);
  12867. workorderBLL.Update(modelT_Bus_WorkOrder);
  12868. #endregion
  12869. #region 插入操作记录
  12870. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12871. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12872. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12873. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12874. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  12875. if (isnotice == 1)
  12876. {
  12877. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  12878. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  12879. }
  12880. if (isstandard == 1)
  12881. {
  12882. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  12883. var sts= DbHelperSQL.GetSingle(sqlstand);
  12884. oper.F_Message = oper.F_Message + ";办理结果出现不规范"+ sts + "情况,请及时查看";
  12885. }
  12886. oper.F_CreateUser = userModel.F_UserCode;
  12887. oper.F_CreateTime = DateTime.Now;
  12888. oper.F_IsDelete = 0;
  12889. operBLL.Add(oper);
  12890. //调用科大讯飞
  12891. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  12892. {
  12893. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  12894. if (tbf != null)
  12895. {
  12896. string deptname = string.Empty;
  12897. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  12898. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12899. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  12900. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  12901. if (bl)
  12902. {
  12903. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  12904. }
  12905. else
  12906. {
  12907. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  12908. }
  12909. }
  12910. }
  12911. #endregion
  12912. trans.Complete();
  12913. }
  12914. return Success("操作成功");
  12915. }
  12916. else
  12917. {
  12918. return Error("已经处理过了");
  12919. }
  12920. }
  12921. else
  12922. {
  12923. return Error("操作失败");
  12924. }
  12925. }
  12926. else
  12927. {
  12928. return Error("权限不足");
  12929. }
  12930. }
  12931. /// <summary>
  12932. /// 结案工单
  12933. /// </summary>
  12934. /// <returns></returns>
  12935. [Authority]
  12936. public ActionResult ForceFinishWorkOrder()
  12937. {
  12938. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12939. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12940. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG" || userModel.F_RoleCode == "ZXHWY")
  12941. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12942. {
  12943. string workorderid = RequestString.GetFormString("workorderid");
  12944. string result = RequestString.GetFormString("result");//处理结果
  12945. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  12946. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  12947. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  12948. string deptids = RequestString.GetFormString("deptids");//通告单位
  12949. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  12950. //2020-3-4添加通告选项
  12951. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  12952. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  12953. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  12954. string standardids= RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  12955. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12956. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12957. if (modelT_Bus_WorkOrder != null)
  12958. {
  12959. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG"
  12960. && userModel.F_RoleCode != "ZXLD")
  12961. {
  12962. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12963. {
  12964. return Error("操作失败");
  12965. }
  12966. }
  12967. using (TransactionScope trans = new TransactionScope())
  12968. {
  12969. #region 修改工单记录
  12970. modelT_Bus_WorkOrder.F_Result = result;
  12971. //modelT_Bus_WorkOrder.F_WorkState = 9;
  12972. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  12973. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  12974. modelT_Bus_WorkOrder.F_IsClosed = 1;
  12975. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  12976. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12977. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  12978. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  12979. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  12980. if (isnotice == 1)
  12981. {
  12982. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  12983. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  12984. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12985. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  12986. modelT_Bus_NoticeCriticism.F_State = 1;
  12987. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  12988. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  12989. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  12990. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  12991. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  12992. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  12993. modelT_Bus_WorkOrder.F_IsNotice = 1;
  12994. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  12995. if (modelT_Bus_AssignedInfo != null)
  12996. {
  12997. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  12998. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  12999. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  13000. }
  13001. }
  13002. if (modelT_Bus_AssignedInfo!=null )
  13003. {
  13004. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  13005. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  13006. assignBLL.Update(modelT_Bus_AssignedInfo);
  13007. }
  13008. workorderBLL.Update(modelT_Bus_WorkOrder);
  13009. #endregion
  13010. #region 插入操作记录
  13011. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13012. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13013. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13014. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13015. oper.F_Message = userinfo + " 强制结案了工单" ;
  13016. if (isnotice == 1)
  13017. {
  13018. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13019. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  13020. }
  13021. if(isstandard==1)
  13022. {
  13023. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  13024. }
  13025. oper.F_CreateUser = userModel.F_UserCode;
  13026. oper.F_CreateTime = DateTime.Now;
  13027. oper.F_IsDelete = 0;
  13028. operBLL.Add(oper);
  13029. //调用科大讯飞
  13030. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == 9)
  13031. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13032. {
  13033. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  13034. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, userModel.F_UserCode, userModel.depname, modelT_Bus_WorkOrder.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  13035. if (bl)
  13036. {
  13037. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  13038. }
  13039. else
  13040. {
  13041. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  13042. }
  13043. }
  13044. #endregion
  13045. trans.Complete();
  13046. }
  13047. return Success("操作成功");
  13048. }
  13049. else
  13050. {
  13051. return Error("操作失败");
  13052. }
  13053. }
  13054. else
  13055. {
  13056. return Error("权限不足");
  13057. }
  13058. }
  13059. /// <summary>
  13060. /// 删除工单
  13061. /// </summary>
  13062. /// <returns></returns>
  13063. public ActionResult DelWorkOrder(string[] ids)
  13064. {
  13065. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13066. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13067. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"||
  13068. userModel.F_UserCode =="001")
  13069. {
  13070. //StringBuilder sb = new StringBuilder();
  13071. foreach (var item in ids)
  13072. {
  13073. //sb.Append("'" + item + "',");
  13074. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  13075. if (modelT_Bus_WorkOrder != null)//0)
  13076. {
  13077. using (TransactionScope trans = new TransactionScope())
  13078. {
  13079. #region 修改工单记录
  13080. modelT_Bus_WorkOrder.F_IsDelete = 1;
  13081. modelT_Bus_WorkOrder.F_DeleteUser= userModel.F_UserCode;
  13082. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  13083. workorderBLL.Update(modelT_Bus_WorkOrder);
  13084. #endregion
  13085. #region 插入操作记录
  13086. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13087. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13088. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13089. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13090. oper.F_Message = userinfo + " 删除了工单";
  13091. oper.F_CreateUser = userModel.F_UserCode;
  13092. oper.F_CreateTime = DateTime.Now;
  13093. oper.F_IsDelete = 0;
  13094. operBLL.Add(oper);
  13095. #endregion
  13096. trans.Complete();
  13097. }
  13098. }
  13099. }
  13100. return Success("删除成功");
  13101. }
  13102. else
  13103. {
  13104. return Error("权限不足");
  13105. }
  13106. }
  13107. /// <summary>
  13108. /// 转媒体工单
  13109. /// </summary>
  13110. /// <returns></returns>
  13111. [Authority]
  13112. public ActionResult ReleaseWorkOrder()
  13113. {
  13114. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13115. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13116. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13117. {
  13118. string workorderid = RequestString.GetFormString("workorderid");
  13119. int isrelease = RequestString.GetInt("isrelease", -1);
  13120. if (isrelease != -1)
  13121. {
  13122. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13123. if (modelT_Bus_WorkOrder != null)
  13124. {
  13125. using (TransactionScope trans = new TransactionScope())
  13126. {
  13127. #region 修改工单记录
  13128. modelT_Bus_WorkOrder.F_IsRelease = isrelease;
  13129. workorderBLL.Update(modelT_Bus_WorkOrder);
  13130. #endregion
  13131. #region 插入操作记录
  13132. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13133. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13134. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13135. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13136. oper.F_Message = userinfo + " " + (isrelease == 1 ? "转媒体了" : "收回了转媒体") + "工单";
  13137. oper.F_CreateUser = userModel.F_UserCode;
  13138. oper.F_CreateTime = DateTime.Now;
  13139. oper.F_IsDelete = 0;
  13140. operBLL.Add(oper);
  13141. #endregion
  13142. trans.Complete();
  13143. }
  13144. return Success("操作成功");
  13145. }
  13146. else
  13147. {
  13148. return Error("操作失败");
  13149. }
  13150. }
  13151. else
  13152. {
  13153. return Error("操作失败");
  13154. }
  13155. }
  13156. else
  13157. {
  13158. return Error("权限不足");
  13159. }
  13160. }
  13161. /// <summary>
  13162. /// 申请扫描件延时
  13163. /// </summary>
  13164. /// <returns></returns>
  13165. [Authority]
  13166. public ActionResult DelayScanning()
  13167. {
  13168. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13169. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13170. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13171. {
  13172. string workorderid = RequestString.GetFormString("workorderid");
  13173. //int state = RequestString.GetInt("state", 0);
  13174. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13175. string reason = RequestString.GetFormString("reason");
  13176. string files = RequestString.GetFormString("files");
  13177. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13178. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13179. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  13180. {
  13181. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  13182. {
  13183. using (TransactionScope trans = new TransactionScope())
  13184. {
  13185. if (userModel.F_RoleCode == "WLDW")
  13186. {
  13187. if (userModel.F_DeptId > 0)
  13188. {
  13189. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  13190. if (dept != null)
  13191. {
  13192. if (dept.F_SMExtensionTime != null)
  13193. {
  13194. if (((DateTime)dept.F_SMExtensionTime).Month == DateTime.Now.Month
  13195. && ((DateTime)dept.F_SMExtensionTime).Year == DateTime.Now.Year)
  13196. {
  13197. if (dept.F_SMDelayTimes < 4)
  13198. {
  13199. dept.F_SMDelayTimes += 1;
  13200. dept.F_SMExtensionTime = DateTime.Now;
  13201. bool n = new BLL.T_Sys_Department().Update(dept);
  13202. }
  13203. else
  13204. return Error("本单位本月扫描件申请延时已达四次");
  13205. }
  13206. else
  13207. {
  13208. dept.F_SMDelayTimes = 1;
  13209. dept.F_SMExtensionTime = DateTime.Now;
  13210. bool n = new BLL.T_Sys_Department().Update(dept);
  13211. }
  13212. }
  13213. else
  13214. {
  13215. dept.F_SMDelayTimes = 1;
  13216. dept.F_SMExtensionTime = DateTime.Now;
  13217. bool n = new BLL.T_Sys_Department().Update(dept);
  13218. }
  13219. }
  13220. }
  13221. }
  13222. #region 保存工单信息
  13223. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  13224. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  13225. workorderBLL.Update(modelT_Bus_WorkOrder);
  13226. #endregion
  13227. #region 插入申请延时信息
  13228. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  13229. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13230. //delay.F_State = state;
  13231. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13232. delay.F_NewTime = newlimittime;
  13233. delay.F_Reason = reason;
  13234. delay.F_State = 2;
  13235. delay.F_IsAudit = 0;
  13236. delay.F_IsDelete = 0;
  13237. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13238. delay.F_CreateUser = userModel.F_UserCode;
  13239. delay.F_CreateTime = DateTime.Now;
  13240. delay.F_File = files;
  13241. new BLL.T_Bus_DelayTime().Add(delay);
  13242. #endregion
  13243. #region 插入操作记录
  13244. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13245. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13246. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13247. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13248. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13249. oper.F_Message = userinfo + " 申请了延时处理";
  13250. oper.F_CreateUser = userModel.F_UserCode;
  13251. oper.F_CreateTime = DateTime.Now;
  13252. oper.F_IsDelete = 0;
  13253. operBLL.Add(oper);
  13254. //推送消息表
  13255. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13256. #endregion
  13257. trans.Complete();
  13258. }
  13259. return Success("操作成功");
  13260. }
  13261. else
  13262. {
  13263. return Error("操作失敗,已查收");
  13264. }
  13265. }
  13266. else
  13267. {
  13268. return Error("操作失败");
  13269. }
  13270. }
  13271. else
  13272. {
  13273. return Error("权限不足");
  13274. }
  13275. }
  13276. /// <summary>
  13277. /// 审核延时工单
  13278. /// </summary>
  13279. /// <returns></returns>
  13280. [Authority]
  13281. public ActionResult AuditDelayScanning()
  13282. {
  13283. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13284. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13285. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13286. {
  13287. string workorderid = RequestString.GetFormString("workorderid");
  13288. int state = RequestString.GetInt("state", 0);
  13289. string reason = RequestString.GetFormString("reason");
  13290. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13291. int delayid = RequestString.GetInt("delayid", 0);
  13292. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13293. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  13294. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13295. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13296. {
  13297. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13298. //{
  13299. // return Error("操作失败");
  13300. //}
  13301. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13302. {
  13303. using (TransactionScope trans = new TransactionScope())
  13304. {
  13305. #region 保存工单信息
  13306. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13307. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13308. if (modelT_Bus_DelayTime.F_State ==2)
  13309. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13310. else
  13311. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13312. workorderBLL.Update(modelT_Bus_WorkOrder);
  13313. #endregion
  13314. #region 保存审核信息
  13315. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13316. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13317. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13318. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13319. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13320. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13321. #endregion
  13322. string type = "同意"; string des = "";
  13323. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13324. {
  13325. #region 修改交办记录
  13326. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13327. assignBLL.Update(modelT_Bus_AssignedInfo);
  13328. #endregion
  13329. #region 处理协办单位
  13330. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13331. foreach (var xb in xblist)
  13332. {
  13333. //xb.F_LimitTime = DateTime.Now;
  13334. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13335. assignItemBLL.Update(xb);
  13336. }
  13337. #endregion
  13338. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13339. }
  13340. else
  13341. {
  13342. type = "拒绝";
  13343. }
  13344. #region 插入操作记录
  13345. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13346. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13347. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13348. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13349. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13350. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13351. oper.F_CreateUser = userModel.F_UserCode;
  13352. oper.F_CreateTime = DateTime.Now;
  13353. oper.F_IsDelete = 0;
  13354. operBLL.Add(oper);
  13355. //推送消息表
  13356. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13357. #endregion
  13358. trans.Complete();
  13359. }
  13360. return Success("操作成功");
  13361. }
  13362. else
  13363. {
  13364. return Error("此审核已经处理");
  13365. }
  13366. }
  13367. else
  13368. {
  13369. return Error("操作失败");
  13370. }
  13371. }
  13372. else
  13373. {
  13374. return Error("权限不足");
  13375. }
  13376. }
  13377. /// <summary>
  13378. /// 批量审核延时
  13379. /// </summary>
  13380. /// <param name="ids"></param>
  13381. /// <returns></returns>
  13382. [Authority]
  13383. public ActionResult AuditDelayScanningBatch(string ids)
  13384. {
  13385. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13386. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13387. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13388. {
  13389. int state = RequestString.GetInt("state", 0);
  13390. string reason = RequestString.GetFormString("reason");
  13391. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13392. string errids = ""; string errids1 = "";
  13393. if (!string.IsNullOrEmpty(ids))
  13394. {
  13395. string[] strids = ids.Split(',');
  13396. foreach (string str in strids)
  13397. {
  13398. using (TransactionScope trans = new TransactionScope())
  13399. {
  13400. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  13401. 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();
  13402. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  13403. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13404. {
  13405. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13406. //{
  13407. // errids += str + ",";
  13408. // continue;
  13409. //}
  13410. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13411. {
  13412. #region 保存工单信息
  13413. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13414. if (modelT_Bus_DelayTime.F_State == 2)
  13415. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13416. else
  13417. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13418. workorderBLL.Update(modelT_Bus_WorkOrder);
  13419. #endregion
  13420. #region 保存审核信息
  13421. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13422. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13423. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13424. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13425. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13426. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13427. #endregion
  13428. string type = "同意"; string des = "";
  13429. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13430. {
  13431. #region 修改交办记录
  13432. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13433. assignBLL.Update(modelT_Bus_AssignedInfo);
  13434. #endregion
  13435. #region 处理协办单位
  13436. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13437. foreach (var xb in xblist)
  13438. {
  13439. //xb.F_LimitTime = DateTime.Now;
  13440. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13441. assignItemBLL.Update(xb);
  13442. }
  13443. #endregion
  13444. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13445. }
  13446. else
  13447. {
  13448. type = "拒绝";
  13449. }
  13450. #region 插入操作记录
  13451. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13452. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13453. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13454. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13455. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13456. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13457. oper.F_CreateUser = userModel.F_UserCode;
  13458. oper.F_CreateTime = DateTime.Now;
  13459. oper.F_IsDelete = 0;
  13460. operBLL.Add(oper);
  13461. //推送消息表
  13462. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13463. #endregion
  13464. }
  13465. else
  13466. errids1 += str + ",";
  13467. }
  13468. trans.Complete();
  13469. }
  13470. }
  13471. if (errids1 != "" && errids != "")
  13472. return Success("操作成功");
  13473. else
  13474. {
  13475. string msg = "";
  13476. if (errids1 != "")
  13477. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  13478. if (errids != "")
  13479. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  13480. return Error("部分工单操作失败" + msg);
  13481. }
  13482. }
  13483. else
  13484. {
  13485. return Error("参数获取失败");
  13486. }
  13487. }
  13488. else
  13489. {
  13490. return Error("权限不足");
  13491. }
  13492. }
  13493. ///// <summary>
  13494. ///// 通告和撤销通告
  13495. ///// </summary>
  13496. ///// <returns></returns>
  13497. //[Authority]
  13498. //public ActionResult NoticeWorkOrder()
  13499. //{
  13500. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13501. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13502. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  13503. // {
  13504. // int assignid = RequestString.GetInt("id", 0);
  13505. // int isnotice = RequestString.GetInt("isnotice", -1);
  13506. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  13507. // if (modelT_Bus_AssignedInfo != null)
  13508. // {
  13509. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  13510. // {
  13511. // using (TransactionScope trans = new TransactionScope())
  13512. // {
  13513. // #region 修改交办记录
  13514. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  13515. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13516. // #endregion
  13517. // #region 插入操作记录
  13518. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13519. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13520. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13521. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13522. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13523. // oper.F_CreateUser = userModel.F_UserCode;
  13524. // oper.F_CreateTime = DateTime.Now;
  13525. // oper.F_IsDelete = 0;
  13526. // operBLL.Add(oper);
  13527. // #endregion
  13528. // trans.Complete();
  13529. // }
  13530. // return Success("操作成功");
  13531. // }
  13532. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  13533. // {
  13534. // using (TransactionScope trans = new TransactionScope())
  13535. // {
  13536. // #region 修改交办记录
  13537. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13538. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13539. // #endregion
  13540. // #region 插入操作记录
  13541. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13542. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13543. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13544. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13545. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13546. // oper.F_CreateUser = userModel.F_UserCode;
  13547. // oper.F_CreateTime = DateTime.Now;
  13548. // oper.F_IsDelete = 0;
  13549. // operBLL.Add(oper);
  13550. // #endregion
  13551. // trans.Complete();
  13552. // }
  13553. // return Success("操作成功");
  13554. // }
  13555. // else
  13556. // {
  13557. // return Error("操作失败");
  13558. // }
  13559. // }
  13560. // else
  13561. // {
  13562. // return Error("操作失败");
  13563. // }
  13564. // }
  13565. // else
  13566. // {
  13567. // return Error("权限不足");
  13568. // }
  13569. //}
  13570. /// <summary>
  13571. /// 通告和撤销通告
  13572. /// </summary>
  13573. /// <returns></returns>
  13574. [Authority]
  13575. public ActionResult NoticeWorkOrder()
  13576. {
  13577. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13578. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13579. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13580. {
  13581. string workorderid = RequestString.GetFormString("workorderid");
  13582. int isnotice = RequestString.GetInt("isnotice", -1);
  13583. string deptids = RequestString.GetFormString("deptids");//通告单位
  13584. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  13585. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13586. if (modelT_Bus_WorkOrder != null)
  13587. {
  13588. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  13589. {
  13590. using (TransactionScope trans = new TransactionScope())
  13591. {
  13592. #region 修改工单记录
  13593. modelT_Bus_WorkOrder.F_IsNotice = 0;
  13594. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  13595. workorderBLL.Update(modelT_Bus_WorkOrder);
  13596. #endregion
  13597. #region 修改通告记录
  13598. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  13599. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  13600. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  13601. modelT_Bus_NoticeCriticism.F_DeleteUser = userModel.F_UserCode;
  13602. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  13603. #endregion
  13604. #region 插入操作记录
  13605. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13606. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13607. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  13608. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13609. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  13610. oper.F_CreateUser = userModel.F_UserCode;
  13611. oper.F_CreateTime = DateTime.Now;
  13612. oper.F_IsDelete = 0;
  13613. operBLL.Add(oper);
  13614. #endregion
  13615. trans.Complete();
  13616. }
  13617. return Success("操作成功");
  13618. }
  13619. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  13620. {
  13621. using (TransactionScope trans = new TransactionScope())
  13622. {
  13623. #region 修改工单记录
  13624. modelT_Bus_WorkOrder.F_IsNotice = 1;
  13625. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  13626. workorderBLL.Update(modelT_Bus_WorkOrder);
  13627. #endregion
  13628. #region 新增通告记录
  13629. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  13630. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  13631. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13632. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  13633. modelT_Bus_NoticeCriticism.F_State = 1;
  13634. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  13635. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  13636. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  13637. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  13638. #endregion
  13639. #region 插入操作记录
  13640. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13641. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13642. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13643. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13644. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  13645. oper.F_CreateUser = userModel.F_UserCode;
  13646. oper.F_CreateTime = DateTime.Now;
  13647. oper.F_IsDelete = 0;
  13648. operBLL.Add(oper);
  13649. #endregion
  13650. trans.Complete();
  13651. }
  13652. return Success("操作成功");
  13653. }
  13654. else
  13655. {
  13656. return Error("操作失败");
  13657. }
  13658. }
  13659. else
  13660. {
  13661. return Error("操作失败");
  13662. }
  13663. }
  13664. else
  13665. {
  13666. return Error("权限不足");
  13667. }
  13668. }
  13669. /// <summary>
  13670. /// 市民催单
  13671. /// </summary>
  13672. /// <returns></returns>
  13673. [Authority]
  13674. public ActionResult AdditionalWorkOrder()
  13675. {
  13676. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13677. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  13678. string workorderid = RequestString.GetFormString("workorderid");
  13679. string title = RequestString.GetFormString("title");
  13680. string content = RequestString.GetFormString("content");
  13681. string files = RequestString.GetFormString("files");
  13682. string callid = RequestString.GetFormString("callid");
  13683. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  13684. if (modelT_Bus_WorkOrder != null)
  13685. {
  13686. using (TransactionScope trans = new TransactionScope())
  13687. {
  13688. #region 插入附加记录
  13689. //批示记录
  13690. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  13691. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  13692. model_T_Bus_Additional.F_Title = title;
  13693. model_T_Bus_Additional.F_Content = content;
  13694. if (!string.IsNullOrEmpty(callid))
  13695. {
  13696. model_T_Bus_Additional.F_CallId = callid;
  13697. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  13698. if (rd != null)
  13699. {
  13700. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  13701. }
  13702. }
  13703. model_T_Bus_Additional.F_File = files;//附件
  13704. model_T_Bus_Additional.F_CreateUser = userModel.F_UserCode;//呈批人
  13705. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  13706. model_T_Bus_Additional.F_IsDelete = 0;
  13707. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  13708. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  13709. #endregion
  13710. #region 插入操作记录
  13711. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13712. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13713. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13714. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13715. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  13716. oper.F_CreateUser = userModel.F_UserCode;
  13717. oper.F_CreateTime = DateTime.Now;
  13718. oper.F_IsDelete = 0;
  13719. operBLL.Add(oper);
  13720. #endregion
  13721. #region 根据状态不同给出提醒
  13722. var sqlusers = " F_DeleteFlag=0 ";
  13723. #region 获取被提醒人
  13724. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13725. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  13726. sqlusers += " and F_UserCode='"+ modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  13727. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  13728. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  13729. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  13730. {
  13731. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  13732. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  13733. }
  13734. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  13735. {
  13736. if (modelT_Bus_AssignedInfo != null )
  13737. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  13738. }
  13739. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  13740. {
  13741. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  13742. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  13743. }
  13744. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  13745. {
  13746. if (modelT_Bus_AssignedInfo != null)
  13747. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  13748. }
  13749. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  13750. {
  13751. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  13752. }
  13753. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13754. {
  13755. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  13756. }
  13757. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  13758. {
  13759. if (modelT_Bus_AssignedInfo != null)
  13760. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  13761. }
  13762. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  13763. {
  13764. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  13765. }
  13766. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  13767. {
  13768. if (modelT_Bus_AssignedInfo != null)
  13769. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  13770. }
  13771. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  13772. {
  13773. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  13774. }
  13775. #endregion
  13776. var userlists = userBLL.GetModelList(sqlusers);
  13777. //推送消息表
  13778. foreach (var u in userlists)
  13779. {
  13780. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  13781. }
  13782. #endregion
  13783. trans.Complete();
  13784. }
  13785. return Success("操作成功");
  13786. }
  13787. else
  13788. {
  13789. return Error("操作失败");
  13790. }
  13791. }
  13792. #endregion
  13793. #region 语音附件其他
  13794. /// <summary>
  13795. /// 验证当前单位是否交办单位
  13796. /// </summary>
  13797. /// <param name="modelT_Bus_AssignedInfo"></param>
  13798. /// <param name="deptid"></param>
  13799. /// <returns></returns>
  13800. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  13801. {
  13802. int type = 0;
  13803. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  13804. {
  13805. type = 1;//主办
  13806. }
  13807. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  13808. {
  13809. type = 2;//协办
  13810. }
  13811. return type;
  13812. }
  13813. /// <summary>
  13814. /// 获取留言路径
  13815. /// </summary>
  13816. /// <param name="lid">留言id</param>
  13817. /// <param name="prefix">前缀</param>
  13818. /// <returns></returns>
  13819. public string GetLeavePath(string lid, string prefix)
  13820. {
  13821. string path = string.Empty;
  13822. var liuyan = new BLL.T_Call_LeaveRecord().GetModelList(" F_Id='" + lid + "' ").FirstOrDefault();
  13823. if (liuyan != null)
  13824. {
  13825. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  13826. {
  13827. path = prefix + liuyan.F_RecFileUrl;
  13828. }
  13829. }
  13830. return path;
  13831. }
  13832. /// <summary>
  13833. /// 获取通话录音路径
  13834. /// </summary>
  13835. /// <param name="cid">通话id</param>
  13836. /// <param name="prefix">前缀</param>
  13837. /// <returns></returns>
  13838. public string GetCallPath(string cid, string prefix)
  13839. {
  13840. string path = string.Empty;
  13841. var luyin = new BLL.T_Call_CallRecords().GetModelList(" CallRecordsId='" + cid + "' ").FirstOrDefault();
  13842. if (luyin != null)
  13843. {
  13844. if (!string.IsNullOrEmpty(luyin.FilePath))
  13845. {
  13846. var ym = prefix;
  13847. ym = ym.Substring(0, ym.Length - 1);
  13848. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  13849. path = ym + lujing;
  13850. //if (!CommonHelper.FileIsExist(path))
  13851. //{
  13852. // path = lujing;
  13853. //}
  13854. }
  13855. }
  13856. return path;
  13857. }
  13858. /// <summary>
  13859. /// 获取附件数据
  13860. /// </summary>
  13861. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  13862. /// <param name="prefix">前缀</param>
  13863. /// <returns></returns>
  13864. public DataTable GetFileData(string ids, string prefix)
  13865. {
  13866. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ") order by F_AddTime desc").Tables[0];
  13867. foreach (DataRow dr in dt.Rows)
  13868. {
  13869. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  13870. }
  13871. return dt;
  13872. }
  13873. /// <summary>
  13874. /// 绑定附件信息
  13875. /// </summary>
  13876. /// <param name="dt"></param>
  13877. /// <param name="prefix"></param>
  13878. /// <returns></returns>
  13879. public DataTable BindFileData(DataTable dt, string prefix)
  13880. {
  13881. dt.Columns.Add("File", typeof(object));
  13882. foreach (DataRow dr in dt.Rows)
  13883. {
  13884. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  13885. {
  13886. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  13887. }
  13888. }
  13889. return dt;
  13890. }
  13891. /// <summary>
  13892. /// 绑定附件信息
  13893. /// </summary>
  13894. /// <param name="dt"></param>
  13895. /// <param name="prefix"></param>
  13896. /// <returns></returns>
  13897. public DataTable BindFileDataFiles(DataTable dt, string prefix)
  13898. {
  13899. dt.Columns.Add("Files", typeof(object));
  13900. foreach (DataRow dr in dt.Rows)
  13901. {
  13902. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  13903. {
  13904. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  13905. }
  13906. }
  13907. return dt;
  13908. }
  13909. #endregion
  13910. #region 修改工单 by admin
  13911. /// <summary>
  13912. /// 获取详情
  13913. /// </summary>
  13914. /// <returns></returns>
  13915. [Authority]
  13916. public ActionResult GetInfoByAdmin(int id, int type)
  13917. {
  13918. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13919. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13920. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13921. {
  13922. //string sql = "select * from ";
  13923. string table = string.Empty;
  13924. switch (type)
  13925. {
  13926. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  13927. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  13928. case 3: table = "T_Bus_Feedback"; break;//办理信息
  13929. case 4: table = "T_Bus_RemindRecord"; break;//督办
  13930. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  13931. case 6: table = "T_Bus_VisitResult"; break;//回访
  13932. }
  13933. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  13934. var dt = DbHelperSQL.Query(sql).Tables[0];
  13935. return Success("操作成功", dt);
  13936. }
  13937. else
  13938. {
  13939. return Error("权限不足");
  13940. }
  13941. }
  13942. /// <summary>
  13943. /// 修改工单信息
  13944. /// </summary>
  13945. /// <returns></returns>
  13946. [Authority]
  13947. public ActionResult EditWorkOrderByAdmin()
  13948. {
  13949. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13950. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13951. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13952. {
  13953. string workorderid = RequestString.GetFormString("workorderid");
  13954. int source = RequestString.GetInt("source", 0);
  13955. string cusname = RequestString.GetFormString("cusname");
  13956. string cussex = RequestString.GetFormString("cussex");
  13957. string cusphone = RequestString.GetFormString("cusphone");
  13958. string cusaddress = RequestString.GetFormString("cusaddress");
  13959. string email = RequestString.GetFormString("email");
  13960. string zipcode = RequestString.GetFormString("zipcode");
  13961. string conname = RequestString.GetFormString("conname");
  13962. string conphone = RequestString.GetFormString("conphone");
  13963. string title = RequestString.GetFormString("title");
  13964. string content = RequestString.GetFormString("content");
  13965. string files = RequestString.GetFormString("files");
  13966. int sourcearea = RequestString.GetInt("sourcearea", 0);
  13967. string sourceaddress = RequestString.GetFormString("sourceaddress");
  13968. string keys = RequestString.GetFormString("keys");
  13969. string splituser = RequestString.GetFormString("splituser");
  13970. int type = RequestString.GetInt("type", 0);
  13971. int bigtype = RequestString.GetInt("bigtype", 0);
  13972. int smalltype = RequestString.GetInt("smalltype", 0);
  13973. int isprotect = RequestString.GetInt("isprotect", 0);
  13974. int level = RequestString.GetInt("level", 0);
  13975. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13976. if (modelT_Bus_WorkOrder != null)
  13977. {
  13978. using (TransactionScope trans = new TransactionScope())
  13979. {
  13980. #region 保存工单信息
  13981. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  13982. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  13983. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  13984. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  13985. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  13986. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  13987. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  13988. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  13989. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  13990. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  13991. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  13992. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  13993. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  13994. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  13995. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  13996. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  13997. modelT_Bus_WorkOrder.F_File = files;//附件
  13998. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  13999. modelT_Bus_WorkOrder.F_Key = keys;
  14000. modelT_Bus_WorkOrder.F_Level = level;
  14001. workorderBLL.Update(modelT_Bus_WorkOrder);
  14002. #endregion
  14003. #region 插入操作记录
  14004. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14005. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14006. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14007. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  14008. oper.F_File = modelT_Bus_WorkOrder.F_File;
  14009. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14010. oper.F_Message = userinfo + " 修改了工单基本信息";
  14011. oper.F_CreateUser = userModel.F_UserCode;
  14012. oper.F_CreateTime = DateTime.Now;
  14013. oper.F_IsDelete = 0;
  14014. operBLL.Add(oper);
  14015. #endregion
  14016. trans.Complete();
  14017. }
  14018. return Success("操作成功");
  14019. }
  14020. else
  14021. {
  14022. return Error("操作失败");
  14023. }
  14024. }
  14025. else
  14026. {
  14027. return Success("权限不足");
  14028. }
  14029. }
  14030. /// <summary>
  14031. /// 修改批示信息
  14032. /// </summary>
  14033. /// <returns></returns>
  14034. [Authority]
  14035. public ActionResult EditSuperInfoByAdmin()
  14036. {
  14037. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14038. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14039. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14040. {
  14041. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  14042. string superuser = RequestString.GetFormString("superuser");
  14043. string superopinion = RequestString.GetFormString("superopinion");
  14044. string files = RequestString.GetFormString("files");
  14045. int id = RequestString.GetInt("id", 0);
  14046. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  14047. if (model_T_Bus_SubmitSuper != null)
  14048. {
  14049. using (TransactionScope trans = new TransactionScope())
  14050. {
  14051. #region 保存批示信息
  14052. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  14053. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  14054. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  14055. if (!string.IsNullOrEmpty(files))
  14056. model_T_Bus_SubmitSuper.F_File = files;//附件
  14057. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  14058. #endregion
  14059. #region 插入操作记录
  14060. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14061. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  14062. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  14063. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14064. oper.F_Message = userinfo + " 修改了工单批示信息";
  14065. oper.F_CreateUser = userModel.F_UserCode;
  14066. oper.F_CreateTime = DateTime.Now;
  14067. oper.F_IsDelete = 0;
  14068. operBLL.Add(oper);
  14069. #endregion
  14070. trans.Complete();
  14071. }
  14072. return Success("操作成功");
  14073. }
  14074. else
  14075. {
  14076. return Error("操作失败");
  14077. }
  14078. }
  14079. else
  14080. {
  14081. return Error("权限不足");
  14082. }
  14083. }
  14084. /// <summary>
  14085. /// 修改交办信息
  14086. /// </summary>
  14087. /// <returns></returns>
  14088. [Authority]
  14089. public ActionResult EditAssignInfoByAdmin()
  14090. {
  14091. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14092. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14093. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14094. {
  14095. int assignid = RequestString.GetInt("id", 0);
  14096. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  14097. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  14098. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  14099. string assignedopinion = RequestString.GetFormString("assignedopinion");
  14100. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  14101. if (modelT_Bus_AssignedInfo != null)
  14102. {
  14103. using (TransactionScope trans = new TransactionScope())
  14104. {
  14105. #region 保存交办信息
  14106. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  14107. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  14108. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14109. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14110. assignBLL.Update(modelT_Bus_AssignedInfo);
  14111. #endregion
  14112. #region 插入操作记录
  14113. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14114. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14115. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  14116. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14117. oper.F_Message = userinfo + " 修改了工单交办信息";
  14118. oper.F_CreateUser = userModel.F_UserCode;
  14119. oper.F_CreateTime = DateTime.Now;
  14120. oper.F_IsDelete = 0;
  14121. operBLL.Add(oper);
  14122. #endregion
  14123. trans.Complete();
  14124. }
  14125. return Success("操作成功");
  14126. }
  14127. else
  14128. {
  14129. return Error("操作失败");
  14130. }
  14131. }
  14132. else
  14133. {
  14134. return Error("权限不足");
  14135. }
  14136. }
  14137. /// <summary>
  14138. /// 修改办理信息
  14139. /// </summary>
  14140. /// <returns></returns>
  14141. [Authority]
  14142. public ActionResult EditFeedBackInfoByAdmin()
  14143. {
  14144. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14145. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14146. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14147. {
  14148. string dealman = RequestString.GetFormString("dealman");
  14149. string result = RequestString.GetFormString("result");
  14150. string files = RequestString.GetFormString("files");
  14151. int feedbackid = RequestString.GetInt("id", 0);
  14152. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  14153. if (model_T_Bus_Feedback != null)
  14154. {
  14155. using (TransactionScope trans = new TransactionScope())
  14156. {
  14157. #region 保存办理信息
  14158. model_T_Bus_Feedback.F_DealUser = dealman;
  14159. model_T_Bus_Feedback.F_Result = result;//反馈内容
  14160. model_T_Bus_Feedback.F_File = files;
  14161. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  14162. #endregion
  14163. #region 保存工单信息
  14164. 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());
  14165. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  14166. if (maxid == assign.F_Id)
  14167. {
  14168. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  14169. order.F_Result = result;//反馈内容
  14170. workorderBLL.Update(order);
  14171. }
  14172. #endregion
  14173. #region 插入操作记录
  14174. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14175. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  14176. oper.F_File = model_T_Bus_Feedback.F_File;
  14177. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14178. oper.F_Message = userinfo + " 修改了工单办理信息";
  14179. oper.F_CreateUser = userModel.F_UserCode;
  14180. oper.F_CreateTime = DateTime.Now;
  14181. oper.F_IsDelete = 0;
  14182. operBLL.Add(oper);
  14183. #endregion
  14184. trans.Complete();
  14185. }
  14186. return Success("操作成功");
  14187. }
  14188. else
  14189. {
  14190. return Error("操作失败");
  14191. }
  14192. }
  14193. else
  14194. {
  14195. return Error("权限不足");
  14196. }
  14197. }
  14198. /// <summary>
  14199. /// 修改回访信息
  14200. /// </summary>
  14201. /// <returns></returns>
  14202. [Authority]
  14203. public ActionResult EditVisitInfoByAdmin()
  14204. {
  14205. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14206. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14207. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14208. {
  14209. string visituser = RequestString.GetFormString("visituser");//回访人
  14210. int type = RequestString.GetInt("type", 0);//回访方式
  14211. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  14212. int visitid = RequestString.GetInt("id", 0);
  14213. string result = RequestString.GetFormString("result");//回访情况
  14214. string guid = RequestString.GetFormString("guid");
  14215. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  14216. if (modelT_Bus_VisitResult != null)
  14217. {
  14218. using (TransactionScope trans = new TransactionScope())
  14219. {
  14220. #region 保存回访信息
  14221. modelT_Bus_VisitResult.F_VisitUser = visituser;
  14222. modelT_Bus_VisitResult.F_Type = type;
  14223. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  14224. modelT_Bus_VisitResult.F_Result = result;
  14225. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  14226. //保存回访记录
  14227. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  14228. #endregion
  14229. #region 插入操作记录
  14230. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14231. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  14232. oper.F_File = modelT_Bus_VisitResult.F_File;
  14233. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14234. oper.F_Message = userinfo + " 修改了工单回访信息";
  14235. oper.F_CreateUser = userModel.F_UserCode;
  14236. oper.F_CreateTime = DateTime.Now;
  14237. oper.F_IsDelete = 0;
  14238. operBLL.Add(oper);
  14239. #endregion
  14240. trans.Complete();
  14241. }
  14242. return Success("操作成功");
  14243. }
  14244. else
  14245. {
  14246. return Error("操作失败");
  14247. }
  14248. }
  14249. else
  14250. {
  14251. return Error("权限不足");
  14252. }
  14253. }
  14254. /// <summary>
  14255. /// 修改退回审核信息
  14256. /// </summary>
  14257. /// <returns></returns>
  14258. [Authority]
  14259. public ActionResult EditAuditRebackByAdmin()
  14260. {
  14261. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14262. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14263. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14264. {
  14265. string reason = RequestString.GetFormString("reason");
  14266. int rebackid = RequestString.GetInt("id", 0);
  14267. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  14268. if (modelT_Bus_Feedback != null)
  14269. {
  14270. using (TransactionScope trans = new TransactionScope())
  14271. {
  14272. #region 保存反馈信息
  14273. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  14274. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  14275. #endregion
  14276. #region 插入操作记录
  14277. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14278. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  14279. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14280. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  14281. oper.F_CreateUser = userModel.F_UserCode;
  14282. oper.F_CreateTime = DateTime.Now;
  14283. oper.F_IsDelete = 0;
  14284. operBLL.Add(oper);
  14285. #endregion
  14286. trans.Complete();
  14287. }
  14288. return Success("操作成功");
  14289. }
  14290. else
  14291. {
  14292. return Error("操作失败");
  14293. }
  14294. }
  14295. else
  14296. {
  14297. return Error("权限不足");
  14298. }
  14299. }
  14300. /// <summary>
  14301. /// 修改延时审核信息
  14302. /// </summary>
  14303. /// <returns></returns>
  14304. [Authority]
  14305. public ActionResult EditAuditDelayByAdmin()
  14306. {
  14307. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14308. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14309. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14310. {
  14311. string reason = RequestString.GetFormString("reason");
  14312. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  14313. int delayid = RequestString.GetInt("id", 0);
  14314. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  14315. if (modelT_Bus_DelayTime != null)
  14316. {
  14317. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  14318. using (TransactionScope trans = new TransactionScope())
  14319. {
  14320. #region 保存延时审核信息
  14321. modelT_Bus_DelayTime.F_RefuseReason = reason;
  14322. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  14323. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  14324. #endregion
  14325. #region 插入操作记录
  14326. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14327. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  14328. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14329. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  14330. oper.F_CreateUser = userModel.F_UserCode;
  14331. oper.F_CreateTime = DateTime.Now;
  14332. oper.F_IsDelete = 0;
  14333. operBLL.Add(oper);
  14334. #endregion
  14335. trans.Complete();
  14336. }
  14337. return Success("操作成功");
  14338. }
  14339. else
  14340. {
  14341. return Error("操作失败");
  14342. }
  14343. }
  14344. else
  14345. {
  14346. return Error("权限不足");
  14347. }
  14348. }
  14349. #endregion
  14350. #region 县级对接
  14351. /// <summary>
  14352. /// 获取网点列表
  14353. /// </summary>
  14354. /// <param name="code"></param>
  14355. /// <param name="name"></param>
  14356. /// <returns></returns>
  14357. [Authority]
  14358. public ActionResult GetCityList(string code, string name)
  14359. {
  14360. string signcode = Configs.GetValue("CityOutSignCode");
  14361. string url = Configs.GetValue("CityOutUrl");
  14362. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  14363. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  14364. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  14365. return Content(result);
  14366. }
  14367. /// <summary>
  14368. /// 获取网点详情
  14369. /// </summary>
  14370. /// <param name="code"></param>
  14371. /// <returns></returns>
  14372. [Authority]
  14373. public ActionResult GetCityDetail(string code)
  14374. {
  14375. string signcode = Configs.GetValue("CityOutSignCode");
  14376. string url = Configs.GetValue("CityOutUrl");
  14377. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14378. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14379. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  14380. return Content(result);
  14381. }
  14382. /// <summary>
  14383. /// 转派工单到县级
  14384. /// </summary>
  14385. /// <returns></returns>
  14386. [Authority]
  14387. public ActionResult TurnWorkOrder()
  14388. {
  14389. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14390. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14391. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14392. {
  14393. string workorderid = RequestString.GetFormString("workorderid");
  14394. string citycode = RequestString.GetFormString("citycode");
  14395. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14396. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  14397. {
  14398. string code = Configs.GetValue("CityCode");
  14399. var branchmodel = GetCityInfo(code);
  14400. var citymodel = GetCityInfo(citycode);
  14401. if (branchmodel != null && citymodel != null)
  14402. {
  14403. using (TransactionScope trans = new TransactionScope())
  14404. {
  14405. string cityworkorderid = string.Empty;
  14406. #region 转单
  14407. string turnsigncode = citymodel["F_Sign"].ToString();
  14408. string turnurl = citymodel["F_Url"].ToString();
  14409. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  14410. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  14411. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  14412. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  14413. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  14414. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  14415. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  14416. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  14417. var turnresult = turnresultstr.ToJObject();
  14418. if (turnresult["state"].ToString() != "success")
  14419. {
  14420. return Content(turnresultstr);
  14421. }
  14422. else
  14423. {
  14424. cityworkorderid = turnresult["data"].ToString();
  14425. }
  14426. #endregion
  14427. #region 保存工单信息
  14428. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  14429. modelT_Bus_WorkOrder.F_IsClosed = 1;
  14430. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  14431. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  14432. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14433. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  14434. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14435. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  14436. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14437. workorderBLL.Update(modelT_Bus_WorkOrder);
  14438. #endregion
  14439. #region 删除草稿信息
  14440. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14441. foreach (var cg in cglist)
  14442. {
  14443. cg.F_IsDelete = 1;
  14444. cg.F_DeleteUser = userModel.F_UserCode;
  14445. cg.F_DeleteTime = DateTime.Now;
  14446. assignBLL.Update(cg);
  14447. }
  14448. #endregion
  14449. #region 新增转单记录
  14450. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  14451. modelT_Bus_CityTurn.F_CityCode = citycode;
  14452. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  14453. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  14454. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14455. modelT_Bus_CityTurn.F_Type = 2;
  14456. modelT_Bus_CityTurn.F_State = 1;
  14457. modelT_Bus_CityTurn.F_IsSure = 0;
  14458. modelT_Bus_CityTurn.F_IsDelete = 0;
  14459. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  14460. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  14461. #endregion
  14462. #region 插入操作记录
  14463. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14464. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14465. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14466. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14467. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  14468. oper.F_CreateUser = userModel.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 Success("权限不足");
  14490. }
  14491. }
  14492. /// <summary>
  14493. /// 获取当前网点信息
  14494. /// </summary>
  14495. /// <returns></returns>
  14496. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  14497. {
  14498. string signcode = Configs.GetValue("CityOutSignCode");
  14499. string url = Configs.GetValue("CityOutUrl");
  14500. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14501. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14502. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  14503. if (result["state"].ToString() == "success")
  14504. {
  14505. return result["data"].ToString().ToJObject();
  14506. }
  14507. else
  14508. {
  14509. return null;
  14510. }
  14511. }
  14512. #endregion
  14513. #region 私有方法
  14514. /// <summary>
  14515. /// 添加操作日志
  14516. /// </summary>
  14517. /// <param name="workorderid"></param>
  14518. /// <param name="workstate"></param>
  14519. /// <param name="msgs"></param>
  14520. /// <param name="usercode"></param>
  14521. private void addoptlog(string workorderid,int? workstate,int assid,string msgs,string usercode,int type=0)
  14522. {
  14523. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14524. oper.F_WorkOrderId = workorderid;
  14525. oper.F_State = workstate;
  14526. oper.F_AssignedId = assid;
  14527. oper.F_Message = msgs;
  14528. oper.F_CreateUser = usercode;
  14529. oper.F_CreateTime = DateTime.Now;
  14530. oper.F_IsDelete = 0;
  14531. oper.F_Type = type;
  14532. operBLL.Add(oper);
  14533. }
  14534. #endregion
  14535. }
  14536. }