Nenhuma Descrição

WorkOrderController.cs 866KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532
  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.Threading;
  15. using System.Threading.Tasks;
  16. using System.Transactions;
  17. using System.Web;
  18. using System.Web.Mvc;
  19. namespace CallCenterApi.Interface.Controllers.workorder
  20. {
  21. public class WorkOrderController : BaseController
  22. {
  23. // GET: WorkOrder
  24. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  25. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  26. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  27. private information.InternalMessagesController msg = new information.InternalMessagesController();
  28. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  29. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  30. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  31. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  32. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  33. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  34. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  35. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  36. #region 获取工单
  37. /// <summary>
  38. /// 获取工单列表
  39. /// </summary>
  40. /// <returns></returns>
  41. [Authority]
  42. #region MyRegion
  43. public ActionResult GetList(int isdc = 0)
  44. {
  45. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  46. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  47. DataTable dt = new DataTable();
  48. string sql = " and F_IsDelete=0 ";
  49. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  50. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  51. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  52. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  53. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  54. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  55. string wjstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  56. string wjstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  57. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  58. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  59. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  60. //回传时间筛选
  61. string hcstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrstarttime"));
  62. string hcstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrendtime"));
  63. int source = RequestString.GetInt("source", 0);
  64. int keyid = RequestString.GetInt("keyid", 0);
  65. int type = RequestString.GetInt("type", 0);
  66. // int bigtype = RequestString.GetInt("bigtype", 0);
  67. int smalltype = RequestString.GetInt("smalltype", 0);
  68. int sourcearea = RequestString.GetInt("sourcearea", 0);
  69. int files = RequestString.GetInt("files", 0);
  70. int deptid = RequestString.GetInt("deptid", 0);
  71. int dealtype = RequestString.GetInt("dealtype", -1);
  72. int issend = RequestString.GetInt("issend", -1);
  73. int deptlevel = RequestString.GetInt("deptlevel", 0);
  74. int satisfaction = RequestString.GetInt("satisfaction", -1);
  75. int timesort = RequestString.GetInt("timesort", -1);
  76. int BigType = RequestString.GetInt("BigType", -1);
  77. if(BigType>-1)
  78. {
  79. sql += " and F_InfoConBigType = '" + BigType + "' ";
  80. }
  81. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  82. string strisaudit = HttpUtility.UrlDecode(RequestString.GetQueryString("isaudit"));
  83. string strpageindex = RequestString.GetQueryString("page");
  84. int pageindex = 1;
  85. string strpagesize = RequestString.GetQueryString("pagesize");
  86. int pagesize = 10;
  87. int IsExport = RequestString.GetInt("isexport", -1);
  88. if (IsExport > -1)
  89. {
  90. if (IsExport == 0)
  91. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  92. else
  93. sql += " and IsExport = '" + IsExport + "' ";
  94. }
  95. #region sql 语句相关处理
  96. if (strstate.Trim() != "" && strstate != "undefined" && strstate != "3")
  97. {
  98. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  99. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  100. else
  101. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  102. }
  103. if (strtab == "2")
  104. {
  105. 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
  106. if (!string.IsNullOrEmpty(strisaudit))
  107. {
  108. if (strisaudit == "0")
  109. {
  110. sql += " and F_WorkState =3 ";
  111. }
  112. sql += " and F_IsAudit='" + strisaudit + "'";
  113. }
  114. if (deptid > 0)
  115. {
  116. sql += " and F_CreateDeptId='"+ deptid + "'";
  117. }
  118. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  119. {
  120. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  121. }
  122. else
  123. {
  124. sql += ")";
  125. }
  126. }
  127. if (files > 1)
  128. {
  129. sql += " and F_Files is not null and F_Files!='' ";
  130. }
  131. if (strworkid.Trim() != "" && strworkid != "undefined")
  132. {
  133. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  134. }
  135. if (strname.Trim() != "" && strname != "undefined")
  136. {
  137. sql += " and F_CusName like '%" + strname + "%' ";
  138. }
  139. if (strtel.Trim() != "" && strtel != "undefined")
  140. {
  141. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  142. }
  143. if (strkey.Trim() != "" && strkey != "undefined")
  144. {
  145. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  146. }
  147. if (strusercode.Trim() != "" && strusercode != "undefined")
  148. {//坐席
  149. var usercode = strusercode.Trim().Split(',');
  150. var newusercode = "";
  151. foreach (var item in usercode)
  152. {
  153. if (!string.IsNullOrWhiteSpace(item.Trim()))
  154. newusercode += "'" + item + "',";
  155. }
  156. newusercode = newusercode.Trim(',');
  157. if (newusercode.Trim() != "" && newusercode != "undefined")
  158. {
  159. sql += " and F_CreateUser in (" + newusercode + ") ";
  160. //sql += " and F_CreateUser ='" + strusercode + "' ";
  161. }
  162. }
  163. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  164. {//调度员
  165. var ddusercode = strddusercode.Trim().Split(',');
  166. var newusercode = "";
  167. foreach (var item in ddusercode)
  168. {
  169. if (!string.IsNullOrWhiteSpace(item.Trim()))
  170. newusercode += "'" + item + "',";
  171. }
  172. newusercode = newusercode.Trim(',');
  173. if (newusercode.Trim() != "" && newusercode != "undefined")
  174. {
  175. sql += " and F_AssignUser in(" + newusercode + ") ";
  176. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  177. }
  178. }
  179. if (source != 0)
  180. {
  181. sql += " and F_InfoSource = '" + source + "' ";
  182. }
  183. if (satisfaction > -1)
  184. {
  185. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  186. }
  187. if (keyid != 0)
  188. {
  189. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  190. }
  191. else if (userModel.F_RoleCode == "DFZF")
  192. {
  193. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  194. }
  195. if (type != 0)
  196. {
  197. sql += " and F_InfoType = '" + type + "' ";
  198. }
  199. //if (bigtype != 0)
  200. //{
  201. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  202. //}
  203. if (smalltype != 0)
  204. {
  205. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  206. }
  207. if (sourcearea != 0)
  208. {
  209. sql += " and F_SourceArea = '" + sourcearea + "' ";
  210. }
  211. if (deptid != 0 && string.IsNullOrEmpty(strisaudit))
  212. {
  213. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  214. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  215. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  216. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  217. //if (deptlevel == 0)
  218. //{
  219. // 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 ";
  220. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  221. //}
  222. //else
  223. //{
  224. // 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 ";
  225. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  226. //}
  227. #endregion
  228. }
  229. if (dealtype != -1)
  230. {
  231. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  232. }
  233. if (issend != -1)
  234. {
  235. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  236. }
  237. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  238. {
  239. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  240. }
  241. if (strendtime.Trim() != "" && strendtime != "undefined")
  242. {
  243. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  244. }
  245. #region 结案时间
  246. if (wjstrstarttime.Trim() != "" && wjstrstarttime != "undefined")
  247. {
  248. sql += " and datediff(day,F_CloseTime,'" + wjstrstarttime + "')<=0 ";
  249. }
  250. if (wjstrendtime.Trim() != "" && wjstrendtime != "undefined")
  251. {
  252. sql += " and datediff(day,F_CloseTime,'" + wjstrendtime + "')>=0 ";
  253. }
  254. #endregion
  255. //根据回传时间判断
  256. if (hcstrstarttime.Trim() != "" && hcstrstarttime != "undefined")
  257. {
  258. sql += " and F_Hcdatetime >= '"+ hcstrstarttime + " 00:00:00'";
  259. //sql += " and datediff(day,F_Hcdatetime,'" + hcstrstarttime + "')<=0 ";
  260. }
  261. if (hcstrendtime.Trim() != "" && hcstrendtime != "undefined")
  262. {
  263. sql += " and F_Hcdatetime<='"+ hcstrendtime + " 23:59:59' ";
  264. //sql += " and datediff(day,F_Hcdatetime,'" + hcstrendtime + "')>=0 ";
  265. }
  266. #endregion
  267. if (strpageindex.Trim() != "")
  268. {
  269. pageindex = Convert.ToInt32(strpageindex);
  270. }
  271. if (strpagesize.Trim() != "")
  272. {
  273. pagesize = Convert.ToInt32(strpagesize);
  274. }
  275. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  276. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  277. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  278. string sort = "ORDER BY F_CreateTime DESC";
  279. if (timesort == 0)
  280. sort = "ORDER BY LimitTime ASC";
  281. else if (timesort == 1)
  282. sort = "ORDER BY F_CreateTime DESC";
  283. 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,requirementFinishDay";
  284. #region 导出
  285. if (isdc > 0)
  286. {
  287. var top = " "; var orderby = " order by F_CreateTime";
  288. if (sql == " and F_IsDelete=0 ")
  289. {
  290. top = " top 1000 "; orderby += " desc ";
  291. }
  292. //20190715调整导出字段 zhengbingbing
  293. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  294. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  295. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  296. + " (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) 办理结果,"
  297. + " (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" +
  298. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  299. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  300. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  301. if (msg == "")
  302. {
  303. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  304. // {
  305. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  306. // }
  307. return Success("导出成功");
  308. }
  309. else
  310. {
  311. return Error("导出失败");
  312. }
  313. }
  314. #endregion
  315. int recordCount = 0;
  316. dt = BLL.PagerBLL.GetListPager(
  317. "T_Bus_WorkOrder WITH(NOLOCK)",
  318. "F_WorkOrderId",
  319. cols,
  320. sql,
  321. sort,
  322. pagesize,
  323. pageindex,
  324. true,
  325. out recordCount);
  326. #region 声音文件和交办超时
  327. dt.Columns.Add("DeptName", typeof(string));//交办单位
  328. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  329. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  330. dt.Columns.Add("OverState", typeof(string));//超时状态
  331. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  332. dt.Columns.Add("GapTime", typeof(string));//时间差
  333. dt.Columns.Add("PDState", typeof(string));//派单状态
  334. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  335. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  336. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  337. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  338. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  339. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  340. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  341. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  342. foreach (DataRow dr in dt.Rows)
  343. {
  344. string iszbdw = "0";
  345. string ispd = "";
  346. int state = Int32.Parse(dr["F_WorkState"].ToString());
  347. if (state > 1)
  348. {
  349. //获取最新交办信息
  350. 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";
  351. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  352. if (dtjb.Rows.Count > 0)
  353. {
  354. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  355. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  356. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  357. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  358. {
  359. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  360. }
  361. #region 20191016
  362. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  363. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  364. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  365. //{
  366. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  367. //}
  368. #endregion
  369. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  370. #region
  371. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  372. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  373. //if (deptinfo != null)
  374. //{
  375. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  376. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  377. //}
  378. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  379. //{
  380. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  381. // string dns = string.Empty;
  382. // foreach (string strid in strids)
  383. // {
  384. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  385. // if (dinfo != null)
  386. // {
  387. // if (string.IsNullOrEmpty(dns))
  388. // {
  389. // dns = dinfo.F_DeptName;//交办单位
  390. // }
  391. // else
  392. // {
  393. // dns += "," + dinfo.F_DeptName;//交办单位
  394. // }
  395. // }
  396. // }
  397. // dr["OtherDeptName"] = dns;
  398. //}
  399. #endregion
  400. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  401. dr["LimitTime"] = lt;
  402. #region 超时时限
  403. //if (state < 6 || state == 8)
  404. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  405. {
  406. if (!string.IsNullOrWhiteSpace(lt))
  407. {
  408. var ltime = DateTime.Parse(lt);
  409. TimeSpan ts = ltime.Subtract(DateTime.Now);
  410. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  411. if (tss < 0) { tss = -tss; }
  412. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  413. if (ltime > DateTime.Now)
  414. {
  415. if (configcs != null)
  416. {
  417. int cs = Int32.Parse(configcs.F_ParamValue);
  418. if (ts.TotalHours > cs)
  419. {
  420. dr["OverState"] = 1;
  421. }
  422. else
  423. {
  424. dr["OverState"] = 2;
  425. }
  426. }
  427. dr["GapTime"] = "剩余" + gshsj;
  428. }
  429. else
  430. {
  431. dr["OverState"] = 3;
  432. dr["GapTime"] = "超时" + gshsj;
  433. }
  434. }
  435. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  436. dr["PDState"] = ispd;
  437. }
  438. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  439. {
  440. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  441. if (!string.IsNullOrEmpty(closetime))
  442. {
  443. var dttime = DateTime.Parse(closetime);
  444. if (!string.IsNullOrEmpty(lt))
  445. {
  446. var ltime = DateTime.Parse(lt);
  447. TimeSpan ts = ltime.Subtract(dttime);
  448. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  449. if (tss < 0) { tss = -tss; }
  450. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  451. if (ltime < dttime)
  452. {
  453. dr["OverState"] = 3;
  454. dr["GapTime"] = "超时" + gshsj;
  455. }
  456. }
  457. }
  458. }
  459. #endregion
  460. }
  461. }
  462. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  463. {
  464. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  465. }
  466. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  467. {
  468. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  469. }
  470. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  471. {
  472. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  473. dr["IsFiles"] = 1;
  474. else
  475. dr["IsFiles"] = 0;
  476. }
  477. else
  478. {
  479. dr["IsFiles"] = 0;
  480. }
  481. List<ButtonGroup.button> buttons = new List<ButtonGroup.button>();
  482. if (strtab == "2")
  483. {
  484. if (strisaudit=="0")// strisaudit == "0" 是待审核退回
  485. {
  486. buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, dr["IsExport"].ToString());
  487. }
  488. }
  489. else
  490. {
  491. buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, dr["IsExport"].ToString());
  492. }
  493. #region 判断是否存在待督办
  494. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  495. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  496. if (userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "ZXLD")
  497. {
  498. buttons.Add(ButtonGroup.delete());
  499. }
  500. if (recount > 0 && butt != null)
  501. buttons.Remove(butt);
  502. #endregion
  503. if (strisaudit=="1" || strisaudit == "2")
  504. {
  505. var delbutt = buttons.Find(c => c.key == ButtonGroup.delete().key);
  506. buttons.Remove(delbutt);
  507. buttons.Add(ButtonGroup.query());
  508. }
  509. if (userModel.F_RoleCode!="WLDW")
  510. {
  511. var delbutt = buttons.Find(c => c.key == ButtonGroup.delay().key);
  512. if (delbutt==null )
  513. buttons.Add(ButtonGroup.delay());
  514. }
  515. if (Convert.ToInt32(dr["F_WorkState"].ToString()) == (int)EnumWorkState.visit)
  516. {
  517. buttons.Add(ButtonGroup.Runsend());
  518. }
  519. dr["Buttons"] = buttons;
  520. }
  521. #endregion
  522. var obj = new
  523. {
  524. state = "success",
  525. message = "成功",
  526. rows = dt,
  527. total = recordCount
  528. };
  529. return Content(obj.ToJson());
  530. }
  531. #endregion
  532. #region MyRegion
  533. public ActionResult GetListTimeOut(int isdc = 0)
  534. {
  535. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  536. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  537. var configcs1 = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  538. int cscount = 1;
  539. if (configcs1 != null)
  540. {
  541. cscount= Int32.Parse(configcs1.F_ParamValue);
  542. }
  543. DataTable dt = new DataTable();
  544. 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";
  545. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  546. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  547. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  548. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  549. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  550. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  551. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  552. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  553. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  554. int source = RequestString.GetInt("source", 0);
  555. int keyid = RequestString.GetInt("keyid", 0);
  556. int type = RequestString.GetInt("type", 0);
  557. int bigtype = RequestString.GetInt("bigtype", 0);
  558. int smalltype = RequestString.GetInt("smalltype", 0);
  559. int sourcearea = RequestString.GetInt("sourcearea", 0);
  560. int files = RequestString.GetInt("files", 0);
  561. int deptid = RequestString.GetInt("deptid", 0);
  562. int dealtype = RequestString.GetInt("dealtype", -1);
  563. int issend = RequestString.GetInt("issend", -1);
  564. int deptlevel = RequestString.GetInt("deptlevel", 0);
  565. int satisfaction = RequestString.GetInt("satisfaction", -1);
  566. int timesort = RequestString.GetInt("timesort", -1);
  567. string strpageindex = RequestString.GetQueryString("page");
  568. int pageindex = 1;
  569. string strpagesize = RequestString.GetQueryString("pagesize");
  570. int pagesize = 10;
  571. int IsExport = RequestString.GetInt("isexport", -1);
  572. if (IsExport > -1)
  573. {
  574. if (IsExport == 0)
  575. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  576. else
  577. sql += " and IsExport = '" + IsExport + "' ";
  578. }
  579. #region sql 语句相关处理
  580. if (strstate.Trim() != "" && strstate != "undefined")
  581. {
  582. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  583. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  584. else
  585. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  586. }
  587. if (files > 1)
  588. {
  589. sql += " and F_Files is not null and F_Files!='' ";
  590. }
  591. if (strworkid.Trim() != "" && strworkid != "undefined")
  592. {
  593. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  594. }
  595. if (strname.Trim() != "" && strname != "undefined")
  596. {
  597. sql += " and F_CusName like '%" + strname + "%' ";
  598. }
  599. if (strtel.Trim() != "" && strtel != "undefined")
  600. {
  601. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  602. }
  603. if (strkey.Trim() != "" && strkey != "undefined")
  604. {
  605. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  606. }
  607. if (strusercode.Trim() != "" && strusercode != "undefined")
  608. {//坐席
  609. var usercode = strusercode.Trim().Split(',');
  610. var newusercode = "";
  611. foreach (var item in usercode)
  612. {
  613. if (!string.IsNullOrWhiteSpace(item.Trim()))
  614. newusercode += "'" + item + "',";
  615. }
  616. newusercode = newusercode.Trim(',');
  617. if (newusercode.Trim() != "" && newusercode != "undefined")
  618. {
  619. sql += " and F_CreateUser in (" + newusercode + ") ";
  620. //sql += " and F_CreateUser ='" + strusercode + "' ";
  621. }
  622. }
  623. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  624. {//调度员
  625. var ddusercode = strddusercode.Trim().Split(',');
  626. var newusercode = "";
  627. foreach (var item in ddusercode)
  628. {
  629. if (!string.IsNullOrWhiteSpace(item.Trim()))
  630. newusercode += "'" + item + "',";
  631. }
  632. newusercode = newusercode.Trim(',');
  633. if (newusercode.Trim() != "" && newusercode != "undefined")
  634. {
  635. sql += " and F_AssignUser in(" + newusercode + ") ";
  636. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  637. }
  638. }
  639. if (source != 0)
  640. {
  641. sql += " and F_InfoSource = '" + source + "' ";
  642. }
  643. if (satisfaction > -1)
  644. {
  645. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  646. }
  647. if (keyid != 0)
  648. {
  649. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  650. }
  651. else if (userModel.F_RoleCode == "DFZF")
  652. {
  653. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  654. }
  655. if (type != 0)
  656. {
  657. sql += " and F_InfoType = '" + type + "' ";
  658. }
  659. if (bigtype != 0)
  660. {
  661. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  662. }
  663. if (smalltype != 0)
  664. {
  665. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  666. }
  667. if (sourcearea != 0)
  668. {
  669. sql += " and F_SourceArea = '" + sourcearea + "' ";
  670. }
  671. if (deptid != 0)
  672. {
  673. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  674. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  675. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  676. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  677. //if (deptlevel == 0)
  678. //{
  679. // 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 ";
  680. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  681. //}
  682. //else
  683. //{
  684. // 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 ";
  685. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  686. //}
  687. #endregion
  688. }
  689. if (dealtype != -1)
  690. {
  691. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  692. }
  693. if (issend != -1)
  694. {
  695. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  696. }
  697. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  698. {
  699. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  700. }
  701. if (strendtime.Trim() != "" && strendtime != "undefined")
  702. {
  703. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  704. }
  705. #endregion
  706. if (strpageindex.Trim() != "")
  707. {
  708. pageindex = Convert.ToInt32(strpageindex);
  709. }
  710. if (strpagesize.Trim() != "")
  711. {
  712. pagesize = Convert.ToInt32(strpagesize);
  713. }
  714. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  715. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  716. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  717. string sort = "ORDER BY F_LimitTime desc,F_Id desc";
  718. if (timesort == 0)
  719. sort = "ORDER BY F_LimitTime ASC,F_Id desc";
  720. else if (timesort == 1)
  721. sort = "ORDER BY F_CreateTime DESC";
  722. 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,requirementFinishDay";
  723. #region 导出
  724. if (isdc > 0)
  725. {
  726. var top = " "; var orderby = " order by F_CreateTime";
  727. if (sql == " and F_IsDelete=0 ")
  728. {
  729. top = " top 1000 "; orderby += " desc ";
  730. }
  731. sql+= " and (F_LimitTime>= DATEADD(hh,"+ cscount + ",F_LimitTime) or F_LimitTime<GETDATE()) and (F_WorkState<6 or F_WorkState=8) ";
  732. //20190715调整导出字段 zhengbingbing
  733. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  734. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  735. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  736. + " (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) 办理结果,"
  737. + " (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" +
  738. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  739. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  740. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  741. if (msg == "")
  742. {
  743. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  744. // {
  745. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  746. // }
  747. return Success("导出成功");
  748. }
  749. else
  750. {
  751. return Error("导出失败");
  752. }
  753. }
  754. #endregion
  755. int recordCount = 0;
  756. dt = BLL.PagerBLL.GetListPager(
  757. "T_Bus_WorkOrder WITH(NOLOCK)",
  758. "F_WorkOrderId",
  759. cols,
  760. sql,
  761. sort,
  762. pagesize,
  763. pageindex,
  764. true,
  765. out recordCount);
  766. // var dtt = workorderBLL.GetList(" 1=1" +sql);
  767. // dt = dtt.Tables[0];
  768. #region 声音文件和交办超时
  769. dt.Columns.Add("DeptName", typeof(string));//交办单位
  770. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  771. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  772. dt.Columns.Add("OverState", typeof(int));//超时状态
  773. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  774. dt.Columns.Add("GapTime", typeof(string));//时间差
  775. dt.Columns.Add("PDState", typeof(string));//派单状态
  776. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  777. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  778. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  779. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  780. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  781. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  782. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  783. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  784. foreach (DataRow dr in dt.Rows)
  785. {
  786. string iszbdw = "0";
  787. string ispd = "";
  788. int state = Int32.Parse(dr["F_WorkState"].ToString());
  789. if (state > 1)
  790. {
  791. //获取最新交办信息
  792. 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";
  793. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  794. if (dtjb.Rows.Count > 0)
  795. {
  796. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  797. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  798. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  799. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  800. {
  801. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  802. }
  803. #region 20191016
  804. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  805. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  806. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  807. //{
  808. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  809. //}
  810. #endregion
  811. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  812. #region
  813. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  814. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  815. //if (deptinfo != null)
  816. //{
  817. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  818. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  819. //}
  820. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  821. //{
  822. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  823. // string dns = string.Empty;
  824. // foreach (string strid in strids)
  825. // {
  826. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  827. // if (dinfo != null)
  828. // {
  829. // if (string.IsNullOrEmpty(dns))
  830. // {
  831. // dns = dinfo.F_DeptName;//交办单位
  832. // }
  833. // else
  834. // {
  835. // dns += "," + dinfo.F_DeptName;//交办单位
  836. // }
  837. // }
  838. // }
  839. // dr["OtherDeptName"] = dns;
  840. //}
  841. #endregion
  842. var lt = dr["F_LimitTime"].ToString();//限制时间
  843. dr["LimitTime"] = lt;
  844. #region 超时时限
  845. //if (state < 6 || state == 8)
  846. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  847. {
  848. if (!string.IsNullOrWhiteSpace(lt))
  849. {
  850. var ltime = DateTime.Parse(lt);
  851. TimeSpan ts = ltime.Subtract(DateTime.Now);
  852. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  853. if (tss < 0) { tss = -tss; }
  854. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  855. if (ltime > DateTime.Now)
  856. {
  857. if (configcs != null)
  858. {
  859. int cs = Int32.Parse(configcs.F_ParamValue);
  860. if (ts.TotalHours > cs)
  861. {
  862. dr["OverState"] = 1;
  863. }
  864. else
  865. {
  866. dr["OverState"] = 2;
  867. }
  868. }
  869. dr["GapTime"] = "剩余" + gshsj;
  870. }
  871. else
  872. {
  873. dr["OverState"] = 3;
  874. dr["GapTime"] = "超时" + gshsj;
  875. }
  876. }
  877. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  878. dr["PDState"] = ispd;
  879. }
  880. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  881. {
  882. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  883. if (!string.IsNullOrEmpty(closetime))
  884. {
  885. var dttime = DateTime.Parse(closetime);
  886. if (!string.IsNullOrEmpty(lt))
  887. {
  888. var ltime = DateTime.Parse(lt);
  889. TimeSpan ts = ltime.Subtract(dttime);
  890. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  891. if (tss < 0) { tss = -tss; }
  892. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  893. if (ltime < dttime)
  894. {
  895. dr["OverState"] = 3;
  896. dr["GapTime"] = "超时" + gshsj;
  897. }
  898. }
  899. }
  900. }
  901. #endregion
  902. }
  903. }
  904. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  905. {
  906. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  907. }
  908. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  909. {
  910. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  911. }
  912. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  913. {
  914. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  915. dr["IsFiles"] = 1;
  916. else
  917. dr["IsFiles"] = 0;
  918. }
  919. else
  920. {
  921. dr["IsFiles"] = 0;
  922. }
  923. var buttons = ButtonGroup.GetButtonstimeout();
  924. dr["Buttons"] = buttons;
  925. }
  926. #endregion
  927. //dt.DefaultView.Sort = "";
  928. // dt = dt.DefaultView.ToTable();
  929. // var allcount = dt.Rows.Count;
  930. // dt = GetPagedTable(dt,pageindex,pagesize);
  931. var obj = new
  932. {
  933. state = "success",
  934. message = "成功",
  935. rows = dt,
  936. total = recordCount
  937. };
  938. return Content(obj.ToJson());
  939. }
  940. #endregion
  941. public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)//PageIndex表示第几页,PageSize表示每页的记录数
  942. {
  943. if (PageIndex == 0)
  944. return dt;//0页代表每页数据,直接返回
  945. DataTable newdt = dt.Copy();
  946. newdt.Clear();//copy dt的框架
  947. int rowbegin = (PageIndex - 1) * PageSize;
  948. int rowend = PageIndex * PageSize;
  949. if (rowbegin >= dt.Rows.Count)
  950. return newdt;//源数据记录数小于等于要显示的记录,直接返回dt
  951. if (rowend > dt.Rows.Count)
  952. rowend = dt.Rows.Count;
  953. for (int i = rowbegin; i <= rowend - 1; i++)
  954. {
  955. DataRow newdr = newdt.NewRow();
  956. DataRow dr = dt.Rows[i];
  957. foreach (DataColumn column in dt.Columns)
  958. {
  959. newdr[column.ColumnName] = dr[column.ColumnName];
  960. }
  961. newdt.Rows.Add(newdr);
  962. }
  963. return newdt;
  964. }
  965. /// <summary>
  966. /// 获取坐席处理列表
  967. /// </summary>
  968. /// <returns></returns>
  969. [Authority]
  970. public ActionResult GetZXDealList(int isdc = 0)
  971. {
  972. DataTable dt = new DataTable();
  973. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  974. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  975. string sql = " and F_IsDelete=0";
  976. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  977. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  978. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  979. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  980. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  981. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  982. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  983. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  984. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  985. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  986. int source = RequestString.GetInt("source", 0);
  987. int keyid = RequestString.GetInt("keyid", 0);
  988. int type = RequestString.GetInt("type", 0);
  989. int bigtype = RequestString.GetInt("bigtype", 0);
  990. int smalltype = RequestString.GetInt("smalltype", 0);
  991. int sourcearea = RequestString.GetInt("sourcearea", 0);
  992. int deptid = RequestString.GetInt("deptid", 0);
  993. int deptlevel = RequestString.GetInt("deptlevel", 0);
  994. string strpageindex = RequestString.GetQueryString("page");
  995. int pageindex = 1;
  996. string strpagesize = RequestString.GetQueryString("pagesize");
  997. int pagesize = 10;
  998. int IsExport = RequestString.GetInt("isexport",0);
  999. int timesort = RequestString.GetInt("timesort", -1);
  1000. string sort = "ORDER BY F_CreateTime ASC";
  1001. if (timesort == 0)
  1002. sort = "ORDER BY LimitTime ASC";
  1003. else if (timesort == 1)
  1004. sort = "ORDER BY F_CreateTime DESC";
  1005. if (IsExport>0)
  1006. {
  1007. sql += " and IsExport = '" + IsExport + "' ";
  1008. }
  1009. switch (strtab)
  1010. {
  1011. case "-1"://待处理工单(其他来源)
  1012. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  1013. break;
  1014. case "0"://待处理工单
  1015. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1016. {
  1017. if (userModel.F_RoleCode != "ZJZY")
  1018. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  1019. }
  1020. if (strstate.Trim() != "" && strstate != "undefined")
  1021. {
  1022. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1023. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1024. else
  1025. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1026. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1027. }
  1028. else
  1029. {
  1030. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + ") ";
  1031. //sql += " and F_WorkState in (0,6) ";
  1032. }
  1033. break;
  1034. case "1"://已提交的工单
  1035. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  1036. sql += " and F_WorkState >0 ";
  1037. if (strstate.Trim() != "" && strstate != "undefined")
  1038. {
  1039. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1040. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1041. else
  1042. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1043. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1044. }
  1045. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1046. {
  1047. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  1048. }
  1049. break;
  1050. case "2"://已回访的工单
  1051. if (strstate.Trim() != "" && strstate != "undefined")
  1052. {
  1053. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1054. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1055. else
  1056. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1057. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1058. }
  1059. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1060. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1061. {
  1062. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1063. }
  1064. else
  1065. {
  1066. sql += ")";
  1067. }
  1068. break;
  1069. case "3"://已回退的工单
  1070. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  1071. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  1072. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1073. {
  1074. sql += " and F_CreateUser='" + userModel.F_UserCode;
  1075. }
  1076. break;
  1077. }
  1078. if (strworkid.Trim() != "" && strworkid != "undefined")
  1079. {
  1080. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  1081. }
  1082. if (strname.Trim() != "" && strname != "undefined")
  1083. {
  1084. sql += " and F_CusName like '%" + strname + "%' ";
  1085. }
  1086. if (strtel.Trim() != "" && strtel != "undefined")
  1087. {
  1088. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1089. }
  1090. if (strkey.Trim() != "" && strkey != "undefined")
  1091. {
  1092. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1093. }
  1094. #region 坐席&调度员
  1095. if (strusercode.Trim() != "" && strusercode != "undefined")
  1096. {//坐席
  1097. var usercode = strusercode.Trim().Split(',');
  1098. var newusercode = "";
  1099. foreach (var item in usercode)
  1100. {
  1101. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1102. newusercode += "'" + item + "',";
  1103. }
  1104. newusercode = newusercode.Trim(',');
  1105. if (newusercode.Trim() != "" && newusercode != "undefined")
  1106. {
  1107. sql += " and F_CreateUser in (" + newusercode + ") ";
  1108. }
  1109. }
  1110. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1111. {//调度员
  1112. var ddusercode = strddusercode.Trim().Split(',');
  1113. var newusercode = "";
  1114. foreach (var item in ddusercode)
  1115. {
  1116. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1117. newusercode += "'" + item + "',";
  1118. }
  1119. newusercode = newusercode.Trim(',');
  1120. if (newusercode.Trim() != "" && newusercode != "undefined")
  1121. {
  1122. sql += " and F_AssignUser in(" + newusercode + ") ";
  1123. }
  1124. }
  1125. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1126. //{
  1127. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1128. //}
  1129. #endregion
  1130. if (source != 0)
  1131. {
  1132. sql += " and F_InfoSource = '" + source + "' ";
  1133. }
  1134. if (keyid != 0)
  1135. {
  1136. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1137. }
  1138. if (type != 0)
  1139. {
  1140. sql += " and F_InfoType = '" + type + "' ";
  1141. }
  1142. if (bigtype != 0)
  1143. {
  1144. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1145. }
  1146. if (smalltype != 0)
  1147. {
  1148. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1149. }
  1150. if (sourcearea != 0)
  1151. {
  1152. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1153. }
  1154. if (deptid != 0)
  1155. {
  1156. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1157. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  1158. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1159. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1160. //if (deptlevel == 0)
  1161. //{
  1162. // 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 ";
  1163. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1164. //}
  1165. //else
  1166. //{
  1167. // 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 ";
  1168. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1169. //}
  1170. #endregion
  1171. }
  1172. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1173. {
  1174. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1175. }
  1176. if (strendtime.Trim() != "" && strendtime != "undefined")
  1177. {
  1178. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1179. }
  1180. if (strpageindex.Trim() != "")
  1181. {
  1182. pageindex = Convert.ToInt32(strpageindex);
  1183. }
  1184. if (strpagesize.Trim() != "")
  1185. {
  1186. pagesize = Convert.ToInt32(strpagesize);
  1187. }
  1188. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1189. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1190. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1191. 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,requirementFinishDay";
  1192. if (isdc > 0)
  1193. {
  1194. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  1195. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1196. if (msg == "")
  1197. {
  1198. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  1199. //{
  1200. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  1201. //}
  1202. return Success("导出成功");
  1203. }
  1204. else
  1205. {
  1206. return Error("导出失败");
  1207. }
  1208. }
  1209. int recordCount = 0;
  1210. dt = BLL.PagerBLL.GetListPager(
  1211. "T_Bus_WorkOrder WITH(NOLOCK)",
  1212. "F_WorkOrderId",
  1213. cols,
  1214. sql,
  1215. sort ,
  1216. pagesize,
  1217. pageindex,
  1218. true,
  1219. out recordCount);
  1220. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1221. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1222. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1223. dt.Columns.Add("OverState", typeof(string));//超时状态
  1224. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1225. dt.Columns.Add("GapTime", typeof(string));//时间差
  1226. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1227. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1228. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  1229. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1230. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1231. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1232. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1233. foreach (DataRow dr in dt.Rows)
  1234. {
  1235. //获取最新交办信息
  1236. string iszbdw = "0";
  1237. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1238. if (state > 1)
  1239. {
  1240. 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";
  1241. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1242. if (dtjb.Rows.Count > 0)
  1243. {
  1244. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  1245. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  1246. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1247. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1248. {
  1249. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1250. }
  1251. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1252. #region
  1253. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1254. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1255. //if (deptinfo != null)
  1256. //{
  1257. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  1258. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1259. //}
  1260. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1261. //{
  1262. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1263. // string dns = string.Empty;
  1264. // foreach (string strid in strids)
  1265. // {
  1266. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1267. // if (dinfo != null)
  1268. // {
  1269. // if (string.IsNullOrEmpty(dns))
  1270. // {
  1271. // dns = dinfo.F_DeptName;//交办单位
  1272. // }
  1273. // else
  1274. // {
  1275. // dns += "," + dinfo.F_DeptName;//交办单位
  1276. // }
  1277. // }
  1278. // }
  1279. // dr["OtherDeptName"] = dns;
  1280. //}
  1281. #endregion
  1282. #region
  1283. //if (state < 6 || state == 8)
  1284. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1285. {
  1286. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1287. dr["LimitTime"] = lt;
  1288. if (!string.IsNullOrWhiteSpace(lt))
  1289. {
  1290. var ltime = DateTime.Parse(lt);
  1291. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1292. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1293. if (tss < 0) { tss = -tss; }
  1294. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1295. if (ltime > DateTime.Now)
  1296. {
  1297. if (configcs != null)
  1298. {
  1299. int cs = Int32.Parse(configcs.F_ParamValue);
  1300. if (ts.TotalHours > cs)
  1301. {
  1302. dr["OverState"] = 1;
  1303. }
  1304. else
  1305. {
  1306. dr["OverState"] = 2;
  1307. }
  1308. }
  1309. dr["GapTime"] = "剩余" + gshsj;
  1310. }
  1311. else
  1312. {
  1313. dr["OverState"] = 3;
  1314. dr["GapTime"] = "超时" + gshsj;
  1315. }
  1316. }
  1317. }
  1318. if (state == (int)EnumWorkState.finish)
  1319. {
  1320. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1321. var dttime = DateTime.Now;
  1322. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1323. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1324. dr["LimitTime"] = lt;
  1325. if (!string.IsNullOrWhiteSpace(lt))
  1326. {
  1327. var ltime = DateTime.Parse(lt);
  1328. TimeSpan ts = ltime.Subtract(dttime);
  1329. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1330. if (tss < 0) { tss = -tss; }
  1331. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1332. if (ltime < dttime)
  1333. {
  1334. dr["OverState"] = 3;
  1335. dr["GapTime"] = "超时" + gshsj;
  1336. }
  1337. }
  1338. }
  1339. #endregion
  1340. }
  1341. }
  1342. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1343. {
  1344. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1345. }
  1346. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1347. {
  1348. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1349. }
  1350. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  1351. {
  1352. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  1353. dr["IsFiles"] = 1;
  1354. else
  1355. dr["IsFiles"] = 0;
  1356. }
  1357. else
  1358. {
  1359. dr["IsFiles"] = 0;
  1360. }
  1361. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1362. if (Int32.Parse(strtab) == 0)
  1363. {
  1364. btns.Clear();
  1365. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1366. #region 判断是否存在待督办
  1367. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1368. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1369. if (recount > 0 && butt != null)
  1370. btns.Remove(butt);
  1371. #endregion
  1372. }
  1373. else if (Int32.Parse(strtab) == -1)
  1374. {
  1375. btns.Clear();
  1376. btns.Add(ButtonGroup.query());
  1377. btns.Add(ButtonGroup.edit());
  1378. }
  1379. else
  1380. {
  1381. btns.Clear();
  1382. btns.Add(ButtonGroup.query());
  1383. }
  1384. dr["Buttons"] = btns;
  1385. }
  1386. var obj = new
  1387. {
  1388. state = "success",
  1389. message = "成功",
  1390. rows = dt,
  1391. total = recordCount
  1392. };
  1393. return Content(obj.ToJson());
  1394. }
  1395. /// <summary>
  1396. /// 上传阿里云
  1397. /// </summary>
  1398. public class uploadAddWorders
  1399. {
  1400. /// <summary>
  1401. /// 案件编号
  1402. /// </summary>
  1403. public string cenrollid { set; get; }
  1404. /// <summary>
  1405. /// 来电人
  1406. /// </summary>
  1407. public string custname { set; get; }
  1408. /// <summary>
  1409. /// 登记时间
  1410. /// </summary>
  1411. public string tsystime { set; get; }
  1412. /// <summary>
  1413. /// 事件类别
  1414. /// </summary>
  1415. public string ismallcategory { set; get; }
  1416. /// <summary>
  1417. /// 转办人
  1418. /// </summary>
  1419. public string unit_code { set; get; }
  1420. /// <summary>
  1421. /// 转办时间
  1422. /// </summary>
  1423. public string transferTime { set; get; }
  1424. /// <summary>
  1425. /// 转办单位
  1426. /// </summary>
  1427. public string transferunit { set; get; }
  1428. /// <summary>
  1429. /// 详细内容
  1430. /// </summary>
  1431. public string content { set; get; }
  1432. /// <summary>
  1433. /// 拟办意见
  1434. /// </summary>
  1435. public string advice { set; get; }
  1436. /// <summary>
  1437. /// 处理结果
  1438. /// </summary>
  1439. public string result { set; get; }
  1440. /// <summary>
  1441. /// 回访情况
  1442. /// </summary>
  1443. public string remark { set; get; }
  1444. public int ideliverprogress { set; get; }
  1445. public int type { set; get; }
  1446. public string phone { set; get; }
  1447. public string title { set; get; }
  1448. public string backreason { set; get; }
  1449. public string workorderremark { set; get; }
  1450. }
  1451. public class uploadSatisfaction
  1452. {
  1453. public string cenrollid { set; get; }
  1454. public int Satisfaction { set; get; }
  1455. }
  1456. [HttpPost]
  1457. public ActionResult updateSatisfaction(uploadSatisfaction info)
  1458. {
  1459. if (info == null)
  1460. return Error("内容为空");
  1461. try
  1462. {
  1463. using (TransactionScope trans = new TransactionScope())
  1464. {
  1465. #region 保存工单信息
  1466. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1467. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1468. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1469. "and F_IsDelete=0");
  1470. if (workorder != null && workorder.Count > 0)
  1471. {
  1472. // modelT_Bus_WorkOrder = workorder[0];
  1473. // modelT_Bus_WorkOrder.F_Satisfaction = info.Satisfaction;
  1474. // var workorderlist = workorderBLL.GetModelList("F_MainWorkOrderId='" + workorder[0].F_WorkOrderId +
  1475. // "and F_IsDelete=0");
  1476. // if (workorderlist != null && workorderlist.Count > 0)
  1477. // {
  1478. foreach (var it in workorder)
  1479. {
  1480. it.F_Satisfaction = info.Satisfaction;
  1481. workorderBLL.Update(it);
  1482. }
  1483. // }
  1484. }
  1485. else
  1486. {
  1487. return Error("系统不存在此工单");
  1488. }
  1489. workorderBLL.Update(modelT_Bus_WorkOrder);
  1490. #endregion
  1491. trans.Complete();
  1492. }
  1493. return Success("操作成功");
  1494. }
  1495. catch (Exception ex)
  1496. {
  1497. return Error("操作失败" + ex.Message);
  1498. }
  1499. }
  1500. [HttpPost]
  1501. public ActionResult uploadAddWorkorders(uploadAddWorders info)
  1502. {
  1503. if (info == null)
  1504. return Error("内容为空");
  1505. try
  1506. {
  1507. LogFactory.GetLogger("1123").Warn(info.ToJson());
  1508. using (TransactionScope trans = new TransactionScope())
  1509. {
  1510. #region 保存工单信息
  1511. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1512. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1513. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1514. "and F_IsDelete=0");
  1515. if (workorder != null && workorder.Count > 0)
  1516. {
  1517. modelT_Bus_WorkOrder = workorder[0];
  1518. if (info .ideliverprogress ==11)
  1519. {
  1520. if (workorder[0].IsExport !=1 )
  1521. {
  1522. return Success("操作成功");
  1523. }
  1524. workorder[0].IsExport = 0;
  1525. workorder[0].F_WorkState = 11;
  1526. }
  1527. else
  1528. {
  1529. return Success("操作成功");
  1530. //Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1531. //if (modelT_Bus_AssignedInfo != null)
  1532. //{
  1533. // 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();
  1534. // #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1535. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1536. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1537. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1538. // modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1539. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1540. // #endregion
  1541. //}
  1542. //workorder[0].F_WorkState = 13;
  1543. }
  1544. }
  1545. else
  1546. {
  1547. modelT_Bus_WorkOrder.F_WorkState = 1;
  1548. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1549. }
  1550. if (info.ideliverprogress == 11)
  1551. modelT_Bus_WorkOrder.F_Backreason = info.backreason;
  1552. if (info .type ==1)
  1553. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1554. else if (info.type == 3)
  1555. modelT_Bus_WorkOrder.F_InfoSource = 89;//信息来源
  1556. else
  1557. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1558. modelT_Bus_WorkOrder.F_CusName = info.custname;
  1559. modelT_Bus_WorkOrder.F_NewRemarks = info.workorderremark;
  1560. modelT_Bus_WorkOrder.F_ConName = info.custname; ;//联系人姓名
  1561. modelT_Bus_WorkOrder.F_CusPhone = info .phone;//
  1562. modelT_Bus_WorkOrder.F_ConPhone = info.phone;//联系人
  1563. try
  1564. {
  1565. modelT_Bus_WorkOrder.F_CreateTime =DateTime .Parse ( info.tsystime);
  1566. }
  1567. catch
  1568. {
  1569. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1570. }
  1571. modelT_Bus_WorkOrder.F_Event = info .ismallcategory ;//事件类别
  1572. modelT_Bus_WorkOrder.F_Transferor =info .unit_code ;//转办人
  1573. try
  1574. {
  1575. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(info .transferTime );
  1576. }
  1577. catch
  1578. {
  1579. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1580. }
  1581. modelT_Bus_WorkOrder.F_ComTitle = info.title;
  1582. modelT_Bus_WorkOrder.F_Transferunit =info .transferunit ;//转办单位
  1583. modelT_Bus_WorkOrder.F_ComContent = info .content ;//
  1584. modelT_Bus_WorkOrder.F_ResultRemarks = info .advice ;//拟办意见
  1585. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1586. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1587. {
  1588. try
  1589. {
  1590. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1591. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1592. if (limittime < DateTime.Now && limittime.Month == 1)
  1593. {
  1594. limittime = limittime.AddYears (1);
  1595. }
  1596. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1597. }
  1598. catch
  1599. {
  1600. }
  1601. }
  1602. modelT_Bus_WorkOrder.F_FinalOpinion =info .result ;//处理结果
  1603. modelT_Bus_WorkOrder.F_Result = info .remark ;//回访情况
  1604. modelT_Bus_WorkOrder.F_Remarks = "★以上登记信息仅供市长热线平台及承办人员查阅,未经许可不得向外提供";//
  1605. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1606. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1607. if (modelT_Bus_WorkOrder.F_Id > 0)
  1608. {
  1609. workorderBLL.Update(modelT_Bus_WorkOrder);
  1610. }
  1611. else
  1612. {
  1613. // BLL.T_Bus_WorkOrderNew newbll = new BLL.T_Bus_WorkOrderNew();
  1614. // Model.T_Bus_WorkOrder model = new T_Bus_WorkOrder();
  1615. // model = modelT_Bus_WorkOrder;
  1616. //// model.F_ComTitle= info.title;
  1617. // newbll.Add(model);
  1618. // modelT_Bus_WorkOrder.F_ComTitle = "";
  1619. workorderBLL.Add(modelT_Bus_WorkOrder);
  1620. string source = string.Empty;
  1621. switch (info.type)
  1622. {
  1623. case 1:source = "信箱";break;
  1624. case 2: source = "承办"; break;
  1625. case 3: source = "APP"; break;
  1626. }
  1627. var caseobj = new
  1628. {
  1629. problemCode = info.cenrollid,//事件id
  1630. code = info.cenrollid,//事件编号
  1631. problemTitle = info.title,//事件标题
  1632. problemType = info.ismallcategory,//事件类型
  1633. problemSmallType = "",//事件小类
  1634. ptype = "",//述求类型(建议、咨询、投诉、求助)
  1635. problemWay = source,//述求来源
  1636. problemDescription = info.content,//事件内容
  1637. problemSite = "",//事件地址
  1638. timeLimit = modelT_Bus_WorkOrder.F_LimitTime?.ToString("yyyy-MM-dd HH:mm:ss") ?? "",//处理时限
  1639. reporter = info.custname,//上报人
  1640. reporterContactInfo = info.phone,//上报人联系电话
  1641. reportTime = info.tsystime,//上报时间(年月日时分秒格式)
  1642. forwarder = "",//登记人
  1643. forwardTime = info.tsystime,//登记时间(年月日时分秒格式)
  1644. processUser = info.unit_code,//处理人
  1645. did = "GY12345"//业务系统标识
  1646. };
  1647. string url = Configs.GetValue("PushUrl");
  1648. string result = HttpMethods.HttpPost(url, caseobj.ToJson(), "application/json");
  1649. LogFactory.GetLogger("PushCase").Info(info.cenrollid + "推送结果:" + result);
  1650. }
  1651. #endregion
  1652. #region 插入操作记录
  1653. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1654. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1655. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1656. string userinfo = "郑州市系统";
  1657. if (modelT_Bus_WorkOrder.F_WorkState ==0 || modelT_Bus_WorkOrder.F_WorkState == 1)
  1658. {
  1659. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1660. }
  1661. else
  1662. {
  1663. oper.F_Message = userinfo + " 提交重办了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1664. }
  1665. oper.F_CreateUser = "8000";
  1666. oper.F_CreateTime = DateTime.Now;
  1667. oper.F_IsDelete = 0;
  1668. operBLL.Add(oper);
  1669. #endregion
  1670. trans.Complete();
  1671. }
  1672. return Success("操作成功");
  1673. }
  1674. catch (Exception ex)
  1675. {
  1676. return Error("操作失败" + ex.Message);
  1677. }
  1678. }
  1679. [HttpPost]
  1680. public ActionResult AddWorkorders(string message )
  1681. {
  1682. if (string.IsNullOrEmpty(message))
  1683. return Error("内容为空");
  1684. try
  1685. {
  1686. using (TransactionScope trans = new TransactionScope())
  1687. {
  1688. #region 保存工单信息
  1689. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1690. string[] value = { "案件编号:", "来电人", "联系电话",
  1691. "登记时间" ,"事件类别","转办人" ,
  1692. "转办时间","转办单位","详细内容"
  1693. ,"拟办意见","处理结果","回访情况","★"};
  1694. string[] values = message.Split(value, StringSplitOptions.RemoveEmptyEntries);
  1695. modelT_Bus_WorkOrder.F_OldWorkOrderId = values[1].Replace("\r", "")
  1696. .Replace("\a", "");
  1697. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1698. "and F_IsDelete=0");
  1699. if (workorder!=null&& workorder.Count >0)
  1700. {
  1701. modelT_Bus_WorkOrder = workorder[0];
  1702. if (workorder[0].F_WorkState <=3)
  1703. {
  1704. workorder[0].F_WorkState = 11;
  1705. }
  1706. else if (workorder[0].F_WorkState == 4)
  1707. {
  1708. workorder[0].F_WorkState = 8;
  1709. }
  1710. else
  1711. {
  1712. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1713. if (modelT_Bus_AssignedInfo!=null )
  1714. {
  1715. 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();
  1716. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1717. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1718. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1719. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1720. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1721. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1722. #endregion
  1723. }
  1724. workorder[0].F_WorkState = 13;
  1725. }
  1726. }
  1727. else
  1728. modelT_Bus_WorkOrder.F_WorkState = 1;
  1729. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1730. if (modelT_Bus_WorkOrder.F_OldWorkOrderId.Contains("xx"))
  1731. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1732. else
  1733. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1734. modelT_Bus_WorkOrder.F_CusName = values[2].Replace("\r", "")
  1735. .Replace("\a", "");//
  1736. modelT_Bus_WorkOrder.F_ConName = values[2].Replace("\r", "")
  1737. .Replace("\a", "");//联系人姓名
  1738. modelT_Bus_WorkOrder.F_CusPhone = values[3].Replace("\r", "")
  1739. .Replace("\a", "");//
  1740. modelT_Bus_WorkOrder.F_ConPhone = values[3].Replace("\r", "")
  1741. .Replace("\a", "");//联系人姓名
  1742. try
  1743. {
  1744. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Parse(values[4].Replace("\r", "")
  1745. .Replace("\a", ""));
  1746. }
  1747. catch
  1748. {
  1749. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1750. }
  1751. modelT_Bus_WorkOrder.F_Event = values[5].Replace("\r", "")
  1752. .Replace("\a", "");//事件类别
  1753. modelT_Bus_WorkOrder.F_Transferor = values[6].Replace("\r", "")
  1754. .Replace("\a", "");//转办人
  1755. try
  1756. {
  1757. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(values[7].Replace("\r", "")
  1758. .Replace("\a", ""));
  1759. }
  1760. catch
  1761. {
  1762. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1763. }
  1764. modelT_Bus_WorkOrder.F_Transferunit = values[8].Replace("\r", "")
  1765. .Replace("\a", "");//转办单位
  1766. modelT_Bus_WorkOrder.F_ComContent = values[9].Replace("\r", "")
  1767. .Replace("\a", "");//
  1768. modelT_Bus_WorkOrder.F_ResultRemarks = values[10].Replace("\r", "")
  1769. .Replace("\a", "");//拟办意见
  1770. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1771. if (!string .IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1772. {
  1773. try
  1774. {
  1775. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1776. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1777. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1778. }
  1779. catch
  1780. {
  1781. }
  1782. }
  1783. modelT_Bus_WorkOrder.F_FinalOpinion = values[11].Replace("\r", "")
  1784. .Replace("\a", "");//处理结果
  1785. modelT_Bus_WorkOrder.F_Result = values[12].Replace("\r", "")
  1786. .Replace("\a", "");//回访情况
  1787. modelT_Bus_WorkOrder.F_Remarks = "★" + values[13].Replace("\r", "")
  1788. .Replace("\a", "");//
  1789. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1790. modelT_Bus_WorkOrder.F_Files = "";
  1791. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1792. if(modelT_Bus_WorkOrder.F_Id >0)
  1793. {
  1794. workorderBLL.Update (modelT_Bus_WorkOrder);
  1795. }
  1796. else
  1797. {
  1798. workorderBLL.Add(modelT_Bus_WorkOrder);
  1799. }
  1800. #endregion
  1801. #region 插入操作记录
  1802. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1803. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1804. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1805. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  1806. oper.F_File = modelT_Bus_WorkOrder.F_File;
  1807. string userinfo = "系统";
  1808. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  1809. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  1810. {
  1811. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1812. }
  1813. oper.F_CreateUser = "8000";
  1814. oper.F_CreateTime = DateTime.Now;
  1815. oper.F_IsDelete = 0;
  1816. operBLL.Add(oper);
  1817. #endregion
  1818. trans.Complete();
  1819. }
  1820. return Success("操作成功");
  1821. }
  1822. catch (Exception ex)
  1823. {
  1824. return Error ("操作失败"+ex .Message );
  1825. }
  1826. }
  1827. /// <summary>
  1828. /// 获取领导处理列表
  1829. /// </summary>
  1830. /// <returns></returns>
  1831. [Authority]
  1832. public ActionResult GetLDDealList(int isdc = 0)
  1833. {
  1834. DataTable dt = new DataTable();
  1835. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  1836. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  1837. string sql = " and F_IsDelete=0";
  1838. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1839. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1840. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1841. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1842. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1843. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1844. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1845. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1846. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1847. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1848. int source = RequestString.GetInt("source", 0);
  1849. int keyid = RequestString.GetInt("keyid", 0);
  1850. int type = RequestString.GetInt("type", 0);
  1851. int bigtype = RequestString.GetInt("bigtype", 0);
  1852. int smalltype = RequestString.GetInt("smalltype", 0);
  1853. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1854. int deptid = RequestString.GetInt("deptid", 0);
  1855. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1856. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1857. string strisaudit = HttpUtility.UrlDecode(RequestString.GetQueryString("isaudit"));
  1858. string hcstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrstarttime"));
  1859. string hcstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrendtime"));
  1860. string strpageindex = RequestString.GetQueryString("page");
  1861. int pageindex = 1;
  1862. string strpagesize = RequestString.GetQueryString("pagesize");
  1863. int pagesize = 10;
  1864. int IsExport = RequestString.GetInt("isexport", 0);
  1865. int timesort = RequestString.GetInt("timesort", -1);
  1866. string sort = "ORDER BY F_CreateTime ASC";
  1867. if (timesort == 0)
  1868. sort = "ORDER BY LimitTime ASC";
  1869. else if (timesort == 1)
  1870. sort = "ORDER BY F_CreateTime DESC";
  1871. if (IsExport > 0)
  1872. {
  1873. sql += " and IsExport = '" + IsExport + "' ";
  1874. }
  1875. switch (strtab)
  1876. {
  1877. case "0"://待处理工单
  1878. if (strstate.Trim() != "" && strstate != "undefined")
  1879. {
  1880. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1881. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1882. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  1883. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  1884. else
  1885. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1886. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1887. if (strstate.Trim() == ((int)EnumWorkState.visit).ToString() && issatisfie != -1)
  1888. {
  1889. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1890. sql += " and F_IsSatisfie='" + issatisfie + "')";
  1891. }
  1892. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  1893. {
  1894. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1895. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG"&& userModel.F_RoleCode != "ZXLD")
  1896. {
  1897. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1898. }
  1899. else
  1900. {
  1901. sql += ")";
  1902. }
  1903. //不限制电话件
  1904. }
  1905. else
  1906. {
  1907. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1908. {
  1909. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  1910. + "and F_CreateUser = '" + userModel.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  1911. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  1912. }
  1913. sql += " and (F_InfoConBigType =1 or F_InfoConBigType is null )";
  1914. }
  1915. }
  1916. else
  1917. {
  1918. //int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1919. //sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1920. ////sql += " and F_WorkState in (1,2,3,5,7,8)";
  1921. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1922. 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 ";
  1923. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1924. {
  1925. sql += " and F_CreateUser='" + userModel.F_UserCode + "')))";
  1926. }
  1927. else
  1928. {
  1929. sql += ")))";
  1930. }
  1931. }
  1932. break;
  1933. case "1"://已交办的工单
  1934. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  1935. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  1936. if (strstate.Trim() != "" && strstate != "undefined")
  1937. {
  1938. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1939. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1940. else
  1941. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1942. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1943. }
  1944. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1945. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  1946. {
  1947. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  1948. }
  1949. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  1950. {
  1951. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  1952. }
  1953. //if (deptid != 0)
  1954. //{
  1955. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1956. // sql += " and F_MainDeptId = '" + deptid + "'";
  1957. //}
  1958. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1959. {
  1960. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1961. }
  1962. else
  1963. {
  1964. sql += ")";
  1965. }
  1966. //根据回传时间判断
  1967. if (hcstrstarttime.Trim() != "" && hcstrstarttime != "undefined")
  1968. {
  1969. sql += " and F_Hcdatetime >= '" + hcstrstarttime + " 00:00:00'";
  1970. //sql += " and datediff(day,F_Hcdatetime,'" + hcstrstarttime + "')<=0 ";
  1971. }
  1972. if (hcstrendtime.Trim() != "" && hcstrendtime != "undefined")
  1973. {
  1974. sql += " and F_Hcdatetime<='" + hcstrendtime + " 23:59:59' ";
  1975. //sql += " and datediff(day,F_Hcdatetime,'" + hcstrendtime + "')>=0 ";
  1976. }
  1977. break;
  1978. case "2"://已审核退回的工单
  1979. if (strstate.Trim() != "" && strstate != "undefined")
  1980. {
  1981. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1982. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1983. else
  1984. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1985. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1986. }
  1987. 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
  1988. if (!string.IsNullOrEmpty(strisaudit))
  1989. {
  1990. sql += " and F_IsAudit='" + strisaudit + "'";
  1991. if (deptid > 0)
  1992. {
  1993. sql += " and F_CreateDeptId='" + deptid + "'";
  1994. }
  1995. }
  1996. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1997. {
  1998. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  1999. }
  2000. else
  2001. {
  2002. sql += ")";
  2003. }
  2004. break;
  2005. case "3"://已审核延时的工单
  2006. if (strstate.Trim() != "" && strstate != "undefined")
  2007. {
  2008. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2009. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2010. else
  2011. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2012. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2013. }
  2014. 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
  2015. if (!string.IsNullOrEmpty(strisaudit))
  2016. {
  2017. sql += " and F_IsAudit='"+strisaudit+"'";
  2018. }
  2019. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2020. {
  2021. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  2022. }
  2023. else
  2024. {
  2025. sql += ")";
  2026. }
  2027. break;
  2028. case "4"://已重办的工单
  2029. if (strstate.Trim() != "" && strstate != "undefined")
  2030. {
  2031. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2032. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2033. else
  2034. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2035. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2036. }
  2037. 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 ";
  2038. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2039. {
  2040. sql += " and F_ReloadUser='" + userModel.F_UserCode + "')";
  2041. }
  2042. else
  2043. {
  2044. sql += ")";
  2045. }
  2046. break;
  2047. case "5"://已结案的工单
  2048. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  2049. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  2050. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  2051. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2052. {
  2053. sql += " and F_CloseUser='" + userModel.F_UserCode + "'";
  2054. }
  2055. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  2056. {
  2057. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  2058. }
  2059. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  2060. {
  2061. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  2062. }
  2063. break;
  2064. case "6"://已督办的工单
  2065. if (strstate.Trim() != "" && strstate != "undefined")
  2066. {
  2067. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2068. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2069. else
  2070. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2071. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2072. }
  2073. 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 ";
  2074. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2075. {
  2076. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2077. }
  2078. else
  2079. {
  2080. sql += ")";
  2081. }
  2082. break;
  2083. case "7"://已监察的工单
  2084. if (strstate.Trim() != "" && strstate != "undefined")
  2085. {
  2086. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2087. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2088. else
  2089. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2090. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2091. }
  2092. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2093. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2094. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2095. {
  2096. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2097. }
  2098. else
  2099. {
  2100. sql += ")";
  2101. }
  2102. break;
  2103. case "8"://待督办列表
  2104. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  2105. if (strstate.Trim() != "" && strstate != "undefined")
  2106. {
  2107. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2108. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2109. else
  2110. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2111. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2112. }
  2113. 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 ";
  2114. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode!= "DBZY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2115. {
  2116. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2117. }
  2118. else
  2119. {
  2120. sql += ")";
  2121. }
  2122. break;
  2123. case "9"://重办驳回列表
  2124. sql += " and F_WorkState="+ (int)EnumWorkState.rejload;
  2125. 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)";
  2126. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  2127. {
  2128. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  2129. }
  2130. sql += ")";
  2131. break;
  2132. }
  2133. if (strworkid.Trim() != "" && strworkid != "undefined")
  2134. {
  2135. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2136. }
  2137. if (strname.Trim() != "" && strname != "undefined")
  2138. {
  2139. sql += " and F_CusName like '%" + strname + "%' ";
  2140. }
  2141. if (strtel.Trim() != "" && strtel != "undefined")
  2142. {
  2143. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2144. }
  2145. if (strkey.Trim() != "" && strkey != "undefined")
  2146. {
  2147. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2148. }
  2149. #region 坐席&调度员
  2150. if (strusercode.Trim() != "" && strusercode != "undefined")
  2151. {//坐席
  2152. var usercode = strusercode.Trim().Split(',');
  2153. var newusercode = "";
  2154. foreach (var item in usercode)
  2155. {
  2156. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2157. newusercode += "'" + item + "',";
  2158. }
  2159. newusercode = newusercode.Trim(',');
  2160. if (newusercode.Trim() != "" && newusercode != "undefined")
  2161. {
  2162. sql += " and F_CreateUser in (" + newusercode + ") ";
  2163. }
  2164. }
  2165. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2166. {//调度员
  2167. var ddusercode = strddusercode.Trim().Split(',');
  2168. var newusercode = "";
  2169. foreach (var item in ddusercode)
  2170. {
  2171. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2172. newusercode += "'" + item + "',";
  2173. }
  2174. newusercode = newusercode.Trim(',');
  2175. if (newusercode.Trim() != "" && newusercode != "undefined")
  2176. {
  2177. sql += " and F_AssignUser in(" + newusercode + ") ";
  2178. }
  2179. }
  2180. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2181. //{
  2182. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2183. //}
  2184. #endregion
  2185. if (source != 0)
  2186. {
  2187. sql += " and F_InfoSource = '" + source + "' ";
  2188. }
  2189. if (keyid != 0)
  2190. {
  2191. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2192. }
  2193. if (type != 0)
  2194. {
  2195. sql += " and F_InfoType = '" + type + "' ";
  2196. }
  2197. if (bigtype != 0)
  2198. {
  2199. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2200. }
  2201. if (smalltype != 0)
  2202. {
  2203. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2204. }
  2205. if (sourcearea != 0)
  2206. {
  2207. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2208. }
  2209. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2210. {
  2211. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2212. }
  2213. if (strendtime.Trim() != "" && strendtime != "undefined")
  2214. {
  2215. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2216. }
  2217. if (deptid != 0 && strtab != "1")
  2218. {
  2219. if (deptlevel == 0)
  2220. {
  2221. 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 ";
  2222. //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 ";
  2223. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2224. }
  2225. else
  2226. {
  2227. //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 ";
  2228. 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 ";
  2229. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2230. }
  2231. }
  2232. if(deptid!=0)
  2233. {
  2234. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2235. }
  2236. if (strpageindex.Trim() != "")
  2237. {
  2238. pageindex = Convert.ToInt32(strpageindex);
  2239. }
  2240. if (strpagesize.Trim() != "")
  2241. {
  2242. pagesize = Convert.ToInt32(strpagesize);
  2243. }
  2244. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2245. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2246. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2247. 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,requirementFinishDay";
  2248. 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";
  2249. if (isdc > 0)
  2250. {
  2251. var top = "";
  2252. if (sql == " and F_IsDelete=0 ")
  2253. {
  2254. top = " top 1000 ";
  2255. }
  2256. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2257. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2258. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  2259. + " (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) 办理结果,"
  2260. + " (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" +
  2261. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  2262. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  2263. //var dtdc = DbHelperSQL.Query(" select " + colst + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  2264. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2265. if (msg == "")
  2266. {
  2267. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2268. //{
  2269. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2270. //}
  2271. return Success("导出成功");
  2272. }
  2273. else
  2274. {
  2275. return Error("导出失败");
  2276. }
  2277. }
  2278. int recordCount = 0;
  2279. dt = BLL.PagerBLL.GetListPager(
  2280. "T_Bus_WorkOrder WITH(NOLOCK)",
  2281. "F_WorkOrderId",
  2282. cols,
  2283. sql,
  2284. sort ,
  2285. pagesize,
  2286. pageindex,
  2287. true,
  2288. out recordCount);
  2289. #region 声音文件
  2290. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2291. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2292. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2293. dt.Columns.Add("OverState", typeof(string));//超时状态
  2294. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2295. dt.Columns.Add("GapTime", typeof(string));//时间差
  2296. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2297. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2298. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2299. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2300. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2301. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2302. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2303. foreach (DataRow dr in dt.Rows)
  2304. {
  2305. //获取最新交办信息
  2306. string iszbdw = "0";
  2307. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2308. if (state > 1)
  2309. {
  2310. 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";
  2311. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2312. if (dtjb.Rows.Count > 0)
  2313. {
  2314. //if (dtjb.Rows[0]["F_MainDeptId"] != null && dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  2315. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2316. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2317. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2318. {
  2319. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2320. }
  2321. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2322. #region
  2323. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2324. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2325. //if (deptinfo != null)
  2326. //{
  2327. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2328. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2329. //}
  2330. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2331. //{
  2332. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2333. // string dns = string.Empty;
  2334. // foreach (string strid in strids)
  2335. // {
  2336. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2337. // if (dinfo != null)
  2338. // {
  2339. // if (string.IsNullOrEmpty(dns))
  2340. // {
  2341. // dns = dinfo.F_DeptName;//交办单位
  2342. // }
  2343. // else
  2344. // {
  2345. // dns += "," + dinfo.F_DeptName;//交办单位
  2346. // }
  2347. // }
  2348. // }
  2349. // dr["OtherDeptName"] = dns;
  2350. //}
  2351. #endregion
  2352. #region
  2353. //if (state < 6 || state == 8)
  2354. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2355. {
  2356. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2357. dr["LimitTime"] = lt;
  2358. if (!string.IsNullOrWhiteSpace(lt))
  2359. {
  2360. var ltime = DateTime.Parse(lt);
  2361. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2362. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2363. if (tss < 0) { tss = -tss; }
  2364. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2365. if (ltime > DateTime.Now)
  2366. {
  2367. if (configcs != null)
  2368. {
  2369. int cs = Int32.Parse(configcs.F_ParamValue);
  2370. if (ts.TotalHours > cs)
  2371. {
  2372. dr["OverState"] = 1;
  2373. }
  2374. else
  2375. {
  2376. dr["OverState"] = 2;
  2377. }
  2378. }
  2379. dr["GapTime"] = "剩余" + gshsj;
  2380. }
  2381. else
  2382. {
  2383. dr["OverState"] = 3;
  2384. dr["GapTime"] = "超时" + gshsj;
  2385. }
  2386. }
  2387. }
  2388. if (state == (int)EnumWorkState.finish)
  2389. {
  2390. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2391. var dttime = DateTime.Now;
  2392. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2393. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2394. dr["LimitTime"] = lt;
  2395. if (!string.IsNullOrWhiteSpace(lt))
  2396. {
  2397. var ltime = DateTime.Parse(lt);
  2398. TimeSpan ts = ltime.Subtract(dttime);
  2399. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2400. if (tss < 0) { tss = -tss; }
  2401. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2402. if (ltime < dttime)
  2403. {
  2404. dr["OverState"] = 3;
  2405. dr["GapTime"] = "超时" + gshsj;
  2406. }
  2407. }
  2408. }
  2409. #endregion
  2410. }
  2411. }
  2412. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2413. {
  2414. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2415. }
  2416. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2417. {
  2418. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2419. }
  2420. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  2421. {
  2422. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  2423. dr["IsFiles"] = 1;
  2424. else
  2425. dr["IsFiles"] = 0;
  2426. }
  2427. else
  2428. {
  2429. dr["IsFiles"] = 0;
  2430. }
  2431. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2432. if (Int32.Parse(strtab) <= 1)
  2433. {
  2434. btns.Add(ButtonGroup.query());
  2435. if (Int32.Parse(strtab)==1)
  2436. {
  2437. // btns.Add(ButtonGroup.query());
  2438. if (dr["F_WorkState"].ToString() == "2" || dr["F_WorkState"].ToString() == "4" || dr["F_WorkState"].ToString() == "8")
  2439. {
  2440. if (userModel.F_RoleCode.ToUpper() == "ZXLD" || userModel.F_RoleCode.ToUpper() == "ZXLDGLYGLY" || userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "DDZG")
  2441. {
  2442. btns.Add(ButtonGroup.takeback());
  2443. }
  2444. }
  2445. }
  2446. else
  2447. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2448. #region 判断是否存在待督办
  2449. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2450. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2451. if (recount > 0 && butt != null)
  2452. btns.Remove(butt);
  2453. #endregion
  2454. }
  2455. else
  2456. {
  2457. btns.Clear();
  2458. if (Int32.Parse(strtab) == 8)
  2459. btns = ButtonGroup.GetButtons("12", userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2460. else
  2461. btns.Add(ButtonGroup.query());
  2462. }
  2463. dr["Buttons"] = btns;
  2464. }
  2465. #endregion
  2466. var obj = new
  2467. {
  2468. state = "success",
  2469. message = "成功",
  2470. rows = dt,
  2471. total = recordCount
  2472. };
  2473. return Content(obj.ToJson());
  2474. }
  2475. /// <summary>
  2476. /// 获取单位处理列表
  2477. /// </summary>
  2478. /// <returns></returns>
  2479. [Authority]
  2480. public ActionResult GetDWDealList(int isdc = 0)
  2481. {
  2482. DataTable dt = new DataTable();
  2483. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2484. //int userId = 689;
  2485. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2486. string sql = " and F_IsDelete=0";
  2487. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2488. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2489. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2490. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2491. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2492. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2493. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2494. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2495. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2496. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2497. string strisaudit = HttpUtility.UrlDecode(RequestString.GetQueryString("isaudit"));
  2498. int source = RequestString.GetInt("source", 0);
  2499. int keyid = RequestString.GetInt("keyid", 0);
  2500. int type = RequestString.GetInt("type", 0);
  2501. int bigtype = RequestString.GetInt("bigtype", 0);
  2502. int smalltype = RequestString.GetInt("smalltype", 0);
  2503. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2504. int deptid = RequestString.GetInt("deptid", 0);
  2505. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2506. string strpageindex = RequestString.GetQueryString("page");
  2507. int pageindex = 1;
  2508. string strpagesize = RequestString.GetQueryString("pagesize");
  2509. int pagesize = 10;
  2510. int IsExport = RequestString.GetInt("isexport", 0);
  2511. int timesort = RequestString.GetInt("timesort", -1);
  2512. string sort = "ORDER BY F_CreateTime DESC";
  2513. if (timesort == 0)
  2514. sort = "ORDER BY F_LimitTime ASC";
  2515. else if (timesort == 1)
  2516. sort = "ORDER BY F_CreateTime DESC";
  2517. if (IsExport > 0)
  2518. {
  2519. sql += " and IsExport = '" + IsExport + "' ";
  2520. }
  2521. #region 模块
  2522. switch (strtab)
  2523. {
  2524. case "0"://待处理工单
  2525. sort = "ORDER BY F_LimitTime ASC ,F_CreateTime desc";
  2526. int isyq = RequestString.GetInt("isyq", -1);
  2527. if (strstate.Trim() != "" && strstate != "undefined")
  2528. {
  2529. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2530. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2531. else
  2532. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2533. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2534. }
  2535. else
  2536. {
  2537. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  2538. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2539. //sql += " and F_WorkState in (2,4,8)";
  2540. }
  2541. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2542. {
  2543. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2544. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)) or "
  2545. //+ "(','+F_OtherDeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_IsSure=1))";
  2546. //+ " ISNULL(F_FeedbackTime, '')='' and ',' + F_MainDeptID + ',' like '%," + userModel.F_DeptId + ",%' and F_IsSure in (0,1)";
  2547. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  2548. if (isyq != -1)
  2549. {
  2550. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2551. }
  2552. else
  2553. {
  2554. sql += ")";
  2555. }
  2556. }
  2557. break;
  2558. case "1"://已查收的工单
  2559. if (strstate.Trim() != "" && strstate != "undefined")
  2560. {
  2561. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2562. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2563. else
  2564. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2565. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2566. }
  2567. 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 ";
  2568. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2569. {
  2570. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2571. }
  2572. else
  2573. {
  2574. sql += ")";
  2575. }
  2576. break;
  2577. case "2"://已申请退回的工单
  2578. if (strstate.Trim() != "" && strstate != "undefined")
  2579. {
  2580. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2581. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2582. else
  2583. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2584. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2585. }
  2586. 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 ";
  2587. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2588. {
  2589. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2590. sql += " and F_MainDeptId='" + userModel.F_DeptId + "'";
  2591. }
  2592. else
  2593. {
  2594. sql += ")";
  2595. }
  2596. break;
  2597. case "3"://已申请延时的工单
  2598. if (strstate.Trim() != "" && strstate != "undefined")
  2599. {
  2600. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2601. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2602. else
  2603. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2604. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2605. }
  2606. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2607. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2608. {
  2609. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2610. }
  2611. else
  2612. {
  2613. sql += ")";
  2614. }
  2615. break;
  2616. case "4"://已办理的工单
  2617. if (strstate.Trim() != "" && strstate != "undefined")
  2618. {
  2619. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2620. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2621. else
  2622. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2623. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2624. }
  2625. sort = "ORDER BY F_CreateTime DESC";
  2626. 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) ";
  2627. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2628. {
  2629. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2630. }
  2631. else
  2632. {
  2633. sql += ")";
  2634. }
  2635. break;
  2636. case "5"://被督办的工单
  2637. if (strstate.Trim() != "" && strstate != "undefined")
  2638. {
  2639. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2640. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2641. else
  2642. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2643. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2644. }
  2645. 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 ";
  2646. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2647. {
  2648. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2649. }
  2650. else
  2651. {
  2652. sql += ")";
  2653. }
  2654. break;
  2655. case "6"://被监察的工单
  2656. if (strstate.Trim() != "" && strstate != "undefined")
  2657. {
  2658. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2659. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2660. else
  2661. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2662. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2663. }
  2664. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2665. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2666. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2667. {
  2668. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2669. }
  2670. else
  2671. {
  2672. sql += ")";
  2673. }
  2674. break;
  2675. case "7"://延时审核中的工单
  2676. //sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2677. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2678. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State= 1 and F_IsDelete = 0";
  2679. if (!string.IsNullOrEmpty(strisaudit))
  2680. {
  2681. sql += " and F_IsAudit='" + strisaudit + "'";
  2682. }
  2683. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2684. {
  2685. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2686. }
  2687. else
  2688. {
  2689. sql += ")";
  2690. }
  2691. break;
  2692. case "8"://退回审核中的工单
  2693. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2694. 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,'')=''";
  2695. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2696. {
  2697. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2698. }
  2699. else
  2700. {
  2701. sql += ")";
  2702. }
  2703. break;
  2704. case "9"://需履职界定表
  2705. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2706. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2707. 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 ";
  2708. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2709. {
  2710. sql += " and F_MainDeptId='" + userModel.F_DeptId + "' ";
  2711. }
  2712. sql += "))";
  2713. break;
  2714. case "10"://履职界定待审核表
  2715. 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 )";
  2716. break;
  2717. case "11"://履职界定已审核表
  2718. 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 )";
  2719. break;
  2720. case "12"://领导批示
  2721. 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 )";
  2722. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2723. {
  2724. sql += " and F_MainDeptId='" + userModel.F_DeptId + "'";
  2725. }
  2726. break;
  2727. #region 增加催办列表:被催办的工单可以在此列表进行显示处理,二级单位可以在此进行催办处理 20220316
  2728. case "13"://被催办的工单
  2729. if (strstate.Trim() != "" && strstate != "undefined")
  2730. {
  2731. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2732. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2733. else
  2734. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2735. }
  2736. 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)";
  2737. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLD")
  2738. {
  2739. sql += " and F_WorkState in ('" + (int)EnumWorkState.receive + "','" + (int)EnumWorkState.dealing + "','" + (int)EnumWorkState.reload + "' )";
  2740. sql += " and F_MainDeptId='" + userModel.F_DeptId + "')";
  2741. }
  2742. else
  2743. {
  2744. sql += ")";
  2745. }
  2746. break;
  2747. #endregion
  2748. case "14": //督办列表
  2749. sql += " and F_WorkOrderID in( select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  2750. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2751. {
  2752. sql += " and F_MainDeptId='" + userModel.F_DeptId + "'";
  2753. }
  2754. break;
  2755. case "15"://扫描件未上传列表
  2756. sql += " and F_Files =''";
  2757. break;
  2758. }
  2759. #endregion
  2760. #region 条件
  2761. if (strworkid.Trim() != "" && strworkid != "undefined")
  2762. {
  2763. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2764. }
  2765. if (strname.Trim() != "" && strname != "undefined")
  2766. {
  2767. sql += " and F_CusName like '%" + strname + "%' ";
  2768. }
  2769. if (strtel.Trim() != "" && strtel != "undefined")
  2770. {
  2771. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2772. }
  2773. if (strkey.Trim() != "" && strkey != "undefined")
  2774. {
  2775. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2776. }
  2777. #region 坐席&调度员
  2778. if (strusercode.Trim() != "" && strusercode != "undefined")
  2779. {//坐席
  2780. var usercode = strusercode.Trim().Split(',');
  2781. var newusercode = "";
  2782. foreach (var item in usercode)
  2783. {
  2784. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2785. newusercode += "'" + item + "',";
  2786. }
  2787. newusercode = newusercode.Trim(',');
  2788. if (newusercode.Trim() != "" && newusercode != "undefined")
  2789. {
  2790. sql += " and F_CreateUser in (" + newusercode + ") ";
  2791. }
  2792. }
  2793. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2794. {//调度员
  2795. var ddusercode = strddusercode.Trim().Split(',');
  2796. var newusercode = "";
  2797. foreach (var item in ddusercode)
  2798. {
  2799. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2800. newusercode += "'" + item + "',";
  2801. }
  2802. newusercode = newusercode.Trim(',');
  2803. if (newusercode.Trim() != "" && newusercode != "undefined")
  2804. {
  2805. sql += " and F_AssignUser in(" + newusercode + ") ";
  2806. }
  2807. }
  2808. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2809. //{
  2810. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2811. //}
  2812. #endregion
  2813. if (source != 0)
  2814. {
  2815. sql += " and F_InfoSource = '" + source + "' ";
  2816. }
  2817. if (keyid != 0)
  2818. {
  2819. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2820. }
  2821. if (type != 0)
  2822. {
  2823. sql += " and F_InfoType = '" + type + "' ";
  2824. }
  2825. if (bigtype != 0)
  2826. {
  2827. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2828. }
  2829. if (smalltype != 0)
  2830. {
  2831. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2832. }
  2833. if (sourcearea != 0)
  2834. {
  2835. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2836. }
  2837. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2838. {
  2839. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2840. }
  2841. if (strendtime.Trim() != "" && strendtime != "undefined")
  2842. {
  2843. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2844. }
  2845. if(deptid!=0)
  2846. {
  2847. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2848. }
  2849. if (strpageindex.Trim() != "")
  2850. {
  2851. pageindex = Convert.ToInt32(strpageindex);
  2852. }
  2853. if (strpagesize.Trim() != "")
  2854. {
  2855. pagesize = Convert.ToInt32(strpagesize);
  2856. }
  2857. #endregion
  2858. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2859. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2860. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2861. 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,requirementFinishDay";
  2862. if (isdc > 0)
  2863. {
  2864. var top = " "; var orderby = " order by F_CreateTime";
  2865. if (sql == " and F_IsDelete=0 ")
  2866. {
  2867. top = " top 1000 "; orderby += " desc ";
  2868. }
  2869. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2870. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  2871. + " (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) 办理结果,"
  2872. + " (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" +
  2873. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  2874. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  2875. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2876. if (msg == "")
  2877. {
  2878. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2879. //{
  2880. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2881. //}
  2882. return Success("导出成功");
  2883. }
  2884. else
  2885. {
  2886. return Error("导出失败");
  2887. }
  2888. }
  2889. int recordCount = 0;
  2890. dt = BLL.PagerBLL.GetListPager(
  2891. "T_Bus_WorkOrder WITH(NOLOCK)",
  2892. "F_WorkOrderId",
  2893. cols,
  2894. sql,
  2895. sort ,
  2896. pagesize,
  2897. pageindex,
  2898. true,
  2899. out recordCount);
  2900. #region 声音文件
  2901. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2902. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2903. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2904. dt.Columns.Add("OverState", typeof(string));//超时状态
  2905. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2906. dt.Columns.Add("GapTime", typeof(string));//时间差
  2907. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2908. dt.Columns.Add("PDState", typeof(string));//派单状态
  2909. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2910. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2911. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2912. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2913. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2914. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2915. foreach (DataRow dr in dt.Rows)
  2916. {
  2917. //获取最新交办信息
  2918. string iszbdw = "0";
  2919. string ispd = "";
  2920. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2921. if (state > 1)
  2922. {
  2923. 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";
  2924. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2925. if (dtjb.Rows.Count > 0)
  2926. {
  2927. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2928. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2929. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2930. {
  2931. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2932. }
  2933. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2934. dr["LimitTime"] = dtjb.Rows[0]["F_LimitTime"].ToString();
  2935. #region
  2936. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2937. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2938. //if (deptinfo != null)
  2939. //{
  2940. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2941. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2942. //}
  2943. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2944. //{
  2945. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2946. // string dns = string.Empty;
  2947. // foreach (string strid in strids)
  2948. // {
  2949. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2950. // if (dinfo != null)
  2951. // {
  2952. // if (string.IsNullOrEmpty(dns))
  2953. // {
  2954. // dns = dinfo.F_DeptName;//交办单位
  2955. // }
  2956. // else
  2957. // {
  2958. // dns += "," + dinfo.F_DeptName;//交办单位
  2959. // }
  2960. // }
  2961. // }
  2962. // dr["OtherDeptName"] = dns;
  2963. //}
  2964. #endregion
  2965. #region
  2966. //if (state < 6 || state == 8)
  2967. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2968. {
  2969. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2970. dr["LimitTime"] = lt;
  2971. if (!string.IsNullOrWhiteSpace(lt))
  2972. {
  2973. var ltime = DateTime.Parse(lt);
  2974. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2975. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2976. if (tss < 0) { tss = -tss; }
  2977. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2978. if (ltime > DateTime.Now)
  2979. {
  2980. if (configcs != null)
  2981. {
  2982. int cs = Int32.Parse(configcs.F_ParamValue);
  2983. if (ts.TotalHours > cs)
  2984. {
  2985. dr["OverState"] = 1;
  2986. }
  2987. else
  2988. {
  2989. dr["OverState"] = 2;
  2990. }
  2991. }
  2992. dr["GapTime"] = "剩余" + gshsj;
  2993. }
  2994. else
  2995. {
  2996. dr["OverState"] = 3;
  2997. dr["GapTime"] = "超时" + gshsj;
  2998. }
  2999. }
  3000. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3001. dr["PDState"] = ispd;
  3002. }
  3003. if (state == (int)EnumWorkState.finish)
  3004. {
  3005. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3006. var dttime = DateTime.Now;
  3007. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3008. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3009. if (!string.IsNullOrWhiteSpace(lt))
  3010. {
  3011. var ltime = DateTime.Parse(lt);
  3012. TimeSpan ts = ltime.Subtract(dttime);
  3013. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3014. if (tss < 0) { tss = -tss; }
  3015. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3016. if (ltime < dttime)
  3017. {
  3018. dr["OverState"] = 3;
  3019. dr["GapTime"] = "超时" + gshsj;
  3020. }
  3021. }
  3022. }
  3023. #endregion
  3024. }
  3025. }
  3026. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3027. {
  3028. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3029. }
  3030. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3031. {
  3032. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3033. }
  3034. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3035. {
  3036. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3037. dr["IsFiles"] = 1;
  3038. else
  3039. dr["IsFiles"] = 0;
  3040. }
  3041. else
  3042. {
  3043. dr["IsFiles"] = 0;
  3044. }
  3045. //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";
  3046. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  3047. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3048. if (Int32.Parse(strtab) < 1)
  3049. {
  3050. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3051. #region 判断是否存在待督办
  3052. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3053. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3054. if (recount > 0 && butt != null)
  3055. btns.Remove(butt);
  3056. if (dr["F_Files"].ToString() == "")
  3057. {
  3058. if (userModel.F_RoleCode.ToUpper() == "WLDW")
  3059. btns.Add(ButtonGroup.Upload());
  3060. }
  3061. #endregion
  3062. }
  3063. else
  3064. {
  3065. if (Int32.Parse(strtab) == 9)
  3066. {//需履职界定
  3067. btns.Add(ButtonGroup.perform());
  3068. }
  3069. else if (Int32.Parse(strtab) == 10)
  3070. {//履职界定待审核
  3071. btns.Add(ButtonGroup.performaudit());
  3072. }
  3073. else if (Int32.Parse(strtab) == 12)
  3074. {//领导批示
  3075. // btns.Add(ButtonGroup.subreload());
  3076. }
  3077. else if (Int32.Parse(strtab) == 4)
  3078. {//履职界定待审核
  3079. if (dr["F_WorkState"].ToString()=="6")
  3080. btns.Add(ButtonGroup.visit());
  3081. if (dr["F_Files"].ToString() == "")
  3082. {
  3083. if (userModel.F_RoleCode.ToUpper() == "WLDW")
  3084. btns.Add(ButtonGroup.Upload());
  3085. }
  3086. }
  3087. else if (Int32.Parse(strtab) == 7 && strisaudit=="0")
  3088. {//履职界定待审核
  3089. btns.Add(ButtonGroup.auditdelay());
  3090. }
  3091. else if (Int32.Parse(strtab) == 13)
  3092. {//工单催办
  3093. if (userModel.F_RoleCode.ToUpper() == "ZXLD" || userModel.F_RoleCode.ToUpper() == "GLY")
  3094. {
  3095. btns.Add(ButtonGroup.Reminder());
  3096. }
  3097. else
  3098. {
  3099. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3100. var butt = btns.Find(c => c.key == ButtonGroup.Remkers().key);
  3101. if ( butt != null)
  3102. btns.Remove(butt);
  3103. }
  3104. }
  3105. btns.Add(ButtonGroup.query());
  3106. }
  3107. dr["Buttons"] = btns;
  3108. }
  3109. #endregion
  3110. var obj = new
  3111. {
  3112. state = "success",
  3113. message = "成功",
  3114. rows = dt,
  3115. total = recordCount
  3116. };
  3117. return Content(obj.ToJson());
  3118. }
  3119. /// <summary>
  3120. /// 首页获取二级单位的交办数量和处理数量
  3121. /// </summary>
  3122. /// <returns></returns>
  3123. public ActionResult GetTwodeptjbdealcount(string stime, string etime, string deptid)
  3124. {
  3125. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3126. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3127. if (string.IsNullOrEmpty(stime) && string.IsNullOrEmpty(etime))
  3128. {
  3129. stime = DateTime.Now.AddDays(1 - DateTime.Now.Day).ToString("yyyy-MM-dd hh:mm:ss");//本月月初
  3130. etime = DateTime.Now.AddDays(1 - DateTime.Now.Day).AddMonths(1).ToString("yyyy-MM-dd hh:mm:ss");//本月月末
  3131. }
  3132. else
  3133. {
  3134. stime += " 00:00:00";
  3135. etime += " 23:59:59";
  3136. }
  3137. //获取所有子类
  3138. var deptlist = DbHelperSQL.Query("select * from T_Sys_Department where F_PartentId=" + deptid).Tables[0];
  3139. List<Models.Dto.DeptJbdealCount> list = new List<Models.Dto.DeptJbdealCount>();
  3140. foreach (DataRow dr in deptlist.Rows)
  3141. {
  3142. Models.Dto.DeptJbdealCount model = new Models.Dto.DeptJbdealCount();
  3143. model.deptname = dr["F_DeptName"].ToString();
  3144. #region 获取本部门的交办数量
  3145. string sql = " select count(*) from T_Bus_WorkOrder where F_IsDelete=0 ";
  3146. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  3147. sql += " and datediff(day,F_CreateTime,'" + stime + "')<=0 ";
  3148. sql += " and datediff(day,F_CreateTime,'" + etime + "')>=0 ";
  3149. sql += ")";
  3150. sql += " and F_MainDeptId=" + Convert.ToInt32(dr["F_DeptId"].ToString());
  3151. var jbcount = DbHelperSQL.GetSingle(sql);
  3152. model.jbcount = jbcount.ToString();
  3153. #endregion
  3154. #region 处理工单
  3155. string sql1 = "select count(*) from T_Bus_WorkOrder where F_IsDelete = 0";
  3156. sql1 += "and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK)";
  3157. sql1 += " where F_State= 1 and F_IsDelete = 0 and F_IsSure in (0,1) ";
  3158. sql1 += "and datediff(day, F_CreateTime,'" + stime + "')<= 0 ";
  3159. sql1 += "and datediff(day, F_CreateTime,'" + etime + "')>= 0 ";
  3160. sql1 += " and datediff(day, F_FeedbackTime,'" + stime + "')<= 0";
  3161. sql1 += "and datediff(day, F_FeedbackTime,'" + etime + "')>= 0 )";
  3162. sql1 += "and F_MainDeptId =" + Convert.ToInt32(dr["F_DeptId"].ToString());
  3163. var dealcount = DbHelperSQL.GetSingle(sql1);
  3164. model.dealcount = dealcount.ToString();
  3165. #endregion
  3166. list.Add(model);
  3167. }
  3168. return Success("成功",list);
  3169. }
  3170. /// <summary>
  3171. /// 获取办理数量、催办数量、未上传数量
  3172. /// </summary>
  3173. /// <returns></returns>
  3174. [Authority]
  3175. public ActionResult GetDcsCount()
  3176. {
  3177. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3178. // int userId = 751;
  3179. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3180. int isyq = RequestString.GetInt("isyq", -1);
  3181. //获取待办理工单数量
  3182. 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 "
  3183. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  3184. if (isyq != -1)
  3185. {
  3186. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3187. }
  3188. else
  3189. {
  3190. sql += ")";
  3191. }
  3192. //获取催办数量
  3193. string sql1 = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and F_WorkState in(2,4,8) 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 + ") ";
  3194. //扫描件未上传数量
  3195. 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 + ") ";
  3196. #region 获取待办理数量
  3197. var dbldatable = DbHelperSQL.Query(sql).Tables[0];
  3198. var dblrow = dbldatable.Rows;
  3199. ///待办理数量
  3200. var dblcount = dblrow[0]["dblcount"].ToString();
  3201. #endregion
  3202. #region 获取催办数量
  3203. var cbdatable = DbHelperSQL.Query(sql1).Tables[0];
  3204. var cblrow = cbdatable.Rows;
  3205. ///催办数量
  3206. var cblcount = cblrow[0]["dblcount"].ToString();
  3207. #endregion
  3208. #region 扫描件未上传数量
  3209. var smjdatable = DbHelperSQL.Query(sql2).Tables[0];
  3210. var smjlrow = smjdatable.Rows;
  3211. ///扫描件未上传数量
  3212. var smjcount = smjlrow[0]["dblcount"].ToString();
  3213. #endregion
  3214. var obj = new
  3215. {
  3216. state = "success",
  3217. message = "成功",
  3218. dblcount= dblcount,
  3219. cblcount= cblcount,
  3220. smjcount= smjcount
  3221. };
  3222. return Content(obj.ToJson());
  3223. }
  3224. /// <summary>
  3225. /// 获取单位处理列表
  3226. /// </summary>
  3227. /// <returns></returns>
  3228. [Authority]
  3229. public ActionResult GetXBDWDealList(int isdc = 0)
  3230. {
  3231. DataTable dt = new DataTable();
  3232. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3233. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3234. string sql = " and F_IsDelete=0";
  3235. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3236. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3237. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3238. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3239. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3240. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3241. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3242. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3243. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3244. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3245. int source = RequestString.GetInt("source", 0);
  3246. int keyid = RequestString.GetInt("keyid", 0);
  3247. int type = RequestString.GetInt("type", 0);
  3248. int bigtype = RequestString.GetInt("bigtype", 0);
  3249. int smalltype = RequestString.GetInt("smalltype", 0);
  3250. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3251. int deptid = RequestString.GetInt("deptid", 0);
  3252. int timesort = RequestString.GetInt("timesort", -1);
  3253. string sort = "ORDER BY F_CreateTime ASC";
  3254. if (timesort == 0)
  3255. sort = "ORDER BY LimitTime ASC";
  3256. else if (timesort == 1)
  3257. sort = "ORDER BY F_CreateTime DESC";
  3258. string strpageindex = RequestString.GetQueryString("page");
  3259. int pageindex = 1;
  3260. string strpagesize = RequestString.GetQueryString("pagesize");
  3261. int pagesize = 10;
  3262. switch (strtab)
  3263. {
  3264. case "0"://待处理工单
  3265. int isyq = RequestString.GetInt("isyq", -1);
  3266. if (strstate.Trim() != "" && strstate != "undefined")
  3267. {
  3268. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3269. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3270. else
  3271. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3272. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3273. }
  3274. else
  3275. {
  3276. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  3277. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3278. //sql += " and F_WorkState in (2,4,8)";
  3279. }
  3280. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3281. + " ISNULL(F_FeedbackTime, '')='' ";
  3282. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3283. {
  3284. sql += " and F_DeptId =" + userModel.F_DeptId;
  3285. }
  3286. if (isyq != -1)
  3287. {
  3288. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3289. }
  3290. else
  3291. {
  3292. sql += ")";
  3293. }
  3294. break;
  3295. case "1"://已办理的工单
  3296. 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) ";
  3297. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3298. {
  3299. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3300. }
  3301. else
  3302. {
  3303. sql += ")";
  3304. }
  3305. break;
  3306. }
  3307. if(deptid!=0)
  3308. {
  3309. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3310. }
  3311. if (strworkid.Trim() != "" && strworkid != "undefined")
  3312. {
  3313. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3314. }
  3315. if (strname.Trim() != "" && strname != "undefined")
  3316. {
  3317. sql += " and F_CusName like '%" + strname + "%' ";
  3318. }
  3319. if (strtel.Trim() != "" && strtel != "undefined")
  3320. {
  3321. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3322. }
  3323. if (strkey.Trim() != "" && strkey != "undefined")
  3324. {
  3325. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3326. }
  3327. #region 坐席&调度员
  3328. if (strusercode.Trim() != "" && strusercode != "undefined")
  3329. {//坐席
  3330. var usercode = strusercode.Trim().Split(',');
  3331. var newusercode = "";
  3332. foreach (var item in usercode)
  3333. {
  3334. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3335. newusercode += "'" + item + "',";
  3336. }
  3337. newusercode = newusercode.Trim(',');
  3338. if (newusercode.Trim() != "" && newusercode != "undefined")
  3339. {
  3340. sql += " and F_CreateUser in (" + newusercode + ") ";
  3341. }
  3342. }
  3343. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3344. {//调度员
  3345. var ddusercode = strddusercode.Trim().Split(',');
  3346. var newusercode = "";
  3347. foreach (var item in ddusercode)
  3348. {
  3349. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3350. newusercode += "'" + item + "',";
  3351. }
  3352. newusercode = newusercode.Trim(',');
  3353. if (newusercode.Trim() != "" && newusercode != "undefined")
  3354. {
  3355. sql += " and F_AssignUser in(" + newusercode + ") ";
  3356. }
  3357. }
  3358. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3359. //{
  3360. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3361. //}
  3362. #endregion
  3363. if (source != 0)
  3364. {
  3365. sql += " and F_InfoSource = '" + source + "' ";
  3366. }
  3367. if (keyid != 0)
  3368. {
  3369. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3370. }
  3371. if (type != 0)
  3372. {
  3373. sql += " and F_InfoType = '" + type + "' ";
  3374. }
  3375. if (bigtype != 0)
  3376. {
  3377. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3378. }
  3379. if (smalltype != 0)
  3380. {
  3381. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3382. }
  3383. if (sourcearea != 0)
  3384. {
  3385. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3386. }
  3387. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3388. {
  3389. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3390. }
  3391. if (strendtime.Trim() != "" && strendtime != "undefined")
  3392. {
  3393. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3394. }
  3395. if (strpageindex.Trim() != "")
  3396. {
  3397. pageindex = Convert.ToInt32(strpageindex);
  3398. }
  3399. if (strpagesize.Trim() != "")
  3400. {
  3401. pagesize = Convert.ToInt32(strpagesize);
  3402. }
  3403. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3404. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3405. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3406. 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";
  3407. if (isdc > 0)
  3408. {
  3409. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3410. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3411. if (msg == "")
  3412. {
  3413. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3414. //{
  3415. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3416. //}
  3417. return Success("导出成功");
  3418. }
  3419. else
  3420. {
  3421. return Error("导出失败");
  3422. }
  3423. }
  3424. int recordCount = 0;
  3425. dt = BLL.PagerBLL.GetListPager(
  3426. "T_Bus_WorkOrder WITH(NOLOCK)",
  3427. "F_WorkOrderId",
  3428. cols,
  3429. sql,
  3430. sort ,
  3431. pagesize,
  3432. pageindex,
  3433. true,
  3434. out recordCount);
  3435. #region 声音文件
  3436. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3437. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3438. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3439. dt.Columns.Add("OverState", typeof(string));//超时状态
  3440. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3441. dt.Columns.Add("GapTime", typeof(string));//时间差
  3442. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3443. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3444. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  3445. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3446. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3447. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3448. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3449. foreach (DataRow dr in dt.Rows)
  3450. {
  3451. //获取最新交办信息
  3452. string iszbdw = "0";
  3453. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3454. if (state > 1)
  3455. {
  3456. 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";
  3457. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3458. if (dtjb.Rows.Count > 0)
  3459. {
  3460. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3461. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3462. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3463. {
  3464. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3465. }
  3466. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3467. #region
  3468. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3469. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3470. //if (deptinfo != null)
  3471. //{
  3472. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  3473. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3474. //}
  3475. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3476. //{
  3477. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3478. // string dns = string.Empty;
  3479. // foreach (string strid in strids)
  3480. // {
  3481. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3482. // if (dinfo != null)
  3483. // {
  3484. // if (string.IsNullOrEmpty(dns))
  3485. // {
  3486. // dns = dinfo.F_DeptName;//交办单位
  3487. // }
  3488. // else
  3489. // {
  3490. // dns += "," + dinfo.F_DeptName;//交办单位
  3491. // }
  3492. // }
  3493. // }
  3494. // dr["OtherDeptName"] = dns;
  3495. //}
  3496. #endregion
  3497. #region
  3498. //if (state < 6 || state == 8)
  3499. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3500. {
  3501. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3502. dr["LimitTime"] = lt;
  3503. if (!string.IsNullOrWhiteSpace(lt))
  3504. {
  3505. var ltime = DateTime.Parse(lt);
  3506. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3507. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3508. if (tss < 0) { tss = -tss; }
  3509. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3510. if (ltime > DateTime.Now)
  3511. {
  3512. if (configcs != null)
  3513. {
  3514. int cs = Int32.Parse(configcs.F_ParamValue);
  3515. if (ts.TotalHours > cs)
  3516. {
  3517. dr["OverState"] = 1;
  3518. }
  3519. else
  3520. {
  3521. dr["OverState"] = 2;
  3522. }
  3523. }
  3524. dr["GapTime"] = "剩余" + gshsj;
  3525. }
  3526. else
  3527. {
  3528. dr["OverState"] = 3;
  3529. dr["GapTime"] = "超时" + gshsj;
  3530. }
  3531. }
  3532. }
  3533. if (state == (int)EnumWorkState.finish)
  3534. {
  3535. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3536. var dttime = DateTime.Now;
  3537. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3538. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3539. dr["LimitTime"] = lt;
  3540. if (!string.IsNullOrWhiteSpace(lt))
  3541. {
  3542. var ltime = DateTime.Parse(lt);
  3543. TimeSpan ts = ltime.Subtract(dttime);
  3544. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3545. if (tss < 0) { tss = -tss; }
  3546. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3547. if (ltime < dttime)
  3548. {
  3549. dr["OverState"] = 3;
  3550. dr["GapTime"] = "超时" + gshsj;
  3551. }
  3552. }
  3553. }
  3554. #endregion
  3555. }
  3556. }
  3557. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3558. {
  3559. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3560. }
  3561. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3562. {
  3563. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3564. }
  3565. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3566. {
  3567. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3568. dr["IsFiles"] = 1;
  3569. else
  3570. dr["IsFiles"] = 0;
  3571. }
  3572. else
  3573. {
  3574. dr["IsFiles"] = 0;
  3575. }
  3576. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3577. if (Int32.Parse(strtab) < 1)
  3578. {
  3579. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  3580. #region 判断是否存在待督办
  3581. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3582. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3583. if (recount > 0 && butt != null)
  3584. btns.Remove(butt);
  3585. #endregion
  3586. }
  3587. else
  3588. {
  3589. btns.Add(ButtonGroup.query());
  3590. }
  3591. dr["Buttons"] = btns;
  3592. }
  3593. #endregion
  3594. var obj = new
  3595. {
  3596. state = "success",
  3597. message = "成功",
  3598. rows = dt,
  3599. total = recordCount
  3600. };
  3601. return Content(obj.ToJson());
  3602. }
  3603. /// <summary>
  3604. /// 获取单位主办协办未处理工单列表
  3605. /// </summary>
  3606. /// <returns></returns>
  3607. [Authority]
  3608. public ActionResult GetDWNoDealList(int isdc = 0)
  3609. {
  3610. DataTable dt = new DataTable();
  3611. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3612. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3613. string sql = " and F_IsDelete=0";
  3614. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3615. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3616. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3617. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3618. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3619. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3620. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3621. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3622. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3623. int source = RequestString.GetInt("source", 0);
  3624. int keyid = RequestString.GetInt("keyid", 0);
  3625. int type = RequestString.GetInt("type", 0);
  3626. int bigtype = RequestString.GetInt("bigtype", 0);
  3627. int smalltype = RequestString.GetInt("smalltype", 0);
  3628. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3629. int deptid = RequestString.GetInt("deptid", 0);
  3630. int timesort = RequestString.GetInt("timesort", -1);
  3631. string sort = "ORDER BY F_CreateTime ASC";
  3632. if (timesort == 0)
  3633. sort = "ORDER BY LimitTime ASC";
  3634. else if (timesort == 1)
  3635. sort = "ORDER BY F_CreateTime DESC";
  3636. string strpageindex = RequestString.GetQueryString("page");
  3637. int pageindex = 1;
  3638. string strpagesize = RequestString.GetQueryString("pagesize");
  3639. int pagesize = 10;
  3640. if (userModel.F_RoleCode == "ZXHWY")
  3641. {
  3642. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  3643. }
  3644. #region 坐席&调度员
  3645. if (strusercode.Trim() != "" && strusercode != "undefined")
  3646. {//坐席
  3647. var usercode = strusercode.Trim().Split(',');
  3648. var newusercode = "";
  3649. foreach (var item in usercode)
  3650. {
  3651. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3652. newusercode += "'" + item + "',";
  3653. }
  3654. newusercode = newusercode.Trim(',');
  3655. if (newusercode.Trim() != "" && newusercode != "undefined")
  3656. {
  3657. sql += " and F_CreateUser in (" + newusercode + ") ";
  3658. }
  3659. }
  3660. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3661. {//调度员
  3662. var ddusercode = strddusercode.Trim().Split(',');
  3663. var newusercode = "";
  3664. foreach (var item in ddusercode)
  3665. {
  3666. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3667. newusercode += "'" + item + "',";
  3668. }
  3669. newusercode = newusercode.Trim(',');
  3670. if (newusercode.Trim() != "" && newusercode != "undefined")
  3671. {
  3672. sql += " and F_AssignUser in(" + newusercode + ") ";
  3673. }
  3674. }
  3675. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3676. //{
  3677. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3678. //}
  3679. #endregion
  3680. 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) ";
  3681. if (userModel.F_RoleCode == "WLDW")
  3682. {
  3683. sql += " and (F_MainDeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3684. }
  3685. else if (deptid != 0)
  3686. {
  3687. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3688. }
  3689. 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, '')='' ";
  3690. if (userModel.F_RoleCode == "WLDW")
  3691. {
  3692. sql += " and (F_DeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3693. }
  3694. else if (deptid != 0)
  3695. {
  3696. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3697. }
  3698. sql += "))";
  3699. if (strstate.Trim() != "" && strstate != "undefined")
  3700. {
  3701. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3702. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3703. else
  3704. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3705. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3706. }
  3707. else
  3708. {
  3709. sql += " and F_WorkState in (2,4,8)";
  3710. }
  3711. if (strworkid.Trim() != "" && strworkid != "undefined")
  3712. {
  3713. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3714. }
  3715. if (strname.Trim() != "" && strname != "undefined")
  3716. {
  3717. sql += " and F_CusName like '%" + strname + "%' ";
  3718. }
  3719. if (strtel.Trim() != "" && strtel != "undefined")
  3720. {
  3721. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3722. }
  3723. if (strkey.Trim() != "" && strkey != "undefined")
  3724. {
  3725. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3726. }
  3727. if (source != 0)
  3728. {
  3729. sql += " and F_InfoSource = '" + source + "' ";
  3730. }
  3731. if (keyid != 0)
  3732. {
  3733. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3734. }
  3735. if (type != 0)
  3736. {
  3737. sql += " and F_InfoType = '" + type + "' ";
  3738. }
  3739. if (bigtype != 0)
  3740. {
  3741. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3742. }
  3743. if (smalltype != 0)
  3744. {
  3745. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3746. }
  3747. if (sourcearea != 0)
  3748. {
  3749. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3750. }
  3751. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3752. {
  3753. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3754. }
  3755. if (strendtime.Trim() != "" && strendtime != "undefined")
  3756. {
  3757. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3758. }
  3759. if (strpageindex.Trim() != "")
  3760. {
  3761. pageindex = Convert.ToInt32(strpageindex);
  3762. }
  3763. if (strpagesize.Trim() != "")
  3764. {
  3765. pagesize = Convert.ToInt32(strpagesize);
  3766. }
  3767. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3768. 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";
  3769. if (isdc > 0)
  3770. {
  3771. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3772. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3773. if (msg == "")
  3774. {
  3775. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3776. //{
  3777. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3778. //}
  3779. return Success("导出成功");
  3780. }
  3781. else
  3782. {
  3783. return Error("导出失败");
  3784. }
  3785. }
  3786. int recordCount = 0;
  3787. dt = BLL.PagerBLL.GetListPager(
  3788. "T_Bus_WorkOrder WITH(NOLOCK)",
  3789. "F_WorkOrderId",
  3790. cols,
  3791. sql,
  3792. sort ,
  3793. pagesize,
  3794. pageindex,
  3795. true,
  3796. out recordCount);
  3797. #region 声音文件
  3798. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3799. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3800. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3801. dt.Columns.Add("OverState", typeof(string));//超时状态
  3802. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3803. dt.Columns.Add("GapTime", typeof(string));//时间差
  3804. dt.Columns.Add("FilePath", typeof(string));
  3805. dt.Columns.Add("Buttons", typeof(object));
  3806. dt.Columns.Add("IsFiles", typeof(object));
  3807. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3808. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3809. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3810. foreach (DataRow dr in dt.Rows)
  3811. {
  3812. //获取最新交办信息
  3813. string iszbdw = "0";
  3814. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3815. if (state > 1)
  3816. {
  3817. 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";
  3818. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3819. if (dtjb.Rows.Count > 0)
  3820. {
  3821. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3822. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3823. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3824. {
  3825. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3826. }
  3827. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3828. #region
  3829. //if (state < 6 || state == 8)
  3830. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3831. {
  3832. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3833. dr["LimitTime"] = lt;
  3834. if (!string.IsNullOrWhiteSpace(lt))
  3835. {
  3836. var ltime = DateTime.Parse(lt);
  3837. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3838. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3839. if (tss < 0) { tss = -tss; }
  3840. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3841. if (ltime > DateTime.Now)
  3842. {
  3843. if (configcs != null)
  3844. {
  3845. int cs = Int32.Parse(configcs.F_ParamValue);
  3846. if (ts.TotalHours > cs)
  3847. {
  3848. dr["OverState"] = 1;
  3849. }
  3850. else
  3851. {
  3852. dr["OverState"] = 2;
  3853. }
  3854. }
  3855. dr["GapTime"] = "剩余" + gshsj;
  3856. }
  3857. else
  3858. {
  3859. dr["OverState"] = 3;
  3860. dr["GapTime"] = "超时" + gshsj;
  3861. }
  3862. }
  3863. }
  3864. if (state == (int)EnumWorkState.finish)
  3865. {
  3866. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3867. var dttime = DateTime.Now;
  3868. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3869. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3870. dr["LimitTime"] = lt;
  3871. if (!string.IsNullOrWhiteSpace(lt))
  3872. {
  3873. var ltime = DateTime.Parse(lt);
  3874. TimeSpan ts = ltime.Subtract(dttime);
  3875. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3876. if (tss < 0) { tss = -tss; }
  3877. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3878. if (ltime < dttime)
  3879. {
  3880. dr["OverState"] = 3;
  3881. dr["GapTime"] = "超时" + gshsj;
  3882. }
  3883. }
  3884. }
  3885. #endregion
  3886. }
  3887. }
  3888. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3889. {
  3890. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3891. }
  3892. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3893. {
  3894. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3895. }
  3896. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3897. {
  3898. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3899. dr["IsFiles"] = 1;
  3900. else
  3901. dr["IsFiles"] = 0;
  3902. }
  3903. else
  3904. {
  3905. dr["IsFiles"] = 0;
  3906. }
  3907. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3908. btns.Add(ButtonGroup.query());
  3909. dr["Buttons"] = btns;
  3910. }
  3911. #endregion
  3912. var obj = new
  3913. {
  3914. state = "success",
  3915. message = "成功",
  3916. rows = dt,
  3917. total = recordCount
  3918. };
  3919. return Content(obj.ToJson());
  3920. }
  3921. /// <summary>
  3922. /// 获取二级单位处理列表
  3923. /// </summary>
  3924. /// <returns></returns>
  3925. [Authority]
  3926. public ActionResult GetEJDWDealList(int isdc = 0)
  3927. {
  3928. DataTable dt = new DataTable();
  3929. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3930. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3931. string sql = " and F_IsDelete=0";
  3932. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3933. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3934. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3935. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3936. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3937. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3938. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3939. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3940. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3941. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3942. int source = RequestString.GetInt("source", 0);
  3943. int keyid = RequestString.GetInt("keyid", 0);
  3944. int type = RequestString.GetInt("type", 0);
  3945. int bigtype = RequestString.GetInt("bigtype", 0);
  3946. int smalltype = RequestString.GetInt("smalltype", 0);
  3947. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3948. int deptid = RequestString.GetInt("deptid", 0);
  3949. int timesort = RequestString.GetInt("timesort", -1);
  3950. string sort = "ORDER BY F_CreateTime ASC";
  3951. if (timesort == 0)
  3952. sort = "ORDER BY LimitTime ASC";
  3953. else if (timesort == 1)
  3954. sort = "ORDER BY F_CreateTime DESC";
  3955. string strpageindex = RequestString.GetQueryString("page");
  3956. int pageindex = 1;
  3957. string strpagesize = RequestString.GetQueryString("pagesize");
  3958. int pagesize = 10;
  3959. #region 模块
  3960. switch (strtab)
  3961. {
  3962. case "0"://待处理工单
  3963. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  3964. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3965. //sql += " and F_WorkState in (4,5) ";
  3966. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3967. {
  3968. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3969. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1))";
  3970. }
  3971. break;
  3972. case "1"://已办理的工单
  3973. if (strstate.Trim() != "" && strstate != "undefined")
  3974. {
  3975. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3976. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3977. else
  3978. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3979. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3980. }
  3981. 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) ";
  3982. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3983. {
  3984. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3985. }
  3986. else
  3987. {
  3988. sql += ")";
  3989. }
  3990. break;
  3991. }
  3992. #endregion
  3993. #region 条件
  3994. if (strworkid.Trim() != "" && strworkid != "undefined")
  3995. {
  3996. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3997. }
  3998. if (strname.Trim() != "" && strname != "undefined")
  3999. {
  4000. sql += " and F_CusName like '%" + strname + "%' ";
  4001. }
  4002. if (strtel.Trim() != "" && strtel != "undefined")
  4003. {
  4004. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4005. }
  4006. if (strkey.Trim() != "" && strkey != "undefined")
  4007. {
  4008. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4009. }
  4010. #region 坐席&调度员
  4011. if (strusercode.Trim() != "" && strusercode != "undefined")
  4012. {//坐席
  4013. var usercode = strusercode.Trim().Split(',');
  4014. var newusercode = "";
  4015. foreach (var item in usercode)
  4016. {
  4017. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4018. newusercode += "'" + item + "',";
  4019. }
  4020. newusercode = newusercode.Trim(',');
  4021. if (newusercode.Trim() != "" && newusercode != "undefined")
  4022. {
  4023. sql += " and F_CreateUser in (" + newusercode + ") ";
  4024. }
  4025. }
  4026. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4027. {//调度员
  4028. var ddusercode = strddusercode.Trim().Split(',');
  4029. var newusercode = "";
  4030. foreach (var item in ddusercode)
  4031. {
  4032. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4033. newusercode += "'" + item + "',";
  4034. }
  4035. newusercode = newusercode.Trim(',');
  4036. if (newusercode.Trim() != "" && newusercode != "undefined")
  4037. {
  4038. sql += " and F_AssignUser in(" + newusercode + ") ";
  4039. }
  4040. }
  4041. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4042. //{
  4043. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4044. //}
  4045. #endregion
  4046. if (source != 0)
  4047. {
  4048. sql += " and F_InfoSource = '" + source + "' ";
  4049. }
  4050. if (keyid != 0)
  4051. {
  4052. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4053. }
  4054. if (type != 0)
  4055. {
  4056. sql += " and F_InfoType = '" + type + "' ";
  4057. }
  4058. if (bigtype != 0)
  4059. {
  4060. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4061. }
  4062. if (smalltype != 0)
  4063. {
  4064. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4065. }
  4066. if (sourcearea != 0)
  4067. {
  4068. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4069. }
  4070. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4071. {
  4072. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4073. }
  4074. if (strendtime.Trim() != "" && strendtime != "undefined")
  4075. {
  4076. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4077. }
  4078. if (deptid != 0)
  4079. {
  4080. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='"+deptid+"')";
  4081. }
  4082. if (strpageindex.Trim() != "")
  4083. {
  4084. pageindex = Convert.ToInt32(strpageindex);
  4085. }
  4086. if (strpagesize.Trim() != "")
  4087. {
  4088. pagesize = Convert.ToInt32(strpagesize);
  4089. }
  4090. #endregion
  4091. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4092. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4093. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4094. 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";
  4095. if (isdc > 0)
  4096. {
  4097. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4098. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4099. if (msg == "")
  4100. {
  4101. return Success("导出成功");
  4102. }
  4103. else
  4104. {
  4105. return Error("导出失败");
  4106. }
  4107. }
  4108. int recordCount = 0;
  4109. dt = BLL.PagerBLL.GetListPager(
  4110. "T_Bus_WorkOrder WITH(NOLOCK)",
  4111. "F_WorkOrderId",
  4112. cols,
  4113. sql,
  4114. sort ,
  4115. pagesize,
  4116. pageindex,
  4117. true,
  4118. out recordCount);
  4119. #region 声音文件
  4120. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4121. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4122. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4123. dt.Columns.Add("OverState", typeof(string));//超时状态
  4124. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4125. dt.Columns.Add("GapTime", typeof(string));//时间差
  4126. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4127. dt.Columns.Add("PDState", typeof(string));//派单状态
  4128. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4129. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  4130. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4131. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4132. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4133. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4134. foreach (DataRow dr in dt.Rows)
  4135. {
  4136. //获取最新交办信息
  4137. string iszbdw = "0";
  4138. string ispd = "";
  4139. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4140. if (state > 1)
  4141. {
  4142. 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";
  4143. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4144. if (dtjb.Rows.Count > 0)
  4145. {
  4146. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4147. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4148. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4149. {
  4150. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4151. }
  4152. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4153. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4154. dr["LimitTime"] = lt;
  4155. #region
  4156. //if (state < 6 || state == 8)
  4157. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4158. {
  4159. if (!string.IsNullOrWhiteSpace(lt))
  4160. {
  4161. var ltime = DateTime.Parse(lt);
  4162. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4163. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4164. if (tss < 0) { tss = -tss; }
  4165. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4166. if (ltime > DateTime.Now)
  4167. {
  4168. if (configcs != null)
  4169. {
  4170. int cs = Int32.Parse(configcs.F_ParamValue);
  4171. if (ts.TotalHours > cs)
  4172. {
  4173. dr["OverState"] = 1;
  4174. }
  4175. else
  4176. {
  4177. dr["OverState"] = 2;
  4178. }
  4179. }
  4180. dr["GapTime"] = "剩余" + gshsj;
  4181. }
  4182. else
  4183. {
  4184. dr["OverState"] = 3;
  4185. dr["GapTime"] = "超时" + gshsj;
  4186. }
  4187. }
  4188. }
  4189. if (state == (int)EnumWorkState.finish)
  4190. {
  4191. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4192. var dttime = DateTime.Now;
  4193. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4194. if (!string.IsNullOrWhiteSpace(lt))
  4195. {
  4196. var ltime = DateTime.Parse(lt);
  4197. TimeSpan ts = ltime.Subtract(dttime);
  4198. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4199. if (tss < 0) { tss = -tss; }
  4200. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4201. if (ltime < dttime)
  4202. {
  4203. dr["OverState"] = 3;
  4204. dr["GapTime"] = "超时" + gshsj;
  4205. }
  4206. }
  4207. }
  4208. #endregion
  4209. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4210. dr["PDState"] = ispd;
  4211. }
  4212. }
  4213. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4214. {
  4215. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4216. }
  4217. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4218. {
  4219. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4220. }
  4221. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  4222. {
  4223. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  4224. dr["IsFiles"] = 1;
  4225. else
  4226. dr["IsFiles"] = 0;
  4227. }
  4228. else
  4229. {
  4230. dr["IsFiles"] = 0;
  4231. }
  4232. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4233. if (Int32.Parse(strtab) < 1)
  4234. {
  4235. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4236. #region 判断是否存在待督办
  4237. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4238. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4239. if (recount > 0 && butt != null)
  4240. btns.Remove(butt);
  4241. #endregion
  4242. }
  4243. else
  4244. {
  4245. btns.Add(ButtonGroup.query());
  4246. }
  4247. dr["Buttons"] = btns;
  4248. }
  4249. #endregion
  4250. var obj = new
  4251. {
  4252. state = "success",
  4253. message = "成功",
  4254. rows = dt,
  4255. total = recordCount
  4256. };
  4257. return Content(obj.ToJson());
  4258. }
  4259. /// <summary>
  4260. /// 获取三级单位处理列表
  4261. /// </summary>
  4262. /// <returns></returns>
  4263. [Authority]
  4264. public ActionResult GetSJDWDealList(int isdc = 0)
  4265. {
  4266. DataTable dt = new DataTable();
  4267. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4268. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4269. string sql = " and F_IsDelete=0";
  4270. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4271. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4272. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4273. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4274. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4275. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4276. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4277. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4278. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4279. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4280. int source = RequestString.GetInt("source", 0);
  4281. int keyid = RequestString.GetInt("keyid", 0);
  4282. int type = RequestString.GetInt("type", 0);
  4283. int bigtype = RequestString.GetInt("bigtype", 0);
  4284. int smalltype = RequestString.GetInt("smalltype", 0);
  4285. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4286. int deptid = RequestString.GetInt("deptid", 0);
  4287. int timesort = RequestString.GetInt("timesort", -1);
  4288. string sort = "ORDER BY F_CreateTime ASC";
  4289. if (timesort == 0)
  4290. sort = "ORDER BY LimitTime ASC";
  4291. else if (timesort == 1)
  4292. sort = "ORDER BY F_CreateTime DESC";
  4293. string strpageindex = RequestString.GetQueryString("page");
  4294. int pageindex = 1;
  4295. string strpagesize = RequestString.GetQueryString("pagesize");
  4296. int pagesize = 10;
  4297. #region 模块
  4298. switch (strtab)
  4299. {
  4300. case "0"://待处理工单
  4301. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  4302. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4303. if (userModel.F_RoleCode == "EJWLDW")
  4304. {
  4305. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4306. }
  4307. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4308. {
  4309. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4310. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='"+ userModel.F_DeptId + "' and F_IsSure in (0,1)))";
  4311. if(userModel.F_RoleCode== "WLDW")
  4312. {
  4313. sql += " or (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4314. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + "))";
  4315. }
  4316. sql += ")";
  4317. }
  4318. break;
  4319. case "1"://已办理的工单
  4320. if (strstate.Trim() != "" && strstate != "undefined")
  4321. {
  4322. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4323. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4324. else
  4325. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4326. }
  4327. 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) ";
  4328. if (userModel.F_RoleCode == "EJWLDW")
  4329. {
  4330. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4331. }
  4332. else if (userModel.F_RoleCode == "WLDW")
  4333. {
  4334. sql += " and( (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4335. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + ")) )";
  4336. }
  4337. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4338. {
  4339. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  4340. }
  4341. else
  4342. {
  4343. sql += ")";
  4344. }
  4345. break;
  4346. }
  4347. #endregion
  4348. #region 条件
  4349. if (strworkid.Trim() != "" && strworkid != "undefined")
  4350. {
  4351. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4352. }
  4353. if (strname.Trim() != "" && strname != "undefined")
  4354. {
  4355. sql += " and F_CusName like '%" + strname + "%' ";
  4356. }
  4357. if (strtel.Trim() != "" && strtel != "undefined")
  4358. {
  4359. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4360. }
  4361. if (strkey.Trim() != "" && strkey != "undefined")
  4362. {
  4363. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4364. }
  4365. #region 坐席&调度员
  4366. if (strusercode.Trim() != "" && strusercode != "undefined")
  4367. {//坐席
  4368. var usercode = strusercode.Trim().Split(',');
  4369. var newusercode = "";
  4370. foreach (var item in usercode)
  4371. {
  4372. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4373. newusercode += "'" + item + "',";
  4374. }
  4375. newusercode = newusercode.Trim(',');
  4376. if (newusercode.Trim() != "" && newusercode != "undefined")
  4377. {
  4378. sql += " and F_CreateUser in (" + newusercode + ") ";
  4379. }
  4380. }
  4381. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4382. {//调度员
  4383. var ddusercode = strddusercode.Trim().Split(',');
  4384. var newusercode = "";
  4385. foreach (var item in ddusercode)
  4386. {
  4387. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4388. newusercode += "'" + item + "',";
  4389. }
  4390. newusercode = newusercode.Trim(',');
  4391. if (newusercode.Trim() != "" && newusercode != "undefined")
  4392. {
  4393. sql += " and F_AssignUser in(" + newusercode + ") ";
  4394. }
  4395. }
  4396. #endregion
  4397. if (source != 0)
  4398. {
  4399. sql += " and F_InfoSource = '" + source + "' ";
  4400. }
  4401. if (keyid != 0)
  4402. {
  4403. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4404. }
  4405. if (type != 0)
  4406. {
  4407. sql += " and F_InfoType = '" + type + "' ";
  4408. }
  4409. if (bigtype != 0)
  4410. {
  4411. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4412. }
  4413. if (smalltype != 0)
  4414. {
  4415. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4416. }
  4417. if (sourcearea != 0)
  4418. {
  4419. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4420. }
  4421. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4422. {
  4423. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4424. }
  4425. if (strendtime.Trim() != "" && strendtime != "undefined")
  4426. {
  4427. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4428. }
  4429. if (deptid != 0)
  4430. {
  4431. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4432. }
  4433. if (strpageindex.Trim() != "")
  4434. {
  4435. pageindex = Convert.ToInt32(strpageindex);
  4436. }
  4437. if (strpagesize.Trim() != "")
  4438. {
  4439. pagesize = Convert.ToInt32(strpagesize);
  4440. }
  4441. #endregion
  4442. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4443. 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";
  4444. if (isdc > 0)
  4445. {
  4446. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4447. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4448. if (msg == "")
  4449. {
  4450. return Success("导出成功");
  4451. }
  4452. else
  4453. {
  4454. return Error("导出失败");
  4455. }
  4456. }
  4457. int recordCount = 0;
  4458. dt = BLL.PagerBLL.GetListPager(
  4459. "T_Bus_WorkOrder WITH(NOLOCK)",
  4460. "F_WorkOrderId",
  4461. cols,
  4462. sql,
  4463. sort ,
  4464. pagesize,
  4465. pageindex,
  4466. true,
  4467. out recordCount);
  4468. #region 声音文件
  4469. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4470. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4471. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4472. dt.Columns.Add("OverState", typeof(string));//超时状态
  4473. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4474. dt.Columns.Add("GapTime", typeof(string));//时间差
  4475. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4476. dt.Columns.Add("PDState", typeof(string));//派单状态
  4477. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4478. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4479. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4480. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4481. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4482. foreach (DataRow dr in dt.Rows)
  4483. {
  4484. //获取最新交办信息
  4485. string iszbdw = "0";
  4486. string ispd = "";
  4487. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4488. if (state > 1)
  4489. {
  4490. 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";
  4491. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4492. if (dtjb.Rows.Count > 0)
  4493. {
  4494. if (dtjb.Rows[0]["F_MainDeptId"].ToString()==userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4495. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4496. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4497. {
  4498. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4499. }
  4500. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4501. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4502. dr["LimitTime"] = lt;
  4503. #region
  4504. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4505. {
  4506. if (!string.IsNullOrWhiteSpace(lt))
  4507. {
  4508. var ltime = DateTime.Parse(lt);
  4509. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4510. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4511. if (tss < 0) { tss = -tss; }
  4512. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4513. if (ltime > DateTime.Now)
  4514. {
  4515. if (configcs != null)
  4516. {
  4517. int cs = Int32.Parse(configcs.F_ParamValue);
  4518. if (ts.TotalHours > cs)
  4519. {
  4520. dr["OverState"] = 1;
  4521. }
  4522. else
  4523. {
  4524. dr["OverState"] = 2;
  4525. }
  4526. }
  4527. dr["GapTime"] = "剩余" + gshsj;
  4528. }
  4529. else
  4530. {
  4531. dr["OverState"] = 3;
  4532. dr["GapTime"] = "超时" + gshsj;
  4533. }
  4534. }
  4535. }
  4536. if (state == (int)EnumWorkState.finish)
  4537. {
  4538. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4539. var dttime = DateTime.Now;
  4540. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4541. if (!string.IsNullOrWhiteSpace(lt))
  4542. {
  4543. var ltime = DateTime.Parse(lt);
  4544. TimeSpan ts = ltime.Subtract(dttime);
  4545. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4546. if (tss < 0) { tss = -tss; }
  4547. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4548. if (ltime < dttime)
  4549. {
  4550. dr["OverState"] = 3;
  4551. dr["GapTime"] = "超时" + gshsj;
  4552. }
  4553. }
  4554. }
  4555. #endregion
  4556. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4557. dr["PDState"] = ispd;
  4558. }
  4559. }
  4560. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4561. {
  4562. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4563. }
  4564. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4565. {
  4566. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4567. }
  4568. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4569. if (Int32.Parse(strtab) < 1)
  4570. {
  4571. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4572. #region 判断是否存在待督办
  4573. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4574. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4575. if (recount > 0 && butt != null)
  4576. btns.Remove(butt);
  4577. #endregion
  4578. }
  4579. else
  4580. {
  4581. btns.Add(ButtonGroup.query());
  4582. }
  4583. dr["Buttons"] = btns;
  4584. }
  4585. #endregion
  4586. var obj = new
  4587. {
  4588. state = "success",
  4589. message = "成功",
  4590. rows = dt,
  4591. total = recordCount
  4592. };
  4593. return Content(obj.ToJson());
  4594. }
  4595. /// <summary>
  4596. /// 获取自己提交工单
  4597. /// </summary>
  4598. /// <param name="isdc"></param>
  4599. /// <returns></returns>
  4600. [Authority]
  4601. public ActionResult GetSelfList(int isdc = 0)
  4602. {
  4603. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4604. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4605. DataTable dt = new DataTable();
  4606. string sql = " and F_IsDelete=0 ";
  4607. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4608. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4609. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4610. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4611. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4612. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4613. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4614. int source = RequestString.GetInt("source", 0);
  4615. int keyid = RequestString.GetInt("keyid", 0);
  4616. int type = RequestString.GetInt("type", 0);
  4617. int bigtype = RequestString.GetInt("bigtype", 0);
  4618. int smalltype = RequestString.GetInt("smalltype", 0);
  4619. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4620. int deptid = RequestString.GetInt("deptid", 0);
  4621. int dealtype = RequestString.GetInt("dealtype", -1);
  4622. int issend = RequestString.GetInt("issend", -1);
  4623. int deptlevel = RequestString.GetInt("deptlevel", 0);
  4624. int timesort = RequestString.GetInt("timesort", -1);
  4625. string sort = "ORDER BY F_CreateTime ASC";
  4626. if (timesort == 0)
  4627. sort = "ORDER BY LimitTime ASC";
  4628. else if (timesort == 1)
  4629. sort = "ORDER BY F_CreateTime DESC";
  4630. string strpageindex = RequestString.GetQueryString("page");
  4631. int pageindex = 1;
  4632. string strpagesize = RequestString.GetQueryString("pagesize");
  4633. int pagesize = 10;
  4634. #region sql 语句相关处理
  4635. if(userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4636. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  4637. if (strstate.Trim() != "" && strstate != "undefined")
  4638. {
  4639. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4640. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4641. else
  4642. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4643. }
  4644. if (strworkid.Trim() != "" && strworkid != "undefined")
  4645. {
  4646. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4647. }
  4648. if (strname.Trim() != "" && strname != "undefined")
  4649. {
  4650. sql += " and F_CusName like '%" + strname + "%' ";
  4651. }
  4652. if (strtel.Trim() != "" && strtel != "undefined")
  4653. {
  4654. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4655. }
  4656. if (strkey.Trim() != "" && strkey != "undefined")
  4657. {
  4658. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4659. }
  4660. if (source != 0)
  4661. {
  4662. sql += " and F_InfoSource = '" + source + "' ";
  4663. }
  4664. if (keyid != 0)
  4665. {
  4666. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4667. }
  4668. if (type != 0)
  4669. {
  4670. sql += " and F_InfoType = '" + type + "' ";
  4671. }
  4672. if (bigtype != 0)
  4673. {
  4674. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4675. }
  4676. if (smalltype != 0)
  4677. {
  4678. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4679. }
  4680. if (sourcearea != 0)
  4681. {
  4682. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4683. }
  4684. if (deptid != 0)
  4685. {
  4686. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4687. }
  4688. if (dealtype != -1)
  4689. {
  4690. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  4691. }
  4692. if (issend != -1)
  4693. {
  4694. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  4695. }
  4696. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4697. {
  4698. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4699. }
  4700. if (strendtime.Trim() != "" && strendtime != "undefined")
  4701. {
  4702. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4703. }
  4704. #endregion
  4705. if (strpageindex.Trim() != "")
  4706. {
  4707. pageindex = Convert.ToInt32(strpageindex);
  4708. }
  4709. if (strpagesize.Trim() != "")
  4710. {
  4711. pagesize = Convert.ToInt32(strpagesize);
  4712. }
  4713. 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";
  4714. #region 导出
  4715. if (isdc > 0)
  4716. {
  4717. var top = " "; var orderby = " order by F_CreateTime";
  4718. if (sql == " and F_IsDelete=0 ")
  4719. {
  4720. top = " top 1000 "; orderby += " desc ";
  4721. }
  4722. //20190715调整导出字段 zhengbingbing
  4723. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4724. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4725. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  4726. + " (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) 办理结果,"
  4727. + " (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" +
  4728. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  4729. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  4730. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4731. if (msg == "")
  4732. {
  4733. return Success("导出成功");
  4734. }
  4735. else
  4736. {
  4737. return Error("导出失败");
  4738. }
  4739. }
  4740. #endregion
  4741. int recordCount = 0;
  4742. dt = BLL.PagerBLL.GetListPager(
  4743. "T_Bus_WorkOrder WITH(NOLOCK)",
  4744. "F_WorkOrderId",
  4745. cols,
  4746. sql,
  4747. sort ,
  4748. pagesize,
  4749. pageindex,
  4750. true,
  4751. out recordCount);
  4752. #region 声音文件和交办超时
  4753. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4754. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4755. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4756. dt.Columns.Add("OverState", typeof(string));//超时状态
  4757. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4758. dt.Columns.Add("GapTime", typeof(string));//时间差
  4759. dt.Columns.Add("PDState", typeof(string));//派单状态
  4760. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4761. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4762. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4763. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4764. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4765. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4766. foreach (DataRow dr in dt.Rows)
  4767. {
  4768. string iszbdw = "0";
  4769. string ispd = "";
  4770. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4771. if (state > 1)
  4772. {
  4773. //获取最新交办信息
  4774. 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";
  4775. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4776. if (dtjb.Rows.Count > 0)
  4777. {
  4778. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4779. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4780. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  4781. {
  4782. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  4783. }
  4784. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4785. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4786. dr["LimitTime"] = lt;
  4787. #region 超时时限
  4788. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4789. {
  4790. if (!string.IsNullOrWhiteSpace(lt))
  4791. {
  4792. var ltime = DateTime.Parse(lt);
  4793. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4794. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4795. if (tss < 0) { tss = -tss; }
  4796. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4797. if (ltime > DateTime.Now)
  4798. {
  4799. if (configcs != null)
  4800. {
  4801. int cs = Int32.Parse(configcs.F_ParamValue);
  4802. if (ts.TotalHours > cs)
  4803. {
  4804. dr["OverState"] = 1;
  4805. }
  4806. else
  4807. {
  4808. dr["OverState"] = 2;
  4809. }
  4810. }
  4811. dr["GapTime"] = "剩余" + gshsj;
  4812. }
  4813. else
  4814. {
  4815. dr["OverState"] = 3;
  4816. dr["GapTime"] = "超时" + gshsj;
  4817. }
  4818. }
  4819. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4820. dr["PDState"] = ispd;
  4821. }
  4822. if (state == (int)EnumWorkState.finish)
  4823. {
  4824. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4825. var dttime = DateTime.Now;
  4826. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4827. if (!string.IsNullOrWhiteSpace(lt))
  4828. {
  4829. var ltime = DateTime.Parse(lt);
  4830. TimeSpan ts = ltime.Subtract(dttime);
  4831. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4832. if (tss < 0) { tss = -tss; }
  4833. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4834. if (ltime < dttime)
  4835. {
  4836. dr["OverState"] = 3;
  4837. dr["GapTime"] = "超时" + gshsj;
  4838. }
  4839. }
  4840. }
  4841. #endregion
  4842. }
  4843. }
  4844. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4845. {
  4846. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4847. }
  4848. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4849. {
  4850. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4851. }
  4852. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4853. #region 判断是否存在待督办
  4854. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  4855. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  4856. if (recount > 0 && butt != null)
  4857. buttons.Remove(butt);
  4858. #endregion
  4859. dr["Buttons"] = buttons;
  4860. }
  4861. #endregion
  4862. var obj = new
  4863. {
  4864. state = "success",
  4865. message = "成功",
  4866. rows = dt,
  4867. total = recordCount
  4868. };
  4869. return Content(obj.ToJson());
  4870. }
  4871. /// <summary>
  4872. /// 获取逾期未回复工单列表
  4873. /// </summary>
  4874. /// <returns></returns>
  4875. [Authority]
  4876. public ActionResult GetTimeOutList(int isdc = 0)
  4877. {
  4878. DataTable dt = new DataTable();
  4879. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4880. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4881. string sql = " and F_IsDelete=0";
  4882. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4883. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4884. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4885. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4886. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4887. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4888. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4889. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4890. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4891. int source = RequestString.GetInt("source", 0);
  4892. int keyid = RequestString.GetInt("keyid", 0);
  4893. int type = RequestString.GetInt("type", 0);
  4894. int bigtype = RequestString.GetInt("bigtype", 0);
  4895. int smalltype = RequestString.GetInt("smalltype", 0);
  4896. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4897. int deptid = RequestString.GetInt("deptid", 0);
  4898. int timesort = RequestString.GetInt("timesort", -1);
  4899. string sort = "ORDER BY F_CreateTime ASC";
  4900. if (timesort == 0)
  4901. sort = "ORDER BY LimitTime ASC";
  4902. else if (timesort == 1)
  4903. sort = "ORDER BY F_CreateTime DESC";
  4904. string strpageindex = RequestString.GetQueryString("page");
  4905. int pageindex = 1;
  4906. string strpagesize = RequestString.GetQueryString("pagesize");
  4907. int pagesize = 10;
  4908. if (userModel.F_RoleCode == "ZXHWY")
  4909. {
  4910. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4911. }
  4912. else
  4913. {
  4914. #region 坐席&调度员
  4915. if (strusercode.Trim() != "" && strusercode != "undefined")
  4916. {//坐席
  4917. var usercode = strusercode.Trim().Split(',');
  4918. var newusercode = "";
  4919. foreach (var item in usercode)
  4920. {
  4921. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4922. newusercode += "'" + item + "',";
  4923. }
  4924. newusercode = newusercode.Trim(',');
  4925. if (newusercode.Trim() != "" && newusercode != "undefined")
  4926. {
  4927. sql += " and F_CreateUser in (" + newusercode + ") ";
  4928. }
  4929. }
  4930. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4931. {//调度员
  4932. var ddusercode = strddusercode.Trim().Split(',');
  4933. var newusercode = "";
  4934. foreach (var item in ddusercode)
  4935. {
  4936. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4937. newusercode += "'" + item + "',";
  4938. }
  4939. newusercode = newusercode.Trim(',');
  4940. if (newusercode.Trim() != "" && newusercode != "undefined")
  4941. {
  4942. sql += " and F_AssignUser in(" + newusercode + ") ";
  4943. }
  4944. }
  4945. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4946. //{
  4947. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4948. //}
  4949. #endregion
  4950. }
  4951. string sqlwhere = "";string sqlwhere1 = "";
  4952. 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) ";
  4953. if (userModel.F_RoleCode == "WLDW")
  4954. {
  4955. sqlwhere += " and F_MainDeptId = '" + userModel.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  4956. + " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + userModel.F_DeptId + "' ";
  4957. sqlwhere1 += " and F_MainDeptId = '" + userModel.F_DeptId + "'";
  4958. }
  4959. else if (deptid != 0)
  4960. {
  4961. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4962. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4963. }
  4964. if (userModel.F_RoleCode == "ZXLD")
  4965. {
  4966. sqlwhere += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4967. sqlwhere1 += " and F_CreateUser = '" + userModel.F_UserCode + "'";
  4968. }
  4969. sqlwhere += "))";
  4970. if (strstate.Trim() != "" && strstate != "undefined")
  4971. {
  4972. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  4973. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4974. else
  4975. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4976. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  4977. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  4978. else
  4979. sql += sqlwhere;
  4980. }
  4981. else
  4982. {
  4983. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4984. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4985. sql += sqlwhere;
  4986. //sql += " and F_WorkState in (2,4,8)";
  4987. }
  4988. if (strworkid.Trim() != "" && strworkid != "undefined")
  4989. {
  4990. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  4991. }
  4992. if (strname.Trim() != "" && strname != "undefined")
  4993. {
  4994. sql += " and F_CusName like '%" + strname + "%' ";
  4995. }
  4996. if (strtel.Trim() != "" && strtel != "undefined")
  4997. {
  4998. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4999. }
  5000. if (strkey.Trim() != "" && strkey != "undefined")
  5001. {
  5002. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5003. }
  5004. if (source != 0)
  5005. {
  5006. sql += " and F_InfoSource = '" + source + "' ";
  5007. }
  5008. if (keyid != 0)
  5009. {
  5010. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5011. }
  5012. if (type != 0)
  5013. {
  5014. sql += " and F_InfoType = '" + type + "' ";
  5015. }
  5016. if (bigtype != 0)
  5017. {
  5018. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5019. }
  5020. if (smalltype != 0)
  5021. {
  5022. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5023. }
  5024. if (sourcearea != 0)
  5025. {
  5026. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5027. }
  5028. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5029. {
  5030. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5031. }
  5032. if (strendtime.Trim() != "" && strendtime != "undefined")
  5033. {
  5034. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5035. }
  5036. if (strpageindex.Trim() != "")
  5037. {
  5038. pageindex = Convert.ToInt32(strpageindex);
  5039. }
  5040. if (strpagesize.Trim() != "")
  5041. {
  5042. pagesize = Convert.ToInt32(strpagesize);
  5043. }
  5044. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5045. 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";
  5046. if (isdc > 0)
  5047. {
  5048. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5049. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5050. if (msg == "")
  5051. {
  5052. return Success("导出成功");
  5053. }
  5054. else
  5055. {
  5056. return Error("导出失败");
  5057. }
  5058. }
  5059. int recordCount = 0;
  5060. dt = BLL.PagerBLL.GetListPager(
  5061. "T_Bus_WorkOrder WITH(NOLOCK)",
  5062. "F_WorkOrderId",
  5063. cols,
  5064. sql,
  5065. sort ,
  5066. pagesize,
  5067. pageindex,
  5068. true,
  5069. out recordCount);
  5070. #region 声音文件
  5071. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5072. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5073. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5074. dt.Columns.Add("OverState", typeof(string));//超时状态
  5075. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5076. dt.Columns.Add("GapTime", typeof(string));//时间差
  5077. dt.Columns.Add("FilePath", typeof(string));
  5078. dt.Columns.Add("Buttons", typeof(object));
  5079. dt.Columns.Add("IsFiles", typeof(object));
  5080. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5081. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5082. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5083. foreach (DataRow dr in dt.Rows)
  5084. {
  5085. //获取最新交办信息
  5086. string iszbdw = "0";
  5087. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5088. if (state > 1)
  5089. {
  5090. 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";
  5091. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5092. if (dtjb.Rows.Count > 0)
  5093. {
  5094. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  5095. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5096. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5097. {
  5098. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5099. }
  5100. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5101. #region 时限
  5102. //if (state < 6 || state == 8)
  5103. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5104. {
  5105. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5106. dr["LimitTime"] = lt;
  5107. if (!string.IsNullOrWhiteSpace(lt))
  5108. {
  5109. var ltime = DateTime.Parse(lt);
  5110. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5111. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5112. if (tss < 0) { tss = -tss; }
  5113. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5114. if (ltime > DateTime.Now)
  5115. {
  5116. if (configcs != null)
  5117. {
  5118. int cs = Int32.Parse(configcs.F_ParamValue);
  5119. if (ts.TotalHours > cs)
  5120. {
  5121. dr["OverState"] = 1;
  5122. }
  5123. else
  5124. {
  5125. dr["OverState"] = 2;
  5126. }
  5127. }
  5128. dr["GapTime"] = "剩余" + gshsj;
  5129. }
  5130. else
  5131. {
  5132. dr["OverState"] = 3;
  5133. dr["GapTime"] = "超时" + gshsj;
  5134. }
  5135. }
  5136. }
  5137. if (state == (int)EnumWorkState.finish)
  5138. {
  5139. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5140. var dttime = DateTime.Now;
  5141. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5142. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5143. dr["LimitTime"] = lt;
  5144. if (!string.IsNullOrWhiteSpace(lt))
  5145. {
  5146. var ltime = DateTime.Parse(lt);
  5147. TimeSpan ts = ltime.Subtract(dttime);
  5148. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5149. if (tss < 0) { tss = -tss; }
  5150. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5151. if (ltime < dttime)
  5152. {
  5153. dr["OverState"] = 3;
  5154. dr["GapTime"] = "超时" + gshsj;
  5155. }
  5156. }
  5157. }
  5158. #endregion
  5159. }
  5160. }
  5161. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5162. {
  5163. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5164. }
  5165. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5166. {
  5167. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5168. }
  5169. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  5170. {
  5171. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  5172. dr["IsFiles"] = 1;
  5173. else
  5174. dr["IsFiles"] = 0;
  5175. }
  5176. else
  5177. {
  5178. dr["IsFiles"] = 0;
  5179. }
  5180. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5181. btns.Add(ButtonGroup.query());
  5182. dr["Buttons"] = btns;
  5183. }
  5184. #endregion
  5185. var obj = new
  5186. {
  5187. state = "success",
  5188. message = "成功",
  5189. rows = dt,
  5190. total = recordCount
  5191. };
  5192. return Content(obj.ToJson());
  5193. }
  5194. /// <summary>
  5195. /// 获取媒体工单列表
  5196. /// </summary>
  5197. /// <returns></returns>
  5198. [Authority]
  5199. public ActionResult GetMediaList(int isdc = 0)
  5200. {
  5201. DataTable dt = new DataTable();
  5202. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5203. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5204. string sql = " and F_IsDelete=0";
  5205. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5206. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5207. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5208. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5209. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5210. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5211. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5212. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5213. int source = RequestString.GetInt("source", 0);
  5214. int keyid = RequestString.GetInt("keyid", 0);
  5215. int type = RequestString.GetInt("type", 0);
  5216. int bigtype = RequestString.GetInt("bigtype", 0);
  5217. int smalltype = RequestString.GetInt("smalltype", 0);
  5218. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5219. int deptid = RequestString.GetInt("deptid", 0);
  5220. int timesort = RequestString.GetInt("timesort", -1);
  5221. string sort = "ORDER BY F_CreateTime ASC";
  5222. if (timesort == 0)
  5223. sort = "ORDER BY LimitTime ASC";
  5224. else if (timesort == 1)
  5225. sort = "ORDER BY F_CreateTime DESC";
  5226. string strpageindex = RequestString.GetQueryString("page");
  5227. int pageindex = 1;
  5228. string strpagesize = RequestString.GetQueryString("pagesize");
  5229. int pagesize = 10;
  5230. sql += " and isnull(F_IsRelease,0) =1 ";
  5231. if (strworkid.Trim() != "" && strworkid != "undefined")
  5232. {
  5233. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5234. }
  5235. if (strname.Trim() != "" && strname != "undefined")
  5236. {
  5237. sql += " and F_CusName like '%" + strname + "%' ";
  5238. }
  5239. if (strtel.Trim() != "" && strtel != "undefined")
  5240. {
  5241. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5242. }
  5243. if (strkey.Trim() != "" && strkey != "undefined")
  5244. {
  5245. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5246. }
  5247. #region 坐席&调度员
  5248. if (strusercode.Trim() != "" && strusercode != "undefined")
  5249. {//坐席
  5250. var usercode = strusercode.Trim().Split(',');
  5251. var newusercode = "";
  5252. foreach (var item in usercode)
  5253. {
  5254. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5255. newusercode += "'" + item + "',";
  5256. }
  5257. newusercode = newusercode.Trim(',');
  5258. if (newusercode.Trim() != "" && newusercode != "undefined")
  5259. {
  5260. sql += " and F_CreateUser in (" + newusercode + ") ";
  5261. }
  5262. }
  5263. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5264. {//调度员
  5265. var ddusercode = strddusercode.Trim().Split(',');
  5266. var newusercode = "";
  5267. foreach (var item in ddusercode)
  5268. {
  5269. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5270. newusercode += "'" + item + "',";
  5271. }
  5272. newusercode = newusercode.Trim(',');
  5273. if (newusercode.Trim() != "" && newusercode != "undefined")
  5274. {
  5275. sql += " and F_AssignUser in(" + newusercode + ") ";
  5276. }
  5277. }
  5278. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5279. //{
  5280. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5281. //}
  5282. #endregion
  5283. if (source != 0)
  5284. {
  5285. sql += " and F_InfoSource = '" + source + "' ";
  5286. }
  5287. if (keyid != 0)
  5288. {
  5289. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5290. }
  5291. if (type != 0)
  5292. {
  5293. sql += " and F_InfoType = '" + type + "' ";
  5294. }
  5295. if (bigtype != 0)
  5296. {
  5297. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5298. }
  5299. if (smalltype != 0)
  5300. {
  5301. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5302. }
  5303. if (sourcearea != 0)
  5304. {
  5305. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5306. }
  5307. if (deptid != 0)
  5308. {
  5309. 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 ";
  5310. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5311. }
  5312. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5313. {
  5314. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5315. }
  5316. if (strendtime.Trim() != "" && strendtime != "undefined")
  5317. {
  5318. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5319. }
  5320. if (strpageindex.Trim() != "")
  5321. {
  5322. pageindex = Convert.ToInt32(strpageindex);
  5323. }
  5324. if (strpagesize.Trim() != "")
  5325. {
  5326. pagesize = Convert.ToInt32(strpagesize);
  5327. }
  5328. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5329. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5330. 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";
  5331. if (isdc > 0)
  5332. {
  5333. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5334. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5335. if (msg == "")
  5336. {
  5337. return Success("导出成功");
  5338. }
  5339. else
  5340. {
  5341. return Error("导出失败");
  5342. }
  5343. }
  5344. int recordCount = 0;
  5345. dt = BLL.PagerBLL.GetListPager(
  5346. "T_Bus_WorkOrder WITH(NOLOCK)",
  5347. "F_WorkOrderId",
  5348. cols,
  5349. sql,
  5350. sort ,
  5351. pagesize,
  5352. pageindex,
  5353. true,
  5354. out recordCount);
  5355. #region 声音文件
  5356. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5357. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5358. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5359. dt.Columns.Add("IsReturnMedia", typeof(string));
  5360. dt.Columns.Add("Buttons", typeof(object));
  5361. int IsReturnMedia = 0;
  5362. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5363. {
  5364. IsReturnMedia = 1;
  5365. }
  5366. foreach (DataRow dr in dt.Rows)
  5367. {
  5368. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5369. if (state > 1)
  5370. {
  5371. //获取最新交办信息
  5372. 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";
  5373. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5374. if (dtjb.Rows.Count > 0)
  5375. {
  5376. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5377. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5378. {
  5379. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5380. }
  5381. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5382. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5383. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5384. //if (deptinfo != null)
  5385. //{
  5386. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5387. //}
  5388. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5389. //{
  5390. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5391. // string dns = string.Empty;
  5392. // foreach (string strid in strids)
  5393. // {
  5394. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5395. // if (dinfo != null)
  5396. // {
  5397. // if (string.IsNullOrEmpty(dns))
  5398. // {
  5399. // dns = dinfo.F_DeptName;//交办单位
  5400. // }
  5401. // else
  5402. // {
  5403. // dns += "," + dinfo.F_DeptName;//交办单位
  5404. // }
  5405. // }
  5406. // }
  5407. // dr["OtherDeptName"] = dns;
  5408. //}
  5409. }
  5410. }
  5411. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5412. btns.Add(ButtonGroup.query());
  5413. dr["Buttons"] = btns;
  5414. dr["IsReturnMedia"] = IsReturnMedia;
  5415. }
  5416. #endregion
  5417. var obj = new
  5418. {
  5419. state = "success",
  5420. message = "成功",
  5421. rows = dt,
  5422. total = recordCount
  5423. };
  5424. return Content(obj.ToJson());
  5425. }
  5426. ///// <summary>
  5427. ///// 获取通报工单列表
  5428. ///// </summary>
  5429. ///// <returns></returns>
  5430. //[Authority]
  5431. //public ActionResult GetNoticeList(int isdc = 0)
  5432. //{
  5433. // DataTable dt = new DataTable();
  5434. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5435. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5436. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  5437. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5438. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5439. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5440. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5441. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5442. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5443. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5444. // int source = RequestString.GetInt("source", 0);
  5445. // int keyid = RequestString.GetInt("keyid", 0);
  5446. // int type = RequestString.GetInt("type", 0);
  5447. // int bigtype = RequestString.GetInt("bigtype", 0);
  5448. // int smalltype = RequestString.GetInt("smalltype", 0);
  5449. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  5450. // int deptid = RequestString.GetInt("deptid", 0);
  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 + "%' ";
  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. // if (strusercode.Trim() != "" && strusercode != "undefined")
  5472. // {
  5473. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5474. // }
  5475. // if (source != 0)
  5476. // {
  5477. // sql += " and F_InfoSource = '" + source + "' ";
  5478. // }
  5479. // if (keyid != 0)
  5480. // {
  5481. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5482. // }
  5483. // if (type != 0)
  5484. // {
  5485. // sql += " and F_InfoType = '" + type + "' ";
  5486. // }
  5487. // if (bigtype != 0)
  5488. // {
  5489. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5490. // }
  5491. // if (smalltype != 0)
  5492. // {
  5493. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5494. // }
  5495. // if (sourcearea != 0)
  5496. // {
  5497. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  5498. // }
  5499. // if (deptid != 0)
  5500. // {
  5501. // 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 ";
  5502. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5503. // }
  5504. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5505. // {
  5506. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5507. // }
  5508. // if (strendtime.Trim() != "" && strendtime != "undefined")
  5509. // {
  5510. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5511. // }
  5512. // if (strpageindex.Trim() != "")
  5513. // {
  5514. // pageindex = Convert.ToInt32(strpageindex);
  5515. // }
  5516. // if (strpagesize.Trim() != "")
  5517. // {
  5518. // pagesize = Convert.ToInt32(strpagesize);
  5519. // }
  5520. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5521. // if (isdc > 0)
  5522. // {
  5523. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  5524. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5525. // if (msg == "")
  5526. // {
  5527. // return Success("导出成功");
  5528. // }
  5529. // else
  5530. // {
  5531. // return Error("导出失败");
  5532. // }
  5533. // }
  5534. // int recordCount = 0;
  5535. // dt = BLL.PagerBLL.GetListPager(
  5536. // "T_Bus_WorkOrder",
  5537. // "F_WorkOrderId",
  5538. // cols,
  5539. // sql,
  5540. // "ORDER BY F_CreateTime DESC",
  5541. // pagesize,
  5542. // pageindex,
  5543. // true,
  5544. // out recordCount);
  5545. // #region 声音文件
  5546. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5547. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5548. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5549. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5550. // dt.Columns.Add("IsReturnNotice", typeof(string));
  5551. // dt.Columns.Add("FilePath", typeof(string));
  5552. // dt.Columns.Add("Buttons", typeof(object));
  5553. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5554. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5555. // int IsReturnNotice = 0;
  5556. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  5557. // {
  5558. // IsReturnNotice = 1;
  5559. // }
  5560. // foreach (DataRow dr in dt.Rows)
  5561. // {
  5562. // //获取最新交办信息
  5563. // //string iszbdw = "0";
  5564. // 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";
  5565. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5566. // if (dtjb.Rows.Count > 0)
  5567. // {
  5568. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  5569. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5570. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5571. // {
  5572. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5573. // }
  5574. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5575. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5576. // //if (deptinfo != null)
  5577. // //{
  5578. // // //if (did == userModel.F_DeptId) { iszbdw = "1"; }
  5579. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5580. // //}
  5581. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5582. // //{
  5583. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5584. // // string dns = string.Empty;
  5585. // // foreach (string strid in strids)
  5586. // // {
  5587. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5588. // // if (dinfo != null)
  5589. // // {
  5590. // // if (string.IsNullOrEmpty(dns))
  5591. // // {
  5592. // // dns = dinfo.F_DeptName;//交办单位
  5593. // // }
  5594. // // else
  5595. // // {
  5596. // // dns += "," + dinfo.F_DeptName;//交办单位
  5597. // // }
  5598. // // }
  5599. // // }
  5600. // // dr["OtherDeptName"] = dns;
  5601. // //}
  5602. // }
  5603. // //获取最新通报信息
  5604. // 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";
  5605. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5606. // if (dttb.Rows.Count > 0)
  5607. // {
  5608. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5609. // {
  5610. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5611. // }
  5612. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  5613. // }
  5614. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5615. // {
  5616. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5617. // }
  5618. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5619. // {
  5620. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5621. // }
  5622. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5623. // btns.Add(ButtonGroup.query());
  5624. // dr["Buttons"] = btns;
  5625. // dr["IsReturnNotice"] = IsReturnNotice;
  5626. // }
  5627. // #endregion
  5628. // var obj = new
  5629. // {
  5630. // state = "success",
  5631. // message = "成功",
  5632. // rows = dt,
  5633. // total = recordCount
  5634. // };
  5635. // return Content(obj.ToJson());
  5636. //}
  5637. /// <summary>
  5638. /// 获取通报工单列表
  5639. /// </summary>
  5640. /// <returns></returns>
  5641. [Authority]
  5642. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  5643. {
  5644. DataTable dt = new DataTable();
  5645. //int userId = 8000;
  5646. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5647. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5648. string sql = " and F_IsDelete=0 ";
  5649. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5650. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5651. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5652. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5653. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5654. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5655. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5656. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5657. int source = RequestString.GetInt("source", 0);
  5658. int keyid = RequestString.GetInt("keyid", 0);
  5659. int type = RequestString.GetInt("type", 0);
  5660. int bigtype = RequestString.GetInt("bigtype", 0);
  5661. int smalltype = RequestString.GetInt("smalltype", 0);
  5662. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5663. int deptid = RequestString.GetInt("deptid", 0);
  5664. int timesort = RequestString.GetInt("timesort", -1);
  5665. string sort = "ORDER BY F_CreateTime ASC";
  5666. if (timesort == 0)
  5667. sort = "ORDER BY LimitTime ASC";
  5668. else if (timesort == 1)
  5669. sort = "ORDER BY F_CreateTime DESC";
  5670. string strpageindex = RequestString.GetQueryString("page");
  5671. int pageindex = 1;
  5672. string strpagesize = RequestString.GetQueryString("pagesize");
  5673. int pagesize = 10;
  5674. if (strworkid.Trim() != "" && strworkid != "undefined")
  5675. {
  5676. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5677. }
  5678. if (strname.Trim() != "" && strname != "undefined")
  5679. {
  5680. sql += " and F_CusName like '%" + strname + "%' ";
  5681. }
  5682. if (strtel.Trim() != "" && strtel != "undefined")
  5683. {
  5684. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5685. }
  5686. if (strkey.Trim() != "" && strkey != "undefined")
  5687. {
  5688. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5689. }
  5690. #region 坐席&调度员
  5691. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  5692. {//坐席
  5693. var usercode = strusercode.Trim().Split(',');
  5694. var newusercode = "";
  5695. foreach (var item in usercode)
  5696. {
  5697. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5698. newusercode += "'" + item + "',";
  5699. }
  5700. newusercode = newusercode.Trim(',');
  5701. if (newusercode.Trim() != "" && newusercode != "undefined")
  5702. {
  5703. sql += " and F_CreateUser in (" + newusercode + ") ";
  5704. }
  5705. }*/
  5706. #region
  5707. if (usercode != null && usercode.Length > 0)
  5708. {
  5709. var newusercode = "";
  5710. //string codes = "";
  5711. for (int i = 0; i < usercode.Length; i++)
  5712. {
  5713. if (usercode[i] != "")
  5714. {
  5715. newusercode += "'" + usercode[i] + "',";
  5716. }
  5717. }
  5718. newusercode = newusercode.Trim(',');
  5719. if (newusercode.Trim() != "" && newusercode != "undefined")
  5720. {
  5721. sql += " and F_CreateUser in (" + newusercode + ") ";
  5722. }
  5723. }
  5724. if (ddusercode != null && ddusercode.Length > 0)
  5725. {
  5726. var newusercode = "";
  5727. //string codes = "";
  5728. for (int i = 0; i < ddusercode.Length; i++)
  5729. {
  5730. if (ddusercode[i] != "")
  5731. {
  5732. newusercode += "'" + ddusercode[i] + "',";
  5733. }
  5734. }
  5735. newusercode = newusercode.Trim(',');
  5736. if (newusercode.Trim() != "" && newusercode != "undefined")
  5737. {
  5738. sql += " and F_AssignUser in (" + newusercode + ") ";
  5739. }
  5740. }
  5741. #endregion
  5742. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5743. {//调度员
  5744. var ddusercode = strddusercode.Trim().Split(',');
  5745. var newusercode = "";
  5746. foreach (var item in ddusercode)
  5747. {
  5748. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5749. newusercode += "'" + item + "',";
  5750. }
  5751. newusercode = newusercode.Trim(',');
  5752. if (newusercode.Trim() != "" && newusercode != "undefined")
  5753. {
  5754. sql += " and F_AssignUser in(" + newusercode + ") ";
  5755. }
  5756. }*/
  5757. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5758. //{
  5759. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5760. //}
  5761. #endregion
  5762. if (source != 0)
  5763. {
  5764. sql += " and F_InfoSource = '" + source + "' ";
  5765. }
  5766. if (keyid != 0)
  5767. {
  5768. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5769. }
  5770. if (type != 0)
  5771. {
  5772. sql += " and F_InfoType = '" + type + "' ";
  5773. }
  5774. if (bigtype != 0)
  5775. {
  5776. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5777. }
  5778. if (smalltype != 0)
  5779. {
  5780. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5781. }
  5782. if (sourcearea != 0)
  5783. {
  5784. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5785. }
  5786. if (deptid != 0)
  5787. {
  5788. 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 ";
  5789. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5790. }
  5791. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5792. {
  5793. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5794. }
  5795. if (strendtime.Trim() != "" && strendtime != "undefined")
  5796. {
  5797. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5798. }
  5799. if (userModel.F_RoleCode == "WLDW")
  5800. {
  5801. 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 ";
  5802. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5803. }
  5804. else
  5805. {
  5806. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5807. }
  5808. if (strpageindex.Trim() != "")
  5809. {
  5810. pageindex = Convert.ToInt32(strpageindex);
  5811. }
  5812. if (strpagesize.Trim() != "")
  5813. {
  5814. pagesize = Convert.ToInt32(strpagesize);
  5815. }
  5816. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5817. 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";
  5818. if (isdc > 0)
  5819. {
  5820. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5821. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5822. if (msg == "")
  5823. {
  5824. return Success("导出成功");
  5825. }
  5826. else
  5827. {
  5828. return Error("导出失败");
  5829. }
  5830. }
  5831. int recordCount = 0;
  5832. dt = BLL.PagerBLL.GetListPager(
  5833. "T_Bus_WorkOrder WITH(NOLOCK)",
  5834. "F_WorkOrderId",
  5835. cols,
  5836. sql,
  5837. sort ,
  5838. pagesize,
  5839. pageindex,
  5840. true,
  5841. out recordCount);
  5842. #region 声音文件
  5843. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5844. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5845. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5846. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5847. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5848. dt.Columns.Add("IsReturnNotice", typeof(string));
  5849. dt.Columns.Add("FilePath", typeof(string));
  5850. dt.Columns.Add("Buttons", typeof(object));
  5851. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5852. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5853. int IsReturnNotice = 0;
  5854. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5855. {
  5856. IsReturnNotice = 1;
  5857. }
  5858. foreach (DataRow dr in dt.Rows)
  5859. {
  5860. //获取最新交办信息
  5861. //string iszbdw = "0";
  5862. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5863. if (state > 1)
  5864. {
  5865. 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";
  5866. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5867. if (dtjb.Rows.Count > 0)
  5868. {
  5869. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5870. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5871. {
  5872. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5873. }
  5874. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5875. }
  5876. }
  5877. //获取最新通报信息
  5878. 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";
  5879. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5880. if (dttb.Rows.Count > 0)
  5881. {
  5882. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5883. {
  5884. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5885. }
  5886. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5887. }
  5888. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5889. {
  5890. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5891. }
  5892. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5893. {
  5894. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5895. }
  5896. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5897. btns.Add(ButtonGroup.query());
  5898. dr["Buttons"] = btns;
  5899. dr["IsReturnNotice"] = IsReturnNotice;
  5900. }
  5901. #endregion
  5902. var obj = new
  5903. {
  5904. state = "success",
  5905. message = "成功",
  5906. rows = dt,
  5907. total = recordCount
  5908. };
  5909. return Content(obj.ToJson());
  5910. }
  5911. public ActionResult GetNoticeListOLD(int isdc = 0)
  5912. {
  5913. DataTable dt = new DataTable();
  5914. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5915. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5916. string sql = " and F_IsDelete=0 ";
  5917. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5918. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5919. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5920. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5921. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5922. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5923. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5924. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5925. int source = RequestString.GetInt("source", 0);
  5926. int keyid = RequestString.GetInt("keyid", 0);
  5927. int type = RequestString.GetInt("type", 0);
  5928. int bigtype = RequestString.GetInt("bigtype", 0);
  5929. int smalltype = RequestString.GetInt("smalltype", 0);
  5930. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5931. int deptid = RequestString.GetInt("deptid", 0);
  5932. int timesort = RequestString.GetInt("timesort", -1);
  5933. string sort = "ORDER BY F_CreateTime ASC";
  5934. if (timesort == 0)
  5935. sort = "ORDER BY LimitTime ASC";
  5936. else if (timesort == 1)
  5937. sort = "ORDER BY F_CreateTime DESC";
  5938. string strpageindex = RequestString.GetQueryString("page");
  5939. int pageindex = 1;
  5940. string strpagesize = RequestString.GetQueryString("pagesize");
  5941. int pagesize = 10;
  5942. if (strworkid.Trim() != "" && strworkid != "undefined")
  5943. {
  5944. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5945. }
  5946. if (strname.Trim() != "" && strname != "undefined")
  5947. {
  5948. sql += " and F_CusName like '%" + strname + "%' ";
  5949. }
  5950. if (strtel.Trim() != "" && strtel != "undefined")
  5951. {
  5952. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5953. }
  5954. if (strkey.Trim() != "" && strkey != "undefined")
  5955. {
  5956. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5957. }
  5958. #region 坐席&调度员
  5959. if (strusercode.Trim() != "" && strusercode != "undefined")
  5960. {//坐席
  5961. var usercode = strusercode.Trim().Split(',');
  5962. var newusercode = "";
  5963. foreach (var item in usercode)
  5964. {
  5965. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5966. newusercode += "'" + item + "',";
  5967. }
  5968. newusercode = newusercode.Trim(',');
  5969. if (newusercode.Trim() != "" && newusercode != "undefined")
  5970. {
  5971. sql += " and F_CreateUser in (" + newusercode + ") ";
  5972. }
  5973. }
  5974. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5975. {//调度员
  5976. var ddusercode = strddusercode.Trim().Split(',');
  5977. var newusercode = "";
  5978. foreach (var item in ddusercode)
  5979. {
  5980. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5981. newusercode += "'" + item + "',";
  5982. }
  5983. newusercode = newusercode.Trim(',');
  5984. if (newusercode.Trim() != "" && newusercode != "undefined")
  5985. {
  5986. sql += " and F_AssignUser in(" + newusercode + ") ";
  5987. }
  5988. }
  5989. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5990. //{
  5991. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5992. //}
  5993. #endregion
  5994. if (source != 0)
  5995. {
  5996. sql += " and F_InfoSource = '" + source + "' ";
  5997. }
  5998. if (keyid != 0)
  5999. {
  6000. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  6001. }
  6002. if (type != 0)
  6003. {
  6004. sql += " and F_InfoType = '" + type + "' ";
  6005. }
  6006. if (bigtype != 0)
  6007. {
  6008. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6009. }
  6010. if (smalltype != 0)
  6011. {
  6012. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6013. }
  6014. if (sourcearea != 0)
  6015. {
  6016. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6017. }
  6018. if (deptid != 0)
  6019. {
  6020. 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 ";
  6021. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6022. }
  6023. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6024. {
  6025. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  6026. }
  6027. if (strendtime.Trim() != "" && strendtime != "undefined")
  6028. {
  6029. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  6030. }
  6031. if (userModel.F_RoleCode == "WLDW")
  6032. {
  6033. 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 ";
  6034. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6035. }
  6036. else
  6037. {
  6038. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  6039. }
  6040. if (strpageindex.Trim() != "")
  6041. {
  6042. pageindex = Convert.ToInt32(strpageindex);
  6043. }
  6044. if (strpagesize.Trim() != "")
  6045. {
  6046. pagesize = Convert.ToInt32(strpagesize);
  6047. }
  6048. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6049. 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";
  6050. if (isdc > 0)
  6051. {
  6052. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6053. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6054. if (msg == "")
  6055. {
  6056. return Success("导出成功");
  6057. }
  6058. else
  6059. {
  6060. return Error("导出失败");
  6061. }
  6062. }
  6063. int recordCount = 0;
  6064. dt = BLL.PagerBLL.GetListPager(
  6065. "T_Bus_WorkOrder WITH(NOLOCK)",
  6066. "F_WorkOrderId",
  6067. cols,
  6068. sql,
  6069. sort ,
  6070. pagesize,
  6071. pageindex,
  6072. true,
  6073. out recordCount);
  6074. #region 声音文件
  6075. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6076. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6077. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6078. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  6079. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  6080. dt.Columns.Add("IsReturnNotice", typeof(string));
  6081. dt.Columns.Add("FilePath", typeof(string));
  6082. dt.Columns.Add("Buttons", typeof(object));
  6083. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6084. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6085. int IsReturnNotice = 0;
  6086. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6087. {
  6088. IsReturnNotice = 1;
  6089. }
  6090. foreach (DataRow dr in dt.Rows)
  6091. {
  6092. //获取最新交办信息
  6093. //string iszbdw = "0";
  6094. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6095. if (state > 1)
  6096. {
  6097. 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";
  6098. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6099. if (dtjb.Rows.Count > 0)
  6100. {
  6101. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6102. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6103. {
  6104. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6105. }
  6106. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6107. }
  6108. }
  6109. //获取最新通报信息
  6110. 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";
  6111. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  6112. if (dttb.Rows.Count > 0)
  6113. {
  6114. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  6115. {
  6116. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  6117. }
  6118. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  6119. }
  6120. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6121. {
  6122. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6123. }
  6124. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6125. {
  6126. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6127. }
  6128. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6129. btns.Add(ButtonGroup.query());
  6130. dr["Buttons"] = btns;
  6131. dr["IsReturnNotice"] = IsReturnNotice;
  6132. }
  6133. #endregion
  6134. var obj = new
  6135. {
  6136. state = "success",
  6137. message = "成功",
  6138. rows = dt,
  6139. total = recordCount
  6140. };
  6141. return Content(obj.ToJson());
  6142. }
  6143. public ActionResult GetWorkorderSimp()
  6144. {
  6145. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6146. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6147. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6148. if (!string.IsNullOrEmpty(strworkorderid))
  6149. {
  6150. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  6151. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  6152. var dt = DbHelperSQL.Query(sql).Tables[0];
  6153. if (dt.Rows.Count > 0)
  6154. {
  6155. return Success("成功", dt);
  6156. }
  6157. return Error("获取失败");
  6158. }
  6159. return Error("参数错误");
  6160. }
  6161. /// <summary>
  6162. /// 获取工单信息
  6163. /// </summary>
  6164. /// <returns></returns>
  6165. [Authority]
  6166. public ActionResult GetWorkOrder()
  6167. {
  6168. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6169. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6170. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6171. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  6172. if (!string.IsNullOrEmpty(strworkorderid))
  6173. {
  6174. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  6175. //+ "dbo.GetDictionaryName(F_InfoConBigType) as TypeName2,dbo.GetDictionaryName(F_InfoConSmallType) as TypeName3,"
  6176. //+ "dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName,dbo.GetDictionaryName(F_InfoSource) as SourceName ,"
  6177. + "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)"
  6178. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'"
  6179. ;
  6180. var dt = DbHelperSQL.Query(sql).Tables[0];
  6181. if (dt.Rows.Count > 0)
  6182. {
  6183. #region 结果汇总
  6184. //if (dt.Rows[0]["F_IsResult"] != null && dt.Rows[0]["F_IsResult"].ToString() == "0"){
  6185. // string result = "";
  6186. // string createtime = DateTime.Parse(dt.Rows[0]["F_CreateTime"].ToString()).ToString("yyyy年MM月dd日");
  6187. // string deptname = dt.Rows[0]["deptname"].ToString();
  6188. // string sourcename = dt.Rows[0]["SourceName"].ToString();
  6189. // string title = dt.Rows[0]["F_ComTitle"].ToString();
  6190. // string conresult= dt.Rows[0]["F_Result"].ToString();
  6191. // 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();
  6192. // if (blmodel != null)
  6193. // {
  6194. // string bljg = blmodel.F_IsProResult != null && blmodel.F_IsProResult == 1 ? "已办理" : "未办理";
  6195. // string hfcont = "";
  6196. // if (blmodel.F_IsProResult == 1)
  6197. // {
  6198. // hfcont = "";
  6199. // if (blmodel.F_IsProtect == 0)
  6200. // {
  6201. // string blmy = "未回访";
  6202. // switch (blmodel.F_IsSatisfied)
  6203. // {
  6204. // case 1:
  6205. // blmy = "满意";
  6206. // break;
  6207. // case 2:
  6208. // blmy = "基本满意";
  6209. // break;
  6210. // case 3:
  6211. // blmy = "不满意";
  6212. // break;
  6213. // }
  6214. // string connttime = "";
  6215. // if (blmodel.F_ConnectTime != null)
  6216. // connttime = "在" + blmodel.F_ConnectTime.Value.ToString("yyyy年MM月dd日HH时mm分");
  6217. // hfcont = " 回访:承办人 用" + blmodel.F_ConnectMode + connttime + "对反应人进行了回复,反应人对结果表示" + blmy + "。";
  6218. // }
  6219. // }
  6220. // else if (blmodel.F_IsProResult == 2)
  6221. // {
  6222. // hfcont = " 处理方案/进程:" + blmodel.F_ProSituation;
  6223. // }
  6224. // result = createtime + "," + deptname + "接到" + sourcename + "工单(编号:" + strworkorderid + ")反映" + title + ",经落实,具体情况回复如下:" + conresult + " 办理结果:" + bljg + " 承办人:" + blmodel.F_DealUser + " 职务:" + blmodel.F_Duties + " 联系电话:" + blmodel.F_DealUserContact + hfcont;
  6225. // dt.Rows[0]["F_Result"] = result;
  6226. // }
  6227. //}
  6228. #endregion
  6229. if (dt.Rows[0]["F_IsProtect"] != null && (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "EJWLDW"))
  6230. {
  6231. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  6232. if (isp == "1")
  6233. {
  6234. dt.Rows[0]["F_CusName"] = "";
  6235. dt.Rows[0]["F_CusPhone"] = "";
  6236. dt.Rows[0]["F_ConPhone"] = "";
  6237. }
  6238. }
  6239. if (dt.Rows[0]["F_ComContent"] != null&&!string .IsNullOrEmpty ( dt.Rows[0]["F_ComContent"].ToString ()))
  6240. {
  6241. dt.Rows[0]["F_ComContent"] = Regex.Replace(dt.Rows[0]["F_ComContent"].ToString(), "<[^>]+>", "");
  6242. }
  6243. if (userModel.F_RoleCode == "WLDW")
  6244. {
  6245. dt.Rows[0]["F_WorkRemarks"] = "";
  6246. }
  6247. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6248. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6249. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6250. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6251. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  6252. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6253. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6254. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6255. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6256. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6257. + "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";
  6258. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6259. + "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";
  6260. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6261. + "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";
  6262. 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 "
  6263. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6264. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  6265. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6266. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6267. + "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";
  6268. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6269. + "from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6270. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6271. + "from T_Bus_Feedback WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6272. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6273. + "from T_Bus_Feedback_Next WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6274. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6275. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6276. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6277. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6278. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6279. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6280. #region 声音文件
  6281. dt.Columns.Add("FilePath", typeof(string));
  6282. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  6283. {
  6284. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6285. }
  6286. else if (dt.Rows[0]["F_CallRecordId"] != null)
  6287. {
  6288. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  6289. }
  6290. #endregion
  6291. #region 附件
  6292. if (configfj != null)
  6293. {
  6294. dt = BindFileData(dt, configfj.F_ParamValue);
  6295. dt = BindFileDataFiles(dt, configfj.F_ParamValue);
  6296. }
  6297. #endregion
  6298. #region 监察信息
  6299. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  6300. if (configfj != null)
  6301. {
  6302. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  6303. }
  6304. #endregion
  6305. #region 批示信息
  6306. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  6307. if (configfj != null)
  6308. {
  6309. psdt = BindFileData(psdt, configfj.F_ParamValue);
  6310. }
  6311. #endregion
  6312. #region 指示信息
  6313. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  6314. if (configfj != null)
  6315. {
  6316. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  6317. }
  6318. #endregion
  6319. #region 回退信息
  6320. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  6321. #endregion
  6322. #region 督办信息
  6323. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  6324. if (configfj != null)
  6325. {
  6326. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  6327. }
  6328. #endregion
  6329. #region 交办信息
  6330. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  6331. if (configfj != null)
  6332. {
  6333. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  6334. }
  6335. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  6336. if (configfj != null)
  6337. {
  6338. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  6339. }
  6340. #endregion
  6341. #region 退回信息
  6342. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  6343. #endregion
  6344. #region 延时信息
  6345. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  6346. if (configfj != null)
  6347. {
  6348. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  6349. }
  6350. #endregion
  6351. #region 办理情况
  6352. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  6353. if (configfj != null)
  6354. {
  6355. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6356. }
  6357. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  6358. if (configfj != null)
  6359. {
  6360. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  6361. }
  6362. #endregion
  6363. #region 回访信息
  6364. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  6365. hfdt.Columns.Add("FilePath", typeof(string));
  6366. foreach (DataRow bldr in hfdt.Rows)
  6367. {
  6368. if (bldr["F_CallRecordId"] != null && config != null)
  6369. {
  6370. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6371. }
  6372. }
  6373. #endregion
  6374. #region 市民催单
  6375. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  6376. cbdt.Columns.Add("FilePath", typeof(string));
  6377. foreach (DataRow bldr in cbdt.Rows)
  6378. {
  6379. if (bldr["F_CallRecordId"] != null && config != null)
  6380. {
  6381. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6382. }
  6383. }
  6384. #endregion
  6385. #region 办理过程
  6386. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  6387. gcdt.Columns.Add("File", typeof(object));
  6388. gcdt.Columns.Add("FilePath", typeof(string));
  6389. gcdt.Columns.Add("czusername", typeof(string));
  6390. gcdt.Columns.Add("msginfos", typeof(string));
  6391. if (configfj != null || configly != null || config != null)
  6392. {
  6393. foreach (DataRow bldr in gcdt.Rows)
  6394. {
  6395. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  6396. {
  6397. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  6398. }
  6399. if (bldr["F_LeaveRecordId"] != null && configly != null)
  6400. {
  6401. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6402. }
  6403. else if (bldr["F_CallRecordId"] != null && config != null)
  6404. {
  6405. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6406. }
  6407. if (bldr["F_Message"] != null)
  6408. {
  6409. var F_Message = bldr["F_Message"].ToString().Split(')');
  6410. var a = F_Message.Count();
  6411. if (F_Message[0] != "" && bldr["F_Message"].ToString().Contains(')'))
  6412. {
  6413. string str = bldr["F_Message"].ToString().Substring(0, F_Message[0].Length + 1);
  6414. bldr["czusername"] = str;
  6415. bldr["msginfos"] = F_Message[1].ToString();
  6416. }
  6417. else {
  6418. bldr["czusername"] = "";
  6419. bldr["msginfos"] = F_Message[0].ToString();
  6420. }
  6421. }
  6422. }
  6423. }
  6424. #endregion
  6425. #region 操作按钮
  6426. var btns = new List<ButtonGroup.button>();
  6427. if (jbdt.Rows.Count > 0)
  6428. {
  6429. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  6430. string ispd = jbzx["F_IsNext"].ToString();
  6431. string iszbdw = "0";
  6432. string fmd = jbzx["F_MainDeptId"].ToString();
  6433. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  6434. if (fmd == userModel.F_DeptId.ToString())
  6435. { iszbdw = "1"; }
  6436. else if (fod != "" && fod.Split(',').Contains(userModel.F_DeptId.ToString()))
  6437. {
  6438. iszbdw = "2";
  6439. }
  6440. if (!(userModel.F_RoleCode == "WLDW" && iszbdw == "0"))
  6441. {
  6442. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  6443. }
  6444. }
  6445. else
  6446. {
  6447. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  6448. }
  6449. #region 判断是否存在待督办
  6450. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  6451. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6452. if (recount > 0)
  6453. {
  6454. if (butt != null)
  6455. btns.Remove(butt);
  6456. if(userModel.F_RoleCode == "DBZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6457. {
  6458. btns.Add(ButtonGroup.oversee());
  6459. btns.Add(ButtonGroup.turnnosee());
  6460. }
  6461. }
  6462. if (btns == null)
  6463. {
  6464. btns.Add(ButtonGroup.query());
  6465. }
  6466. else
  6467. {
  6468. if (btns.Count == 0)
  6469. btns.Add(ButtonGroup.query());
  6470. }
  6471. #endregion
  6472. #endregion
  6473. #region 其他权限
  6474. int issend = 0;
  6475. 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"))
  6476. {
  6477. if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  6478. {
  6479. issend = 1;
  6480. }
  6481. }
  6482. int isnotice = 0;
  6483. 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"))
  6484. {
  6485. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  6486. {
  6487. isnotice = 1;
  6488. }
  6489. }
  6490. int isedit = 0;
  6491. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6492. {
  6493. isedit = 1;
  6494. }
  6495. #endregion
  6496. #region 获取所有工单部门名称
  6497. var olderworkerid = dt.Rows[0]["F_OldWorkOrderId"].ToString();
  6498. string alldeptname = "";
  6499. if (olderworkerid != "")
  6500. {
  6501. //var olderallworker = dt.Select(" F_OldWorkOrderId='" + olderworkerid + "'");
  6502. 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 + "'";
  6503. var aaa = DbHelperSQL.Query(sqlallwo).Tables[0];
  6504. var bbb = aaa.Rows;
  6505. foreach (DataRow oldtrs in aaa.Rows)
  6506. {
  6507. alldeptname += oldtrs["F_DeptName"].ToString();
  6508. alldeptname += ",";
  6509. }
  6510. }
  6511. //else
  6512. //{
  6513. // alldeptname = dt.Rows[0]["DeptName"].ToString();
  6514. //}
  6515. #endregion
  6516. var obj = new
  6517. {
  6518. data = dt,
  6519. jcdata = jcdt,
  6520. psdata = psdt,
  6521. zsdata = zsdt,
  6522. htdata = htdt,
  6523. dbdata = dbdt,
  6524. jbdata = jbdt,
  6525. ejjbdata = ejjbdt,
  6526. thdata = thdt,
  6527. ysdata = ysdt,
  6528. bldata = bldt,
  6529. ejbldata = ejbldt,
  6530. hfdata = hfdt,
  6531. cbdata = cbdt,
  6532. gcdata = gcdt,
  6533. issend = issend,
  6534. isedit = isedit,
  6535. isnotice = isnotice,
  6536. btndata = btns,
  6537. alldeptname = alldeptname
  6538. };
  6539. return Success("获取成功", obj);
  6540. }
  6541. else
  6542. {
  6543. return Error("获取失败");
  6544. }
  6545. }
  6546. else
  6547. {
  6548. return Error("参数传输失败");
  6549. }
  6550. }
  6551. /// <summary>
  6552. /// 获取草稿信息
  6553. /// </summary>
  6554. /// <returns></returns>
  6555. [Authority]
  6556. public ActionResult GetDraftInfo()
  6557. {
  6558. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6559. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6560. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6561. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  6562. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6563. {
  6564. string sql = string.Empty;
  6565. switch (type)
  6566. {
  6567. case 1:
  6568. 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;
  6569. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  6570. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  6571. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  6572. }
  6573. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + userModel.F_UserCode + " order by F_CreateTime desc";
  6574. var dt = DbHelperSQL.Query(sql).Tables[0];
  6575. if (dt.Rows.Count > 0)
  6576. {
  6577. #region 附件
  6578. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6579. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6580. {
  6581. BindFileData(dt, configfj.F_ParamValue);
  6582. }
  6583. #endregion
  6584. }
  6585. return Success("获取成功", dt);
  6586. }
  6587. else
  6588. {
  6589. return Error("参数传输失败");
  6590. }
  6591. }
  6592. /// <summary>
  6593. /// 获取审核信息
  6594. /// </summary>
  6595. /// <returns></returns>
  6596. [Authority]
  6597. public ActionResult GetAuditInfo()
  6598. {
  6599. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6600. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6601. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6602. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  6603. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6604. {
  6605. string sql = string.Empty;
  6606. switch (type)
  6607. {
  6608. case 1: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and "; break;
  6609. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  6610. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where "; break;
  6611. }
  6612. if (type ==2)
  6613. {
  6614. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6615. }
  6616. else
  6617. {
  6618. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6619. }
  6620. var dt = DbHelperSQL.Query(sql).Tables[0];
  6621. if (dt.Rows.Count > 0)
  6622. {
  6623. #region 附件
  6624. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6625. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6626. {
  6627. BindFileData(dt, configfj.F_ParamValue);
  6628. }
  6629. #endregion
  6630. }
  6631. return Success("获取成功", dt);
  6632. }
  6633. else
  6634. {
  6635. return Error("参数传输失败");
  6636. }
  6637. }
  6638. /// <summary>
  6639. /// 获取所有交办单位
  6640. /// </summary>
  6641. /// <returns></returns>
  6642. [Authority]
  6643. public ActionResult GetAllAssignDept()
  6644. {
  6645. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6646. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6647. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6648. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  6649. if (modelT_Bus_WorkOrder != null)
  6650. {
  6651. string ids = string.Empty;
  6652. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  6653. foreach (var assign in Assigns)
  6654. {
  6655. if (string.IsNullOrEmpty(ids))
  6656. {
  6657. ids = assign.F_MainDeptId.Value.ToString();
  6658. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6659. {
  6660. ids += "," + assign.F_OtherDeptIds;
  6661. }
  6662. }
  6663. else
  6664. {
  6665. ids += "," + assign.F_MainDeptId.Value.ToString();
  6666. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6667. {
  6668. ids += "," + assign.F_OtherDeptIds;
  6669. }
  6670. }
  6671. }
  6672. if (string.IsNullOrEmpty(ids))
  6673. {
  6674. ids = "0";
  6675. }
  6676. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  6677. return Success("获取成功", dt);
  6678. }
  6679. else
  6680. {
  6681. return Error("操作失败");
  6682. }
  6683. }
  6684. /// <summary>
  6685. /// 获取二级单位处理信息
  6686. /// </summary>
  6687. /// <returns></returns>
  6688. [Authority]
  6689. public ActionResult GetSecondDealInfo()
  6690. {
  6691. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6692. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6693. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6694. if (!string.IsNullOrEmpty(strworkorderid))
  6695. {
  6696. //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, ";
  6697. //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, ";
  6698. //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, ";
  6699. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  6700. //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";
  6701. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  6702. //var dt = DbHelperSQL.Query(sql).Tables[0];
  6703. 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";
  6704. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  6705. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  6706. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6707. if (configfj != null)
  6708. {
  6709. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6710. }
  6711. var obj = new {
  6712. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  6713. fkinfo = bldt
  6714. };
  6715. return Success("获取成功", obj);
  6716. }
  6717. else
  6718. {
  6719. return Error("参数传输失败");
  6720. }
  6721. }
  6722. /// <summary>
  6723. /// 获取二级单位最新处理信息
  6724. /// </summary>
  6725. /// <returns></returns>
  6726. [Authority]
  6727. public ActionResult GetNewSecondDealInfo()
  6728. {
  6729. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6730. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6731. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6732. if (!string.IsNullOrEmpty(strworkorderid))
  6733. {
  6734. 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";
  6735. var bldt = DbHelperSQL.Query(sql).Tables[0];
  6736. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6737. if (configfj != null)
  6738. {
  6739. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6740. }
  6741. return Success("获取成功", bldt);
  6742. }
  6743. else
  6744. {
  6745. return Error("参数传输失败");
  6746. }
  6747. }
  6748. /// <summary>
  6749. /// 查看回访信息
  6750. /// </summary>
  6751. /// <returns></returns>
  6752. [Authority]
  6753. public ActionResult GetVisitInfo()
  6754. {
  6755. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6756. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6757. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6758. if (!string.IsNullOrEmpty(strworkorderid))
  6759. {
  6760. 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";
  6761. 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";
  6762. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  6763. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  6764. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6765. dtvisit.Columns.Add("FilePath", typeof(string));
  6766. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  6767. if (dtvisit.Rows.Count > 0)
  6768. {
  6769. foreach (DataRow bldr in dtvisit.Rows)
  6770. {
  6771. #region 是否可勾选
  6772. var IsShowCheck = 0;
  6773. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  6774. if (drass.Length > 0)
  6775. {
  6776. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  6777. if(ass>0)
  6778. {
  6779. if (ass == userModel.F_DeptId)
  6780. IsShowCheck = 1;
  6781. }
  6782. }
  6783. bldr["IsShowCheck"] = IsShowCheck;
  6784. #endregion
  6785. #region 录音
  6786. if (bldr["F_CallRecordId"] != null && config != null)
  6787. {
  6788. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6789. }
  6790. #endregion
  6791. }
  6792. }
  6793. return Success("获取成功", dtvisit);
  6794. }
  6795. else
  6796. {
  6797. return Error("参数传输失败");
  6798. }
  6799. }
  6800. #endregion
  6801. #region 新增工单
  6802. /// <summary>
  6803. /// 上传附件
  6804. /// </summary>
  6805. /// <returns></returns>
  6806. [Authority]
  6807. public ActionResult UploadFile()
  6808. {
  6809. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6810. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6811. #region 单个上传 no use
  6812. //string path = string.Empty;
  6813. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  6814. //if (_upfile != null)
  6815. //{
  6816. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  6817. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  6818. // string name = string.Empty;
  6819. // FileUp fu = new FileUp();
  6820. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  6821. // if (model != null)
  6822. // {
  6823. // name = fu.Upload(_upfile, model.F_ParamValue);
  6824. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6825. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6826. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  6827. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  6828. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  6829. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  6830. // model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6831. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6832. // return Success("成功", model_T_Sys_Accessories);
  6833. // }
  6834. // else
  6835. // {
  6836. // return Error("上传失败");
  6837. // }
  6838. //}
  6839. //else
  6840. //{
  6841. // return Error("请选择要上传的文件");
  6842. //}
  6843. #endregion
  6844. #region 多个上传
  6845. HttpFileCollection files = RequestString.GetFiles();
  6846. if (files.Count > 0)
  6847. {
  6848. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  6849. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  6850. for (int i = 0; i < files.Count; i++)
  6851. {
  6852. HttpPostedFile file = files[i];
  6853. FileUp fu = new FileUp();
  6854. string fileExtension = Configs.GetValue("fileExtension");
  6855. if (!fileExtension.Contains((System.IO.Path.GetExtension(file.FileName).ToLower())))
  6856. {
  6857. return Error("附件格式不正确");
  6858. }
  6859. string name = fu.Upload(file, path);
  6860. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6861. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6862. model_T_Sys_Accessories.F_FileName = name;//附件名称
  6863. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  6864. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  6865. model_T_Sys_Accessories.F_Size = file.ContentLength;
  6866. model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6867. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6868. model_T_Sys_Accessories.F_FileId = id;
  6869. acs.Add(model_T_Sys_Accessories);
  6870. }
  6871. return Success("成功", acs);
  6872. }
  6873. else
  6874. {
  6875. return Error("请选择要上传的文件");
  6876. }
  6877. #endregion
  6878. }
  6879. private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
  6880. /// <summary>
  6881. /// 添加工单模板
  6882. /// </summary>
  6883. /// <param name="input"></param>
  6884. /// <returns></returns>
  6885. /// [Authority]
  6886. public ActionResult AddConfig(string id)
  6887. {
  6888. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6889. if (model !=null )
  6890. {
  6891. var sysConfig = model.FirstOrDefault();
  6892. sysConfig.F_ParamValue = id;
  6893. if (sysConfigBLL.Update (sysConfig))
  6894. return Success("修改成功");
  6895. else
  6896. return Error("修改失败");
  6897. }
  6898. else
  6899. {
  6900. var sysConfig = new Model.T_Sys_SystemConfig();
  6901. sysConfig.F_ParamCode = "GDMB";
  6902. sysConfig.F_ParamValue = id;
  6903. sysConfig.F_ParamDes = "工单模板";
  6904. sysConfig.F_State = 1;
  6905. if (sysConfigBLL.Add(sysConfig) > 0)
  6906. return Success("添加成功");
  6907. else
  6908. return Error("添加失败");
  6909. }
  6910. }
  6911. /// <summary>
  6912. /// 添加基础数据
  6913. /// </summary>
  6914. /// <param name="input"></param>
  6915. /// <returns></returns>
  6916. /// [Authority]
  6917. public ActionResult GetConfig()
  6918. {
  6919. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6920. if (model!=null )
  6921. {
  6922. DataTable dt = new DataTable();
  6923. var sysConfig = model.FirstOrDefault();
  6924. dt = BindFileConfig(dt, sysConfig.F_ParamValue);
  6925. return Success("获取成功");
  6926. }
  6927. else
  6928. {
  6929. return Error("附件不存在");
  6930. }
  6931. }
  6932. /// <summary>
  6933. /// 绑定附件信息
  6934. /// </summary>
  6935. /// <param name="dt"></param>
  6936. /// <param name="prefix"></param>
  6937. /// <returns></returns>
  6938. public DataTable BindFileConfig(DataTable dt, string prefix)
  6939. {
  6940. dt.Columns.Add("Files", typeof(object));
  6941. foreach (DataRow dr in dt.Rows)
  6942. {
  6943. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  6944. {
  6945. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  6946. }
  6947. }
  6948. return dt;
  6949. }
  6950. /// <summary>
  6951. /// 添加工单信息
  6952. /// </summary>
  6953. /// <returns></returns>
  6954. [Authority]
  6955. public ActionResult AddWorkOrder()
  6956. {
  6957. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6958. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6959. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ"
  6960. || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY"
  6961. || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "DBZY"
  6962. || userModel.F_RoleCode == "11" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"
  6963. || userModel.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  6964. {
  6965. int source = RequestString.GetInt("source", 0);
  6966. string cusname = RequestString.GetFormString("cusname");
  6967. string cussex = RequestString.GetFormString("cussex");
  6968. string cusphone = RequestString.GetFormString("cusphone");
  6969. string cusaddress = RequestString.GetFormString("cusaddress");
  6970. string email = RequestString.GetFormString("email");
  6971. string zipcode = RequestString.GetFormString("zipcode");
  6972. string conname = RequestString.GetFormString("conname");
  6973. string conphone = RequestString.GetFormString("conphone");
  6974. string title = RequestString.GetFormString("title");
  6975. string content = RequestString.GetFormString("content");
  6976. string files = RequestString.GetFormString("files");
  6977. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6978. string sourceaddress = RequestString.GetFormString("sourceaddress");
  6979. int isresult = RequestString.GetInt("isresult", 0);
  6980. string result = RequestString.GetFormString("result");
  6981. string keys = RequestString.GetFormString("keys");
  6982. string splituser = RequestString.GetFormString("splituser");
  6983. int type = RequestString.GetInt("type", 0);
  6984. int bigtype = RequestString.GetInt("bigtype", 0);
  6985. int smalltype = RequestString.GetInt("smalltype", 0);
  6986. int isprotect = RequestString.GetInt("isprotect", 0);
  6987. int level = RequestString.GetInt("level", 0);
  6988. int issubmit = RequestString.GetInt("issubmit", 0);
  6989. string callid = RequestString.GetFormString("callid");
  6990. string longitude = RequestString.GetFormString("longitude");//经度
  6991. string latitude = RequestString.GetFormString("latitude");//纬度
  6992. using (TransactionScope trans = new TransactionScope())
  6993. {
  6994. #region 保存工单信息
  6995. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6996. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  6997. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6998. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6999. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7000. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7001. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7002. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7003. modelT_Bus_WorkOrder.F_Files = "";
  7004. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7005. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7006. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7007. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7008. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7009. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7010. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7011. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7012. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7013. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7014. modelT_Bus_WorkOrder.F_File = files;//附件
  7015. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7016. modelT_Bus_WorkOrder.F_Key = keys;
  7017. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  7018. modelT_Bus_WorkOrder.F_Level = level;
  7019. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  7020. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  7021. //是否直办(即时答复)0:,否1: 是
  7022. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7023. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7024. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  7025. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  7026. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  7027. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  7028. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  7029. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  7030. //如果选择即刻答复:是,即为直办,工单结束
  7031. if (isresult == 1)
  7032. {
  7033. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7034. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7035. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7036. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7037. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7038. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7039. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7040. }
  7041. else if (issubmit == 1)
  7042. {
  7043. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7044. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7045. }
  7046. #region
  7047. //20190715需求变动,去掉审核环节 提交后直接调度指派 zhengbingbing
  7048. //else
  7049. //{
  7050. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  7051. //}
  7052. #region
  7053. //20190315需求变动,保存并提交按钮取消,保存后提交待审核 20190329 zhengbingbing
  7054. //else if (issubmit == 1)
  7055. //{
  7056. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7057. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7058. //}
  7059. #endregion
  7060. #endregion
  7061. if (!string.IsNullOrEmpty(callid))
  7062. {
  7063. modelT_Bus_WorkOrder.F_CallId = callid;
  7064. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  7065. if (rd != null)
  7066. {
  7067. rd.IsExitWorkOrder = true;
  7068. new BLL.T_Call_CallRecords().Update(rd);
  7069. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  7070. }
  7071. }
  7072. workorderBLL.Add(modelT_Bus_WorkOrder);
  7073. #endregion
  7074. #region 插入操作记录
  7075. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7076. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7077. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7078. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7079. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7080. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7081. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7082. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7083. {
  7084. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7085. }
  7086. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7087. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7088. {
  7089. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7090. }
  7091. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  7092. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  7093. {
  7094. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7095. }
  7096. oper.F_CreateUser = userModel.F_UserCode;
  7097. oper.F_CreateTime = DateTime.Now;
  7098. oper.F_IsDelete = 0;
  7099. operBLL.Add(oper);
  7100. //推送消息表
  7101. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  7102. {
  7103. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7104. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7105. foreach (var u in users)
  7106. {
  7107. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7108. }
  7109. }
  7110. #endregion
  7111. trans.Complete();
  7112. }
  7113. return Success("操作成功");
  7114. }
  7115. else
  7116. {
  7117. return Error("权限不足");
  7118. }
  7119. }
  7120. /// <summary>
  7121. /// 添加工单信息
  7122. /// </summary>
  7123. /// <returns></returns>
  7124. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  7125. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  7126. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  7127. {
  7128. string workorderid = string.Empty;
  7129. using (TransactionScope trans = new TransactionScope())
  7130. {
  7131. #region 保存工单信息
  7132. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  7133. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source.ToString().PadLeft(4, '0'));
  7134. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7135. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7136. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7137. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7138. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7139. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7140. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7141. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7142. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7143. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7144. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7145. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7146. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7147. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7148. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7149. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7150. modelT_Bus_WorkOrder.F_File = files;//附件
  7151. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7152. modelT_Bus_WorkOrder.F_Key = keys;
  7153. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  7154. modelT_Bus_WorkOrder.F_Level = level;
  7155. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  7156. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  7157. //modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  7158. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  7159. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  7160. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  7161. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  7162. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  7163. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  7164. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  7165. workorderBLL.Add(modelT_Bus_WorkOrder);
  7166. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  7167. #endregion
  7168. #region 插入操作记录
  7169. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7170. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7171. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7172. string userinfo = "";
  7173. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  7174. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  7175. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7176. {
  7177. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7178. }
  7179. //oper.F_CreateUser = userModel.F_UserCode;
  7180. oper.F_CreateTime = DateTime.Now;
  7181. oper.F_IsDelete = 0;
  7182. operBLL.Add(oper);
  7183. #endregion
  7184. trans.Complete();
  7185. }
  7186. return workorderid;
  7187. }
  7188. /// <summary>
  7189. /// 添加工单信息留言
  7190. /// </summary>
  7191. /// <returns></returns>
  7192. [Authority]
  7193. public ActionResult AddWorkOrderByLY()
  7194. {
  7195. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7196. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7197. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7198. {
  7199. int source = RequestString.GetInt("source", 0);
  7200. string cusname = RequestString.GetFormString("cusname");
  7201. string cussex = RequestString.GetFormString("cussex");
  7202. string cusphone = RequestString.GetFormString("cusphone");
  7203. string cusaddress = RequestString.GetFormString("cusaddress");
  7204. string email = RequestString.GetFormString("email");
  7205. string zipcode = RequestString.GetFormString("zipcode");
  7206. string conname = RequestString.GetFormString("conname");
  7207. string conphone = RequestString.GetFormString("conphone");
  7208. string title = RequestString.GetFormString("title");
  7209. string content = RequestString.GetFormString("content");
  7210. string files = RequestString.GetFormString("files");
  7211. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7212. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7213. int isresult = RequestString.GetInt("isresult", 0);
  7214. string result = RequestString.GetFormString("result");
  7215. string keys = RequestString.GetFormString("keys");
  7216. string splituser = RequestString.GetFormString("splituser");
  7217. int type = RequestString.GetInt("type", 0);
  7218. int bigtype = RequestString.GetInt("bigtype", 0);
  7219. int smalltype = RequestString.GetInt("smalltype", 0);
  7220. int isprotect = RequestString.GetInt("isprotect", 0);
  7221. int level = RequestString.GetInt("level", 0);
  7222. int issubmit = RequestString.GetInt("issubmit", 0);
  7223. int lyid = RequestString.GetInt("lyid", 0);
  7224. using (TransactionScope trans = new TransactionScope())
  7225. {
  7226. #region 保存工单信息
  7227. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  7228. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  7229. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7230. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7231. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7232. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7233. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7234. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7235. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7236. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7237. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7238. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7239. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7240. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7241. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7242. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7243. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7244. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7245. modelT_Bus_WorkOrder.F_File = files;//附件
  7246. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7247. modelT_Bus_WorkOrder.F_Key = keys;
  7248. modelT_Bus_WorkOrder.F_Level = level;
  7249. //是否直办(即时答复)0:,否1: 是
  7250. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7251. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7252. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  7253. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  7254. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  7255. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  7256. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  7257. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  7258. //如果选择即刻答复:是,即为直办,工单结束
  7259. if (isresult == 1)
  7260. {
  7261. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7262. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7263. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7264. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7265. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7266. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7267. }
  7268. else if (issubmit == 1)
  7269. {
  7270. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7271. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7272. }
  7273. #region
  7274. //20190715去掉审核环节
  7275. //else
  7276. //{
  7277. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  7278. //}
  7279. //else if (issubmit == 1)
  7280. //{
  7281. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7282. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7283. //}
  7284. #endregion
  7285. if (lyid != 0)
  7286. {
  7287. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  7288. if (rd != null)
  7289. {
  7290. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  7291. }
  7292. }
  7293. workorderBLL.Add(modelT_Bus_WorkOrder);
  7294. #endregion
  7295. #region 插入操作记录
  7296. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7297. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7298. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7299. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7300. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7301. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7302. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7303. {
  7304. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7305. }
  7306. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7307. {
  7308. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7309. }
  7310. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7311. {
  7312. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7313. }
  7314. oper.F_CreateUser = userModel.F_UserCode;
  7315. oper.F_CreateTime = DateTime.Now;
  7316. oper.F_IsDelete = 0;
  7317. operBLL.Add(oper);
  7318. //推送消息表
  7319. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  7320. {
  7321. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7322. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7323. foreach (var u in users)
  7324. {
  7325. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7326. }
  7327. }
  7328. #endregion
  7329. trans.Complete();
  7330. }
  7331. return Success("操作成功");
  7332. }
  7333. else
  7334. {
  7335. return Error("权限不足");
  7336. }
  7337. }
  7338. /// <summary>
  7339. /// 添加工单信息
  7340. /// </summary>
  7341. /// <returns></returns>
  7342. [Authority]
  7343. public ActionResult AddWorkOrderByAPP()
  7344. {
  7345. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7346. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7347. int source = RequestString.GetInt("source", 6);
  7348. string cusname = RequestString.GetFormString("cusname");
  7349. string cussex = RequestString.GetFormString("cussex");
  7350. string cusphone = RequestString.GetFormString("cusphone");
  7351. string cusaddress = RequestString.GetFormString("cusaddress");
  7352. string email = RequestString.GetFormString("email");
  7353. string zipcode = RequestString.GetFormString("zipcode");
  7354. string conname = RequestString.GetFormString("conname");
  7355. string conphone = RequestString.GetFormString("conphone");
  7356. string title = RequestString.GetFormString("title");
  7357. string content = RequestString.GetFormString("content");
  7358. string files = RequestString.GetFormString("files");
  7359. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7360. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7361. int isresult = RequestString.GetInt("isresult", 0);
  7362. string result = RequestString.GetFormString("result");
  7363. string keys = RequestString.GetFormString("keys");
  7364. string splituser = RequestString.GetFormString("splituser");
  7365. int type = RequestString.GetInt("type", 0);
  7366. int bigtype = RequestString.GetInt("bigtype", 0);
  7367. int smalltype = RequestString.GetInt("smalltype", 0);
  7368. int isprotect = RequestString.GetInt("isprotect", 0);
  7369. int level = RequestString.GetInt("level", 0);
  7370. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  7371. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  7372. if (!string.IsNullOrEmpty(workorderid))
  7373. {
  7374. using (TransactionScope trans = new TransactionScope())
  7375. {
  7376. #region 保存用户工单信息
  7377. var model = new BLL.T_Sys_Users().GetModel(userModel.F_UserCode);
  7378. if (model == null)
  7379. {
  7380. model = new Model.T_Sys_Users();
  7381. model.F_OpenId = userModel.F_UserCode;
  7382. model.F_Type = (int)EnumUserType.app;//3;
  7383. model.F_CreateTime = DateTime.Now;
  7384. model.F_Id = new BLL.T_Sys_Users().Add(model);
  7385. }
  7386. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  7387. tbu.F_UserId = model.F_Id;
  7388. tbu.F_WorkOrderId = workorderid;
  7389. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  7390. #endregion
  7391. trans.Complete();
  7392. }
  7393. return Success("操作成功");
  7394. }
  7395. else
  7396. {
  7397. return Error("操作失败");
  7398. }
  7399. }
  7400. #endregion
  7401. #region 操作工单
  7402. /// <summary>
  7403. /// 修改工单信息
  7404. /// </summary>
  7405. /// <returns></returns>
  7406. [Authority]
  7407. public ActionResult EditWorkOrder()
  7408. {
  7409. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7410. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7411. 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")
  7412. {
  7413. string workorderid = RequestString.GetFormString("workorderid");
  7414. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7415. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7416. 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))
  7417. {
  7418. int source = RequestString.GetInt("source", 0);
  7419. string cusname = RequestString.GetFormString("cusname");
  7420. string cussex = RequestString.GetFormString("cussex");
  7421. string cusphone = RequestString.GetFormString("cusphone");
  7422. string cusaddress = RequestString.GetFormString("cusaddress");
  7423. string email = RequestString.GetFormString("email");
  7424. string zipcode = RequestString.GetFormString("zipcode");
  7425. string conname = RequestString.GetFormString("conname");
  7426. string conphone = RequestString.GetFormString("conphone");
  7427. string title = RequestString.GetFormString("title");
  7428. string content = RequestString.GetFormString("content");
  7429. string files = RequestString.GetFormString("files");
  7430. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7431. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7432. int isresult = RequestString.GetInt("isresult", 0);
  7433. string result = RequestString.GetFormString("result");
  7434. string keys = RequestString.GetFormString("keys");
  7435. string splituser = RequestString.GetFormString("splituser");
  7436. int type = RequestString.GetInt("type", 0);
  7437. int bigtype = RequestString.GetInt("bigtype", 0);
  7438. int smalltype = RequestString.GetInt("smalltype", 0);
  7439. int isprotect = RequestString.GetInt("isprotect", 0);
  7440. int level = RequestString.GetInt("level", 0);
  7441. int issubmit = RequestString.GetInt("issubmit", 0);
  7442. using (TransactionScope trans = new TransactionScope())
  7443. {
  7444. #region 保存工单信息
  7445. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7446. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7447. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7448. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7449. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7450. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7451. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7452. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7453. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7454. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7455. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7456. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7457. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7458. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7459. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7460. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7461. modelT_Bus_WorkOrder.F_File = files;//附件
  7462. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7463. modelT_Bus_WorkOrder.F_Key = keys;
  7464. modelT_Bus_WorkOrder.F_Level = level;
  7465. //是否直办(即时答复)0:,否1: 是
  7466. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7467. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7468. //如果选择即刻答复:是,即为直办,工单结束
  7469. if (isresult == 1)
  7470. {
  7471. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7472. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7473. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7474. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7475. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7476. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7477. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7478. }
  7479. else if (issubmit == 1)
  7480. {
  7481. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7482. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7483. }
  7484. #region
  7485. //20190715 审核环节去掉 zhengbingbing
  7486. //else
  7487. //{
  7488. // if(modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7489. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7490. //}
  7491. //else if (issubmit == 1)
  7492. //{
  7493. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7494. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7495. //}
  7496. #endregion
  7497. workorderBLL.Update(modelT_Bus_WorkOrder);
  7498. #endregion
  7499. #region 插入操作记录
  7500. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7501. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7502. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7503. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7504. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7505. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7506. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7507. {
  7508. oper.F_Message = userinfo + " 修改了工单";
  7509. }
  7510. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7511. {
  7512. oper.F_Message = userinfo + " 修改并提交了工单";
  7513. }
  7514. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7515. {
  7516. oper.F_Message = userinfo + " 修改并结案了工单";
  7517. }
  7518. oper.F_CreateUser = userModel.F_UserCode;
  7519. oper.F_CreateTime = DateTime.Now;
  7520. oper.F_IsDelete = 0;
  7521. operBLL.Add(oper);
  7522. //推送消息表
  7523. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7524. {
  7525. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7526. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7527. foreach (var u in users)
  7528. {
  7529. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7530. }
  7531. }
  7532. //调用科大讯飞
  7533. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7534. {
  7535. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7536. 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());
  7537. if (bl)
  7538. {
  7539. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7540. }
  7541. else
  7542. {
  7543. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7544. }
  7545. }
  7546. #endregion
  7547. trans.Complete();
  7548. }
  7549. return Success("操作成功");
  7550. }
  7551. else
  7552. {
  7553. return Error("操作失败");
  7554. }
  7555. }
  7556. else
  7557. {
  7558. return Success("权限不足");
  7559. }
  7560. }
  7561. /// <summary>
  7562. /// 修改工单信息
  7563. /// </summary>
  7564. /// <returns></returns>
  7565. [Authority]
  7566. public ActionResult UpdateWorkOrder()
  7567. {
  7568. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7569. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7570. 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")
  7571. {
  7572. string workorderid = RequestString.GetFormString("workorderid");
  7573. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7574. int isover = RequestString.GetInt("isover", 0);
  7575. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7576. 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))
  7577. {
  7578. string newresult = RequestString.GetFormString("newresult");
  7579. using (TransactionScope trans = new TransactionScope())
  7580. {
  7581. #region 保存工单信息
  7582. modelT_Bus_WorkOrder.F_NewResult = newresult;//
  7583. workorderBLL.Update(modelT_Bus_WorkOrder);
  7584. Model.T_Bus_Feedback feedbackmodel = feedbackBLL.GetNewModelByWorkOrderID(workorderid);
  7585. feedbackmodel.F_ClosingResult = newresult;
  7586. feedbackBLL.Update(feedbackmodel);
  7587. #endregion
  7588. #region 插入操作记录
  7589. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7590. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7591. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7592. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7593. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7594. #region 修改工单记录
  7595. if (isover==1&& modelT_Bus_WorkOrder.F_WorkState!=9)
  7596. {
  7597. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  7598. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7599. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7600. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7601. modelT_Bus_WorkOrder.F_FinalOpinion = newresult;
  7602. workorderBLL.Update(modelT_Bus_WorkOrder);
  7603. }
  7604. #endregion
  7605. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7606. if (isover==1)
  7607. {
  7608. oper.F_Message = userinfo + " 修改办理内容并结案了工单";
  7609. }
  7610. else
  7611. {
  7612. oper.F_Message = userinfo + " 修改了办理内容";
  7613. }
  7614. oper.F_CreateUser = userModel.F_UserCode;
  7615. oper.F_CreateTime = DateTime.Now;
  7616. oper.F_IsDelete = 0;
  7617. operBLL.Add(oper);
  7618. #endregion
  7619. trans.Complete();
  7620. }
  7621. return Success("操作成功");
  7622. }
  7623. else
  7624. {
  7625. return Error("操作失败");
  7626. }
  7627. }
  7628. else
  7629. {
  7630. return Success("权限不足");
  7631. }
  7632. }
  7633. /// <summary>
  7634. /// 修改工单信息
  7635. /// </summary>
  7636. /// <returns></returns>
  7637. [Authority]
  7638. public ActionResult UpdateRemarks()
  7639. {
  7640. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7641. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7642. 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")
  7643. {
  7644. string workorderid = RequestString.GetFormString("workorderid");
  7645. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7646. string workRemarks = RequestString.GetFormString("workRemarks");
  7647. using (TransactionScope trans = new TransactionScope())
  7648. {
  7649. #region 保存工单信息
  7650. modelT_Bus_WorkOrder.F_WorkRemarks = workRemarks;//
  7651. workorderBLL.Update(modelT_Bus_WorkOrder);
  7652. #endregion
  7653. #region 插入操作记录
  7654. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7655. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7656. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7657. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7658. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7659. #region 修改工单记录
  7660. #endregion
  7661. oper.F_Message = " 修改了备注信息:" + workRemarks;
  7662. oper.F_CreateUser = userModel.F_UserCode;
  7663. oper.F_CreateTime = DateTime.Now;
  7664. oper.F_IsDelete = 0;
  7665. operBLL.Add(oper);
  7666. #endregion
  7667. trans.Complete();
  7668. }
  7669. return Success("操作成功");
  7670. }
  7671. else
  7672. {
  7673. return Success("权限不足");
  7674. }
  7675. }
  7676. /// <summary>
  7677. /// 修改工单信息
  7678. /// </summary>
  7679. /// <returns></returns>
  7680. [Authority]
  7681. public ActionResult EditWorkOrderBySource()
  7682. {
  7683. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7684. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7685. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7686. {
  7687. string workorderid = RequestString.GetFormString("workorderid");
  7688. int source = RequestString.GetInt("source", 0);
  7689. string cusname = RequestString.GetFormString("cusname");
  7690. string cussex = RequestString.GetFormString("cussex");
  7691. string cusphone = RequestString.GetFormString("cusphone");
  7692. string cusaddress = RequestString.GetFormString("cusaddress");
  7693. string email = RequestString.GetFormString("email");
  7694. string zipcode = RequestString.GetFormString("zipcode");
  7695. string conname = RequestString.GetFormString("conname");
  7696. string conphone = RequestString.GetFormString("conphone");
  7697. string title = RequestString.GetFormString("title");
  7698. string content = RequestString.GetFormString("content");
  7699. string files = RequestString.GetFormString("files");
  7700. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7701. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7702. int isresult = RequestString.GetInt("isresult", 0);
  7703. string result = RequestString.GetFormString("result");
  7704. string resultremarks = RequestString.GetFormString("resultremarks");
  7705. string keys = RequestString.GetFormString("keys");
  7706. string splituser = RequestString.GetFormString("splituser");
  7707. int type = RequestString.GetInt("type", 0);
  7708. int bigtype = RequestString.GetInt("bigtype", 0);
  7709. int smalltype = RequestString.GetInt("smalltype", 0);
  7710. int isprotect = RequestString.GetInt("isprotect", 0);
  7711. int level = RequestString.GetInt("level", 0);
  7712. int issubmit = RequestString.GetInt("issubmit", 0);
  7713. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7714. if (modelT_Bus_WorkOrder != null)
  7715. {
  7716. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  7717. {
  7718. using (TransactionScope trans = new TransactionScope())
  7719. {
  7720. #region 保存工单信息
  7721. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7722. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7723. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7724. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7725. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7726. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7727. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7728. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7729. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7730. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7731. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7732. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7733. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7734. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7735. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7736. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7737. modelT_Bus_WorkOrder.F_File = files;//附件
  7738. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7739. modelT_Bus_WorkOrder.F_Key = keys;
  7740. modelT_Bus_WorkOrder.F_Level = level;
  7741. //是否直办(即时答复)0:,否1: 是
  7742. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7743. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7744. modelT_Bus_WorkOrder.F_ResultRemarks = resultremarks;
  7745. //如果选择即刻答复:是,即为直办,工单结束
  7746. if (isresult == 1)
  7747. {
  7748. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7749. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7750. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7751. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7752. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7753. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7754. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7755. }
  7756. else if (issubmit == 1)
  7757. {
  7758. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7759. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7760. }
  7761. #region
  7762. //20190715 去掉审核环节 zhengbingbing
  7763. //else
  7764. //{
  7765. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7766. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7767. //}
  7768. //20190329
  7769. //else if (issubmit == 1)
  7770. //{
  7771. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7772. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7773. //}
  7774. #endregion
  7775. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;
  7776. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  7777. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  7778. modelT_Bus_WorkOrder.F_IsDelete = 0;
  7779. workorderBLL.Update(modelT_Bus_WorkOrder);
  7780. #endregion
  7781. #region 插入操作记录
  7782. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7783. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7784. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7785. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7786. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7787. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7788. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7789. {
  7790. oper.F_Message = userinfo + " 处理了工单";
  7791. }
  7792. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7793. {
  7794. oper.F_Message = userinfo + " 处理并提交了工单";
  7795. }
  7796. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7797. {
  7798. oper.F_Message = userinfo + " 处理并结案了工单";
  7799. }
  7800. oper.F_CreateUser = userModel.F_UserCode;
  7801. oper.F_CreateTime = DateTime.Now;
  7802. oper.F_IsDelete = 0;
  7803. operBLL.Add(oper);
  7804. //推送消息表
  7805. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7806. {
  7807. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7808. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7809. foreach (var u in users)
  7810. {
  7811. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7812. }
  7813. }
  7814. //调用科大讯飞
  7815. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7816. {
  7817. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7818. 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());
  7819. if (bl)
  7820. {
  7821. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7822. }
  7823. else
  7824. {
  7825. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7826. }
  7827. }
  7828. #endregion
  7829. trans.Complete();
  7830. }
  7831. return Success("操作成功");
  7832. }
  7833. else
  7834. {
  7835. return Error("已经处理过了");
  7836. }
  7837. }
  7838. else
  7839. {
  7840. return Error("操作失败");
  7841. }
  7842. }
  7843. else
  7844. {
  7845. return Success("权限不足");
  7846. }
  7847. }
  7848. #region 新增审核工单流程
  7849. /// <summary>
  7850. /// 20190315需求变动,新增审核工单,由组长审核
  7851. /// </summary>
  7852. /// <param name="ids"></param>
  7853. /// <returns></returns>
  7854. [Authority]
  7855. public ActionResult AuditWorkOrder()
  7856. {
  7857. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7858. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7859. if (userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7860. {
  7861. string workorderid = RequestString.GetFormString("workorderid");
  7862. int state = RequestString.GetInt("state", 0);
  7863. string reason = RequestString.GetFormString("reason");
  7864. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7865. if (modelT_Bus_WorkOrder != null)
  7866. {
  7867. using (TransactionScope trans = new TransactionScope())
  7868. {
  7869. if (modelT_Bus_WorkOrder != null)
  7870. {
  7871. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7872. {
  7873. var opt = "审核并提交"; var re = "";
  7874. #region 保存工单信息
  7875. if (state == 1)
  7876. {
  7877. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7878. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  7879. }
  7880. else
  7881. {
  7882. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  7883. opt = "审核并退回";
  7884. re = ",退回原因:" + reason;
  7885. }
  7886. workorderBLL.Update(modelT_Bus_WorkOrder);
  7887. #endregion
  7888. #region 插入操作记录
  7889. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7890. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7891. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7892. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7893. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  7894. oper.F_CreateUser = userModel.F_UserCode;
  7895. oper.F_CreateTime = DateTime.Now;
  7896. oper.F_IsDelete = 0;
  7897. operBLL.Add(oper);
  7898. //推送消息表
  7899. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7900. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7901. {
  7902. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7903. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7904. foreach (var u in users)
  7905. {
  7906. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7907. }
  7908. }
  7909. #endregion
  7910. }
  7911. }
  7912. trans.Complete();
  7913. }
  7914. return Success("操作成功");
  7915. }
  7916. else
  7917. {
  7918. return Error("操作失败");
  7919. }
  7920. }
  7921. else
  7922. {
  7923. return Error("权限不足");
  7924. }
  7925. }
  7926. #endregion
  7927. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  7928. private thirdController third = new thirdController();
  7929. /// <summary>
  7930. /// 回传工单
  7931. /// </summary>
  7932. /// <param name="ids"></param>
  7933. /// <returns></returns>
  7934. [Authority]
  7935. public ActionResult Sendback(string[] ids,string file,string Result)
  7936. {
  7937. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7938. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7939. if (ids != null && ids.Length > 0)
  7940. {
  7941. foreach (string str in ids)
  7942. {
  7943. using (TransactionScope trans = new TransactionScope())
  7944. {
  7945. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7946. if (modelT_Bus_WorkOrder != null)
  7947. {
  7948. if (string.IsNullOrEmpty(Result))
  7949. return Error("请输入处理结果");
  7950. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7951. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  7952. {
  7953. #region 保存工单信息
  7954. modelT_Bus_WorkOrder.IsExport = 1;
  7955. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  7956. modelT_Bus_WorkOrder.F_Hcdatetime = DateTime.Now;//回传时间
  7957. modelT_Bus_WorkOrder.F_HCFiles = file;
  7958. modelT_Bus_WorkOrder.F_NewResult = Result;
  7959. workorderBLL.Update(modelT_Bus_WorkOrder);
  7960. Task.Run(() =>
  7961. {
  7962. Thread.Sleep(300000);
  7963. string message = third.HandleWorkOrder(modelT_Bus_WorkOrder, userModel);
  7964. });
  7965. #endregion
  7966. #region 插入操作记录
  7967. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7968. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7969. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7970. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7971. oper.F_Message = userinfo + " 回传了工单";
  7972. oper.F_CreateUser = userModel.F_UserCode;
  7973. oper.F_CreateTime = DateTime.Now;
  7974. oper.F_IsDelete = 0;
  7975. operBLL.Add(oper);
  7976. //推送消息表
  7977. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7978. #endregion
  7979. }
  7980. }
  7981. trans.Complete();
  7982. }
  7983. }
  7984. return Success("操作成功");
  7985. }
  7986. else
  7987. {
  7988. return Error("操作失败");
  7989. }
  7990. }
  7991. /// <summary>
  7992. /// 提交工单
  7993. /// </summary>
  7994. /// <param name="ids"></param>
  7995. /// <returns></returns>
  7996. [Authority]
  7997. public ActionResult SubmitWorkOrder(string[] ids)
  7998. {
  7999. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8000. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8001. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8002. {
  8003. if (ids != null && ids.Length > 0)
  8004. {
  8005. foreach (string str in ids)
  8006. {
  8007. using (TransactionScope trans = new TransactionScope())
  8008. {
  8009. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  8010. if (modelT_Bus_WorkOrder != null)
  8011. {
  8012. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  8013. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8014. {
  8015. #region 保存工单信息
  8016. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8017. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  8018. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  8019. workorderBLL.Update(modelT_Bus_WorkOrder);
  8020. #endregion
  8021. #region 插入操作记录
  8022. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8023. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8024. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8025. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8026. oper.F_Message = userinfo + " 提交了工单";
  8027. oper.F_CreateUser = userModel.F_UserCode;
  8028. oper.F_CreateTime = DateTime.Now;
  8029. oper.F_IsDelete = 0;
  8030. operBLL.Add(oper);
  8031. //推送消息表
  8032. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  8033. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8034. {
  8035. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  8036. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8037. foreach (var u in users)
  8038. {
  8039. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8040. }
  8041. }
  8042. #endregion
  8043. }
  8044. }
  8045. trans.Complete();
  8046. }
  8047. }
  8048. return Success("操作成功");
  8049. }
  8050. else
  8051. {
  8052. return Error("操作失败");
  8053. }
  8054. }
  8055. else
  8056. {
  8057. return Error("权限不足");
  8058. }
  8059. }
  8060. /// <summary>
  8061. /// 回退工单
  8062. /// </summary>
  8063. /// <returns></returns>
  8064. [Authority]
  8065. public ActionResult ReturnWorkOrder()
  8066. {
  8067. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8068. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  8069. string workorderid = RequestString.GetFormString("workorderid");
  8070. string backuser = RequestString.GetFormString("backuser");
  8071. string backreason = RequestString.GetFormString("backreason");
  8072. string files = RequestString.GetFormString("files");
  8073. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  8074. if (modelT_Bus_WorkOrder != null)
  8075. {
  8076. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  8077. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  8078. {
  8079. using (TransactionScope trans = new TransactionScope())
  8080. {
  8081. #region 保存工单信息
  8082. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  8083. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  8084. modelT_Bus_WorkOrder.F_IsResult = 0;
  8085. modelT_Bus_WorkOrder.F_IsReturn = 1;
  8086. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8087. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8088. workorderBLL.Update(modelT_Bus_WorkOrder);
  8089. #endregion
  8090. #region 插入批示记录
  8091. //批示记录
  8092. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  8093. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  8094. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  8095. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  8096. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  8097. model_T_Bus_SubmitSuper.F_File = files;//附件
  8098. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  8099. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  8100. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  8101. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  8102. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  8103. #endregion
  8104. #region 插入操作记录
  8105. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8106. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8107. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8108. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8109. oper.F_Message = userinfo + " 回退了工单";
  8110. oper.F_CreateUser = userModel.F_UserCode;
  8111. oper.F_CreateTime = DateTime.Now;
  8112. oper.F_IsDelete = 0;
  8113. operBLL.Add(oper);
  8114. #endregion
  8115. trans.Complete();
  8116. }
  8117. return Success("操作成功");
  8118. }
  8119. else
  8120. {
  8121. return Error("已经处理过了");
  8122. }
  8123. }
  8124. else
  8125. {
  8126. return Error("操作失败");
  8127. }
  8128. }
  8129. /// <summary>
  8130. /// 领导批示/市长指示
  8131. /// </summary>
  8132. /// <param name="ids"></param>
  8133. /// <returns></returns>
  8134. [Authority]
  8135. public ActionResult SuperWorkOrder()
  8136. {
  8137. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8138. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8139. string workorderid = RequestString.GetFormString("workorderid");
  8140. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  8141. string superuser = RequestString.GetFormString("superuser");
  8142. string superopinion = RequestString.GetFormString("superopinion");
  8143. string files = RequestString.GetFormString("files");
  8144. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8145. if (modelT_Bus_WorkOrder != null)
  8146. {
  8147. using (TransactionScope trans = new TransactionScope())
  8148. {
  8149. #region 保存工单信息 no use
  8150. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  8151. //workorderBLL.Update(modelT_Bus_WorkOrder);
  8152. #endregion
  8153. #region 插入批示记录
  8154. //批示记录
  8155. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  8156. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  8157. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  8158. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  8159. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  8160. model_T_Bus_SubmitSuper.F_File = files;//附件
  8161. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  8162. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  8163. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  8164. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  8165. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  8166. #endregion
  8167. #region 插入操作记录
  8168. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8169. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8170. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8171. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8172. oper.F_Message = userinfo+ " 批示了工单";
  8173. oper.F_CreateUser = userModel.F_UserCode;
  8174. oper.F_CreateTime = DateTime.Now;
  8175. oper.F_IsDelete = 0;
  8176. operBLL.Add(oper);
  8177. #endregion
  8178. trans.Complete();
  8179. }
  8180. return Success("操作成功");
  8181. }
  8182. else
  8183. {
  8184. return Error("操作失败");
  8185. }
  8186. }
  8187. /// <summary>
  8188. /// 交办工单
  8189. /// </summary>
  8190. /// <returns></returns>
  8191. [Authority]
  8192. public ActionResult AssignWorkOrder()
  8193. {
  8194. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8195. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8196. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8197. {
  8198. string workorderid = RequestString.GetFormString("workorderid");
  8199. int state = RequestString.GetInt("state", 0);
  8200. int assignid = RequestString.GetInt("assignid", 0);
  8201. int maindeptid = RequestString.GetInt("maindeptid", 0);
  8202. //string maindeptid = RequestString.GetFormString("maindeptid");
  8203. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8204. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  8205. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8206. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  8207. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  8208. {
  8209. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  8210. {
  8211. return Error("操作失败");
  8212. }
  8213. }
  8214. if (!string.IsNullOrEmpty(otherdeptids))
  8215. {
  8216. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8217. {
  8218. return Error("主办单位不能出现在协办单位");
  8219. }
  8220. }
  8221. if (limittime < DateTime.Now)
  8222. {
  8223. return Error("办理时限不能小于当前时间");
  8224. }
  8225. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8226. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8227. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  8228. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  8229. {
  8230. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  8231. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8232. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8233. {
  8234. int aid = 0;
  8235. using (TransactionScope trans = new TransactionScope())
  8236. {
  8237. if (assignid == 0)
  8238. {
  8239. #region 插入交办记录
  8240. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8241. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8242. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8243. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8244. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8245. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8246. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8247. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8248. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8249. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8250. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8251. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8252. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8253. modelT_Bus_AssignedInfo.F_TimeResp= assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8254. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8255. #endregion
  8256. }
  8257. else
  8258. {
  8259. #region 修改交办记录
  8260. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8261. if (modelT_Bus_AssignedInfo != null)
  8262. {
  8263. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8264. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8265. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8266. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8267. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8268. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8269. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8270. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8271. assignBLL.Update(modelT_Bus_AssignedInfo);
  8272. aid = modelT_Bus_AssignedInfo.F_Id;
  8273. }
  8274. #endregion
  8275. }
  8276. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8277. {
  8278. #region 保存工单信息
  8279. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  8280. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8281. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8282. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays (3);
  8283. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  8284. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8285. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8286. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8287. workorderBLL.Update(modelT_Bus_WorkOrder);
  8288. #endregion
  8289. #region 删除草稿信息
  8290. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8291. foreach (var cg in cglist)
  8292. {
  8293. cg.F_IsDelete = 1;
  8294. cg.F_DeleteUser = userModel.F_UserCode;
  8295. cg.F_DeleteTime = DateTime.Now;
  8296. assignBLL.Update(cg);
  8297. }
  8298. #endregion
  8299. #region 插入操作记录
  8300. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8301. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8302. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  8303. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8304. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8305. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8306. if (!string.IsNullOrEmpty(otherdeptids))
  8307. {
  8308. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8309. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8310. }
  8311. oper.F_CreateUser = userModel.F_UserCode;
  8312. oper.F_CreateTime = DateTime.Now;
  8313. oper.F_IsDelete = 0;
  8314. operBLL.Add(oper);
  8315. //推送消息表
  8316. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8317. foreach (var u in users)
  8318. {
  8319. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8320. if (!string .IsNullOrEmpty (u.F_Mobile))
  8321. {
  8322. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8323. string[] mag = { oper.F_WorkOrderId };
  8324. bool n =new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8325. }
  8326. if (!string.IsNullOrEmpty(u.F_Telephone ))
  8327. {
  8328. var userlist = u.F_Telephone.Split(',');
  8329. if (userlist !=null )
  8330. {
  8331. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8332. string[] mag = { oper.F_WorkOrderId };
  8333. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8334. }
  8335. }
  8336. }
  8337. #endregion
  8338. }
  8339. trans.Complete();
  8340. }
  8341. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  8342. }
  8343. else
  8344. {
  8345. return Error("已经交办过了");
  8346. }
  8347. }
  8348. else
  8349. {
  8350. return Error("操作失败");
  8351. }
  8352. }
  8353. else
  8354. {
  8355. return Error("权限不足");
  8356. }
  8357. }
  8358. [Authority]
  8359. public ActionResult AssignWorkOrderNew()
  8360. {
  8361. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8362. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8363. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8364. {
  8365. string workorderid = RequestString.GetFormString("workorderid");
  8366. int state = RequestString.GetInt("state", 0);
  8367. int assignid = RequestString.GetInt("assignid", 0);
  8368. string maindeptid = RequestString.GetFormString("maindeptid");
  8369. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8370. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") );
  8371. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8372. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  8373. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  8374. {
  8375. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  8376. {
  8377. return Error("操作失败");
  8378. }
  8379. }
  8380. if (!string.IsNullOrEmpty(otherdeptids))
  8381. {
  8382. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8383. if (both.Count()>0)
  8384. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8385. {
  8386. return Error("主办单位不能出现在协办单位");
  8387. }
  8388. }
  8389. if (limittime < DateTime.Now)
  8390. {
  8391. return Error("办理时限不能小于当前时间");
  8392. }
  8393. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8394. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8395. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8396. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8397. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid+")");
  8398. if (modelT_Bus_WorkOrder != null && deptlist != null&& deptlist.Count>0)
  8399. {
  8400. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8401. {
  8402. int aid = 0; var rre = "";
  8403. using (TransactionScope trans = new TransactionScope())
  8404. {
  8405. if (deptlist.Count == 1)
  8406. {
  8407. var deptinfo = deptlist.FirstOrDefault();
  8408. if (assignid == 0)
  8409. {
  8410. #region 插入交办记录
  8411. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8412. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8413. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8414. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8415. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8416. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8417. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8418. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8419. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8420. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8421. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8422. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8423. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8424. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8425. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8426. #endregion
  8427. }
  8428. else
  8429. {
  8430. #region 修改交办记录
  8431. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8432. if (modelT_Bus_AssignedInfo != null)
  8433. {
  8434. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8435. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8436. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8437. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8438. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8439. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8440. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8441. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8442. assignBLL.Update(modelT_Bus_AssignedInfo);
  8443. aid = modelT_Bus_AssignedInfo.F_Id;
  8444. }
  8445. #endregion
  8446. }
  8447. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8448. {
  8449. #region 保存工单信息
  8450. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8451. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8452. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  8453. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  8454. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8455. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8456. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8457. workorderBLL.Update(modelT_Bus_WorkOrder);
  8458. #endregion
  8459. #region 删除草稿信息
  8460. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8461. foreach (var cg in cglist)
  8462. {
  8463. cg.F_IsDelete = 1;
  8464. cg.F_DeleteUser = userModel.F_UserCode;
  8465. cg.F_DeleteTime = DateTime.Now;
  8466. assignBLL.Update(cg);
  8467. }
  8468. #endregion
  8469. #region 插入操作记录
  8470. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8471. if (!string.IsNullOrEmpty(otherdeptids))
  8472. {
  8473. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8474. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8475. }
  8476. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8477. //推送消息表
  8478. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8479. foreach (var u in users)
  8480. {
  8481. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8482. if (!string.IsNullOrEmpty(u.F_Mobile))
  8483. {
  8484. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8485. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8486. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8487. }
  8488. if (!string.IsNullOrEmpty(u.F_Telephone))
  8489. {
  8490. var userlist = u.F_Telephone.Split(',');
  8491. if (userlist != null)
  8492. {
  8493. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8494. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8495. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8496. }
  8497. }
  8498. }
  8499. #endregion
  8500. }
  8501. }
  8502. else
  8503. {
  8504. string newids = ""; string errdeptid = ""; string deptname = "";
  8505. foreach (var deptmasinfo in deptlist)
  8506. {
  8507. deptname += deptmasinfo.F_DeptName + ",";
  8508. }
  8509. foreach (var deptinfo in deptlist)
  8510. {
  8511. #region 新增工单
  8512. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8513. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8514. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8515. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8516. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8517. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8518. {
  8519. errdeptid += deptinfo.F_DeptName + ",";
  8520. continue;
  8521. }
  8522. #endregion
  8523. #region 交办
  8524. #region 插入交办记录
  8525. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8526. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8527. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8528. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8529. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8530. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8531. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8532. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8533. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8534. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8535. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8536. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8537. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8538. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8539. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8540. #endregion
  8541. #endregion
  8542. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8543. {
  8544. #region 保存工单信息
  8545. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8546. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8547. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8548. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8549. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8550. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8551. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8552. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8553. #endregion
  8554. #region 删除草稿信息
  8555. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  8556. foreach (var cg in cglist)
  8557. {
  8558. cg.F_IsDelete = 1;
  8559. cg.F_DeleteUser = userModel.F_UserCode;
  8560. cg.F_DeleteTime = DateTime.Now;
  8561. assignBLL.Update(cg);
  8562. }
  8563. #endregion
  8564. #region 插入操作记录
  8565. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8566. if (!string.IsNullOrEmpty(otherdeptids))
  8567. {
  8568. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8569. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8570. }
  8571. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8572. //推送消息表
  8573. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8574. foreach (var u in users)
  8575. {
  8576. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8577. if (!string.IsNullOrEmpty(u.F_Mobile))
  8578. {
  8579. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8580. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8581. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8582. }
  8583. if (!string.IsNullOrEmpty(u.F_Telephone))
  8584. {
  8585. var userlist = u.F_Telephone.Split(',');
  8586. if (userlist != null)
  8587. {
  8588. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8589. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8590. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8591. }
  8592. }
  8593. }
  8594. #endregion
  8595. }
  8596. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8597. //deptname += deptinfo.F_DeptName + ",";
  8598. }
  8599. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8600. var msgs = "";
  8601. if (errdeptid == "")
  8602. {
  8603. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8604. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8605. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8606. modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8607. workorderBLL.Update(modelT_Bus_WorkOrder);
  8608. msgs = userinfo + " 交办多单位,工单编号为:" + newids;
  8609. }
  8610. else
  8611. {
  8612. errdeptid = errdeptid.Trim(',');
  8613. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8614. }
  8615. #region 插入操作记录
  8616. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8617. var WorkOrder = newids.Split(',');
  8618. if (WorkOrder!=null && WorkOrder.Length >0)
  8619. {
  8620. foreach (var it in WorkOrder)
  8621. {
  8622. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8623. }
  8624. }
  8625. #endregion
  8626. }
  8627. trans.Complete();
  8628. #region
  8629. if (("," + maindeptid + ",").Contains(",304,"))
  8630. {
  8631. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8632. if(modelT_Bus_WorkOrder.F_IsProtect==1)
  8633. {
  8634. conphone = "保密";
  8635. conname= "保密";
  8636. }
  8637. 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();
  8638. }
  8639. #endregion
  8640. }
  8641. return Success("操作成功"+ rre, modelT_Bus_AssignedInfo.F_Id);
  8642. }
  8643. else
  8644. {
  8645. return Error("已经交办过了");
  8646. }
  8647. }
  8648. else
  8649. {
  8650. return Error("操作失败");
  8651. }
  8652. }
  8653. else
  8654. {
  8655. return Error("权限不足");
  8656. }
  8657. }
  8658. /// <summary>
  8659. /// 二次转派工单
  8660. /// </summary>
  8661. /// <returns></returns>
  8662. [Authority]
  8663. public ActionResult TurnSendWorkOrder()
  8664. {
  8665. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8666. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8667. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8668. {
  8669. string workorderid = RequestString.GetFormString("workorderid");
  8670. int state = RequestString.GetInt("state", 0);
  8671. int assignid = RequestString.GetInt("assignid", 0);
  8672. string maindeptid = RequestString.GetFormString("maindeptid");
  8673. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8674. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  8675. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8676. if (!string.IsNullOrEmpty(otherdeptids))
  8677. {
  8678. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8679. if (both.Count() > 0)
  8680. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8681. {
  8682. return Error("主办单位不能出现在协办单位");
  8683. }
  8684. }
  8685. if (limittime < DateTime.Now)
  8686. {
  8687. return Error("办理时限不能小于当前时间");
  8688. }
  8689. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8690. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8691. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8692. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8693. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  8694. string newids = ""; string errdeptid = ""; string deptname = "";
  8695. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  8696. {
  8697. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  8698. {
  8699. int aid = 0; var rre = ""; deptname = "";
  8700. using (TransactionScope trans = new TransactionScope())
  8701. {
  8702. if (deptlist.Count == 1)
  8703. {
  8704. var deptinfo = deptlist.FirstOrDefault();
  8705. deptname = deptinfo.F_DeptName;
  8706. #region 新增工单
  8707. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8708. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8709. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8710. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8711. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8712. modelT_Bus_WorkOrder1.F_Files = "";
  8713. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8714. #endregion
  8715. #region 插入交办记录
  8716. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8717. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8718. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8719. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8720. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8721. //modelT_Bus_AssignedInfo.F_LimitTime = null;//办理时间
  8722. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8723. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8724. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8725. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8726. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8727. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8728. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8729. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8730. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8731. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8732. #endregion
  8733. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8734. {
  8735. #region 保存工单信息
  8736. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8737. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8738. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8739. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8740. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8741. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8742. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8743. modelT_Bus_WorkOrder1.F_DealTime = null;
  8744. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8745. newids += ',' + modelT_Bus_WorkOrder1.F_WorkOrderId;
  8746. #endregion
  8747. #region 删除草稿信息
  8748. #endregion
  8749. #region 插入操作记录
  8750. var msgss = userinfo +"原工单"+ modelT_Bus_WorkOrder.F_WorkOrderId + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8751. if (!string.IsNullOrEmpty(otherdeptids))
  8752. {
  8753. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8754. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8755. }
  8756. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8757. //推送消息表
  8758. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8759. foreach (var u in users)
  8760. {
  8761. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8762. if (!string.IsNullOrEmpty(u.F_Mobile))
  8763. {
  8764. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8765. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8766. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8767. }
  8768. if (!string.IsNullOrEmpty(u.F_Telephone))
  8769. {
  8770. var userlist = u.F_Telephone.Split(',');
  8771. if (userlist != null)
  8772. {
  8773. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8774. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8775. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8776. }
  8777. }
  8778. }
  8779. #endregion
  8780. }
  8781. var msgss1 = userinfo + "原工单" + modelT_Bus_WorkOrder.F_WorkOrderId + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8782. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8783. }
  8784. else
  8785. {
  8786. foreach (var deptmasinfo in deptlist)
  8787. {
  8788. deptname += deptmasinfo.F_DeptName + ",";
  8789. }
  8790. foreach (var deptinfo in deptlist)
  8791. {
  8792. //deptname += deptinfo.F_DeptName + ",";
  8793. #region 新增工单
  8794. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8795. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8796. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8797. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8798. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8799. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8800. {
  8801. errdeptid += deptinfo.F_DeptName + ",";
  8802. continue;
  8803. }
  8804. #endregion
  8805. #region 交办
  8806. #region 插入交办记录
  8807. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8808. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8809. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8810. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8811. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8812. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8813. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8814. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8815. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8816. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8817. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8818. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8819. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8820. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8821. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8822. #endregion
  8823. #endregion
  8824. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8825. {
  8826. #region 保存工单信息
  8827. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8828. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8829. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8830. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8831. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8832. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8833. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8834. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8835. #endregion
  8836. #region 删除草稿信息
  8837. #endregion
  8838. #region 插入操作记录
  8839. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8840. if (!string.IsNullOrEmpty(otherdeptids))
  8841. {
  8842. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8843. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8844. }
  8845. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8846. //推送消息表
  8847. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8848. foreach (var u in users)
  8849. {
  8850. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8851. if (!string.IsNullOrEmpty(u.F_Mobile))
  8852. {
  8853. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8854. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8855. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8856. }
  8857. if (!string.IsNullOrEmpty(u.F_Telephone))
  8858. {
  8859. var userlist = u.F_Telephone.Split(',');
  8860. if (userlist != null)
  8861. {
  8862. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8863. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8864. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8865. }
  8866. }
  8867. }
  8868. #endregion
  8869. }
  8870. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8871. }
  8872. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8873. var msgs = "";
  8874. if (errdeptid == "")
  8875. {
  8876. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8877. //modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8878. //modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8879. //modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8880. //workorderBLL.Update(modelT_Bus_WorkOrder);
  8881. msgs = userinfo + " 二次转派交办了工单,工单编号为:" + newids;
  8882. }
  8883. else
  8884. {
  8885. errdeptid = errdeptid.Trim(',');
  8886. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8887. }
  8888. #region 插入操作记录
  8889. var msgss1 = userinfo + " 二次转派交办了工单,主办单位:" + deptname;
  8890. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8891. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8892. var WorkOrder = newids.Split(',');
  8893. if (WorkOrder != null && WorkOrder.Length > 0)
  8894. {
  8895. foreach (var it in WorkOrder)
  8896. {
  8897. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, userModel.F_UserCode);
  8898. }
  8899. }
  8900. #endregion
  8901. }
  8902. trans.Complete();
  8903. #region
  8904. if (("," + maindeptid + ",").Contains(",304,"))
  8905. {
  8906. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8907. if (modelT_Bus_WorkOrder.F_IsProtect == 1)
  8908. {
  8909. conphone = "保密";
  8910. conname = "保密";
  8911. }
  8912. 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();
  8913. }
  8914. #endregion
  8915. }
  8916. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  8917. }
  8918. else
  8919. {
  8920. return Error("已经交办过了");
  8921. }
  8922. }
  8923. else
  8924. {
  8925. return Error("操作失败");
  8926. }
  8927. }
  8928. else
  8929. {
  8930. return Error("权限不足");
  8931. }
  8932. }
  8933. /// <summary>
  8934. /// 工单提醒
  8935. /// </summary>
  8936. /// <param name="workordercode"></param>
  8937. /// <param name="deptid"></param>
  8938. /// <param name="type"></param>
  8939. /// <returns></returns>
  8940. [HttpPost]
  8941. public ActionResult SendSms(string workordercode,string deptid,int type=0,int isfs=0)
  8942. {
  8943. if (string .IsNullOrEmpty (deptid))
  8944. return Error("请选择部门");
  8945. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8946. string msg = "";
  8947. try
  8948. {
  8949. var deptsprit = deptid.Split(',');
  8950. if (deptsprit != null)
  8951. {
  8952. foreach (var iv in deptsprit)
  8953. {
  8954. var dept = new BLL.T_Sys_Department().GetModel(int.Parse(iv));
  8955. if (dept.F_IsSms==1|| isfs==1)
  8956. {
  8957. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + iv + "and F_DeleteFlag=0");
  8958. if (user != null)
  8959. {
  8960. foreach (var it in user)
  8961. {
  8962. if (!string.IsNullOrEmpty(it.F_Mobile))
  8963. {
  8964. string count = "";
  8965. string templetid = "";
  8966. if (type == 0)
  8967. {
  8968. templetid = "43683";
  8969. count = "您有新的工单,请及时查收处理,工单编号"+ workordercode + ",(如通过手机APP登陆,若待查收中无工单,请注意查看重办中列表)" ;
  8970. }
  8971. else if (type == 1)
  8972. {
  8973. templetid = "26155";
  8974. count = "您有工单正在被督办,请及时处理,工单编号" + workordercode;
  8975. }
  8976. else if (type == 2)
  8977. {
  8978. templetid = "26154";
  8979. count = "您有紧急工单,请及时处理,工单编号" + workordercode;
  8980. }
  8981. else
  8982. {
  8983. templetid = "29265";
  8984. count = "您有工单已经超时,请尽快处理,工单编号" + workordercode;
  8985. }
  8986. // bool n = SMSController.AddSmS(userId, count, workordercode, it.F_Mobile, templetid);
  8987. // if (n == false)
  8988. msg += it.F_UserName + "发送短信失败。";
  8989. }
  8990. }
  8991. }
  8992. }
  8993. }
  8994. }
  8995. }
  8996. catch
  8997. {
  8998. return Error("发送失败");
  8999. }
  9000. if (msg != "")
  9001. return Error(msg);
  9002. else
  9003. return Success("发送成功");
  9004. return Error("暂无人员");
  9005. }
  9006. /// <summary>
  9007. /// 办理结果通知
  9008. /// </summary>
  9009. /// <param name="msg1"></param>
  9010. /// <param name="msg2"></param>
  9011. /// <param name="msg3"></param>
  9012. /// <param name="msg4"></param>
  9013. /// <param name="mobile"></param>
  9014. /// <returns></returns>
  9015. public ActionResult SmsHand(string msg1 , string msg2 , string msg3,string msg4,string mobile)
  9016. {
  9017. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9018. string msg = msg1+","+ msg2 + "," + msg3 + "," + msg4;
  9019. string count = "尊敬的市民,您于" + msg1 + "反映的" + msg2 + "问题,工单号:" + msg3 + ",处理结果如下:" + msg4 + "。如有异议,请您再次致电12345,感谢您的支持。";
  9020. // bool n = SMSController.AddSmS(userId, count, msg, mobile, "26213");
  9021. // if (n)
  9022. return Success("发送成功");
  9023. // else
  9024. // return Error ("发送失败");
  9025. }
  9026. public ActionResult SmsOverTime(int Sms=0)
  9027. {
  9028. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  9029. 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)");
  9030. if (workorder != null&& workorder.Count >0)
  9031. {
  9032. foreach (var it in workorder)
  9033. {
  9034. System.TimeSpan time = DateTime.Parse(it.F_LimitTime.ToString()) - DateTime.Now ;
  9035. if (time.TotalHours <= -24)
  9036. {
  9037. int ivn = int.Parse(string.Format("{0:f0}", time.TotalHours / 24));
  9038. if ((ivn + 2) > it.F_IsSms)
  9039. {
  9040. if (it.F_IsSms < 3 )
  9041. {
  9042. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  9043. if (user != null)
  9044. {
  9045. foreach (var iv in user)
  9046. {
  9047. msg.AddInternalMessagesInfo("催单消息", "您有工单已超期"+string .Format ("{0:f0}", ivn*24) +"小时,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  9048. if (!string.IsNullOrEmpty(iv.F_Mobile))
  9049. {
  9050. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  9051. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  9052. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  9053. bool n = new SMSController().AddSmS(833962, 0, count, mag, iv.F_Mobile);
  9054. it.F_IsSms = ivn + 2;
  9055. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9056. }
  9057. if (!string.IsNullOrEmpty(iv.F_Telephone))
  9058. {
  9059. var userlist = iv.F_Telephone.Split(',');
  9060. if (userlist != null)
  9061. {
  9062. foreach (var io in userlist)
  9063. {
  9064. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  9065. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  9066. bool n = new SMSController().AddSmS(833962, 0, count, mag, io);
  9067. it.F_IsSms = ivn + 2;
  9068. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9069. }
  9070. }
  9071. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  9072. }
  9073. }
  9074. }
  9075. }
  9076. }
  9077. }
  9078. else if (time.TotalHours <= 1)
  9079. {
  9080. if (it.F_IsSms < 2 )
  9081. {
  9082. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  9083. if (user != null)
  9084. {
  9085. foreach (var iv in user)
  9086. {
  9087. msg.AddInternalMessagesInfo("催单消息", "您有工单1小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  9088. if (!string.IsNullOrEmpty(iv.F_Mobile))
  9089. {
  9090. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  9091. string[] mag = { it.F_WorkOrderId+ ",1" };
  9092. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  9093. it.F_IsSms = 2;
  9094. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9095. }
  9096. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  9097. {
  9098. var userlist = iv.F_Telephone.Split(',');
  9099. if (userlist != null)
  9100. {
  9101. foreach (var io in userlist)
  9102. {
  9103. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  9104. string[] mag = { it.F_WorkOrderId + ",1" };
  9105. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  9106. it.F_IsSms = 2;
  9107. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9108. }
  9109. }
  9110. }
  9111. }
  9112. }
  9113. }
  9114. }
  9115. else if (time.TotalHours <= 4)
  9116. {
  9117. if (it.F_IsSms < 1 )
  9118. {
  9119. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  9120. if (user != null)
  9121. {
  9122. foreach (var iv in user)
  9123. {
  9124. msg.AddInternalMessagesInfo("催单消息", "您有工单4小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  9125. if (!string.IsNullOrEmpty(iv.F_Mobile))
  9126. {
  9127. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  9128. string[] mag = { it.F_WorkOrderId + ",4" };
  9129. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  9130. it.F_IsSms = 1;
  9131. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9132. }
  9133. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  9134. {
  9135. var userlist = iv.F_Telephone.Split(',');
  9136. if (userlist != null)
  9137. {
  9138. foreach (var io in userlist)
  9139. {
  9140. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  9141. string[] mag = { it.F_WorkOrderId + ",4" };
  9142. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  9143. it.F_IsSms = 1;
  9144. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  9145. }
  9146. }
  9147. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  9148. }
  9149. }
  9150. }
  9151. }
  9152. }
  9153. }
  9154. }
  9155. return Success("发送成功");
  9156. }
  9157. /// <summary>
  9158. /// 市长办使用人员可以对需要催办的转办件进行短信催办或系统催办系统 20220315
  9159. /// </summary>
  9160. /// <param name="woid"></param>
  9161. /// <returns></returns>
  9162. public ActionResult Reminders(string workorderid)
  9163. {
  9164. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9165. //int userId = 133;
  9166. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9167. if (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "ZXLD")
  9168. {
  9169. //string workorderid = RequestString.GetFormString("workorderid");
  9170. var womodel = workorderBLL.GetModel(workorderid);
  9171. var assignmodel = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9172. if (womodel != null && assignmodel != null)
  9173. {
  9174. if (assignmodel.F_IsNext == 1 || assignmodel.F_IsNext == 2)
  9175. {
  9176. Model.T_Bus_AssignedInfo_Next assign_next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  9177. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + (assign_next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  9178. if (user != null)
  9179. {
  9180. foreach (var item in user)
  9181. {
  9182. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  9183. if (!string.IsNullOrEmpty(item.F_Mobile))
  9184. {
  9185. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  9186. string[] mag = { womodel.F_WorkOrderId };
  9187. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  9188. }
  9189. if (!string.IsNullOrEmpty(item.F_Telephone))
  9190. {
  9191. var phonlist = item.F_Telephone.Split(',');
  9192. if (phonlist.Count() > 0)
  9193. {
  9194. foreach (var phon in phonlist)
  9195. {
  9196. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  9197. string[] mag = { womodel.F_WorkOrderId };
  9198. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  9199. }
  9200. }
  9201. }
  9202. }
  9203. womodel.ReminderNum += 1;
  9204. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  9205. #region 插入操作记录
  9206. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9207. oper.F_WorkOrderId = womodel.F_WorkOrderId;
  9208. oper.F_State = womodel.F_WorkState;
  9209. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9210. oper.F_Message = userinfo + " 催办工单";
  9211. oper.F_CreateUser = userModel.F_UserCode;
  9212. oper.F_CreateTime = DateTime.Now;
  9213. oper.F_IsDelete = 0;
  9214. operBLL.Add(oper);
  9215. #endregion
  9216. }
  9217. }
  9218. else
  9219. {
  9220. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + womodel.F_MainDeptId ?? 0 + " and F_DeleteFlag=0");
  9221. if (user != null)
  9222. {
  9223. foreach (var item in user)
  9224. {
  9225. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  9226. if (!string.IsNullOrEmpty(item.F_Mobile))
  9227. {
  9228. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  9229. string[] mag = { womodel.F_WorkOrderId };
  9230. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  9231. }
  9232. if (!string.IsNullOrEmpty(item.F_Telephone))
  9233. {
  9234. var phonlist = item.F_Telephone.Split(',');
  9235. if (phonlist.Count() > 0)
  9236. {
  9237. foreach (var phon in phonlist)
  9238. {
  9239. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  9240. string[] mag = { womodel.F_WorkOrderId };
  9241. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  9242. }
  9243. }
  9244. }
  9245. }
  9246. womodel.ReminderNum += 1;
  9247. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  9248. #region 插入操作记录
  9249. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9250. oper.F_WorkOrderId = womodel.F_WorkOrderId;
  9251. oper.F_State = womodel.F_WorkState;
  9252. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9253. oper.F_Message = userinfo + " 催办工单";
  9254. oper.F_CreateUser = userModel.F_UserCode;
  9255. oper.F_CreateTime = DateTime.Now;
  9256. oper.F_IsDelete = 0;
  9257. operBLL.Add(oper);
  9258. #endregion
  9259. }
  9260. }
  9261. return Success("催单成功!");
  9262. }
  9263. else return Error("操作失败");
  9264. }
  9265. else
  9266. return Error("权限不足!");
  9267. }
  9268. /// <summary>
  9269. /// 收回工单
  9270. /// </summary>
  9271. /// <returns></returns>
  9272. [Authority]
  9273. public ActionResult TakeBackWorkOrder()
  9274. {
  9275. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9276. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9277. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9278. {
  9279. string workorderid = RequestString.GetFormString("workorderid");
  9280. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9281. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9282. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  9283. {
  9284. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9285. {
  9286. return Error("操作失败");
  9287. }
  9288. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  9289. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  9290. {
  9291. using (TransactionScope trans = new TransactionScope())
  9292. {
  9293. #region 插入交办记录
  9294. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9295. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9296. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9297. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9298. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9299. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9300. AssignedInfo.F_State = 0;//0草稿 1正式
  9301. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9302. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9303. AssignedInfo.F_IsDelete = 0;
  9304. AssignedInfo.F_IsOverdue = 0;
  9305. AssignedInfo.F_IsSure = 0;
  9306. AssignedInfo.F_IsReload = 0;
  9307. AssignedInfo.F_IsNext = 0;
  9308. assignBLL.Add(AssignedInfo);
  9309. #endregion
  9310. #region 保存工单信息
  9311. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9312. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9313. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9314. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  9315. modelT_Bus_WorkOrder.ReminderNum = 0;//清空催办记录
  9316. workorderBLL.Update(modelT_Bus_WorkOrder);
  9317. #endregion
  9318. #region 删除交办信息
  9319. modelT_Bus_AssignedInfo.F_State = 0;
  9320. assignBLL.Update(modelT_Bus_AssignedInfo);
  9321. #endregion
  9322. #region 删除派单信息
  9323. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9324. foreach (var cg in pdlist)
  9325. {
  9326. //cg.F_IsDelete = 1;
  9327. //cg.F_DeleteUser = userModel.F_UserCode;
  9328. //cg.F_DeleteTime = DateTime.Now;
  9329. cg.F_State = 0;
  9330. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  9331. }
  9332. #endregion
  9333. #region 删除二级单位处理信息
  9334. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9335. foreach (var cg in cglist)
  9336. {
  9337. // cg.F_IsDelete = 1;
  9338. // cg.F_DeleteUser = userModel.F_UserCode;
  9339. // cg.F_DeleteTime = DateTime.Now;
  9340. cg.F_State = 0;
  9341. new BLL.T_Bus_Feedback_Next().Update(cg);
  9342. }
  9343. #endregion
  9344. #region 插入操作记录
  9345. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9346. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9347. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9348. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9349. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9350. oper.F_Message = userinfo + " 收回了工单";
  9351. oper.F_CreateUser = userModel.F_UserCode;
  9352. oper.F_CreateTime = DateTime.Now;
  9353. oper.F_IsDelete = 0;
  9354. operBLL.Add(oper);
  9355. #endregion
  9356. trans.Complete();
  9357. }
  9358. return Success("操作成功");
  9359. }
  9360. else
  9361. {
  9362. return Error("单位已查收,不能收回");
  9363. }
  9364. }
  9365. else
  9366. {
  9367. return Error("操作失败");
  9368. }
  9369. }
  9370. else
  9371. {
  9372. return Error("权限不足");
  9373. }
  9374. }
  9375. /// <summary>
  9376. /// 查收工单
  9377. /// </summary>
  9378. /// <returns></returns>
  9379. [Authority]
  9380. public ActionResult ReceiveWorkOrder()
  9381. {
  9382. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9383. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9384. if (userModel.F_RoleCode == "WLDW")
  9385. {
  9386. string workorderid = RequestString.GetFormString("workorderid");
  9387. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9388. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9389. //操作前新增判断状态
  9390. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9391. 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"))
  9392. {
  9393. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  9394. {
  9395. using (TransactionScope trans = new TransactionScope())
  9396. {
  9397. #region 保存工单信息
  9398. modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9399. workorderBLL.Update(modelT_Bus_WorkOrder);
  9400. #endregion
  9401. #region 保存查收信息
  9402. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  9403. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9404. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9405. assignBLL.Update(modelT_Bus_AssignedInfo);
  9406. #endregion
  9407. #region 保存明细信息
  9408. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  9409. {
  9410. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  9411. foreach (string strid in strids)
  9412. {
  9413. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  9414. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9415. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  9416. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  9417. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9418. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  9419. modelT_Bus_AssignedItemInfo.F_State = 1;
  9420. modelT_Bus_AssignedItemInfo.F_Type = 2;
  9421. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  9422. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  9423. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  9424. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  9425. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  9426. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  9427. }
  9428. }
  9429. #endregion
  9430. if(modelT_Bus_WorkOrder.F_IsEnabled ==2)
  9431. {
  9432. third.updateProgress(modelT_Bus_WorkOrder.F_WorkOrderId );
  9433. }
  9434. #region 插入操作记录
  9435. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9436. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9437. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9438. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9439. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9440. oper.F_Message = userinfo + " 查收了工单";
  9441. oper.F_CreateUser = userModel.F_UserCode;
  9442. oper.F_CreateTime = DateTime.Now;
  9443. oper.F_IsDelete = 0;
  9444. operBLL.Add(oper);
  9445. #endregion
  9446. trans.Complete();
  9447. }
  9448. return Success("操作成功");
  9449. }
  9450. else
  9451. {
  9452. return Error("单位已查收,不能再次查收");
  9453. }
  9454. }
  9455. else
  9456. {
  9457. return Error("操作失败");
  9458. }
  9459. }
  9460. else
  9461. {
  9462. //return Error("权限不足");
  9463. return Success("操作成功!");
  9464. }
  9465. }
  9466. /// <summary>
  9467. /// 退回工单
  9468. /// </summary>
  9469. /// <returns></returns>
  9470. [Authority]
  9471. public ActionResult RebackWorkOrder()
  9472. {
  9473. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9474. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9475. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9476. {
  9477. string workorderid = RequestString.GetFormString("workorderid");
  9478. string backreason = RequestString.GetFormString("backreason");
  9479. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9480. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9481. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9482. {
  9483. if (modelT_Bus_AssignedInfo.F_IsSure == 0|| modelT_Bus_AssignedInfo.F_IsSure == 1)
  9484. {
  9485. using (TransactionScope trans = new TransactionScope())
  9486. {
  9487. #region 保存工单信息
  9488. if (modelT_Bus_WorkOrder.F_IsEnabled ==2)
  9489. {
  9490. string message = third.DWBackWorkOrder(modelT_Bus_WorkOrder.F_WorkOrderId,
  9491. backreason, userModel.F_UserName, userModel.F_UserCode);
  9492. if (message != "")
  9493. return Error(message);
  9494. }
  9495. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  9496. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  9497. modelT_Bus_WorkOrder.ReminderNum = 0;//催办数量清零
  9498. workorderBLL.Update(modelT_Bus_WorkOrder);
  9499. #endregion
  9500. #region 插入退回申请信息
  9501. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  9502. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9503. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9504. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  9505. model_T_Bus_Feedback.F_IsAudit = 0;
  9506. model_T_Bus_Feedback.F_IsDelete = 0;
  9507. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  9508. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  9509. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  9510. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  9511. model_T_Bus_Feedback.F_State = 1;
  9512. model_T_Bus_Feedback.F_Type = 3;
  9513. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  9514. #endregion
  9515. #region 保存交办信息
  9516. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  9517. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9518. //{
  9519. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  9520. //}
  9521. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  9522. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9523. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9524. assignBLL.Update(modelT_Bus_AssignedInfo);
  9525. #endregion
  9526. #region 插入操作记录
  9527. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9528. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9529. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9530. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9531. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9532. oper.F_Message = userinfo + " 申请退回了工单";
  9533. oper.F_CreateUser = userModel.F_UserCode;
  9534. oper.F_CreateTime = DateTime.Now;
  9535. oper.F_IsDelete = 0;
  9536. operBLL.Add(oper);
  9537. //推送消息表
  9538. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9539. #endregion
  9540. trans.Complete();
  9541. }
  9542. return Success("操作成功");
  9543. }
  9544. else
  9545. {
  9546. return Error("单位已查收,不能退回");
  9547. }
  9548. }
  9549. else
  9550. {
  9551. return Error("操作失败");
  9552. }
  9553. }
  9554. else
  9555. {
  9556. return Error("权限不足");
  9557. }
  9558. }
  9559. /// <summary>
  9560. /// 审核退回工单
  9561. /// </summary>
  9562. /// <returns></returns>
  9563. [Authority]
  9564. public ActionResult AuditRebackWorkOrder()
  9565. {
  9566. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9567. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9568. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9569. {
  9570. string workorderid = RequestString.GetFormString("workorderid");
  9571. int state = RequestString.GetInt("state", 0);
  9572. string reason = RequestString.GetFormString("reason");
  9573. int rebackid = RequestString.GetInt("rebackid", 0);
  9574. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9575. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  9576. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9577. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  9578. {
  9579. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9580. {
  9581. return Error("操作失败");
  9582. }
  9583. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  9584. {
  9585. using (TransactionScope trans = new TransactionScope())
  9586. {
  9587. var rre = "";
  9588. #region 保存查收信息
  9589. modelT_Bus_Feedback.F_IsAudit = state;//审核
  9590. modelT_Bus_Feedback.F_AuditUser = userModel.F_UserCode;
  9591. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  9592. modelT_Bus_Feedback.F_AuditReason = reason;
  9593. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  9594. #endregion
  9595. string strmsg = "同意";
  9596. if (modelT_Bus_Feedback.F_IsAudit == 1)
  9597. {
  9598. #region 插入交办记录
  9599. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9600. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9601. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9602. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9603. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9604. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9605. AssignedInfo.F_State = 0;//0草稿 1正式
  9606. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9607. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9608. AssignedInfo.F_IsDelete = 0;
  9609. AssignedInfo.F_IsOverdue = 0;
  9610. AssignedInfo.F_IsSure = 0;
  9611. AssignedInfo.F_IsNext = 0;
  9612. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  9613. assignBLL.Add(AssignedInfo);
  9614. #endregion
  9615. #region 保存交办信息
  9616. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  9617. assignBLL.Update(modelT_Bus_AssignedInfo);
  9618. #endregion
  9619. #region 保存工单信息
  9620. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9621. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9622. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9623. workorderBLL.Update(modelT_Bus_WorkOrder);
  9624. #endregion
  9625. }
  9626. else
  9627. {
  9628. #region 保存工单信息
  9629. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9630. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9631. workorderBLL.Update(modelT_Bus_WorkOrder);
  9632. #endregion
  9633. #region 保存交办信息
  9634. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  9635. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9636. modelT_Bus_AssignedInfo.F_SureUser = "";
  9637. modelT_Bus_AssignedInfo.F_SureTime = null;
  9638. assignBLL.Update(modelT_Bus_AssignedInfo);
  9639. #endregion
  9640. strmsg = "拒绝";
  9641. }
  9642. #region 插入操作记录
  9643. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9644. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9645. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9646. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9647. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9648. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  9649. oper.F_CreateUser = userModel.F_UserCode;
  9650. oper.F_CreateTime = DateTime.Now;
  9651. oper.F_IsDelete = 0;
  9652. operBLL.Add(oper);
  9653. //推送消息表
  9654. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9655. #endregion
  9656. if (modelT_Bus_AssignedInfo.F_MainDeptId==304)
  9657. {
  9658. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(),reason,userModel.F_UserCode).ToString();
  9659. }
  9660. trans.Complete();
  9661. }
  9662. return Success("操作成功");
  9663. }
  9664. else
  9665. {
  9666. return Error("此审核已经处理");
  9667. }
  9668. }
  9669. else
  9670. {
  9671. return Error("操作失败");
  9672. }
  9673. }
  9674. else
  9675. {
  9676. return Error("权限不足");
  9677. }
  9678. }
  9679. /// <summary>
  9680. /// 申请延时
  9681. /// </summary>
  9682. /// <returns></returns>
  9683. [Authority]
  9684. public ActionResult DelayWorkOrder(string workorderid)
  9685. {
  9686. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9687. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9688. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "ZXLD")
  9689. {
  9690. // string workorderid = RequestString.GetFormString("workorderid");
  9691. //int state = RequestString.GetInt("state", 0);
  9692. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9693. string reason = RequestString.GetFormString("reason");
  9694. string files = RequestString.GetFormString("files");
  9695. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9696. #region 获取办理时间的时分秒
  9697. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9698. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9699. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9700. string newhms = " ";
  9701. newhms += h + ":";
  9702. newhms += m + ":";
  9703. newhms += s;
  9704. #endregion
  9705. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9706. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9707. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  9708. )
  9709. {
  9710. using (TransactionScope trans = new TransactionScope())
  9711. {
  9712. if (userModel.F_RoleCode == "WLDW")
  9713. {
  9714. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  9715. {
  9716. if (userModel.F_DeptId > 0)
  9717. {
  9718. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  9719. if (dept != null)
  9720. {
  9721. if (dept.F_ExtensionTime!=null )
  9722. {
  9723. if (((DateTime)dept.F_ExtensionTime).Month == DateTime.Now.Month
  9724. && ((DateTime)dept.F_ExtensionTime).Year == DateTime.Now.Year)
  9725. {
  9726. if (dept.F_DelayTimes < 100)
  9727. {
  9728. dept.F_DelayTimes += 1;
  9729. dept.F_ExtensionTime = DateTime.Now;
  9730. bool n = new BLL.T_Sys_Department().Update(dept);
  9731. }
  9732. else
  9733. return Error("本单位本月申请延时已达三次");
  9734. }
  9735. else
  9736. {
  9737. dept.F_DelayTimes = 1;
  9738. dept.F_ExtensionTime = DateTime.Now;
  9739. bool n = new BLL.T_Sys_Department().Update(dept);
  9740. }
  9741. }
  9742. else
  9743. {
  9744. dept.F_DelayTimes = 1;
  9745. dept.F_ExtensionTime = DateTime.Now;
  9746. bool n = new BLL.T_Sys_Department().Update(dept);
  9747. }
  9748. }
  9749. }
  9750. }
  9751. else
  9752. {
  9753. return Error("操作失敗,已查收");
  9754. }
  9755. }
  9756. #region 保存工单信息
  9757. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  9758. //if (modelT_Bus_WorkOrder .F_IsEnabled ==2)
  9759. // {
  9760. // if (modelT_Bus_WorkOrder.F_IsEnabled == 2)
  9761. // {
  9762. // string message = third.DWDelayWorkOrder(modelT_Bus_WorkOrder.F_WorkOrderId,
  9763. // reason, "", newlimittime, modelT_Bus_AssignedInfo.F_LimitTime.Value);
  9764. // if (message != "")
  9765. // return Error(message);
  9766. // }
  9767. // }
  9768. // else if (userModel.F_RoleCode != "WLDW")
  9769. // {
  9770. // string message = third.DelayWorkOrder(modelT_Bus_WorkOrder.F_WorkOrderId,
  9771. // reason, "", newlimittime, modelT_Bus_AssignedInfo.F_LimitTime.Value);
  9772. // if (message != "")
  9773. // return Error(message);
  9774. // }
  9775. // else
  9776. // {
  9777. // }
  9778. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  9779. workorderBLL.Update(modelT_Bus_WorkOrder);
  9780. #endregion
  9781. #region 插入申请延时信息
  9782. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  9783. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9784. //delay.F_State = state;
  9785. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9786. delay.F_NewTime = newlimittime;
  9787. delay.F_Reason = reason;
  9788. delay.F_State = 1;
  9789. delay.F_IsAudit = 0;
  9790. delay.F_IsDelete = 0;
  9791. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9792. delay.F_CreateUser = userModel.F_UserCode;
  9793. delay.F_CreateTime = DateTime.Now;
  9794. delay.F_File = files;
  9795. new BLL.T_Bus_DelayTime().Add(delay);
  9796. #endregion
  9797. #region 插入操作记录
  9798. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9799. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9800. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9801. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9802. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9803. oper.F_Message = userinfo + " 申请了延时处理";
  9804. oper.F_CreateUser = userModel.F_UserCode;
  9805. oper.F_CreateTime = DateTime.Now;
  9806. oper.F_IsDelete = 0;
  9807. operBLL.Add(oper);
  9808. //推送消息表
  9809. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9810. #endregion
  9811. trans.Complete();
  9812. }
  9813. return Success("操作成功");
  9814. }
  9815. else
  9816. {
  9817. return Error("操作失败");
  9818. }
  9819. }
  9820. else
  9821. {
  9822. return Error("权限不足");
  9823. }
  9824. }
  9825. /// <summary>
  9826. /// 审核延时工单
  9827. /// </summary>
  9828. /// <returns></returns>
  9829. [Authority]
  9830. public ActionResult AuditDelayWorkOrder()
  9831. {
  9832. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9833. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9834. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9835. {
  9836. string workorderid = RequestString.GetFormString("workorderid");
  9837. int state = RequestString.GetInt("state", 0);
  9838. string reason = RequestString.GetFormString("reason");
  9839. int delayid = RequestString.GetInt("delayid", 0);
  9840. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9841. #region 获取办理时间的时分秒
  9842. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9843. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9844. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9845. string newhms = " ";
  9846. newhms += h + ":";
  9847. newhms += m + ":";
  9848. newhms += s;
  9849. #endregion
  9850. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9851. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  9852. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9853. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9854. {
  9855. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9856. //{
  9857. // return Error("操作失败");
  9858. //}
  9859. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9860. {
  9861. using (TransactionScope trans = new TransactionScope())
  9862. {
  9863. #region 保存工单信息
  9864. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9865. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9866. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9867. if (modelT_Bus_WorkOrder.F_Scanning!=null )
  9868. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9869. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9870. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9871. workorderBLL.Update(modelT_Bus_WorkOrder);
  9872. #endregion
  9873. #region 保存审核信息
  9874. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  9875. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  9876. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  9877. modelT_Bus_DelayTime.F_RefuseReason = reason;
  9878. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  9879. //if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9880. //{
  9881. // string message = third.DelayWorkOrder(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_DelayTime.F_Reason,
  9882. // modelT_Bus_DelayTime.F_File, modelT_Bus_DelayTime.F_AgreeTime.Value,
  9883. // modelT_Bus_DelayTime.F_OldTime.Value);
  9884. // if (message != "")
  9885. // return Error(message);
  9886. //}
  9887. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  9888. #endregion
  9889. string type = "同意"; string des = "";
  9890. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9891. {
  9892. #region 修改交办记录
  9893. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9894. assignBLL.Update(modelT_Bus_AssignedInfo);
  9895. #endregion
  9896. #region 处理协办单位
  9897. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9898. foreach (var xb in xblist)
  9899. {
  9900. //xb.F_LimitTime = DateTime.Now;
  9901. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9902. assignItemBLL.Update(xb);
  9903. }
  9904. #endregion
  9905. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  9906. }
  9907. else
  9908. {
  9909. type = "拒绝";
  9910. }
  9911. #region 插入操作记录
  9912. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9913. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9914. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9915. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9916. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9917. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  9918. oper.F_CreateUser = userModel.F_UserCode;
  9919. oper.F_CreateTime = DateTime.Now;
  9920. oper.F_IsDelete = 0;
  9921. operBLL.Add(oper);
  9922. //推送消息表
  9923. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9924. #endregion
  9925. trans.Complete();
  9926. }
  9927. return Success("操作成功");
  9928. }
  9929. else
  9930. {
  9931. return Error("此审核已经处理");
  9932. }
  9933. }
  9934. else
  9935. {
  9936. return Error("操作失败");
  9937. }
  9938. }
  9939. else
  9940. {
  9941. return Error("权限不足");
  9942. }
  9943. }
  9944. /// <summary>
  9945. /// 批量审核延时
  9946. /// </summary>
  9947. /// <param name="ids"></param>
  9948. /// <returns></returns>
  9949. [Authority]
  9950. public ActionResult AuditDelayWorkOrderBatch(string ids)
  9951. {
  9952. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9953. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9954. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9955. {
  9956. int state = RequestString.GetInt("state", 0);
  9957. string reason = RequestString.GetFormString("reason");
  9958. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9959. string errids = "";string errids1 = "";
  9960. if (!string.IsNullOrEmpty(ids))
  9961. {
  9962. string[] strids = ids.Split(',');
  9963. foreach (string str in strids)
  9964. {
  9965. using (TransactionScope trans = new TransactionScope())
  9966. {
  9967. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  9968. #region 获取办理时间的时分秒
  9969. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9970. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9971. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9972. string newhms = " ";
  9973. newhms += h + ":";
  9974. newhms += m + ":";
  9975. newhms += s;
  9976. #endregion
  9977. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9978. 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();
  9979. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  9980. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9981. {
  9982. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9983. //{
  9984. // errids += str + ",";
  9985. // continue;
  9986. //}
  9987. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9988. {
  9989. #region 保存工单信息
  9990. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9991. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9992. if (modelT_Bus_WorkOrder.F_Scanning != null)
  9993. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9994. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9995. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9996. workorderBLL.Update(modelT_Bus_WorkOrder);
  9997. #endregion
  9998. #region 保存审核信息
  9999. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  10000. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  10001. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  10002. modelT_Bus_DelayTime.F_RefuseReason = reason;
  10003. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  10004. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  10005. #endregion
  10006. string type = "同意"; string des = "";
  10007. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  10008. {
  10009. #region 修改交办记录
  10010. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  10011. assignBLL.Update(modelT_Bus_AssignedInfo);
  10012. #endregion
  10013. #region 处理协办单位
  10014. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10015. foreach (var xb in xblist)
  10016. {
  10017. //xb.F_LimitTime = DateTime.Now;
  10018. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  10019. assignItemBLL.Update(xb);
  10020. }
  10021. #endregion
  10022. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  10023. }
  10024. else
  10025. {
  10026. type = "拒绝";
  10027. }
  10028. #region 插入操作记录
  10029. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10030. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10031. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10032. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10033. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10034. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  10035. oper.F_CreateUser = userModel.F_UserCode;
  10036. oper.F_CreateTime = DateTime.Now;
  10037. oper.F_IsDelete = 0;
  10038. operBLL.Add(oper);
  10039. //推送消息表
  10040. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10041. #endregion
  10042. }
  10043. else
  10044. errids1 += str + ",";
  10045. }
  10046. trans.Complete();
  10047. }
  10048. }
  10049. if (errids1 != "" && errids != "")
  10050. return Success("操作成功");
  10051. else
  10052. {
  10053. string msg = "";
  10054. if (errids1 != "")
  10055. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  10056. if(errids!="")
  10057. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  10058. return Error("部分工单操作失败"+ msg);
  10059. }
  10060. }
  10061. else
  10062. {
  10063. return Error("参数获取失败");
  10064. }
  10065. }
  10066. else
  10067. {
  10068. return Error("权限不足");
  10069. }
  10070. }
  10071. /// <summary>
  10072. /// 修改扫描件
  10073. /// </summary>
  10074. /// <returns></returns>
  10075. [Authority]
  10076. public ActionResult UpdateFiles()
  10077. {
  10078. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10079. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10080. string workorderid = RequestString.GetFormString("workorderid");
  10081. string files = RequestString.GetFormString("files");
  10082. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10083. if (modelT_Bus_WorkOrder != null)
  10084. {
  10085. modelT_Bus_WorkOrder.F_Files = files;
  10086. //if (modelT_Bus_WorkOrder.IsExport == 1)
  10087. //{
  10088. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  10089. //}
  10090. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10091. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10092. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10093. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10094. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10095. oper.F_Message = userinfo + "修改了扫描件 ";
  10096. oper.F_CreateUser = userModel.F_UserCode;
  10097. oper.F_CreateTime = DateTime.Now;
  10098. oper.F_IsDelete = 0;
  10099. operBLL.Add(oper);
  10100. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  10101. {
  10102. return Success("修改成功");
  10103. }
  10104. else
  10105. return Error("修改失败");
  10106. }
  10107. else
  10108. return Error("工单不存在");
  10109. }
  10110. /// <summary>
  10111. /// 批量上传附件
  10112. /// </summary>
  10113. /// <param name="ids"></param>
  10114. /// <returns></returns>
  10115. [Authority]
  10116. public ActionResult AddFiles()
  10117. {
  10118. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10119. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10120. string workorderid = RequestString.GetFormString("workorderid");
  10121. string files = RequestString.GetFormString("files");
  10122. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10123. if (modelT_Bus_WorkOrder != null)
  10124. {
  10125. if (string .IsNullOrEmpty (files))
  10126. return Error("请上传附件");
  10127. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Files))
  10128. modelT_Bus_WorkOrder.F_Files = files;
  10129. else
  10130. {
  10131. modelT_Bus_WorkOrder.F_Files = files;
  10132. }
  10133. //if(modelT_Bus_WorkOrder .IsExport ==1)
  10134. //{
  10135. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  10136. //}
  10137. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10138. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10139. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10140. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10141. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10142. oper.F_Message = userinfo + "上传了扫描件 ";
  10143. oper.F_CreateUser = userModel.F_UserCode;
  10144. oper.F_CreateTime = DateTime.Now;
  10145. oper.F_IsDelete = 0;
  10146. operBLL.Add(oper);
  10147. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  10148. {
  10149. return Success ("上传成功");
  10150. }
  10151. else
  10152. return Error("上传失败");
  10153. }
  10154. else
  10155. return Error("工单不存在");
  10156. }
  10157. //查看工单所有的扫描件
  10158. [Authority]
  10159. public ActionResult getFiles()
  10160. {
  10161. string workorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  10162. if (!string.IsNullOrEmpty(workorderid))
  10163. {
  10164. string sql = "select *"
  10165. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + workorderid + "'"
  10166. ;
  10167. var dt = DbHelperSQL.Query(sql).Tables[0];
  10168. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  10169. if (configfj != null)
  10170. {
  10171. dt = BindFileDataFiles(dt, configfj.F_ParamValue);
  10172. }
  10173. return Success("扫描件详细结果",dt);
  10174. }
  10175. return Error("没传工单号");
  10176. }
  10177. //获取办理工程中提交的附件
  10178. [Authority]
  10179. public ActionResult getFile()
  10180. {
  10181. string fid = HttpUtility.UrlDecode(RequestString.GetQueryString("fid"));
  10182. if (!string.IsNullOrEmpty(fid))
  10183. {
  10184. string blsql = "select *"
  10185. + "from T_Bus_Feedback WITH(NOLOCK) where F_Id ='" + fid + "'";
  10186. var dt = DbHelperSQL.Query(blsql).Tables[0];
  10187. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  10188. if (configfj != null)
  10189. {
  10190. dt = BindFileData(dt, configfj.F_ParamValue);
  10191. }
  10192. return Success("附件详细结果", dt);
  10193. }
  10194. return Error("没传fid");
  10195. }
  10196. //保存办理工程中新提交的附件
  10197. [Authority]
  10198. public ActionResult saveFile()
  10199. {
  10200. string fid = RequestString.GetFormString("fid") ;
  10201. string file = RequestString.GetFormString("file");
  10202. if (!string.IsNullOrEmpty(fid))
  10203. {
  10204. Model.T_Bus_Feedback feedbackmodel = feedbackBLL.GetModel(Convert.ToInt32(fid));
  10205. feedbackmodel.F_File = file;
  10206. feedbackBLL.Update(feedbackmodel);
  10207. return Success("修改附件成功");
  10208. }
  10209. return Error("没传fid");
  10210. }
  10211. /// <summary>
  10212. /// 办理工单
  10213. /// </summary>
  10214. /// <returns></returns>
  10215. [Authority]
  10216. public ActionResult FeedBackWorkOrder()
  10217. {
  10218. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10219. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10220. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  10221. {
  10222. string workorderid = RequestString.GetFormString("workorderid");
  10223. string dealman = RequestString.GetFormString("dealman");
  10224. string result = RequestString.GetFormString("result");
  10225. string files = RequestString.GetFormString("files");
  10226. int state = RequestString.GetInt("state", 0);
  10227. int feedbackid = RequestString.GetInt("feedbackid", 0);
  10228. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  10229. string prosituation = RequestString.GetFormString("prosituation");
  10230. string dealcontact = RequestString.GetFormString("dealcontact");
  10231. string connecttime=RequestString.GetFormString("connecttime");
  10232. string connectmode = RequestString.GetFormString("connectmode");
  10233. string replycontent = RequestString.GetFormString("replycontent");
  10234. int isstaisfied= RequestString.GetInt("isstaisfied", 0);
  10235. string duties= RequestString.GetFormString("duties");
  10236. string situation = RequestString.GetFormString("situation");
  10237. string post = RequestString.GetFormString("post");
  10238. string contact = RequestString.GetFormString("contact");
  10239. string liable = RequestString.GetFormString("liable");
  10240. int maindeptid = RequestString.GetInt("maindeptid", 0);
  10241. string visituser = RequestString.GetFormString("visituser");//回访人
  10242. int types = RequestString.GetInt("type", 0);//回访方式
  10243. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意2基本满意
  10244. int states = RequestString.GetInt("states", 0);//0保存 1保存并下一步
  10245. int visitid = RequestString.GetInt("visitid", 0);
  10246. string results = RequestString.GetFormString("results");//回访情况
  10247. int nexttype = RequestString.GetInt("nexttype", 2);//1重办 2结案
  10248. int ishf = RequestString.GetInt("ishf", 0);//是否回访0否1是
  10249. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  10250. // string callid = RequestString.GetFormString("callid");
  10251. string guid = RequestString.GetFormString("guid");
  10252. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY")
  10253. {
  10254. if (maindeptid<=0)
  10255. {
  10256. return Error("请输入办理单位");
  10257. }
  10258. }
  10259. else
  10260. {
  10261. maindeptid = userModel.F_DeptId;
  10262. }
  10263. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10264. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10265. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  10266. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  10267. int type = 1;
  10268. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  10269. {
  10270. // type = AssignDeptType(modelT_Bus_AssignedInfo, maindeptid);
  10271. if (type > 0)
  10272. {
  10273. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  10274. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  10275. {
  10276. using (TransactionScope trans = new TransactionScope())
  10277. {
  10278. if (feedbackid == 0)
  10279. {
  10280. #region 插入反馈记录
  10281. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10282. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10283. modelT_Bus_Feedback.F_DealUser = dealman;
  10284. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10285. modelT_Bus_Feedback.F_ClosingResult = situation;//
  10286. #region 20200114新增字段 zhengbingbing
  10287. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10288. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10289. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10290. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10291. DateTime contime = DateTime.Now;
  10292. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10293. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10294. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10295. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10296. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10297. modelT_Bus_Feedback.F_Duties = duties;//职务
  10298. modelT_Bus_Feedback.F_Situation = situation;
  10299. #endregion
  10300. modelT_Bus_Feedback.F_File = files;
  10301. modelT_Bus_Feedback.F_IsAudit = 0;
  10302. modelT_Bus_Feedback.F_IsDelete = 0;
  10303. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10304. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10305. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  10306. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10307. modelT_Bus_Feedback.F_State = state;
  10308. modelT_Bus_Feedback.F_Type = type;
  10309. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10310. #endregion
  10311. }
  10312. else
  10313. {
  10314. #region 修改反馈记录
  10315. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  10316. if (modelT_Bus_Feedback != null)
  10317. {
  10318. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10319. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10320. modelT_Bus_Feedback.F_DealUser = dealman;
  10321. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10322. modelT_Bus_Feedback.F_ClosingResult = situation;
  10323. modelT_Bus_Feedback.F_File = files;
  10324. #region 20200114新增字段 zhengbingbing
  10325. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10326. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10327. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10328. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10329. DateTime contime = DateTime.Now;
  10330. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10331. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10332. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10333. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10334. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10335. modelT_Bus_Feedback.F_Duties = duties;//职务
  10336. modelT_Bus_Feedback.F_Situation = situation;
  10337. #endregion
  10338. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10339. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10340. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  10341. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10342. modelT_Bus_Feedback.F_State = state;
  10343. if (modelT_Bus_AssignedInfo.F_MainDeptId == maindeptid)
  10344. {
  10345. modelT_Bus_Feedback.F_Type = 1;
  10346. }
  10347. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(maindeptid.ToString()))
  10348. {
  10349. modelT_Bus_Feedback.F_Type = 2;
  10350. }
  10351. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  10352. }
  10353. #endregion
  10354. }
  10355. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  10356. {
  10357. string typemsg = "办理";
  10358. if (type == 1)
  10359. {
  10360. int iscs = 0;
  10361. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10362. {
  10363. iscs = 1;
  10364. }
  10365. #region 保存工单信息
  10366. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  10367. modelT_Bus_WorkOrder.F_WorkState =7;//待回访
  10368. modelT_Bus_WorkOrder.F_Result = result;
  10369. modelT_Bus_WorkOrder.F_DealDeptId = maindeptid;
  10370. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  10371. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10372. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  10373. modelT_Bus_WorkOrder.F_Post = post;//职务
  10374. modelT_Bus_WorkOrder.F_Contact = contact ;//联系方式
  10375. modelT_Bus_WorkOrder.F_Liable =liable ;
  10376. workorderBLL.Update(modelT_Bus_WorkOrder);
  10377. #endregion
  10378. #region 保存交办信息
  10379. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  10380. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10381. {
  10382. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10383. }
  10384. assignBLL.Update(modelT_Bus_AssignedInfo);
  10385. #endregion
  10386. #region 删除草稿信息
  10387. 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 + "'");
  10388. foreach (var cg in cglist)
  10389. {
  10390. cg.F_IsDelete = 1;
  10391. cg.F_DeleteUser = userModel.F_UserCode;
  10392. cg.F_DeleteTime = DateTime.Now;
  10393. new BLL.T_Bus_Feedback().Update(cg);
  10394. }
  10395. #endregion
  10396. #region 删除二级单位未办理信息
  10397. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10398. foreach (var ej in ejlist)
  10399. {
  10400. ej.F_IsDelete = 1;
  10401. ej.F_DeleteUser = userModel.F_UserCode;
  10402. ej.F_DeleteTime = DateTime.Now;
  10403. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  10404. }
  10405. #endregion
  10406. #region 处理协办单位
  10407. 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 + "'");
  10408. foreach (var xb in xblist)
  10409. {
  10410. xb.F_State = 2;
  10411. xb.F_SureUser = userModel.F_UserCode;
  10412. xb.F_SureTime = DateTime.Now;
  10413. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  10414. }
  10415. #endregion
  10416. typemsg = "主办";
  10417. }
  10418. else if (type == 2)
  10419. {
  10420. #region 保存明细信息
  10421. 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();
  10422. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  10423. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  10424. {
  10425. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  10426. }
  10427. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  10428. #endregion
  10429. #region 删除草稿信息
  10430. 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 + "'");
  10431. foreach (var cg in cglist)
  10432. {
  10433. cg.F_IsDelete = 1;
  10434. cg.F_DeleteUser = userModel.F_UserCode;
  10435. cg.F_DeleteTime = DateTime.Now;
  10436. new BLL.T_Bus_Feedback().Update(cg);
  10437. }
  10438. #endregion
  10439. typemsg = "协办";
  10440. }
  10441. #region 插入操作记录
  10442. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10443. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10444. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10445. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10446. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10447. oper.F_Message = userinfo + " " + typemsg + "了工单";
  10448. oper.F_CreateUser = userModel.F_UserCode;
  10449. oper.F_CreateTime = DateTime.Now;
  10450. oper.F_IsDelete = 0;
  10451. operBLL.Add(oper);
  10452. //推送消息表
  10453. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10454. #endregion
  10455. }
  10456. trans.Complete();
  10457. }
  10458. if (ishf==1)
  10459. {
  10460. using (TransactionScope trans = new TransactionScope())
  10461. {
  10462. #region 回访
  10463. if (visitid == 0)
  10464. {
  10465. #region 新增回访结果记录
  10466. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10467. modelT_Bus_VisitResult.F_AssignedId = 0;
  10468. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10469. modelT_Bus_VisitResult.F_Type = types;
  10470. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10471. modelT_Bus_VisitResult.F_Result = results;
  10472. modelT_Bus_VisitResult.F_State = states;
  10473. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10474. modelT_Bus_VisitResult.F_IsDelete = 0;
  10475. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10476. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10477. if (modelT_Bus_AssignedInfo != null)
  10478. {
  10479. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10480. }
  10481. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10482. modelT_Bus_VisitResult.F_Id = id;
  10483. //保存回访记录
  10484. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10485. #endregion
  10486. }
  10487. else
  10488. {
  10489. #region 修改回访结果记录
  10490. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  10491. if (modelT_Bus_VisitResult != null)
  10492. {
  10493. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10494. modelT_Bus_VisitResult.F_AssignedId = 0;
  10495. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10496. modelT_Bus_VisitResult.F_Type = types;
  10497. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10498. modelT_Bus_VisitResult.F_Result = results;
  10499. modelT_Bus_VisitResult.F_State = states;
  10500. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10501. modelT_Bus_VisitResult.F_IsDelete = 0;
  10502. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10503. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10504. if (modelT_Bus_AssignedInfo != null)
  10505. {
  10506. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10507. }
  10508. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10509. modelT_Bus_VisitResult.F_Id = id;
  10510. //保存回访记录
  10511. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10512. }
  10513. #endregion
  10514. }
  10515. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  10516. {
  10517. #region 保存交办信息
  10518. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  10519. assignBLL.Update(modelT_Bus_AssignedInfo);
  10520. #endregion
  10521. #region 保存工单信息
  10522. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  10523. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  10524. workorderBLL.Update(modelT_Bus_WorkOrder);
  10525. #endregion
  10526. #region 删除草稿信息
  10527. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10528. foreach (var cg in cglist)
  10529. {
  10530. cg.F_IsDelete = 1;
  10531. cg.F_DeleteUser = userModel.F_UserCode;
  10532. cg.F_DeleteTime = DateTime.Now;
  10533. new BLL.T_Bus_VisitResult().Update(cg);
  10534. //保存回访记录
  10535. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10536. }
  10537. #endregion
  10538. var opt = "回访"; var cbreasons = "";
  10539. #region 重办
  10540. if (nexttype == 1)
  10541. {
  10542. #region 保存工单信息
  10543. #region 保存工单信息
  10544. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10545. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  10546. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10547. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10548. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  10549. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  10550. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  10551. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  10552. newmodelT_Bus_AssignedInfo.F_State = 1;
  10553. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  10554. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10555. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  10556. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10557. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  10558. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  10559. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  10560. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  10561. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  10562. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  10563. #region 保存工单信息
  10564. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  10565. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  10566. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  10567. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10568. 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());
  10569. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  10570. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  10571. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  10572. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  10573. modelT_Bus_WorkOrder.F_Result = "";
  10574. modelT_Bus_WorkOrder.F_DealDeptId = null;
  10575. modelT_Bus_WorkOrder.F_DealUser = "";
  10576. modelT_Bus_WorkOrder.F_DealTime = null;
  10577. workorderBLL.Update(modelT_Bus_WorkOrder);
  10578. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  10579. // workorderBLL.Update(modelT_Bus_WorkOrder);
  10580. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  10581. if (users != null && users.Count > 0)
  10582. {
  10583. foreach (var u in users)
  10584. {
  10585. if (!string.IsNullOrEmpty(u.F_Mobile))
  10586. {
  10587. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10588. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10589. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  10590. }
  10591. if (!string.IsNullOrEmpty(u.F_Telephone))
  10592. {
  10593. var userlist = u.F_Telephone.Split(',');
  10594. if (userlist != null)
  10595. {
  10596. foreach (var it in userlist)
  10597. {
  10598. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10599. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10600. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  10601. }
  10602. }
  10603. }
  10604. }
  10605. }
  10606. #endregion
  10607. #endregion
  10608. opt = "回访并提交重办";
  10609. cbreasons = ",重办原因:" + cbreason;
  10610. }
  10611. #endregion
  10612. #endregion
  10613. #region 插入操作记录
  10614. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10615. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10616. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  10617. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10618. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10619. string satisfie = "不满意";
  10620. if (issatisfie == 1)
  10621. satisfie = "满意";
  10622. else if (issatisfie == 2)
  10623. satisfie = "基本满意";
  10624. oper.F_Message = userinfo + " " + opt + "了工单,结果:" + satisfie + cbreasons;
  10625. oper.F_CreateUser = userModel.F_UserCode;
  10626. oper.F_CreateTime = DateTime.Now;
  10627. oper.F_IsDelete = 0;
  10628. operBLL.Add(oper);
  10629. //推送消息表
  10630. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10631. #endregion
  10632. #region 自动语音回访
  10633. if (issatisfie == 1)//如果满意就进行自动语音回访
  10634. {
  10635. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  10636. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  10637. {
  10638. string AutoCallMsg = string.Empty;
  10639. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  10640. }
  10641. }
  10642. #endregion
  10643. }
  10644. #endregion
  10645. trans.Complete();
  10646. }
  10647. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  10648. }
  10649. Task.Run(() =>
  10650. {
  10651. third.DwHandWorkorder(modelT_Bus_WorkOrder, userModel);
  10652. });
  10653. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  10654. }
  10655. else
  10656. {
  10657. return Error("已经办理过了");
  10658. }
  10659. }
  10660. else
  10661. {
  10662. return Error("权限不足");
  10663. }
  10664. }
  10665. else
  10666. {
  10667. return Error("操作失败");
  10668. }
  10669. }
  10670. else
  10671. {
  10672. return Error("权限不足");
  10673. }
  10674. }
  10675. #region 网格化对接
  10676. /// <summary>
  10677. /// 对接网格化
  10678. /// 工单查收操作
  10679. /// </summary>
  10680. /// <param name="usercode"></param>
  10681. /// <param name="workorderid"></param>
  10682. /// <returns></returns>
  10683. public string ReceiveWorkOrderByDock(string usercode, string workorderid,string content)
  10684. {
  10685. var returns = "";
  10686. using (TransactionScope trans = new TransactionScope())
  10687. {
  10688. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  10689. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10690. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10691. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10692. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10693. if (userModel != null)
  10694. {
  10695. if (modelT_Bus_WorkOrder == null)
  10696. msgss = "要办理的工单已不存在";
  10697. else if (modelT_Bus_AssignedInfo == null)
  10698. {
  10699. msgss = "工单无法处理或已被处理";
  10700. }
  10701. else
  10702. {
  10703. 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)
  10704. {
  10705. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10706. {
  10707. #region 保存工单信息
  10708. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  10709. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  10710. workorderBLL.Update(modelT_Bus_WorkOrder);
  10711. #endregion
  10712. #region 保存查收信息
  10713. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  10714. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10715. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10716. assignBLL.Update(modelT_Bus_AssignedInfo);
  10717. #endregion
  10718. #region 保存明细信息
  10719. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  10720. {
  10721. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  10722. foreach (string strid in strids)
  10723. {
  10724. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  10725. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10726. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  10727. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  10728. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  10729. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  10730. modelT_Bus_AssignedItemInfo.F_State = 1;
  10731. modelT_Bus_AssignedItemInfo.F_Type = 2;
  10732. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  10733. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  10734. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  10735. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  10736. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  10737. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  10738. }
  10739. }
  10740. #endregion
  10741. retbool = "true";
  10742. optmsg = " 查收了工单";
  10743. msgss = optmsg;
  10744. }
  10745. else
  10746. msgss = "工单已被查收";
  10747. assid = modelT_Bus_AssignedInfo.F_Id;
  10748. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10749. }
  10750. else
  10751. msgss = "工单已办理或已被重新指派";
  10752. }
  10753. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10754. }
  10755. else
  10756. {
  10757. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10758. msgss = "无法获取工号信息";
  10759. }
  10760. #region 插入操作记录
  10761. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10762. oper.F_WorkOrderId = workorderid;
  10763. oper.F_AssignedId = assid;
  10764. oper.F_State = state;
  10765. oper.F_Message = userinfo + " " + msgss + msgend;
  10766. oper.F_CreateUser = usercode;
  10767. oper.F_CreateTime = DateTime.Now;
  10768. oper.F_IsDelete = 0;
  10769. oper.F_Type = 1;
  10770. optid = operBLL.Add(oper).ToString();
  10771. #endregion
  10772. trans.Complete();
  10773. returns = retbool + "|" + optid + "|" + msgss;
  10774. }
  10775. return returns;
  10776. }
  10777. /// <summary>
  10778. /// 对接网格化 工单退回操作
  10779. /// </summary>
  10780. /// <returns></returns>
  10781. public string RebackWorkOrderByDock(string usercode,string workorderid,string backreason,string content)
  10782. {
  10783. var returns = "";
  10784. using (TransactionScope trans = new TransactionScope())
  10785. {
  10786. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  10787. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  10788. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10789. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10790. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10791. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10792. if (userModel != null)
  10793. {
  10794. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10795. if (modelT_Bus_WorkOrder == null)
  10796. msgss = "要办理的工单已不存在";
  10797. else if (modelT_Bus_AssignedInfo == null)
  10798. {
  10799. msgss = "工单无法处理或已被处理";
  10800. }
  10801. else
  10802. {
  10803. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10804. {
  10805. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10806. {
  10807. #region 保存工单信息
  10808. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  10809. workorderBLL.Update(modelT_Bus_WorkOrder);
  10810. #endregion
  10811. #region 插入退回申请信息
  10812. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  10813. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10814. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10815. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  10816. model_T_Bus_Feedback.F_IsAudit = 0;
  10817. model_T_Bus_Feedback.F_IsDelete = 0;
  10818. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  10819. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  10820. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  10821. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  10822. model_T_Bus_Feedback.F_State = 1;
  10823. model_T_Bus_Feedback.F_Type = 3;
  10824. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  10825. #endregion
  10826. #region 保存交办信息
  10827. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  10828. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10829. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10830. assignBLL.Update(modelT_Bus_AssignedInfo);
  10831. #endregion
  10832. #region 推送消息
  10833. retbool = "true";
  10834. optmsg = " 申请退回了工单";
  10835. //推送消息表
  10836. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10837. #endregion
  10838. msgss = optmsg;
  10839. }
  10840. else
  10841. msgss = "工单已被查收,不能退回";
  10842. assid = modelT_Bus_AssignedInfo.F_Id;
  10843. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10844. }
  10845. else
  10846. msgss = "工单已办理或已被重新指派";
  10847. }
  10848. }
  10849. else
  10850. {
  10851. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10852. msgss = "无法获取工号信息";
  10853. }
  10854. #region 插入操作记录
  10855. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10856. oper.F_WorkOrderId = workorderid;
  10857. oper.F_AssignedId = assid;
  10858. oper.F_State = state;
  10859. oper.F_Message = userinfo+" " + msgss + msgend;
  10860. oper.F_CreateUser = usercode;
  10861. oper.F_CreateTime = DateTime.Now;
  10862. oper.F_IsDelete = 0;
  10863. oper.F_Type = 1;
  10864. optid = operBLL.Add(oper).ToString();
  10865. #endregion
  10866. trans.Complete();
  10867. returns = retbool + "|" + optid + "|" + msgss;
  10868. }
  10869. return returns;
  10870. }
  10871. /// <summary>
  10872. /// 对接网格化办理
  10873. /// </summary>
  10874. /// <param name="usercode">工号</param>
  10875. /// <param name="workorderid">工单编号</param>
  10876. /// <param name="dealman">承办人人</param>
  10877. /// <param name="result">反馈内容</param>
  10878. /// <param name="files">附件</param>
  10879. /// <param name="prosituation">处理情况/方案/进程</param>
  10880. /// <param name="dealcontact">承办人联系方式</param>
  10881. /// <param name="connecttime">沟通时间</param>
  10882. /// <param name="connectmode">沟通方式</param>
  10883. /// <param name="replycontent">答复内容</param>
  10884. /// <param name="duties">职务</param>
  10885. /// <param name="situation">处理情况</param>
  10886. /// <param name="state">0保存,1保存并办理</param>
  10887. /// <param name="feedbackid"></param>
  10888. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  10889. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  10890. /// <returns></returns>
  10891. 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)
  10892. {
  10893. var returns = "";
  10894. using (TransactionScope trans = new TransactionScope())
  10895. {
  10896. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  10897. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10898. if (userModel != null)
  10899. {
  10900. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10901. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10902. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10903. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  10904. msgend = ",工单编号:" + workorderid;
  10905. int type = 0; var resmsg = ""; string typemsg = "办理";
  10906. if (modelT_Bus_WorkOrder == null)
  10907. msgss = "要办理的工单已不存在";
  10908. else if (modelT_Bus_AssignedInfo == null)
  10909. {
  10910. msgss = "工单无法处理";
  10911. }
  10912. else
  10913. {
  10914. type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  10915. if (type > 0)
  10916. {
  10917. #region 办理结果合成
  10918. result = "";
  10919. #region 获取部门
  10920. var deptname = "";
  10921. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  10922. {
  10923. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  10924. if (deptmodel != null)
  10925. deptname = deptmodel.F_DeptName;
  10926. }
  10927. #endregion
  10928. #region 获取来源
  10929. var sourcename = "";
  10930. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  10931. {
  10932. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  10933. if (dicmodel != null)
  10934. sourcename = dicmodel.F_Value;
  10935. }
  10936. #endregion
  10937. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  10938. var bljg = ""; var endstr = "";
  10939. if (isproresult == 1)
  10940. {
  10941. bljg = "已办理";
  10942. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  10943. {
  10944. var isStaisfiedRadioData = "未评价";
  10945. if (isstaisfied == 1)
  10946. {
  10947. isStaisfiedRadioData = "满意";
  10948. }
  10949. else if (isstaisfied == 2)
  10950. {
  10951. isStaisfiedRadioData = "基本满意";
  10952. }
  10953. else if (isstaisfied == 3)
  10954. {
  10955. isStaisfiedRadioData = "不满意";
  10956. }
  10957. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  10958. }
  10959. }
  10960. else if (isproresult == 2)
  10961. {
  10962. bljg = "未办理";
  10963. endstr = "; 处理方案/进程:" + prosituation;
  10964. }
  10965. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  10966. #endregion
  10967. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  10968. {
  10969. #region 处理办理
  10970. if (feedbackid == 0)
  10971. {
  10972. #region 插入反馈记录
  10973. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10974. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10975. modelT_Bus_Feedback.F_DealUser = dealman;
  10976. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10977. #region 20200114新增字段 zhengbingbing
  10978. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10979. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10980. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10981. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10982. DateTime contime = DateTime.Now;
  10983. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10984. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10985. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10986. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10987. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10988. modelT_Bus_Feedback.F_Duties = duties;//职务
  10989. modelT_Bus_Feedback.F_Situation = situation;
  10990. #endregion
  10991. modelT_Bus_Feedback.F_File = files;
  10992. modelT_Bus_Feedback.F_IsAudit = 0;
  10993. modelT_Bus_Feedback.F_IsDelete = 0;
  10994. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10995. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10996. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  10997. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10998. modelT_Bus_Feedback.F_State = state;
  10999. modelT_Bus_Feedback.F_Type = type;
  11000. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11001. #endregion
  11002. }
  11003. else
  11004. {
  11005. #region 修改反馈记录
  11006. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  11007. if (modelT_Bus_Feedback != null)
  11008. {
  11009. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11010. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11011. modelT_Bus_Feedback.F_DealUser = dealman;
  11012. modelT_Bus_Feedback.F_Result = result;//反馈内容
  11013. modelT_Bus_Feedback.F_File = files;
  11014. #region 20200114新增字段 zhengbingbing
  11015. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11016. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  11017. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11018. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  11019. DateTime contime = DateTime.Now;
  11020. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11021. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11022. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  11023. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  11024. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11025. modelT_Bus_Feedback.F_Duties = duties;//职务
  11026. modelT_Bus_Feedback.F_Situation = situation;
  11027. #endregion
  11028. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  11029. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11030. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11031. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11032. modelT_Bus_Feedback.F_State = state;
  11033. if (modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  11034. {
  11035. modelT_Bus_Feedback.F_Type = 1;
  11036. }
  11037. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(userModel.F_DeptId.ToString()))
  11038. {
  11039. modelT_Bus_Feedback.F_Type = 2;
  11040. }
  11041. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  11042. }
  11043. #endregion
  11044. }
  11045. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  11046. {
  11047. if (type == 1)
  11048. {
  11049. int iscs = 0;
  11050. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11051. {
  11052. iscs = 1;
  11053. }
  11054. #region 保存工单信息
  11055. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11056. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  11057. modelT_Bus_WorkOrder.F_Result = result;
  11058. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  11059. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  11060. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11061. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  11062. workorderBLL.Update(modelT_Bus_WorkOrder);
  11063. #endregion
  11064. #region 保存交办信息
  11065. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11066. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11067. {
  11068. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11069. }
  11070. assignBLL.Update(modelT_Bus_AssignedInfo);
  11071. #endregion
  11072. #region 删除草稿信息
  11073. 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 + "'");
  11074. foreach (var cg in cglist)
  11075. {
  11076. cg.F_IsDelete = 1;
  11077. cg.F_DeleteUser = userModel.F_UserCode;
  11078. cg.F_DeleteTime = DateTime.Now;
  11079. new BLL.T_Bus_Feedback().Update(cg);
  11080. }
  11081. #endregion
  11082. #region 删除二级单位未办理信息
  11083. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11084. foreach (var ej in ejlist)
  11085. {
  11086. ej.F_IsDelete = 1;
  11087. ej.F_DeleteUser = userModel.F_UserCode;
  11088. ej.F_DeleteTime = DateTime.Now;
  11089. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  11090. }
  11091. #endregion
  11092. #region 处理协办单位
  11093. 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 + "'");
  11094. foreach (var xb in xblist)
  11095. {
  11096. xb.F_State = 2;
  11097. xb.F_SureUser = userModel.F_UserCode;
  11098. xb.F_SureTime = DateTime.Now;
  11099. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11100. }
  11101. #endregion
  11102. typemsg = "主办";
  11103. }
  11104. else if (type == 2)
  11105. {
  11106. #region 保存明细信息
  11107. 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();
  11108. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  11109. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  11110. {
  11111. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  11112. }
  11113. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  11114. #endregion
  11115. #region 删除草稿信息
  11116. 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 + "'");
  11117. foreach (var cg in cglist)
  11118. {
  11119. cg.F_IsDelete = 1;
  11120. cg.F_DeleteUser = userModel.F_UserCode;
  11121. cg.F_DeleteTime = DateTime.Now;
  11122. new BLL.T_Bus_Feedback().Update(cg);
  11123. }
  11124. #endregion
  11125. typemsg = "协办";
  11126. }
  11127. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  11128. //推送消息表
  11129. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11130. }
  11131. #endregion
  11132. retbool = "true";
  11133. }
  11134. else
  11135. msgss = "工单已办理";
  11136. backid = modelT_Bus_Feedback.F_Id.ToString();
  11137. }
  11138. else
  11139. msgss = "工单已办理或已被重新指派";
  11140. assid = modelT_Bus_AssignedInfo.F_Id;
  11141. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  11142. }
  11143. msgend = resmsg + " " + typemsg + "了工单";
  11144. }
  11145. else
  11146. {
  11147. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  11148. msgss = "无法获取工号信息";
  11149. }
  11150. #region 插入操作记录
  11151. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11152. oper.F_WorkOrderId = workorderid;
  11153. oper.F_AssignedId = assid;
  11154. oper.F_State = wostate;
  11155. oper.F_Message = userinfo + msgend;
  11156. oper.F_CreateUser = usercode;
  11157. oper.F_CreateTime = DateTime.Now;
  11158. oper.F_IsDelete = 0;
  11159. oper.F_Type = 1;
  11160. oper.F_File = files;
  11161. operBLL.Add(oper);
  11162. #endregion
  11163. trans.Complete();
  11164. returns = retbool + "|" + backid + "|" + msgss;
  11165. }
  11166. return returns;
  11167. }
  11168. /// <summary>
  11169. /// 对接网格化,记录办理过程
  11170. /// </summary>
  11171. /// <param name="usercode"></param>
  11172. /// <param name="workorderid"></param>
  11173. /// <param name="content"></param>
  11174. /// <returns></returns>
  11175. public string DealProcessWorkOrderByDock(string usercode,string workorderid,string content)
  11176. {
  11177. var returns = "";
  11178. using (TransactionScope trans = new TransactionScope())
  11179. {
  11180. var assid = 0; var msgend = ""; var state = 0;var userinfo = "";var msgss = ""; var optid = string.Empty; var retbool = "false";
  11181. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  11182. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11183. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11184. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  11185. if (userModel != null)
  11186. {
  11187. if (modelT_Bus_WorkOrder == null)
  11188. msgss = "要办理的工单已不存在";
  11189. else if (modelT_Bus_AssignedInfo == null)
  11190. {
  11191. msgss = "工单无法处理或已被处理";
  11192. }
  11193. else
  11194. {
  11195. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  11196. {
  11197. msgss = "办理工单";
  11198. retbool = "true";
  11199. assid = modelT_Bus_AssignedInfo.F_Id;
  11200. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  11201. }
  11202. else
  11203. {
  11204. msgss = "工单无法处理";
  11205. }
  11206. }
  11207. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11208. }
  11209. else
  11210. {
  11211. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  11212. msgss = "无法获取工号信息";
  11213. }
  11214. #region 插入操作记录
  11215. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11216. oper.F_WorkOrderId = workorderid;
  11217. oper.F_AssignedId = assid;
  11218. oper.F_State = state;
  11219. oper.F_Message = userinfo + msgend;
  11220. oper.F_CreateUser = usercode;
  11221. oper.F_CreateTime = DateTime.Now;
  11222. oper.F_IsDelete = 0;
  11223. oper.F_Type = 1;
  11224. optid = operBLL.Add(oper).ToString();
  11225. #endregion
  11226. trans.Complete();
  11227. returns = retbool + "|" + optid + "|" + msgss;
  11228. }
  11229. return returns;
  11230. }
  11231. #endregion
  11232. /// <summary>
  11233. /// 派工单
  11234. /// </summary>
  11235. /// <returns></returns>
  11236. [Authority]
  11237. public ActionResult SplitWorkOrder()
  11238. {
  11239. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11240. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11241. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11242. {
  11243. string workorderid = RequestString.GetFormString("workorderid");
  11244. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11245. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11246. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11247. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11248. string files = RequestString.GetFormString("files");
  11249. int state = RequestString.GetInt("state", 0);
  11250. int nextid = RequestString.GetInt("nextid", 0);
  11251. if (limittime < DateTime.Now)
  11252. {
  11253. return Error("办理时限不能小于当前时间");
  11254. }
  11255. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11256. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11257. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11258. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11259. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11260. {
  11261. int type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  11262. //if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == 4) || userModel.F_RoleCode == "GLY")
  11263. if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing) || (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  11264. {
  11265. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0)
  11266. {
  11267. using (TransactionScope trans = new TransactionScope())
  11268. {
  11269. if (nextid == 0)
  11270. {
  11271. #region 插入派单记录
  11272. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11273. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11274. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11275. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11276. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11277. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11278. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  11279. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11280. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11281. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11282. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11283. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11284. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11285. #endregion
  11286. }
  11287. else
  11288. {
  11289. #region 修改派单记录
  11290. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  11291. if (modelT_Bus_AssignedInfo_Next != null)
  11292. {
  11293. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11294. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11295. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11296. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11297. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11298. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  11299. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11300. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11301. }
  11302. #endregion
  11303. }
  11304. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  11305. {
  11306. #region 保存交办信息
  11307. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11308. modelT_Bus_AssignedInfo.F_NextUser = userModel.F_UserCode;
  11309. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11310. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11311. #endregion
  11312. #region 保存工单信息
  11313. modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  11314. workorderBLL.Update(modelT_Bus_WorkOrder);
  11315. #endregion
  11316. #region 插入操作记录
  11317. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11318. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11319. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11320. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11321. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11322. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11323. oper.F_CreateUser = userModel.F_UserCode;
  11324. oper.F_CreateTime = DateTime.Now;
  11325. oper.F_IsDelete = 0;
  11326. operBLL.Add(oper);
  11327. //推送消息表
  11328. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11329. #endregion
  11330. }
  11331. trans.Complete();
  11332. }
  11333. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11334. }
  11335. else
  11336. {
  11337. return Error("已经派过单了");
  11338. }
  11339. }
  11340. else
  11341. {
  11342. return Error("操作失败");
  11343. }
  11344. }
  11345. else
  11346. {
  11347. return Error("操作失败");
  11348. }
  11349. }
  11350. else
  11351. {
  11352. return Error("权限不足");
  11353. }
  11354. }
  11355. /// <summary>
  11356. /// 撤回工单
  11357. /// </summary>
  11358. /// <returns></returns>
  11359. [Authority]
  11360. public ActionResult WithdrawWorkOrder()
  11361. {
  11362. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11363. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11364. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11365. {
  11366. string workorderid = RequestString.GetFormString("workorderid");
  11367. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11368. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11369. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11370. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  11371. {
  11372. using (TransactionScope trans = new TransactionScope())
  11373. {
  11374. #region 保存撤单信息
  11375. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  11376. modelT_Bus_AssignedInfo_Next.F_DeleteUser = userModel.F_UserCode;
  11377. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  11378. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11379. #endregion
  11380. #region 删除处理信息
  11381. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  11382. foreach (var cg in cglist)
  11383. {
  11384. cg.F_IsDelete = 1;
  11385. cg.F_DeleteUser = userModel.F_UserCode;
  11386. cg.F_DeleteTime = DateTime.Now;
  11387. new BLL.T_Bus_Feedback_Next().Update(cg);
  11388. }
  11389. #endregion
  11390. #region 保存交办信息
  11391. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11392. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11393. #endregion
  11394. #region 保存工单信息
  11395. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11396. workorderBLL.Update(modelT_Bus_WorkOrder);
  11397. #endregion
  11398. #region 插入操作记录
  11399. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11400. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11401. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11402. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11403. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11404. oper.F_Message = userinfo + " 撤回了工单";
  11405. oper.F_CreateUser = userModel.F_UserCode;
  11406. oper.F_CreateTime = DateTime.Now;
  11407. oper.F_IsDelete = 0;
  11408. operBLL.Add(oper);
  11409. #endregion
  11410. trans.Complete();
  11411. }
  11412. return Success("操作成功");
  11413. }
  11414. else
  11415. {
  11416. return Error("操作失败");
  11417. }
  11418. }
  11419. else
  11420. {
  11421. return Error("权限不足");
  11422. }
  11423. }
  11424. /// <summary>
  11425. /// 签收工单
  11426. /// </summary>
  11427. /// <returns></returns>
  11428. [Authority]
  11429. public ActionResult SignWorkOrder()
  11430. {
  11431. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11432. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11433. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11434. {
  11435. string workorderid = RequestString.GetFormString("workorderid");
  11436. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11437. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11438. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11439. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11440. {
  11441. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11442. {
  11443. using (TransactionScope trans = new TransactionScope())
  11444. {
  11445. #region 保存签收信息
  11446. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  11447. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11448. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11449. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11450. #endregion
  11451. #region 保存交办信息
  11452. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11453. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11454. #endregion
  11455. #region 插入操作记录
  11456. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11457. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11458. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11459. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11460. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11461. oper.F_Message = userinfo + " 签收了工单";
  11462. oper.F_CreateUser = userModel.F_UserCode;
  11463. oper.F_CreateTime = DateTime.Now;
  11464. oper.F_IsDelete = 0;
  11465. operBLL.Add(oper);
  11466. #endregion
  11467. trans.Complete();
  11468. }
  11469. return Success("操作成功");
  11470. }
  11471. else
  11472. {
  11473. return Error("单位已签收,不能再次签收");
  11474. }
  11475. }
  11476. else
  11477. {
  11478. return Error("操作失败");
  11479. }
  11480. }
  11481. else
  11482. {
  11483. return Error("权限不足");
  11484. }
  11485. }
  11486. /// <summary>
  11487. /// 拒收工单
  11488. /// </summary>
  11489. /// <returns></returns>
  11490. [Authority]
  11491. public ActionResult RefuseWorkOrder()
  11492. {
  11493. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11494. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11495. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11496. {
  11497. string workorderid = RequestString.GetFormString("workorderid");
  11498. string reason = RequestString.GetFormString("reason");
  11499. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11500. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11501. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11502. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11503. {
  11504. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11505. {
  11506. using (TransactionScope trans = new TransactionScope())
  11507. {
  11508. #region 保存签收信息
  11509. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  11510. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11511. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11512. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11513. #endregion
  11514. #region 保存交办信息
  11515. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11516. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11517. #endregion
  11518. #region 保存工单信息
  11519. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11520. workorderBLL.Update(modelT_Bus_WorkOrder);
  11521. #endregion
  11522. #region 插入操作记录
  11523. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11524. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11525. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11526. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11527. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11528. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  11529. oper.F_CreateUser = userModel.F_UserCode;
  11530. oper.F_CreateTime = DateTime.Now;
  11531. oper.F_IsDelete = 0;
  11532. operBLL.Add(oper);
  11533. #endregion
  11534. trans.Complete();
  11535. }
  11536. return Success("操作成功");
  11537. }
  11538. else
  11539. {
  11540. return Error("单位已签收,不能再次签收");
  11541. }
  11542. }
  11543. else
  11544. {
  11545. return Error("操作失败");
  11546. }
  11547. }
  11548. else
  11549. {
  11550. return Error("权限不足");
  11551. }
  11552. }
  11553. /// <summary>
  11554. /// 处理工单
  11555. /// </summary>
  11556. /// <returns></returns>
  11557. [Authority]
  11558. public ActionResult DealWorkOrder()
  11559. {
  11560. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11561. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11562. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11563. {
  11564. string workorderid = RequestString.GetFormString("workorderid");
  11565. string dealman = RequestString.GetFormString("dealman");
  11566. string result = RequestString.GetFormString("result");
  11567. string files = RequestString.GetFormString("files");
  11568. int state = RequestString.GetInt("state", 0);
  11569. int dealid = RequestString.GetInt("dealid", 0);
  11570. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  11571. string prosituation = RequestString.GetFormString("prosituation");
  11572. string dealcontact = RequestString.GetFormString("dealcontact");
  11573. string connecttime = RequestString.GetFormString("connecttime");
  11574. string connectmode = RequestString.GetFormString("connectmode");
  11575. string replycontent = RequestString.GetFormString("replycontent");
  11576. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  11577. string duties = RequestString.GetFormString("duties");//职务
  11578. string situation = RequestString.GetFormString("situation");
  11579. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11580. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11581. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11582. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  11583. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId
  11584. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  11585. {
  11586. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  11587. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  11588. {
  11589. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  11590. {
  11591. using (TransactionScope trans = new TransactionScope())
  11592. {
  11593. if (dealid == 0)
  11594. {
  11595. #region 插入反馈记录
  11596. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11597. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11598. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11599. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11600. #region 20200114新增字段 zhengbingbing
  11601. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11602. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11603. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11604. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11605. DateTime contime = DateTime.Now;
  11606. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11607. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11608. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11609. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11610. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11611. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11612. modelT_Bus_Feedback_Next.F_Situation = situation;
  11613. #endregion
  11614. modelT_Bus_Feedback_Next.F_File = files;
  11615. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  11616. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  11617. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11618. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11619. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11620. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11621. modelT_Bus_Feedback_Next.F_State = state;
  11622. modelT_Bus_Feedback_Next.F_Type = 1;
  11623. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  11624. #endregion
  11625. }
  11626. else
  11627. {
  11628. #region 修改反馈记录
  11629. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  11630. if (modelT_Bus_Feedback_Next != null)
  11631. {
  11632. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11633. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11634. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11635. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11636. modelT_Bus_Feedback_Next.F_File = files;
  11637. #region 20200114新增字段 zhengbingbing
  11638. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11639. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11640. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11641. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11642. DateTime contime = DateTime.Now;
  11643. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11644. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11645. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11646. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11647. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11648. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11649. modelT_Bus_Feedback_Next.F_Situation = situation;
  11650. #endregion
  11651. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11652. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11653. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11654. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11655. modelT_Bus_Feedback_Next.F_State = state;
  11656. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11657. }
  11658. #endregion
  11659. }
  11660. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  11661. {
  11662. #region 保存交办信息
  11663. modelT_Bus_AssignedInfo.F_IsNext = 3;
  11664. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11665. #endregion
  11666. #region 保存派单信息
  11667. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  11668. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  11669. {
  11670. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  11671. }
  11672. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11673. #endregion
  11674. #region 删除草稿信息
  11675. 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 + "'");
  11676. foreach (var cg in cglist)
  11677. {
  11678. cg.F_IsDelete = 1;
  11679. cg.F_DeleteUser = userModel.F_UserCode;
  11680. cg.F_DeleteTime = DateTime.Now;
  11681. new BLL.T_Bus_Feedback_Next().Update(cg);
  11682. }
  11683. #endregion
  11684. #region 插入操作记录
  11685. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11686. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11687. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11688. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11689. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11690. oper.F_Message = userinfo + " 办理了工单";
  11691. oper.F_CreateUser = userModel.F_UserCode;
  11692. oper.F_CreateTime = DateTime.Now;
  11693. oper.F_IsDelete = 0;
  11694. operBLL.Add(oper);
  11695. //推送消息表
  11696. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11697. #endregion
  11698. }
  11699. trans.Complete();
  11700. }
  11701. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11702. }
  11703. else
  11704. {
  11705. return Error("已经办理过了");
  11706. }
  11707. }
  11708. else
  11709. {
  11710. return Error("已经办理过了");
  11711. }
  11712. }
  11713. else
  11714. {
  11715. return Error("操作失败");
  11716. }
  11717. }
  11718. else
  11719. {
  11720. return Error("权限不足");
  11721. }
  11722. }
  11723. /// <summary>
  11724. /// 审核派单
  11725. /// </summary>
  11726. /// <returns></returns>
  11727. [Authority]
  11728. public ActionResult AuditSplitWorkOrder()
  11729. {
  11730. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11731. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11732. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11733. {
  11734. string workorderid = RequestString.GetFormString("workorderid");
  11735. int state = RequestString.GetInt("state", 0);
  11736. string reason = RequestString.GetFormString("reason");
  11737. int backid = RequestString.GetInt("backid", 0);
  11738. string files = RequestString.GetFormString("files");
  11739. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11740. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11741. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  11742. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  11743. {
  11744. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  11745. {
  11746. using (TransactionScope trans = new TransactionScope())
  11747. {
  11748. modelT_Bus_Feedback_Next.F_IsAudit = state;
  11749. modelT_Bus_Feedback_Next.F_AuditUser = userModel.F_UserCode;
  11750. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  11751. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  11752. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11753. string strmsg = "";
  11754. if (state == 1)
  11755. {
  11756. strmsg = "同意";
  11757. #region 插入反馈记录
  11758. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  11759. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11760. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11761. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  11762. modelT_Bus_Feedback.F_Result = modelT_Bus_Feedback_Next.F_Result;//反馈内容
  11763. #region 20200114新增字段 zhengbingbing
  11764. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  11765. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  11766. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  11767. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  11768. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  11769. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  11770. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  11771. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11772. #endregion
  11773. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  11774. modelT_Bus_Feedback.F_IsAudit = 0;
  11775. modelT_Bus_Feedback.F_IsDelete = 0;
  11776. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  11777. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11778. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11779. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11780. modelT_Bus_Feedback.F_State = state;
  11781. modelT_Bus_Feedback.F_Type = 1;
  11782. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11783. #endregion
  11784. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11785. {
  11786. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11787. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  11788. }
  11789. #region 保存工单信息
  11790. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11791. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  11792. modelT_Bus_WorkOrder.F_Result = modelT_Bus_Feedback_Next.F_Result;
  11793. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  11794. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  11795. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11796. workorderBLL.Update(modelT_Bus_WorkOrder);
  11797. #endregion
  11798. #region 保存交办信息
  11799. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11800. assignBLL.Update(modelT_Bus_AssignedInfo);
  11801. #endregion
  11802. #region 删除草稿信息
  11803. 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 + "'");
  11804. foreach (var cg in cglist)
  11805. {
  11806. cg.F_IsDelete = 1;
  11807. cg.F_DeleteUser = userModel.F_UserCode;
  11808. cg.F_DeleteTime = DateTime.Now;
  11809. new BLL.T_Bus_Feedback().Update(cg);
  11810. }
  11811. #endregion
  11812. #region 处理协办单位
  11813. 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 + "'");
  11814. foreach (var xb in xblist)
  11815. {
  11816. xb.F_State = 2;
  11817. xb.F_SureUser = userModel.F_UserCode;
  11818. xb.F_SureTime = DateTime.Now;
  11819. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11820. }
  11821. #endregion
  11822. }
  11823. else if (state == 2)
  11824. {
  11825. strmsg = "拒绝";
  11826. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11827. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  11828. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  11829. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11830. assignBLL.Update(modelT_Bus_AssignedInfo);
  11831. //#region 插入派单记录
  11832. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11833. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11834. //modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11835. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo_Next1.F_LimitTime;//办理时限
  11836. //modelT_Bus_AssignedInfo_Next.F_MainDeptId = modelT_Bus_AssignedInfo_Next1.F_MainDeptId;//主办单位id
  11837. //modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = modelT_Bus_AssignedInfo_Next1.F_OtherDeptIds;//协办单位id
  11838. //modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = reason;//交办意见
  11839. //modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11840. //modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  11841. //modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11842. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11843. //modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11844. //modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11845. //modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11846. //modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11847. //#endregion
  11848. }
  11849. #region 插入操作记录
  11850. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11851. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11852. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11853. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11854. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11855. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  11856. oper.F_CreateUser = userModel.F_UserCode;
  11857. oper.F_CreateTime = DateTime.Now;
  11858. oper.F_IsDelete = 0;
  11859. operBLL.Add(oper);
  11860. //推送消息表
  11861. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11862. #endregion
  11863. trans.Complete();
  11864. }
  11865. return Success("操作成功");
  11866. }
  11867. else
  11868. {
  11869. return Error("已经审核过了");
  11870. }
  11871. }
  11872. else
  11873. {
  11874. return Error("操作失败");
  11875. }
  11876. }
  11877. else
  11878. {
  11879. return Error("权限不足");
  11880. }
  11881. }
  11882. /// <summary>
  11883. /// 回访工单
  11884. /// </summary>
  11885. /// <returns></returns>
  11886. [Authority]
  11887. public ActionResult VisitWorkOrder()
  11888. {
  11889. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11890. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11891. //if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  11892. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11893. {
  11894. string workorderid = RequestString.GetFormString("workorderid");
  11895. string visituser = RequestString.GetFormString("visituser");//回访人
  11896. int type = RequestString.GetInt("type", 0);//回访方式
  11897. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  11898. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));//不满意,重办的办理时限
  11899. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  11900. int visitid = RequestString.GetInt("visitid", 0);
  11901. string result = RequestString.GetFormString("result");//回访情况
  11902. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2结案
  11903. //string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  11904. //string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  11905. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  11906. string callid = RequestString.GetFormString("callid");
  11907. string guid = RequestString.GetFormString("guid");
  11908. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11909. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11910. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  11911. if (modelT_Bus_WorkOrder != null)
  11912. {
  11913. //if (modelT_Bus_WorkOrder.F_WorkState == 6)
  11914. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  11915. {
  11916. using (TransactionScope trans = new TransactionScope())
  11917. {
  11918. #region 回访
  11919. if (visitid == 0)
  11920. {
  11921. #region 新增回访结果记录
  11922. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11923. modelT_Bus_VisitResult.F_AssignedId = 0;
  11924. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11925. modelT_Bus_VisitResult.F_Type = type;
  11926. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11927. modelT_Bus_VisitResult.F_Result = result;
  11928. modelT_Bus_VisitResult.F_State = state;
  11929. if (!string.IsNullOrEmpty(callid))
  11930. {
  11931. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11932. if (rd != null)
  11933. {
  11934. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11935. }
  11936. }
  11937. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11938. modelT_Bus_VisitResult.F_IsDelete = 0;
  11939. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11940. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11941. if (modelT_Bus_AssignedInfo != null)
  11942. {
  11943. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11944. }
  11945. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11946. modelT_Bus_VisitResult.F_Id = id;
  11947. //保存回访记录
  11948. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11949. #endregion
  11950. }
  11951. else
  11952. {
  11953. #region 修改回访结果记录
  11954. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  11955. if (modelT_Bus_VisitResult != null)
  11956. {
  11957. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11958. modelT_Bus_VisitResult.F_AssignedId = 0;
  11959. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11960. modelT_Bus_VisitResult.F_Type = type;
  11961. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11962. modelT_Bus_VisitResult.F_Result = result;
  11963. modelT_Bus_VisitResult.F_State = state;
  11964. if (!string.IsNullOrEmpty(callid))
  11965. {
  11966. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11967. if (rd != null)
  11968. {
  11969. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11970. }
  11971. }
  11972. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11973. modelT_Bus_VisitResult.F_IsDelete = 0;
  11974. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11975. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11976. if (modelT_Bus_AssignedInfo != null)
  11977. {
  11978. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11979. }
  11980. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11981. modelT_Bus_VisitResult.F_Id = id;
  11982. //保存回访记录
  11983. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11984. }
  11985. #endregion
  11986. }
  11987. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  11988. {
  11989. #region 保存交办信息
  11990. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  11991. assignBLL.Update(modelT_Bus_AssignedInfo);
  11992. #endregion
  11993. #region 保存工单信息
  11994. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  11995. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  11996. workorderBLL.Update(modelT_Bus_WorkOrder);
  11997. #endregion
  11998. #region 删除草稿信息
  11999. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12000. foreach (var cg in cglist)
  12001. {
  12002. cg.F_IsDelete = 1;
  12003. cg.F_DeleteUser = userModel.F_UserCode;
  12004. cg.F_DeleteTime = DateTime.Now;
  12005. new BLL.T_Bus_VisitResult().Update(cg);
  12006. //保存回访记录
  12007. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  12008. }
  12009. #endregion
  12010. var opt = "回访"; var cbreasons = "";
  12011. #region 重办
  12012. if (nexttype == 1)
  12013. {
  12014. #region 保存工单信息
  12015. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  12016. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12017. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12018. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;//办理时限
  12019. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId ;//主办单位id
  12020. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds ;//协办单位id
  12021. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  12022. newmodelT_Bus_AssignedInfo.F_State = 1;
  12023. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12024. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12025. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12026. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12027. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12028. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12029. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12030. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12031. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12032. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12033. #region 保存工单信息
  12034. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12035. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12036. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12037. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12038. 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());
  12039. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12040. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12041. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12042. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12043. modelT_Bus_WorkOrder.F_Result = "";
  12044. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12045. modelT_Bus_WorkOrder.F_DealUser = "";
  12046. modelT_Bus_WorkOrder.F_DealTime = null;
  12047. workorderBLL.Update(modelT_Bus_WorkOrder);
  12048. #endregion
  12049. #region 插入操作记录
  12050. #region 20191021调整为多个主办单位时调整
  12051. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12052. #endregion
  12053. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12054. if (users != null && users.Count > 0)
  12055. {
  12056. foreach (var u in users)
  12057. {
  12058. if (!string.IsNullOrEmpty(u.F_Mobile))
  12059. {
  12060. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12061. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12062. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12063. }
  12064. if (!string.IsNullOrEmpty(u.F_Telephone))
  12065. {
  12066. var userlist = u.F_Telephone.Split(',');
  12067. if (userlist != null)
  12068. {
  12069. foreach (var it in userlist)
  12070. {
  12071. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12072. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12073. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  12074. }
  12075. }
  12076. }
  12077. }
  12078. }
  12079. #endregion
  12080. workorderBLL.Update(modelT_Bus_WorkOrder);
  12081. #endregion
  12082. opt = "回访并提交重办";
  12083. cbreasons = ",重办原因:"+ cbreason;
  12084. }
  12085. #endregion
  12086. #region 插入操作记录
  12087. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12088. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12089. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  12090. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12091. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12092. string satisfie = "不满意";
  12093. if (issatisfie == 1)
  12094. satisfie = "满意";
  12095. else if (issatisfie == 2)
  12096. satisfie = "基本满意";
  12097. oper.F_Message = userinfo+" " + opt + "了工单,结果:" + satisfie + cbreasons;
  12098. oper.F_CreateUser = userModel.F_UserCode;
  12099. oper.F_CreateTime = DateTime.Now;
  12100. oper.F_IsDelete = 0;
  12101. operBLL.Add(oper);
  12102. //推送消息表
  12103. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12104. #endregion
  12105. #region 自动语音回访
  12106. if (issatisfie == 1)//如果满意就进行自动语音回访
  12107. {
  12108. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  12109. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  12110. {
  12111. string AutoCallMsg = string.Empty;
  12112. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  12113. }
  12114. }
  12115. #endregion
  12116. }
  12117. #endregion
  12118. trans.Complete();
  12119. }
  12120. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  12121. }
  12122. else
  12123. {
  12124. return Error("已经回访过了");
  12125. }
  12126. }
  12127. else
  12128. {
  12129. return Error("操作失败");
  12130. }
  12131. }
  12132. else
  12133. {
  12134. return Error("权限不足");
  12135. }
  12136. }
  12137. #region 20200311 zhengbingbing 增加履职界定操作
  12138. /// <summary>
  12139. /// 履职
  12140. /// </summary>
  12141. /// <returns></returns>
  12142. [Authority]
  12143. public ActionResult PerformWorkOrder()
  12144. {
  12145. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12146. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12147. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12148. {//承办单位和管理员
  12149. string workorderid = RequestString.GetFormString("workorderid");
  12150. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  12151. int perid = RequestString.GetInt("perid", 0);
  12152. string file = RequestString.GetFormString("file");
  12153. string result = RequestString.GetFormString("result");
  12154. string guid = RequestString.GetFormString("guid");
  12155. string visitids = RequestString.GetFormString("visitids");
  12156. if (string.IsNullOrWhiteSpace(visitids))
  12157. return Error("请选择你要履职的回访记录");
  12158. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12159. List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in ("+ visitids + ")");
  12160. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  12161. if (modelT_Bus_WorkOrder != null)
  12162. {
  12163. 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)
  12164. {//已回访,重办待交办,重办中,重办驳回,已结案
  12165. using (TransactionScope trans = new TransactionScope())
  12166. {
  12167. var assids = ""; //读取对应的交办记录
  12168. #region 读取对应的交办id
  12169. foreach (var item in listT_Bus_VisitResult)
  12170. {
  12171. if (item.F_AssignedId != null && item.F_AssignedId != 0)
  12172. assids = item.F_AssignedId + ",";
  12173. }
  12174. assids = assids.Trim(',');
  12175. #endregion
  12176. #region 履职
  12177. if (perid == 0)
  12178. {
  12179. #region 新增履职记录
  12180. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12181. modelT_Bus_PerformDuties.F_AssignedId = assids;
  12182. modelT_Bus_PerformDuties.F_VisitId = visitids;
  12183. modelT_Bus_PerformDuties.F_File = file;
  12184. modelT_Bus_PerformDuties.F_State = state;
  12185. modelT_Bus_PerformDuties.F_Result = result;
  12186. modelT_Bus_PerformDuties.F_IsAudit = 0;
  12187. modelT_Bus_PerformDuties.F_IsDelete = 0;
  12188. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  12189. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  12190. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  12191. int id=new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  12192. modelT_Bus_PerformDuties.F_Id = id;
  12193. //保存回访记录
  12194. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  12195. #endregion
  12196. }
  12197. else
  12198. {
  12199. #region 修改履职记录
  12200. modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  12201. if (modelT_Bus_PerformDuties != null)
  12202. {
  12203. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12204. modelT_Bus_PerformDuties.F_AssignedId = assids;
  12205. modelT_Bus_PerformDuties.F_VisitId = visitids;
  12206. modelT_Bus_PerformDuties.F_File = file;
  12207. modelT_Bus_PerformDuties.F_State = state;
  12208. modelT_Bus_PerformDuties.F_Result = result;
  12209. modelT_Bus_PerformDuties.F_IsAudit = 0;
  12210. modelT_Bus_PerformDuties.F_IsDelete = 0;
  12211. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  12212. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  12213. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  12214. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  12215. modelT_Bus_PerformDuties.F_Id = id;
  12216. //保存回访记录
  12217. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  12218. }
  12219. #endregion
  12220. }
  12221. if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  12222. {
  12223. #region 保存交办信息
  12224. foreach (var item in assids.Split(','))
  12225. {
  12226. var model = assignBLL.GetModel(int.Parse(item));
  12227. if (model != null)
  12228. {
  12229. model.F_IsPerform = 1;
  12230. assignBLL.Update(model);
  12231. }
  12232. }
  12233. #endregion
  12234. #region
  12235. foreach (var item in listT_Bus_VisitResult)
  12236. {
  12237. item.F_IsPerform = 1;
  12238. new BLL.T_Bus_VisitResult().Update(item);
  12239. }
  12240. #endregion
  12241. #region 删除草稿信息
  12242. 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 + "' ");
  12243. foreach (var cg in cglist)
  12244. {
  12245. cg.F_IsDelete = 1;
  12246. cg.F_DeleteUser = userModel.F_UserCode;
  12247. cg.F_DeleteTime = DateTime.Now;
  12248. new BLL.T_Bus_PerformDuties().Update(cg);
  12249. new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, userModel.F_UserCode, guid);
  12250. }
  12251. #endregion
  12252. var opt = "履职界定";
  12253. #region 插入操作记录
  12254. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12255. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12256. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12257. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12258. oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  12259. oper.F_File = modelT_Bus_PerformDuties.F_File;
  12260. oper.F_CreateUser = userModel.F_UserCode;
  12261. oper.F_CreateTime = DateTime.Now;
  12262. oper.F_IsDelete = 0;
  12263. foreach (var item in assids.Split(','))
  12264. {
  12265. oper.F_AssignedId = int.Parse(item);
  12266. operBLL.Add(oper);
  12267. //推送消息表 履职界定消息目前推送给工号8666
  12268. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", userModel.F_UserCode, (int)EnumSmsType.workorder);
  12269. }
  12270. #endregion
  12271. }
  12272. #endregion
  12273. trans.Complete();
  12274. }
  12275. return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  12276. }
  12277. else
  12278. {
  12279. return Error("此状态下不能进行履职操作");
  12280. }
  12281. }
  12282. else
  12283. {
  12284. return Error("操作失败");
  12285. }
  12286. }
  12287. else
  12288. {
  12289. return Error("权限不足");
  12290. }
  12291. }
  12292. /// <summary>
  12293. /// 履职界定审核
  12294. /// </summary>
  12295. /// <returns></returns>
  12296. [Authority]
  12297. public ActionResult DefinitionWorkOrder() {
  12298. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12299. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12300. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12301. {
  12302. string workorderid = RequestString.GetFormString("workorderid");
  12303. int state = RequestString.GetInt("state", 0);
  12304. string reason = RequestString.GetFormString("reason");
  12305. int perid = RequestString.GetInt("perid", 0);
  12306. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12307. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  12308. if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  12309. {
  12310. if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  12311. {
  12312. using (TransactionScope trans = new TransactionScope())
  12313. {
  12314. #region 保存履职界定信息
  12315. modelT_Bus_PerformDuties.F_IsAudit = state;
  12316. modelT_Bus_PerformDuties.F_AuditUser = userModel.F_UserCode;
  12317. modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  12318. modelT_Bus_PerformDuties.F_AuditReason = reason;
  12319. new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  12320. #endregion
  12321. string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  12322. #region
  12323. if (state == 1)
  12324. {
  12325. strmsg = "同意";
  12326. isperform = 2;
  12327. IsSatisfie = 1;
  12328. }
  12329. else if (state == 2)
  12330. {
  12331. strmsg = "拒绝";
  12332. isperform = 3;
  12333. }
  12334. #endregion
  12335. #region 交办记录处理
  12336. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  12337. {
  12338. var model = assignBLL.GetModel(int.Parse(item));
  12339. if (model != null)
  12340. {
  12341. model.F_IsPerform = isperform;
  12342. if (state == 1)//同意此履职界定则修改回访结果为满意
  12343. model.F_IsSatisfie = IsSatisfie;
  12344. assignBLL.Update(model);
  12345. }
  12346. }
  12347. #endregion
  12348. #region 回访记录处理
  12349. foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  12350. {
  12351. var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  12352. if (model != null)
  12353. {
  12354. model.F_IsPerform = isperform;
  12355. if (state == 1)//同意此履职界定则修改回访结果为满意
  12356. model.F_IsSatisfie = IsSatisfie;
  12357. new BLL.T_Bus_VisitResult().Update(model);
  12358. }
  12359. }
  12360. #endregion
  12361. #region 插入操作记录
  12362. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12363. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12364. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12365. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12366. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  12367. if (!string.IsNullOrWhiteSpace(reason))
  12368. oper.F_Message = oper.F_Message + ",理由为:"+ reason;
  12369. oper.F_CreateUser = userModel.F_UserCode;
  12370. oper.F_CreateTime = DateTime.Now;
  12371. oper.F_IsDelete = 0;
  12372. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  12373. {
  12374. oper.F_AssignedId = int.Parse(item);
  12375. operBLL.Add(oper);
  12376. //推送消息表
  12377. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12378. }
  12379. #endregion
  12380. trans.Complete();
  12381. }
  12382. return Success("操作成功");
  12383. }
  12384. else
  12385. return Error("已经审核过了");
  12386. }
  12387. else
  12388. return Error("操作失败");
  12389. }
  12390. else
  12391. return Error("权限不足");
  12392. }
  12393. #endregion
  12394. /// <summary>
  12395. /// 督办或监察工单
  12396. /// </summary>
  12397. /// <returns></returns>
  12398. [Authority]
  12399. public ActionResult RemindWorkOrder()
  12400. {
  12401. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12402. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12403. string workorderid = RequestString.GetFormString("workorderid");
  12404. int type = RequestString.GetInt("type", 0);//1督办 2监察
  12405. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  12406. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12407. string files = RequestString.GetFormString("files");
  12408. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12409. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12410. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  12411. {
  12412. using (TransactionScope trans = new TransactionScope())
  12413. {
  12414. #region 插入督办记录
  12415. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12416. if (type == 1 && state > 0)
  12417. {
  12418. 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();
  12419. if(modelT_Bus_RemindRecord!=null)
  12420. {
  12421. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12422. modelT_Bus_RemindRecord.F_State = state;
  12423. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  12424. }
  12425. }
  12426. else
  12427. {
  12428. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12429. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12430. modelT_Bus_RemindRecord.F_Type = type;
  12431. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12432. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12433. modelT_Bus_RemindRecord.F_File = files;
  12434. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  12435. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12436. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12437. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12438. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12439. }
  12440. #endregion
  12441. #region 插入操作记录
  12442. string typename = "督办";
  12443. if (type == 2) { typename = "监察"; }
  12444. if (type == 1 && state==0) { typename = "提交督办"; }
  12445. if (type == 1 && state == 1) { typename = "督办"; }
  12446. if (type == 1 && state == 2) { typename = "退回督办"; }
  12447. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12448. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12449. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12450. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12451. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12452. oper.F_Message = userinfo + " " + typename + "了工单";
  12453. oper.F_CreateUser = userModel.F_UserCode;
  12454. oper.F_CreateTime = DateTime.Now;
  12455. oper.F_IsDelete = 0;
  12456. operBLL.Add(oper);
  12457. #endregion
  12458. trans.Complete();
  12459. }
  12460. return Success("操作成功");
  12461. }
  12462. else
  12463. {
  12464. return Error("操作失败");
  12465. }
  12466. }
  12467. /// <summary>
  12468. /// 重办工单
  12469. /// </summary>
  12470. /// <returns></returns>
  12471. [Authority]
  12472. public ActionResult ReloadWorkOrder()
  12473. {
  12474. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12475. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12476. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12477. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12478. {
  12479. string workorderid = RequestString.GetFormString("workorderid");
  12480. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12481. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  12482. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12483. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12484. if (modelT_Bus_WorkOrder != null)
  12485. {
  12486. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12487. {
  12488. return Error("操作失败");
  12489. }
  12490. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12491. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12492. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12493. {
  12494. using (TransactionScope trans = new TransactionScope())
  12495. {
  12496. #region 插入督办记录
  12497. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12498. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12499. modelT_Bus_RemindRecord.F_AssignedId = 0;
  12500. modelT_Bus_RemindRecord.F_Type = 1;
  12501. if (modelT_Bus_AssignedInfo != null)//转办后重办
  12502. {
  12503. #region 插入交办记录
  12504. 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());
  12505. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12506. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  12507. modelT_Bus_WorkOrder.F_Scanning = newlimittime.AddDays(3);
  12508. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12509. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12510. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12511. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  12512. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12513. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12514. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12515. AssignedInfo.F_State = 1;//0草稿 1正式
  12516. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12517. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12518. AssignedInfo.F_IsDelete = 0;
  12519. AssignedInfo.F_IsOverdue = 0;
  12520. AssignedInfo.F_IsSure = 0;
  12521. AssignedInfo.F_IsReload = n + 1;
  12522. AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12523. AssignedInfo.F_ReloadTime = DateTime.Now;
  12524. assignBLL.Add(AssignedInfo);
  12525. #endregion
  12526. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  12527. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  12528. }
  12529. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  12530. {
  12531. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  12532. if (cruser != null)
  12533. {
  12534. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  12535. }
  12536. }
  12537. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12538. modelT_Bus_RemindRecord.F_State = 1;
  12539. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12540. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12541. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12542. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12543. #endregion
  12544. #region 保存工单信息
  12545. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12546. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12547. modelT_Bus_WorkOrder.F_Result = "";
  12548. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12549. modelT_Bus_WorkOrder.F_DealUser = "";
  12550. modelT_Bus_WorkOrder.F_DealTime = null;
  12551. workorderBLL.Update(modelT_Bus_WorkOrder);
  12552. #endregion
  12553. #region 插入操作记录
  12554. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12555. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12556. if (modelT_Bus_AssignedInfo != null)
  12557. {
  12558. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12559. }
  12560. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12561. string deptname = "";
  12562. #region 20191021调整为多个主办单位时调整
  12563. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12564. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12565. #endregion
  12566. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12567. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  12568. oper.F_CreateUser = userModel.F_UserCode;
  12569. oper.F_CreateTime = DateTime.Now;
  12570. oper.F_IsDelete = 0;
  12571. operBLL.Add(oper);
  12572. //推送消息表
  12573. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12574. foreach (var u in users)
  12575. {
  12576. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12577. }
  12578. #endregion
  12579. trans.Complete();
  12580. }
  12581. return Success("操作成功");
  12582. }
  12583. else
  12584. {
  12585. return Error("已经处理过了");
  12586. }
  12587. }
  12588. else
  12589. {
  12590. return Error("操作失败");
  12591. }
  12592. }
  12593. else
  12594. {
  12595. return Error("权限不足");
  12596. }
  12597. }
  12598. /// <summary>
  12599. /// 退回原单位重办
  12600. /// </summary>
  12601. /// <returns></returns>
  12602. [Authority]
  12603. public ActionResult SubReloadWorkOrder(string[] ids, string reason)
  12604. {
  12605. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12606. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12607. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12608. {
  12609. if (ids != null && ids.Length > 0)
  12610. {
  12611. foreach (string str in ids)
  12612. {
  12613. using (TransactionScope trans = new TransactionScope())
  12614. {
  12615. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12616. if (modelT_Bus_WorkOrder != null)
  12617. {
  12618. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12619. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12620. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12621. {
  12622. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId );
  12623. #region 保存工单信息
  12624. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12625. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12626. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12627. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12628. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12629. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12630. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12631. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12632. newmodelT_Bus_AssignedInfo.F_State = 1;
  12633. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12634. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12635. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12636. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12637. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12638. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12639. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12640. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12641. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12642. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12643. #region 保存工单信息
  12644. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12645. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12646. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12647. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12648. 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());
  12649. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12650. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12651. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12652. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12653. modelT_Bus_WorkOrder.F_Result = "";
  12654. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12655. modelT_Bus_WorkOrder.F_DealUser = "";
  12656. modelT_Bus_WorkOrder.F_DealTime = null;
  12657. workorderBLL.Update(modelT_Bus_WorkOrder);
  12658. #region 改为未查收
  12659. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12660. assignBLL.Update(modelT_Bus_AssignedInfo);
  12661. #endregion
  12662. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12663. if (users != null && users.Count > 0)
  12664. {
  12665. foreach (var u in users)
  12666. {
  12667. if (!string.IsNullOrEmpty(u.F_Mobile))
  12668. {
  12669. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12670. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12671. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12672. }
  12673. if (!string.IsNullOrEmpty(u.F_Telephone))
  12674. {
  12675. var userlist = u.F_Telephone.Split(',');
  12676. if (userlist != null)
  12677. {
  12678. foreach (var it in userlist)
  12679. {
  12680. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12681. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12682. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  12683. }
  12684. }
  12685. }
  12686. }
  12687. }
  12688. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12689. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  12690. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12691. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  12692. #endregion
  12693. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12694. #endregion
  12695. #endregion
  12696. #region 插入操作记录
  12697. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12698. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12699. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12700. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12701. oper.F_Message = userinfo + " 退回重办了工单,重办原因:" + reason;
  12702. oper.F_CreateUser = userModel.F_UserCode;
  12703. oper.F_CreateTime = DateTime.Now;
  12704. oper.F_IsDelete = 0;
  12705. operBLL.Add(oper);
  12706. #endregion
  12707. }
  12708. }
  12709. trans.Complete();
  12710. }
  12711. }
  12712. return Success("操作成功");
  12713. }
  12714. else
  12715. {
  12716. return Error("操作失败");
  12717. }
  12718. }
  12719. else
  12720. {
  12721. return Error("权限不足");
  12722. }
  12723. }
  12724. /// <summary>
  12725. /// 重办提交工单 提交后为重办待交办
  12726. /// </summary>
  12727. /// <returns></returns>
  12728. [Authority]
  12729. public ActionResult SubReloadWorkOrder1(string[] ids, string reason)
  12730. {
  12731. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12732. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12733. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12734. {
  12735. if (ids != null && ids.Length > 0)
  12736. {
  12737. foreach (string str in ids)
  12738. {
  12739. using (TransactionScope trans = new TransactionScope())
  12740. {
  12741. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12742. var roadworkid = modelT_Bus_WorkOrder.F_WorkOrderId;
  12743. if (modelT_Bus_WorkOrder != null)
  12744. {
  12745. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12746. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12747. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12748. {
  12749. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  12750. #region 保存工单信息
  12751. //modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12752. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12753. //Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12754. //newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12755. //newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12756. //newmodelT_Bus_AssignedInfo.F_MainDeptId = null;// modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12757. //newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12758. //newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12759. //newmodelT_Bus_AssignedInfo.F_State = 0;
  12760. //newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12761. //newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12762. //newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12763. //newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12764. //newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12765. //newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12766. //newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12767. //newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12768. //newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12769. //newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12770. #region 保存工单信息
  12771. //modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12772. //modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12773. //// modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12774. //// modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12775. //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());
  12776. //modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12777. //modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12778. ////modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12779. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  12780. //modelT_Bus_WorkOrder.F_Result = "";
  12781. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  12782. //modelT_Bus_WorkOrder.F_DealUser = "";
  12783. //modelT_Bus_WorkOrder.F_DealTime = null;
  12784. //modelT_Bus_WorkOrder.F_MainDeptId = null;
  12785. //modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12786. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  12787. //workorderBLL.Update(modelT_Bus_WorkOrder);
  12788. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12789. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12790. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12791. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12792. 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());
  12793. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12794. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12795. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12796. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  12797. modelT_Bus_WorkOrder.F_Result = "";
  12798. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12799. modelT_Bus_WorkOrder.F_DealUser = "";
  12800. modelT_Bus_WorkOrder.F_DealTime = null;
  12801. modelT_Bus_WorkOrder.F_MainDeptId = null;
  12802. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12803. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12804. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  12805. modelT_Bus_WorkOrder.F_MainWorkOrderId = roadworkid;
  12806. modelT_Bus_WorkOrder.F_Files = "";
  12807. workorderBLL.Add(modelT_Bus_WorkOrder);
  12808. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12809. //modelT_Bus_WorkOrder.F_MainDeptId = null;
  12810. //modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12811. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  12812. #endregion
  12813. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12814. #endregion
  12815. #endregion
  12816. #region 插入操作记录
  12817. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12818. oper.F_WorkOrderId = roadworkid;
  12819. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12820. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12821. oper.F_Message = userinfo + " 提交了重办待交办工单,编号"+ modelT_Bus_WorkOrder.F_WorkOrderId + ",重办待交办原因:" + reason;
  12822. oper.F_CreateUser = userModel.F_UserCode;
  12823. oper.F_CreateTime = DateTime.Now;
  12824. oper.F_IsDelete = 0;
  12825. operBLL.Add(oper);
  12826. #endregion
  12827. }
  12828. }
  12829. trans.Complete();
  12830. }
  12831. }
  12832. return Success("操作成功");
  12833. }
  12834. else
  12835. {
  12836. return Error("操作失败");
  12837. }
  12838. }
  12839. else
  12840. {
  12841. return Error("权限不足");
  12842. }
  12843. }
  12844. /// <summary>
  12845. /// 驳回重办,驳回后状态为重办驳回状态
  12846. /// 调度员可驳回
  12847. /// </summary>
  12848. /// <param name="ids"></param>
  12849. /// <returns></returns>
  12850. [Authority]
  12851. public ActionResult RejReloadWorkOrder(string id,string reason)
  12852. {
  12853. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12854. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12855. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12856. {
  12857. if (!string.IsNullOrEmpty(id))
  12858. {
  12859. using (TransactionScope trans = new TransactionScope())
  12860. {
  12861. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  12862. if (modelT_Bus_WorkOrder != null)
  12863. {
  12864. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='"+modelT_Bus_WorkOrder.F_WorkOrderId+ "' order by F_CreateTime desc ").FirstOrDefault();
  12865. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12866. {
  12867. #region 保存工单信息
  12868. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  12869. if (modelT_Bus_AssignedInfo != null)
  12870. {
  12871. 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();
  12872. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  12873. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12874. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12875. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  12876. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  12877. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  12878. #endregion
  12879. }
  12880. workorderBLL.Update(modelT_Bus_WorkOrder);
  12881. #endregion
  12882. #region 插入操作记录
  12883. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12884. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12885. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12886. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12887. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  12888. oper.F_CreateUser = userModel.F_UserCode;
  12889. oper.F_CreateTime = DateTime.Now;
  12890. oper.F_IsDelete = 0;
  12891. operBLL.Add(oper);
  12892. #endregion
  12893. }
  12894. }
  12895. trans.Complete();
  12896. }
  12897. return Success("操作成功");
  12898. }
  12899. else
  12900. {
  12901. return Error("参数异常");
  12902. }
  12903. }
  12904. else
  12905. {
  12906. return Error("权限不足");
  12907. }
  12908. }
  12909. /// <summary>
  12910. /// 重办工单
  12911. /// </summary>
  12912. /// <returns></returns>
  12913. [Authority]
  12914. public ActionResult NewReloadWorkOrder()
  12915. {
  12916. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12917. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12918. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12919. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12920. {
  12921. string workorderid = RequestString.GetFormString("workorderid");
  12922. string maindeptid = RequestString.GetFormString("maindeptid");
  12923. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12924. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  12925. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12926. Model.T_Bus_WorkOrder modeT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12927. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12928. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12929. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12930. if (modelT_Bus_WorkOrder != null)
  12931. {
  12932. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12933. //{
  12934. // return Error("操作失败");
  12935. //}
  12936. if (!string.IsNullOrEmpty(otherdeptids))
  12937. {
  12938. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  12939. {
  12940. return Error("主办单位不能出现在协办单位");
  12941. }
  12942. }
  12943. if (limittime < DateTime.Now)
  12944. {
  12945. return Error("办理时限不能小于当前时间");
  12946. }
  12947. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12948. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12949. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12950. {
  12951. using (TransactionScope trans = new TransactionScope())
  12952. {
  12953. if (deptlist.Count == 1)
  12954. {
  12955. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12956. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12957. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12958. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptlist[0].F_DeptId ;//主办单位id
  12959. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12960. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12961. newmodelT_Bus_AssignedInfo.F_State = 1;
  12962. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12963. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12964. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12965. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12966. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12967. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12968. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12969. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12970. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12971. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12972. #region 保存工单信息
  12973. modelT_Bus_WorkOrder.F_MainDeptId = deptlist[0].F_DeptId;
  12974. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12975. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12976. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12977. 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());
  12978. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12979. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  12980. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  12981. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12982. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12983. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12984. modelT_Bus_WorkOrder.F_Result = "";
  12985. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12986. modelT_Bus_WorkOrder.F_DealUser = "";
  12987. modelT_Bus_WorkOrder.F_DealTime = null;
  12988. workorderBLL.Update(modelT_Bus_WorkOrder);
  12989. #endregion
  12990. #region 插入操作记录
  12991. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12992. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12993. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  12994. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12995. string deptname = "";
  12996. #region 20191021调整为多个主办单位时调整
  12997. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12998. var deptinfo = new BLL.T_Sys_Department().GetModel(deptlist[0].F_DeptId);
  12999. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  13000. #endregion
  13001. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13002. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  13003. if (!string.IsNullOrEmpty(otherdeptids))
  13004. {
  13005. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  13006. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  13007. }
  13008. oper.F_CreateUser = userModel.F_UserCode;
  13009. oper.F_CreateTime = DateTime.Now;
  13010. oper.F_IsDelete = 0;
  13011. operBLL.Add(oper);
  13012. //推送消息表
  13013. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13014. foreach (var u in users)
  13015. {
  13016. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  13017. if (!string.IsNullOrEmpty(u.F_Mobile))
  13018. {
  13019. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  13020. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  13021. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  13022. }
  13023. if (!string.IsNullOrEmpty(u.F_Telephone))
  13024. {
  13025. var userlist = u.F_Telephone.Split(',');
  13026. if (userlist != null)
  13027. {
  13028. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  13029. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  13030. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  13031. }
  13032. }
  13033. }
  13034. #endregion
  13035. }
  13036. else
  13037. {
  13038. #region 多单位
  13039. string newids = ""; string errdeptid = ""; string deptname = "";
  13040. foreach (var deptmasinfo in deptlist)
  13041. {
  13042. deptname += deptmasinfo.F_DeptName + ",";
  13043. }
  13044. foreach (var deptinfo in deptlist)
  13045. {
  13046. //deptname += deptinfo.F_DeptName + ",";
  13047. #region 新增工单
  13048. var modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  13049. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  13050. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  13051. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  13052. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  13053. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  13054. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  13055. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  13056. newmodelT_Bus_AssignedInfo.F_State = 1;
  13057. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  13058. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  13059. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  13060. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  13061. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  13062. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  13063. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  13064. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  13065. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  13066. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  13067. #endregion
  13068. #region 保存工单信息
  13069. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  13070. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  13071. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  13072. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  13073. 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());
  13074. modelT_Bus_WorkOrder1.F_IsReload = n + 1;
  13075. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  13076. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  13077. modelT_Bus_WorkOrder1.F_IsOverdue = 0;
  13078. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  13079. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.reload;//重办中
  13080. modelT_Bus_WorkOrder1.F_Result = "";
  13081. modelT_Bus_WorkOrder1.F_DealDeptId = null;
  13082. modelT_Bus_WorkOrder1.F_DealUser = "";
  13083. modelT_Bus_WorkOrder1.F_DealTime = null;
  13084. workorderBLL.Add (modelT_Bus_WorkOrder1);
  13085. #endregion
  13086. #region 插入操作记录
  13087. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13088. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  13089. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  13090. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  13091. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13092. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  13093. if (!string.IsNullOrEmpty(otherdeptids))
  13094. {
  13095. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  13096. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  13097. }
  13098. oper.F_CreateUser = userModel.F_UserCode;
  13099. oper.F_CreateTime = DateTime.Now;
  13100. oper.F_IsDelete = 0;
  13101. newids += "," + modelT_Bus_WorkOrder1.F_WorkOrderId;
  13102. operBLL.Add(oper);
  13103. //推送消息表
  13104. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  13105. foreach (var u in users)
  13106. {
  13107. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  13108. if (!string.IsNullOrEmpty(u.F_Mobile))
  13109. {
  13110. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  13111. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  13112. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  13113. }
  13114. if (!string.IsNullOrEmpty(u.F_Telephone))
  13115. {
  13116. var userlist = u.F_Telephone.Split(',');
  13117. if (userlist != null)
  13118. {
  13119. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  13120. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  13121. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  13122. }
  13123. }
  13124. }
  13125. #endregion
  13126. }
  13127. newids = newids.TrimStart(',');
  13128. var ids = newids.Split(',');
  13129. if (ids!=null && ids.Length >0)
  13130. {
  13131. foreach (var it in ids)
  13132. {
  13133. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13134. oper.F_WorkOrderId = it;
  13135. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13136. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13137. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  13138. oper.F_CreateUser = userModel.F_UserCode;
  13139. oper.F_CreateTime = DateTime.Now;
  13140. oper.F_IsDelete = 0;
  13141. operBLL.Add(oper);
  13142. }
  13143. }
  13144. if (ids != null && ids.Length > 0)
  13145. {
  13146. #region 主工单新增部门记录
  13147. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13148. oper.F_WorkOrderId = workorderid;
  13149. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  13150. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13151. oper.F_Message = userinfo + " 重办交办了工单,主办单位:" + deptname;
  13152. oper.F_CreateUser = userModel.F_UserCode;
  13153. oper.F_CreateTime = DateTime.Now;
  13154. oper.F_IsDelete = 0;
  13155. operBLL.Add(oper);
  13156. #endregion
  13157. #region 新增工单记录
  13158. oper.F_WorkOrderId = workorderid;
  13159. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  13160. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  13161. oper.F_CreateUser = userModel.F_UserCode;
  13162. oper.F_CreateTime = DateTime.Now;
  13163. oper.F_IsDelete = 0;
  13164. operBLL.Add(oper);
  13165. #endregion
  13166. }
  13167. modeT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;// 14;
  13168. modeT_Bus_WorkOrder.IsExport = 1;
  13169. workorderBLL.Update(modeT_Bus_WorkOrder);
  13170. #endregion
  13171. }
  13172. trans.Complete();
  13173. }
  13174. return Success("操作成功");
  13175. }
  13176. else
  13177. {
  13178. return Error("已经处理过了");
  13179. }
  13180. }
  13181. else
  13182. {
  13183. return Error("操作失败");
  13184. }
  13185. }
  13186. else
  13187. {
  13188. return Error("权限不足");
  13189. }
  13190. }
  13191. /// <summary>
  13192. /// 结案工单
  13193. /// </summary>
  13194. /// <returns></returns>
  13195. [Authority]
  13196. public ActionResult FinishWorkOrder()
  13197. {
  13198. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13199. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13200. //if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  13201. if (userModel.F_RoleCode == "ZJZY"|| userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"|| userModel.F_RoleCode == "ZXHWY")
  13202. {
  13203. string workorderid = RequestString.GetFormString("workorderid");
  13204. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  13205. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  13206. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  13207. string deptids = RequestString.GetFormString("deptids");//通告单位
  13208. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  13209. //2020-3-4添加通告选项
  13210. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  13211. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  13212. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  13213. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  13214. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13215. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13216. if (modelT_Bus_WorkOrder != null)
  13217. {
  13218. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13219. //{
  13220. // return Error("操作失败");
  13221. //}
  13222. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  13223. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState==(int)EnumWorkState.rejload)
  13224. {
  13225. using (TransactionScope trans = new TransactionScope())
  13226. {
  13227. #region 修改工单记录
  13228. //modelT_Bus_WorkOrder.F_WorkState = 9;
  13229. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  13230. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  13231. modelT_Bus_WorkOrder.F_IsClosed = 1;
  13232. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  13233. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  13234. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  13235. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  13236. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  13237. if (isnotice == 1)
  13238. {
  13239. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  13240. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  13241. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13242. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  13243. modelT_Bus_NoticeCriticism.F_State = 1;
  13244. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  13245. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  13246. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  13247. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  13248. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  13249. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  13250. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13251. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  13252. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  13253. modelT_Bus_WorkOrder.F_IsNotice = 1;
  13254. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  13255. }
  13256. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  13257. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  13258. assignBLL.Update(modelT_Bus_AssignedInfo);
  13259. workorderBLL.Update(modelT_Bus_WorkOrder);
  13260. #endregion
  13261. #region 插入操作记录
  13262. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13263. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13264. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13265. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13266. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  13267. if (isnotice == 1)
  13268. {
  13269. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13270. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  13271. }
  13272. if (isstandard == 1)
  13273. {
  13274. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  13275. var sts= DbHelperSQL.GetSingle(sqlstand);
  13276. oper.F_Message = oper.F_Message + ";办理结果出现不规范"+ sts + "情况,请及时查看";
  13277. }
  13278. oper.F_CreateUser = userModel.F_UserCode;
  13279. oper.F_CreateTime = DateTime.Now;
  13280. oper.F_IsDelete = 0;
  13281. operBLL.Add(oper);
  13282. //调用科大讯飞
  13283. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  13284. {
  13285. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  13286. if (tbf != null)
  13287. {
  13288. string deptname = string.Empty;
  13289. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  13290. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  13291. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  13292. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  13293. if (bl)
  13294. {
  13295. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  13296. }
  13297. else
  13298. {
  13299. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  13300. }
  13301. }
  13302. }
  13303. #endregion
  13304. trans.Complete();
  13305. }
  13306. return Success("操作成功");
  13307. }
  13308. else
  13309. {
  13310. return Error("已经处理过了");
  13311. }
  13312. }
  13313. else
  13314. {
  13315. return Error("操作失败");
  13316. }
  13317. }
  13318. else
  13319. {
  13320. return Error("权限不足");
  13321. }
  13322. }
  13323. /// <summary>
  13324. /// 结案工单
  13325. /// </summary>
  13326. /// <returns></returns>
  13327. [Authority]
  13328. public ActionResult ForceFinishWorkOrder()
  13329. {
  13330. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13331. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13332. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG" || userModel.F_RoleCode == "ZXHWY")
  13333. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  13334. {
  13335. string workorderid = RequestString.GetFormString("workorderid");
  13336. string result = RequestString.GetFormString("result");//处理结果
  13337. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  13338. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  13339. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  13340. string deptids = RequestString.GetFormString("deptids");//通告单位
  13341. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  13342. //2020-3-4添加通告选项
  13343. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  13344. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  13345. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  13346. string standardids= RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  13347. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13348. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13349. if (modelT_Bus_WorkOrder != null)
  13350. {
  13351. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG"
  13352. && userModel.F_RoleCode != "ZXLD")
  13353. {
  13354. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13355. {
  13356. return Error("操作失败");
  13357. }
  13358. }
  13359. using (TransactionScope trans = new TransactionScope())
  13360. {
  13361. #region 修改工单记录
  13362. modelT_Bus_WorkOrder.F_Result = result;
  13363. //modelT_Bus_WorkOrder.F_WorkState = 9;
  13364. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  13365. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  13366. modelT_Bus_WorkOrder.F_IsClosed = 1;
  13367. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  13368. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  13369. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  13370. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  13371. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  13372. if (isnotice == 1)
  13373. {
  13374. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  13375. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  13376. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13377. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  13378. modelT_Bus_NoticeCriticism.F_State = 1;
  13379. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  13380. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  13381. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  13382. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  13383. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  13384. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  13385. modelT_Bus_WorkOrder.F_IsNotice = 1;
  13386. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  13387. if (modelT_Bus_AssignedInfo != null)
  13388. {
  13389. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13390. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  13391. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  13392. }
  13393. }
  13394. if (modelT_Bus_AssignedInfo!=null )
  13395. {
  13396. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  13397. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  13398. assignBLL.Update(modelT_Bus_AssignedInfo);
  13399. }
  13400. workorderBLL.Update(modelT_Bus_WorkOrder);
  13401. #endregion
  13402. #region 插入操作记录
  13403. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13404. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13405. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13406. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13407. oper.F_Message = userinfo + " 强制结案了工单" ;
  13408. if (isnotice == 1)
  13409. {
  13410. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13411. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  13412. }
  13413. if(isstandard==1)
  13414. {
  13415. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  13416. }
  13417. oper.F_CreateUser = userModel.F_UserCode;
  13418. oper.F_CreateTime = DateTime.Now;
  13419. oper.F_IsDelete = 0;
  13420. operBLL.Add(oper);
  13421. //调用科大讯飞
  13422. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == 9)
  13423. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13424. {
  13425. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  13426. 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());
  13427. if (bl)
  13428. {
  13429. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  13430. }
  13431. else
  13432. {
  13433. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  13434. }
  13435. }
  13436. #endregion
  13437. trans.Complete();
  13438. }
  13439. return Success("操作成功");
  13440. }
  13441. else
  13442. {
  13443. return Error("操作失败");
  13444. }
  13445. }
  13446. else
  13447. {
  13448. return Error("权限不足");
  13449. }
  13450. }
  13451. /// <summary>
  13452. /// 删除工单
  13453. /// </summary>
  13454. /// <returns></returns>
  13455. public ActionResult DelWorkOrder(string[] ids)
  13456. {
  13457. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13458. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13459. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"||
  13460. userModel.F_UserCode =="001")
  13461. {
  13462. //StringBuilder sb = new StringBuilder();
  13463. foreach (var item in ids)
  13464. {
  13465. //sb.Append("'" + item + "',");
  13466. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  13467. if (modelT_Bus_WorkOrder != null)//0)
  13468. {
  13469. using (TransactionScope trans = new TransactionScope())
  13470. {
  13471. #region 修改工单记录
  13472. modelT_Bus_WorkOrder.F_IsDelete = 1;
  13473. modelT_Bus_WorkOrder.F_DeleteUser= userModel.F_UserCode;
  13474. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  13475. workorderBLL.Update(modelT_Bus_WorkOrder);
  13476. #endregion
  13477. #region 插入操作记录
  13478. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13479. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13480. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13481. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13482. oper.F_Message = userinfo + " 删除了工单";
  13483. oper.F_CreateUser = userModel.F_UserCode;
  13484. oper.F_CreateTime = DateTime.Now;
  13485. oper.F_IsDelete = 0;
  13486. operBLL.Add(oper);
  13487. #endregion
  13488. trans.Complete();
  13489. }
  13490. }
  13491. }
  13492. return Success("删除成功");
  13493. }
  13494. else
  13495. {
  13496. return Error("权限不足");
  13497. }
  13498. }
  13499. /// <summary>
  13500. /// 转媒体工单
  13501. /// </summary>
  13502. /// <returns></returns>
  13503. [Authority]
  13504. public ActionResult ReleaseWorkOrder()
  13505. {
  13506. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13507. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13508. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13509. {
  13510. string workorderid = RequestString.GetFormString("workorderid");
  13511. int isrelease = RequestString.GetInt("isrelease", -1);
  13512. if (isrelease != -1)
  13513. {
  13514. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13515. if (modelT_Bus_WorkOrder != null)
  13516. {
  13517. using (TransactionScope trans = new TransactionScope())
  13518. {
  13519. #region 修改工单记录
  13520. modelT_Bus_WorkOrder.F_IsRelease = isrelease;
  13521. workorderBLL.Update(modelT_Bus_WorkOrder);
  13522. #endregion
  13523. #region 插入操作记录
  13524. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13525. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13526. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13527. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13528. oper.F_Message = userinfo + " " + (isrelease == 1 ? "转媒体了" : "收回了转媒体") + "工单";
  13529. oper.F_CreateUser = userModel.F_UserCode;
  13530. oper.F_CreateTime = DateTime.Now;
  13531. oper.F_IsDelete = 0;
  13532. operBLL.Add(oper);
  13533. #endregion
  13534. trans.Complete();
  13535. }
  13536. return Success("操作成功");
  13537. }
  13538. else
  13539. {
  13540. return Error("操作失败");
  13541. }
  13542. }
  13543. else
  13544. {
  13545. return Error("操作失败");
  13546. }
  13547. }
  13548. else
  13549. {
  13550. return Error("权限不足");
  13551. }
  13552. }
  13553. /// <summary>
  13554. /// 申请扫描件延时
  13555. /// </summary>
  13556. /// <returns></returns>
  13557. [Authority]
  13558. public ActionResult DelayScanning()
  13559. {
  13560. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13561. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13562. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13563. {
  13564. string workorderid = RequestString.GetFormString("workorderid");
  13565. //int state = RequestString.GetInt("state", 0);
  13566. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13567. string reason = RequestString.GetFormString("reason");
  13568. string files = RequestString.GetFormString("files");
  13569. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13570. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13571. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  13572. {
  13573. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  13574. {
  13575. using (TransactionScope trans = new TransactionScope())
  13576. {
  13577. if (userModel.F_RoleCode == "WLDW")
  13578. {
  13579. if (userModel.F_DeptId > 0)
  13580. {
  13581. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  13582. if (dept != null)
  13583. {
  13584. if (dept.F_SMExtensionTime != null)
  13585. {
  13586. if (((DateTime)dept.F_SMExtensionTime).Month == DateTime.Now.Month
  13587. && ((DateTime)dept.F_SMExtensionTime).Year == DateTime.Now.Year)
  13588. {
  13589. if (dept.F_SMDelayTimes < 4)
  13590. {
  13591. dept.F_SMDelayTimes += 1;
  13592. dept.F_SMExtensionTime = DateTime.Now;
  13593. bool n = new BLL.T_Sys_Department().Update(dept);
  13594. }
  13595. else
  13596. return Error("本单位本月扫描件申请延时已达四次");
  13597. }
  13598. else
  13599. {
  13600. dept.F_SMDelayTimes = 1;
  13601. dept.F_SMExtensionTime = DateTime.Now;
  13602. bool n = new BLL.T_Sys_Department().Update(dept);
  13603. }
  13604. }
  13605. else
  13606. {
  13607. dept.F_SMDelayTimes = 1;
  13608. dept.F_SMExtensionTime = DateTime.Now;
  13609. bool n = new BLL.T_Sys_Department().Update(dept);
  13610. }
  13611. }
  13612. }
  13613. }
  13614. #region 保存工单信息
  13615. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  13616. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  13617. workorderBLL.Update(modelT_Bus_WorkOrder);
  13618. #endregion
  13619. #region 插入申请延时信息
  13620. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  13621. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13622. //delay.F_State = state;
  13623. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13624. delay.F_NewTime = newlimittime;
  13625. delay.F_Reason = reason;
  13626. delay.F_State = 2;
  13627. delay.F_IsAudit = 0;
  13628. delay.F_IsDelete = 0;
  13629. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13630. delay.F_CreateUser = userModel.F_UserCode;
  13631. delay.F_CreateTime = DateTime.Now;
  13632. delay.F_File = files;
  13633. new BLL.T_Bus_DelayTime().Add(delay);
  13634. #endregion
  13635. #region 插入操作记录
  13636. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13637. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13638. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13639. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13640. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13641. oper.F_Message = userinfo + " 申请了延时处理";
  13642. oper.F_CreateUser = userModel.F_UserCode;
  13643. oper.F_CreateTime = DateTime.Now;
  13644. oper.F_IsDelete = 0;
  13645. operBLL.Add(oper);
  13646. //推送消息表
  13647. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13648. #endregion
  13649. trans.Complete();
  13650. }
  13651. return Success("操作成功");
  13652. }
  13653. else
  13654. {
  13655. return Error("操作失敗,已查收");
  13656. }
  13657. }
  13658. else
  13659. {
  13660. return Error("操作失败");
  13661. }
  13662. }
  13663. else
  13664. {
  13665. return Error("权限不足");
  13666. }
  13667. }
  13668. /// <summary>
  13669. /// 审核延时工单
  13670. /// </summary>
  13671. /// <returns></returns>
  13672. [Authority]
  13673. public ActionResult AuditDelayScanning()
  13674. {
  13675. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13676. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13677. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13678. {
  13679. string workorderid = RequestString.GetFormString("workorderid");
  13680. int state = RequestString.GetInt("state", 0);
  13681. string reason = RequestString.GetFormString("reason");
  13682. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13683. int delayid = RequestString.GetInt("delayid", 0);
  13684. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13685. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  13686. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13687. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13688. {
  13689. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13690. //{
  13691. // return Error("操作失败");
  13692. //}
  13693. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13694. {
  13695. using (TransactionScope trans = new TransactionScope())
  13696. {
  13697. #region 保存工单信息
  13698. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13699. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13700. if (modelT_Bus_DelayTime.F_State ==2)
  13701. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13702. else
  13703. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13704. workorderBLL.Update(modelT_Bus_WorkOrder);
  13705. #endregion
  13706. #region 保存审核信息
  13707. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13708. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13709. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13710. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13711. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13712. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13713. #endregion
  13714. string type = "同意"; string des = "";
  13715. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13716. {
  13717. #region 修改交办记录
  13718. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13719. assignBLL.Update(modelT_Bus_AssignedInfo);
  13720. #endregion
  13721. #region 处理协办单位
  13722. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13723. foreach (var xb in xblist)
  13724. {
  13725. //xb.F_LimitTime = DateTime.Now;
  13726. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13727. assignItemBLL.Update(xb);
  13728. }
  13729. #endregion
  13730. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13731. }
  13732. else
  13733. {
  13734. type = "拒绝";
  13735. }
  13736. #region 插入操作记录
  13737. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13738. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13739. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13740. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13741. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13742. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13743. oper.F_CreateUser = userModel.F_UserCode;
  13744. oper.F_CreateTime = DateTime.Now;
  13745. oper.F_IsDelete = 0;
  13746. operBLL.Add(oper);
  13747. //推送消息表
  13748. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13749. #endregion
  13750. trans.Complete();
  13751. }
  13752. return Success("操作成功");
  13753. }
  13754. else
  13755. {
  13756. return Error("此审核已经处理");
  13757. }
  13758. }
  13759. else
  13760. {
  13761. return Error("操作失败");
  13762. }
  13763. }
  13764. else
  13765. {
  13766. return Error("权限不足");
  13767. }
  13768. }
  13769. /// <summary>
  13770. /// 批量审核延时
  13771. /// </summary>
  13772. /// <param name="ids"></param>
  13773. /// <returns></returns>
  13774. [Authority]
  13775. public ActionResult AuditDelayScanningBatch(string ids)
  13776. {
  13777. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13778. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13779. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13780. {
  13781. int state = RequestString.GetInt("state", 0);
  13782. string reason = RequestString.GetFormString("reason");
  13783. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13784. string errids = ""; string errids1 = "";
  13785. if (!string.IsNullOrEmpty(ids))
  13786. {
  13787. string[] strids = ids.Split(',');
  13788. foreach (string str in strids)
  13789. {
  13790. using (TransactionScope trans = new TransactionScope())
  13791. {
  13792. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  13793. 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();
  13794. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  13795. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13796. {
  13797. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13798. //{
  13799. // errids += str + ",";
  13800. // continue;
  13801. //}
  13802. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13803. {
  13804. #region 保存工单信息
  13805. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13806. if (modelT_Bus_DelayTime.F_State == 2)
  13807. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13808. else
  13809. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13810. workorderBLL.Update(modelT_Bus_WorkOrder);
  13811. #endregion
  13812. #region 保存审核信息
  13813. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13814. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13815. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13816. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13817. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13818. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13819. #endregion
  13820. string type = "同意"; string des = "";
  13821. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13822. {
  13823. #region 修改交办记录
  13824. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13825. assignBLL.Update(modelT_Bus_AssignedInfo);
  13826. #endregion
  13827. #region 处理协办单位
  13828. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13829. foreach (var xb in xblist)
  13830. {
  13831. //xb.F_LimitTime = DateTime.Now;
  13832. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13833. assignItemBLL.Update(xb);
  13834. }
  13835. #endregion
  13836. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13837. }
  13838. else
  13839. {
  13840. type = "拒绝";
  13841. }
  13842. #region 插入操作记录
  13843. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13844. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13845. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13846. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13847. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13848. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13849. oper.F_CreateUser = userModel.F_UserCode;
  13850. oper.F_CreateTime = DateTime.Now;
  13851. oper.F_IsDelete = 0;
  13852. operBLL.Add(oper);
  13853. //推送消息表
  13854. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13855. #endregion
  13856. }
  13857. else
  13858. errids1 += str + ",";
  13859. }
  13860. trans.Complete();
  13861. }
  13862. }
  13863. if (errids1 != "" && errids != "")
  13864. return Success("操作成功");
  13865. else
  13866. {
  13867. string msg = "";
  13868. if (errids1 != "")
  13869. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  13870. if (errids != "")
  13871. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  13872. return Error("部分工单操作失败" + msg);
  13873. }
  13874. }
  13875. else
  13876. {
  13877. return Error("参数获取失败");
  13878. }
  13879. }
  13880. else
  13881. {
  13882. return Error("权限不足");
  13883. }
  13884. }
  13885. ///// <summary>
  13886. ///// 通告和撤销通告
  13887. ///// </summary>
  13888. ///// <returns></returns>
  13889. //[Authority]
  13890. //public ActionResult NoticeWorkOrder()
  13891. //{
  13892. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13893. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13894. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  13895. // {
  13896. // int assignid = RequestString.GetInt("id", 0);
  13897. // int isnotice = RequestString.GetInt("isnotice", -1);
  13898. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  13899. // if (modelT_Bus_AssignedInfo != null)
  13900. // {
  13901. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  13902. // {
  13903. // using (TransactionScope trans = new TransactionScope())
  13904. // {
  13905. // #region 修改交办记录
  13906. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  13907. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13908. // #endregion
  13909. // #region 插入操作记录
  13910. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13911. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13912. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13913. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13914. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13915. // oper.F_CreateUser = userModel.F_UserCode;
  13916. // oper.F_CreateTime = DateTime.Now;
  13917. // oper.F_IsDelete = 0;
  13918. // operBLL.Add(oper);
  13919. // #endregion
  13920. // trans.Complete();
  13921. // }
  13922. // return Success("操作成功");
  13923. // }
  13924. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  13925. // {
  13926. // using (TransactionScope trans = new TransactionScope())
  13927. // {
  13928. // #region 修改交办记录
  13929. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13930. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13931. // #endregion
  13932. // #region 插入操作记录
  13933. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13934. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13935. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13936. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13937. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13938. // oper.F_CreateUser = userModel.F_UserCode;
  13939. // oper.F_CreateTime = DateTime.Now;
  13940. // oper.F_IsDelete = 0;
  13941. // operBLL.Add(oper);
  13942. // #endregion
  13943. // trans.Complete();
  13944. // }
  13945. // return Success("操作成功");
  13946. // }
  13947. // else
  13948. // {
  13949. // return Error("操作失败");
  13950. // }
  13951. // }
  13952. // else
  13953. // {
  13954. // return Error("操作失败");
  13955. // }
  13956. // }
  13957. // else
  13958. // {
  13959. // return Error("权限不足");
  13960. // }
  13961. //}
  13962. /// <summary>
  13963. /// 通告和撤销通告
  13964. /// </summary>
  13965. /// <returns></returns>
  13966. [Authority]
  13967. public ActionResult NoticeWorkOrder()
  13968. {
  13969. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13970. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13971. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13972. {
  13973. string workorderid = RequestString.GetFormString("workorderid");
  13974. int isnotice = RequestString.GetInt("isnotice", -1);
  13975. string deptids = RequestString.GetFormString("deptids");//通告单位
  13976. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  13977. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13978. if (modelT_Bus_WorkOrder != null)
  13979. {
  13980. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  13981. {
  13982. using (TransactionScope trans = new TransactionScope())
  13983. {
  13984. #region 修改工单记录
  13985. modelT_Bus_WorkOrder.F_IsNotice = 0;
  13986. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  13987. workorderBLL.Update(modelT_Bus_WorkOrder);
  13988. #endregion
  13989. #region 修改通告记录
  13990. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  13991. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  13992. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  13993. modelT_Bus_NoticeCriticism.F_DeleteUser = userModel.F_UserCode;
  13994. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  13995. #endregion
  13996. #region 插入操作记录
  13997. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13998. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13999. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  14000. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14001. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  14002. oper.F_CreateUser = userModel.F_UserCode;
  14003. oper.F_CreateTime = DateTime.Now;
  14004. oper.F_IsDelete = 0;
  14005. operBLL.Add(oper);
  14006. #endregion
  14007. trans.Complete();
  14008. }
  14009. return Success("操作成功");
  14010. }
  14011. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  14012. {
  14013. using (TransactionScope trans = new TransactionScope())
  14014. {
  14015. #region 修改工单记录
  14016. modelT_Bus_WorkOrder.F_IsNotice = 1;
  14017. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  14018. workorderBLL.Update(modelT_Bus_WorkOrder);
  14019. #endregion
  14020. #region 新增通告记录
  14021. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  14022. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  14023. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14024. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  14025. modelT_Bus_NoticeCriticism.F_State = 1;
  14026. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  14027. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  14028. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  14029. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  14030. #endregion
  14031. #region 插入操作记录
  14032. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14033. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14034. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  14035. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14036. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  14037. oper.F_CreateUser = userModel.F_UserCode;
  14038. oper.F_CreateTime = DateTime.Now;
  14039. oper.F_IsDelete = 0;
  14040. operBLL.Add(oper);
  14041. #endregion
  14042. trans.Complete();
  14043. }
  14044. return Success("操作成功");
  14045. }
  14046. else
  14047. {
  14048. return Error("操作失败");
  14049. }
  14050. }
  14051. else
  14052. {
  14053. return Error("操作失败");
  14054. }
  14055. }
  14056. else
  14057. {
  14058. return Error("权限不足");
  14059. }
  14060. }
  14061. /// <summary>
  14062. /// 市民催单
  14063. /// </summary>
  14064. /// <returns></returns>
  14065. [Authority]
  14066. public ActionResult AdditionalWorkOrder()
  14067. {
  14068. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14069. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  14070. string workorderid = RequestString.GetFormString("workorderid");
  14071. string title = RequestString.GetFormString("title");
  14072. string content = RequestString.GetFormString("content");
  14073. string files = RequestString.GetFormString("files");
  14074. string callid = RequestString.GetFormString("callid");
  14075. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  14076. if (modelT_Bus_WorkOrder != null)
  14077. {
  14078. using (TransactionScope trans = new TransactionScope())
  14079. {
  14080. #region 插入附加记录
  14081. //批示记录
  14082. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  14083. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  14084. model_T_Bus_Additional.F_Title = title;
  14085. model_T_Bus_Additional.F_Content = content;
  14086. if (!string.IsNullOrEmpty(callid))
  14087. {
  14088. model_T_Bus_Additional.F_CallId = callid;
  14089. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  14090. if (rd != null)
  14091. {
  14092. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  14093. }
  14094. }
  14095. model_T_Bus_Additional.F_File = files;//附件
  14096. model_T_Bus_Additional.F_CreateUser = userModel.F_UserCode;//呈批人
  14097. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  14098. model_T_Bus_Additional.F_IsDelete = 0;
  14099. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  14100. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  14101. #endregion
  14102. #region 插入操作记录
  14103. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14104. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14105. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14106. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14107. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  14108. oper.F_CreateUser = userModel.F_UserCode;
  14109. oper.F_CreateTime = DateTime.Now;
  14110. oper.F_IsDelete = 0;
  14111. operBLL.Add(oper);
  14112. #endregion
  14113. #region 根据状态不同给出提醒
  14114. var sqlusers = " F_DeleteFlag=0 ";
  14115. #region 获取被提醒人
  14116. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14117. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  14118. sqlusers += " and F_UserCode='"+ modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  14119. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  14120. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  14121. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  14122. {
  14123. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  14124. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  14125. }
  14126. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  14127. {
  14128. if (modelT_Bus_AssignedInfo != null )
  14129. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  14130. }
  14131. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  14132. {
  14133. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  14134. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  14135. }
  14136. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  14137. {
  14138. if (modelT_Bus_AssignedInfo != null)
  14139. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  14140. }
  14141. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  14142. {
  14143. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  14144. }
  14145. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  14146. {
  14147. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  14148. }
  14149. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  14150. {
  14151. if (modelT_Bus_AssignedInfo != null)
  14152. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  14153. }
  14154. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  14155. {
  14156. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  14157. }
  14158. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  14159. {
  14160. if (modelT_Bus_AssignedInfo != null)
  14161. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  14162. }
  14163. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  14164. {
  14165. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  14166. }
  14167. #endregion
  14168. var userlists = userBLL.GetModelList(sqlusers);
  14169. //推送消息表
  14170. foreach (var u in userlists)
  14171. {
  14172. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  14173. }
  14174. #endregion
  14175. trans.Complete();
  14176. }
  14177. return Success("操作成功");
  14178. }
  14179. else
  14180. {
  14181. return Error("操作失败");
  14182. }
  14183. }
  14184. #endregion
  14185. #region 语音附件其他
  14186. /// <summary>
  14187. /// 验证当前单位是否交办单位
  14188. /// </summary>
  14189. /// <param name="modelT_Bus_AssignedInfo"></param>
  14190. /// <param name="deptid"></param>
  14191. /// <returns></returns>
  14192. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  14193. {
  14194. int type = 0;
  14195. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  14196. {
  14197. type = 1;//主办
  14198. }
  14199. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  14200. {
  14201. type = 2;//协办
  14202. }
  14203. return type;
  14204. }
  14205. /// <summary>
  14206. /// 获取留言路径
  14207. /// </summary>
  14208. /// <param name="lid">留言id</param>
  14209. /// <param name="prefix">前缀</param>
  14210. /// <returns></returns>
  14211. public string GetLeavePath(string lid, string prefix)
  14212. {
  14213. string path = string.Empty;
  14214. var liuyan = new BLL.T_Call_LeaveRecord().GetModelList(" F_Id='" + lid + "' ").FirstOrDefault();
  14215. if (liuyan != null)
  14216. {
  14217. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  14218. {
  14219. path = prefix + liuyan.F_RecFileUrl;
  14220. }
  14221. }
  14222. return path;
  14223. }
  14224. /// <summary>
  14225. /// 获取通话录音路径
  14226. /// </summary>
  14227. /// <param name="cid">通话id</param>
  14228. /// <param name="prefix">前缀</param>
  14229. /// <returns></returns>
  14230. public string GetCallPath(string cid, string prefix)
  14231. {
  14232. string path = string.Empty;
  14233. var luyin = new BLL.T_Call_CallRecords().GetModelList(" CallRecordsId='" + cid + "' ").FirstOrDefault();
  14234. if (luyin != null)
  14235. {
  14236. if (!string.IsNullOrEmpty(luyin.FilePath))
  14237. {
  14238. var ym = prefix;
  14239. ym = ym.Substring(0, ym.Length - 1);
  14240. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  14241. path = ym + lujing;
  14242. //if (!CommonHelper.FileIsExist(path))
  14243. //{
  14244. // path = lujing;
  14245. //}
  14246. }
  14247. }
  14248. return path;
  14249. }
  14250. /// <summary>
  14251. /// 获取附件数据
  14252. /// </summary>
  14253. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  14254. /// <param name="prefix">前缀</param>
  14255. /// <returns></returns>
  14256. public DataTable GetFileData(string ids, string prefix)
  14257. {
  14258. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ") order by F_AddTime desc").Tables[0];
  14259. foreach (DataRow dr in dt.Rows)
  14260. {
  14261. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  14262. }
  14263. return dt;
  14264. }
  14265. /// <summary>
  14266. /// 绑定附件信息
  14267. /// </summary>
  14268. /// <param name="dt"></param>
  14269. /// <param name="prefix"></param>
  14270. /// <returns></returns>
  14271. public DataTable BindFileData(DataTable dt, string prefix)
  14272. {
  14273. dt.Columns.Add("File", typeof(object));
  14274. foreach (DataRow dr in dt.Rows)
  14275. {
  14276. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  14277. {
  14278. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  14279. }
  14280. }
  14281. return dt;
  14282. }
  14283. /// <summary>
  14284. /// 绑定附件信息
  14285. /// </summary>
  14286. /// <param name="dt"></param>
  14287. /// <param name="prefix"></param>
  14288. /// <returns></returns>
  14289. public DataTable BindFileDataFiles(DataTable dt, string prefix)
  14290. {
  14291. dt.Columns.Add("Files", typeof(object));
  14292. dt.Columns.Add("HCFiles", typeof(object));
  14293. foreach (DataRow dr in dt.Rows)
  14294. {
  14295. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  14296. {
  14297. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  14298. }
  14299. if (dr["F_HCFiles"] != null && dr["F_HCFiles"].ToString() != "")
  14300. {
  14301. dr["HCFiles"] = GetFileData(dr["F_HCFiles"].ToString(), prefix);
  14302. }
  14303. }
  14304. return dt;
  14305. }
  14306. #endregion
  14307. #region 修改工单 by admin
  14308. /// <summary>
  14309. /// 获取详情
  14310. /// </summary>
  14311. /// <returns></returns>
  14312. [Authority]
  14313. public ActionResult GetInfoByAdmin(int id, int type)
  14314. {
  14315. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14316. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14317. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14318. {
  14319. //string sql = "select * from ";
  14320. string table = string.Empty;
  14321. switch (type)
  14322. {
  14323. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  14324. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  14325. case 3: table = "T_Bus_Feedback"; break;//办理信息
  14326. case 4: table = "T_Bus_RemindRecord"; break;//督办
  14327. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  14328. case 6: table = "T_Bus_VisitResult"; break;//回访
  14329. }
  14330. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  14331. var dt = DbHelperSQL.Query(sql).Tables[0];
  14332. return Success("操作成功", dt);
  14333. }
  14334. else
  14335. {
  14336. return Error("权限不足");
  14337. }
  14338. }
  14339. /// <summary>
  14340. /// 修改工单信息
  14341. /// </summary>
  14342. /// <returns></returns>
  14343. [Authority]
  14344. public ActionResult EditWorkOrderByAdmin()
  14345. {
  14346. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14347. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14348. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14349. {
  14350. string workorderid = RequestString.GetFormString("workorderid");
  14351. int source = RequestString.GetInt("source", 0);
  14352. string cusname = RequestString.GetFormString("cusname");
  14353. string cussex = RequestString.GetFormString("cussex");
  14354. string cusphone = RequestString.GetFormString("cusphone");
  14355. string cusaddress = RequestString.GetFormString("cusaddress");
  14356. string email = RequestString.GetFormString("email");
  14357. string zipcode = RequestString.GetFormString("zipcode");
  14358. string conname = RequestString.GetFormString("conname");
  14359. string conphone = RequestString.GetFormString("conphone");
  14360. string title = RequestString.GetFormString("title");
  14361. string content = RequestString.GetFormString("content");
  14362. string files = RequestString.GetFormString("files");
  14363. int sourcearea = RequestString.GetInt("sourcearea", 0);
  14364. string sourceaddress = RequestString.GetFormString("sourceaddress");
  14365. string keys = RequestString.GetFormString("keys");
  14366. string splituser = RequestString.GetFormString("splituser");
  14367. int type = RequestString.GetInt("type", 0);
  14368. int bigtype = RequestString.GetInt("bigtype", 0);
  14369. int smalltype = RequestString.GetInt("smalltype", 0);
  14370. int isprotect = RequestString.GetInt("isprotect", 0);
  14371. int level = RequestString.GetInt("level", 0);
  14372. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14373. if (modelT_Bus_WorkOrder != null)
  14374. {
  14375. using (TransactionScope trans = new TransactionScope())
  14376. {
  14377. #region 保存工单信息
  14378. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  14379. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  14380. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  14381. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  14382. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  14383. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  14384. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  14385. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  14386. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  14387. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  14388. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  14389. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  14390. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  14391. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  14392. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  14393. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  14394. modelT_Bus_WorkOrder.F_File = files;//附件
  14395. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  14396. modelT_Bus_WorkOrder.F_Key = keys;
  14397. modelT_Bus_WorkOrder.F_Level = level;
  14398. workorderBLL.Update(modelT_Bus_WorkOrder);
  14399. #endregion
  14400. #region 插入操作记录
  14401. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14402. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14403. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14404. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  14405. oper.F_File = modelT_Bus_WorkOrder.F_File;
  14406. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14407. oper.F_Message = userinfo + " 修改了工单基本信息";
  14408. oper.F_CreateUser = userModel.F_UserCode;
  14409. oper.F_CreateTime = DateTime.Now;
  14410. oper.F_IsDelete = 0;
  14411. operBLL.Add(oper);
  14412. #endregion
  14413. trans.Complete();
  14414. }
  14415. return Success("操作成功");
  14416. }
  14417. else
  14418. {
  14419. return Error("操作失败");
  14420. }
  14421. }
  14422. else
  14423. {
  14424. return Success("权限不足");
  14425. }
  14426. }
  14427. /// <summary>
  14428. /// 修改批示信息
  14429. /// </summary>
  14430. /// <returns></returns>
  14431. [Authority]
  14432. public ActionResult EditSuperInfoByAdmin()
  14433. {
  14434. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14435. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14436. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14437. {
  14438. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  14439. string superuser = RequestString.GetFormString("superuser");
  14440. string superopinion = RequestString.GetFormString("superopinion");
  14441. string files = RequestString.GetFormString("files");
  14442. int id = RequestString.GetInt("id", 0);
  14443. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  14444. if (model_T_Bus_SubmitSuper != null)
  14445. {
  14446. using (TransactionScope trans = new TransactionScope())
  14447. {
  14448. #region 保存批示信息
  14449. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  14450. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  14451. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  14452. if (!string.IsNullOrEmpty(files))
  14453. model_T_Bus_SubmitSuper.F_File = files;//附件
  14454. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  14455. #endregion
  14456. #region 插入操作记录
  14457. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14458. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  14459. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  14460. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14461. oper.F_Message = userinfo + " 修改了工单批示信息";
  14462. oper.F_CreateUser = userModel.F_UserCode;
  14463. oper.F_CreateTime = DateTime.Now;
  14464. oper.F_IsDelete = 0;
  14465. operBLL.Add(oper);
  14466. #endregion
  14467. trans.Complete();
  14468. }
  14469. return Success("操作成功");
  14470. }
  14471. else
  14472. {
  14473. return Error("操作失败");
  14474. }
  14475. }
  14476. else
  14477. {
  14478. return Error("权限不足");
  14479. }
  14480. }
  14481. /// <summary>
  14482. /// 修改交办信息
  14483. /// </summary>
  14484. /// <returns></returns>
  14485. [Authority]
  14486. public ActionResult EditAssignInfoByAdmin()
  14487. {
  14488. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14489. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14490. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14491. {
  14492. int assignid = RequestString.GetInt("id", 0);
  14493. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  14494. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  14495. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  14496. string assignedopinion = RequestString.GetFormString("assignedopinion");
  14497. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  14498. if (modelT_Bus_AssignedInfo != null)
  14499. {
  14500. using (TransactionScope trans = new TransactionScope())
  14501. {
  14502. #region 保存交办信息
  14503. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  14504. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  14505. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14506. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14507. assignBLL.Update(modelT_Bus_AssignedInfo);
  14508. #endregion
  14509. #region 插入操作记录
  14510. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14511. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14512. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  14513. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14514. oper.F_Message = userinfo + " 修改了工单交办信息";
  14515. oper.F_CreateUser = userModel.F_UserCode;
  14516. oper.F_CreateTime = DateTime.Now;
  14517. oper.F_IsDelete = 0;
  14518. operBLL.Add(oper);
  14519. #endregion
  14520. trans.Complete();
  14521. }
  14522. return Success("操作成功");
  14523. }
  14524. else
  14525. {
  14526. return Error("操作失败");
  14527. }
  14528. }
  14529. else
  14530. {
  14531. return Error("权限不足");
  14532. }
  14533. }
  14534. /// <summary>
  14535. /// 修改办理信息
  14536. /// </summary>
  14537. /// <returns></returns>
  14538. [Authority]
  14539. public ActionResult EditFeedBackInfoByAdmin()
  14540. {
  14541. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14542. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14543. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14544. {
  14545. string dealman = RequestString.GetFormString("dealman");
  14546. string result = RequestString.GetFormString("result");
  14547. string files = RequestString.GetFormString("files");
  14548. int feedbackid = RequestString.GetInt("id", 0);
  14549. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  14550. if (model_T_Bus_Feedback != null)
  14551. {
  14552. using (TransactionScope trans = new TransactionScope())
  14553. {
  14554. #region 保存办理信息
  14555. model_T_Bus_Feedback.F_DealUser = dealman;
  14556. model_T_Bus_Feedback.F_Result = result;//反馈内容
  14557. model_T_Bus_Feedback.F_File = files;
  14558. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  14559. #endregion
  14560. #region 保存工单信息
  14561. 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());
  14562. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  14563. if (maxid == assign.F_Id)
  14564. {
  14565. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  14566. order.F_Result = result;//反馈内容
  14567. workorderBLL.Update(order);
  14568. }
  14569. #endregion
  14570. #region 插入操作记录
  14571. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14572. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  14573. oper.F_File = model_T_Bus_Feedback.F_File;
  14574. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14575. oper.F_Message = userinfo + " 修改了工单办理信息";
  14576. oper.F_CreateUser = userModel.F_UserCode;
  14577. oper.F_CreateTime = DateTime.Now;
  14578. oper.F_IsDelete = 0;
  14579. operBLL.Add(oper);
  14580. #endregion
  14581. trans.Complete();
  14582. }
  14583. return Success("操作成功");
  14584. }
  14585. else
  14586. {
  14587. return Error("操作失败");
  14588. }
  14589. }
  14590. else
  14591. {
  14592. return Error("权限不足");
  14593. }
  14594. }
  14595. /// <summary>
  14596. /// 修改回访信息
  14597. /// </summary>
  14598. /// <returns></returns>
  14599. [Authority]
  14600. public ActionResult EditVisitInfoByAdmin()
  14601. {
  14602. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14603. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14604. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14605. {
  14606. string visituser = RequestString.GetFormString("visituser");//回访人
  14607. int type = RequestString.GetInt("type", 0);//回访方式
  14608. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  14609. int visitid = RequestString.GetInt("id", 0);
  14610. string result = RequestString.GetFormString("result");//回访情况
  14611. string guid = RequestString.GetFormString("guid");
  14612. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  14613. if (modelT_Bus_VisitResult != null)
  14614. {
  14615. using (TransactionScope trans = new TransactionScope())
  14616. {
  14617. #region 保存回访信息
  14618. modelT_Bus_VisitResult.F_VisitUser = visituser;
  14619. modelT_Bus_VisitResult.F_Type = type;
  14620. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  14621. modelT_Bus_VisitResult.F_Result = result;
  14622. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  14623. //保存回访记录
  14624. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  14625. #endregion
  14626. #region 插入操作记录
  14627. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14628. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  14629. oper.F_File = modelT_Bus_VisitResult.F_File;
  14630. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14631. oper.F_Message = userinfo + " 修改了工单回访信息";
  14632. oper.F_CreateUser = userModel.F_UserCode;
  14633. oper.F_CreateTime = DateTime.Now;
  14634. oper.F_IsDelete = 0;
  14635. operBLL.Add(oper);
  14636. #endregion
  14637. trans.Complete();
  14638. }
  14639. return Success("操作成功");
  14640. }
  14641. else
  14642. {
  14643. return Error("操作失败");
  14644. }
  14645. }
  14646. else
  14647. {
  14648. return Error("权限不足");
  14649. }
  14650. }
  14651. /// <summary>
  14652. /// 修改退回审核信息
  14653. /// </summary>
  14654. /// <returns></returns>
  14655. [Authority]
  14656. public ActionResult EditAuditRebackByAdmin()
  14657. {
  14658. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14659. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14660. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14661. {
  14662. string reason = RequestString.GetFormString("reason");
  14663. int rebackid = RequestString.GetInt("id", 0);
  14664. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  14665. if (modelT_Bus_Feedback != null)
  14666. {
  14667. using (TransactionScope trans = new TransactionScope())
  14668. {
  14669. #region 保存反馈信息
  14670. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  14671. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  14672. #endregion
  14673. #region 插入操作记录
  14674. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14675. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  14676. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14677. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  14678. oper.F_CreateUser = userModel.F_UserCode;
  14679. oper.F_CreateTime = DateTime.Now;
  14680. oper.F_IsDelete = 0;
  14681. operBLL.Add(oper);
  14682. #endregion
  14683. trans.Complete();
  14684. }
  14685. return Success("操作成功");
  14686. }
  14687. else
  14688. {
  14689. return Error("操作失败");
  14690. }
  14691. }
  14692. else
  14693. {
  14694. return Error("权限不足");
  14695. }
  14696. }
  14697. /// <summary>
  14698. /// 修改延时审核信息
  14699. /// </summary>
  14700. /// <returns></returns>
  14701. [Authority]
  14702. public ActionResult EditAuditDelayByAdmin()
  14703. {
  14704. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14705. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14706. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14707. {
  14708. string reason = RequestString.GetFormString("reason");
  14709. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  14710. int delayid = RequestString.GetInt("id", 0);
  14711. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  14712. if (modelT_Bus_DelayTime != null)
  14713. {
  14714. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  14715. using (TransactionScope trans = new TransactionScope())
  14716. {
  14717. #region 保存延时审核信息
  14718. modelT_Bus_DelayTime.F_RefuseReason = reason;
  14719. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  14720. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  14721. #endregion
  14722. #region 插入操作记录
  14723. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14724. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  14725. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14726. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  14727. oper.F_CreateUser = userModel.F_UserCode;
  14728. oper.F_CreateTime = DateTime.Now;
  14729. oper.F_IsDelete = 0;
  14730. operBLL.Add(oper);
  14731. #endregion
  14732. trans.Complete();
  14733. }
  14734. return Success("操作成功");
  14735. }
  14736. else
  14737. {
  14738. return Error("操作失败");
  14739. }
  14740. }
  14741. else
  14742. {
  14743. return Error("权限不足");
  14744. }
  14745. }
  14746. #endregion
  14747. #region 县级对接
  14748. /// <summary>
  14749. /// 获取网点列表
  14750. /// </summary>
  14751. /// <param name="code"></param>
  14752. /// <param name="name"></param>
  14753. /// <returns></returns>
  14754. [Authority]
  14755. public ActionResult GetCityList(string code, string name)
  14756. {
  14757. string signcode = Configs.GetValue("CityOutSignCode");
  14758. string url = Configs.GetValue("CityOutUrl");
  14759. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  14760. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  14761. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  14762. return Content(result);
  14763. }
  14764. /// <summary>
  14765. /// 获取网点详情
  14766. /// </summary>
  14767. /// <param name="code"></param>
  14768. /// <returns></returns>
  14769. [Authority]
  14770. public ActionResult GetCityDetail(string code)
  14771. {
  14772. string signcode = Configs.GetValue("CityOutSignCode");
  14773. string url = Configs.GetValue("CityOutUrl");
  14774. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14775. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14776. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  14777. return Content(result);
  14778. }
  14779. /// <summary>
  14780. /// 转派工单到县级
  14781. /// </summary>
  14782. /// <returns></returns>
  14783. [Authority]
  14784. public ActionResult TurnWorkOrder()
  14785. {
  14786. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14787. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14788. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14789. {
  14790. string workorderid = RequestString.GetFormString("workorderid");
  14791. string citycode = RequestString.GetFormString("citycode");
  14792. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14793. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  14794. {
  14795. string code = Configs.GetValue("CityCode");
  14796. var branchmodel = GetCityInfo(code);
  14797. var citymodel = GetCityInfo(citycode);
  14798. if (branchmodel != null && citymodel != null)
  14799. {
  14800. using (TransactionScope trans = new TransactionScope())
  14801. {
  14802. string cityworkorderid = string.Empty;
  14803. #region 转单
  14804. string turnsigncode = citymodel["F_Sign"].ToString();
  14805. string turnurl = citymodel["F_Url"].ToString();
  14806. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  14807. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  14808. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  14809. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  14810. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  14811. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  14812. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  14813. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  14814. var turnresult = turnresultstr.ToJObject();
  14815. if (turnresult["state"].ToString() != "success")
  14816. {
  14817. return Content(turnresultstr);
  14818. }
  14819. else
  14820. {
  14821. cityworkorderid = turnresult["data"].ToString();
  14822. }
  14823. #endregion
  14824. #region 保存工单信息
  14825. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  14826. modelT_Bus_WorkOrder.F_IsClosed = 1;
  14827. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  14828. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  14829. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14830. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  14831. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14832. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  14833. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14834. workorderBLL.Update(modelT_Bus_WorkOrder);
  14835. #endregion
  14836. #region 删除草稿信息
  14837. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14838. foreach (var cg in cglist)
  14839. {
  14840. cg.F_IsDelete = 1;
  14841. cg.F_DeleteUser = userModel.F_UserCode;
  14842. cg.F_DeleteTime = DateTime.Now;
  14843. assignBLL.Update(cg);
  14844. }
  14845. #endregion
  14846. #region 新增转单记录
  14847. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  14848. modelT_Bus_CityTurn.F_CityCode = citycode;
  14849. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  14850. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  14851. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14852. modelT_Bus_CityTurn.F_Type = 2;
  14853. modelT_Bus_CityTurn.F_State = 1;
  14854. modelT_Bus_CityTurn.F_IsSure = 0;
  14855. modelT_Bus_CityTurn.F_IsDelete = 0;
  14856. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  14857. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  14858. #endregion
  14859. #region 插入操作记录
  14860. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14861. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14862. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14863. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14864. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  14865. oper.F_CreateUser = userModel.F_UserCode;
  14866. oper.F_CreateTime = DateTime.Now;
  14867. oper.F_IsDelete = 0;
  14868. operBLL.Add(oper);
  14869. #endregion
  14870. trans.Complete();
  14871. }
  14872. return Success("操作成功");
  14873. }
  14874. else
  14875. {
  14876. return Error("操作失败");
  14877. }
  14878. }
  14879. else
  14880. {
  14881. return Error("操作失败");
  14882. }
  14883. }
  14884. else
  14885. {
  14886. return Success("权限不足");
  14887. }
  14888. }
  14889. /// <summary>
  14890. /// 获取当前网点信息
  14891. /// </summary>
  14892. /// <returns></returns>
  14893. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  14894. {
  14895. string signcode = Configs.GetValue("CityOutSignCode");
  14896. string url = Configs.GetValue("CityOutUrl");
  14897. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14898. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14899. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  14900. if (result["state"].ToString() == "success")
  14901. {
  14902. return result["data"].ToString().ToJObject();
  14903. }
  14904. else
  14905. {
  14906. return null;
  14907. }
  14908. }
  14909. #endregion
  14910. #region 私有方法
  14911. /// <summary>
  14912. /// 添加操作日志
  14913. /// </summary>
  14914. /// <param name="workorderid"></param>
  14915. /// <param name="workstate"></param>
  14916. /// <param name="msgs"></param>
  14917. /// <param name="usercode"></param>
  14918. private void addoptlog(string workorderid,int? workstate,int assid,string msgs,string usercode,int type=0)
  14919. {
  14920. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14921. oper.F_WorkOrderId = workorderid;
  14922. oper.F_State = workstate;
  14923. oper.F_AssignedId = assid;
  14924. oper.F_Message = msgs;
  14925. oper.F_CreateUser = usercode;
  14926. oper.F_CreateTime = DateTime.Now;
  14927. oper.F_IsDelete = 0;
  14928. oper.F_Type = type;
  14929. operBLL.Add(oper);
  14930. }
  14931. #endregion
  14932. }
  14933. }