信阳市12345演示 调整内容: ①商丘12345基础-添加工单直接指派到公安局 ②工单热点分布假页面

WorkOrderController.cs 474KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643
  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 System;
  7. using System.Collections.Generic;
  8. using System.ComponentModel;
  9. using System.Data;
  10. using System.Linq;
  11. using System.Text;
  12. using System.Transactions;
  13. using System.Web;
  14. using System.Web.Mvc;
  15. namespace CallCenterApi.Interface.Controllers.workorder
  16. {
  17. public class WorkOrderController : BaseController
  18. {
  19. // GET: WorkOrder
  20. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  21. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  22. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  23. private information.InternalMessagesController msg = new information.InternalMessagesController();
  24. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  25. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  26. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  27. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  28. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  29. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  30. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  31. #region 获取工单
  32. /// <summary>
  33. /// 获取工单列表
  34. /// </summary>
  35. /// <returns></returns>
  36. //[Authority]
  37. public ActionResult GetList(int isdc = 0)
  38. {
  39. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  40. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  41. DataTable dt = new DataTable();
  42. string sql = " and F_IsDelete=0 ";
  43. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  44. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  45. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  46. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  47. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  48. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  49. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  50. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  51. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  52. int source = RequestString.GetInt("source", 0);
  53. int keyid = RequestString.GetInt("keyid", 0);
  54. int type = RequestString.GetInt("type", 0);
  55. int bigtype = RequestString.GetInt("bigtype", 0);
  56. int smalltype = RequestString.GetInt("smalltype", 0);
  57. int sourcearea = RequestString.GetInt("sourcearea", 0);
  58. int deptid = RequestString.GetInt("deptid", 0);
  59. int dealtype = RequestString.GetInt("dealtype", -1);
  60. int issend = RequestString.GetInt("issend", -1);
  61. int deptlevel = RequestString.GetInt("deptlevel", 0);
  62. string strpageindex = RequestString.GetQueryString("page");
  63. int pageindex = 1;
  64. string strpagesize = RequestString.GetQueryString("pagesize");
  65. int pagesize = 10;
  66. #region sql 语句相关处理
  67. if (strstate.Trim() != "" && strstate != "undefined")
  68. {
  69. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  70. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  71. else
  72. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  73. }
  74. if (strworkid.Trim() != "" && strworkid != "undefined")
  75. {
  76. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  77. }
  78. if (strname.Trim() != "" && strname != "undefined")
  79. {
  80. sql += " and F_CusName like '%" + strname + "%' ";
  81. }
  82. if (strtel.Trim() != "" && strtel != "undefined")
  83. {
  84. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  85. }
  86. if (strkey.Trim() != "" && strkey != "undefined")
  87. {
  88. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  89. }
  90. if (strusercode.Trim() != "" && strusercode != "undefined")
  91. {//坐席
  92. var usercode = strusercode.Trim().Split(',');
  93. var newusercode = "";
  94. foreach (var item in usercode)
  95. {
  96. if (!string.IsNullOrWhiteSpace(item.Trim()))
  97. newusercode += "'" + item + "',";
  98. }
  99. newusercode = newusercode.Trim(',');
  100. if (newusercode.Trim() != "" && newusercode != "undefined")
  101. {
  102. sql += " and F_CreateUser in (" + newusercode + ") ";
  103. //sql += " and F_CreateUser ='" + strusercode + "' ";
  104. }
  105. }
  106. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  107. {//调度员
  108. var ddusercode = strddusercode.Trim().Split(',');
  109. var newusercode = "";
  110. foreach (var item in ddusercode)
  111. {
  112. if (!string.IsNullOrWhiteSpace(item.Trim()))
  113. newusercode += "'" + item + "',";
  114. }
  115. newusercode = newusercode.Trim(',');
  116. if (newusercode.Trim() != "" && newusercode != "undefined")
  117. {
  118. sql += " and F_AssignUser in(" + newusercode + ") ";
  119. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  120. }
  121. }
  122. if (source != 0)
  123. {
  124. sql += " and F_InfoSource = '" + source + "' ";
  125. }
  126. if (keyid != 0)
  127. {
  128. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  129. }
  130. if (type != 0)
  131. {
  132. sql += " and F_InfoType = '" + type + "' ";
  133. }
  134. if (bigtype != 0)
  135. {
  136. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  137. }
  138. if (smalltype != 0)
  139. {
  140. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  141. }
  142. if (sourcearea != 0)
  143. {
  144. sql += " and F_SourceArea = '" + sourcearea + "' ";
  145. }
  146. if (deptid != 0)
  147. {
  148. if (deptlevel == 0)
  149. {
  150. 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 ";
  151. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  152. }
  153. else
  154. {
  155. 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 ";
  156. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  157. }
  158. }
  159. if (dealtype != -1)
  160. {
  161. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  162. }
  163. if (issend != -1)
  164. {
  165. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  166. }
  167. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  168. {
  169. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  170. }
  171. if (strendtime.Trim() != "" && strendtime != "undefined")
  172. {
  173. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  174. }
  175. #endregion
  176. if (strpageindex.Trim() != "")
  177. {
  178. pageindex = Convert.ToInt32(strpageindex);
  179. }
  180. if (strpagesize.Trim() != "")
  181. {
  182. pagesize = Convert.ToInt32(strpagesize);
  183. }
  184. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  185. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  186. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  187. #region 导出
  188. if (isdc > 0)
  189. {
  190. var top = " "; var orderby = " order by F_CreateTime";
  191. if (sql == " and F_IsDelete=0 ")
  192. {
  193. top = " top 1000 "; orderby += " desc ";
  194. }
  195. //20190715调整导出字段 zhengbingbing
  196. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  197. var dtdc = DbHelperSQL.Query(" select "+ top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  198. + " dbo.GetDeptNames(convert(nvarchar,(select top 1 F_MainDeptId from T_Bus_AssignedInfo where F_WorkOrderId=wo.F_WorkOrderId and F_IsDelete=0 and F_State=1 and F_IsSure<>3 order by F_Id desc))) 主办单位, "
  199. + " dbo.GetDeptNames(convert(nvarchar,(select top 1 F_OtherDeptIds from T_Bus_AssignedInfo where F_WorkOrderId=wo.F_WorkOrderId and F_IsDelete=0 and F_State=1 and F_IsSure<>3 order by F_Id desc))) 协办单位, "
  200. + " (select top 1 F_Result from T_Bus_Feedback where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  201. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  202. + " from T_Bus_WorkOrder wo where 1=1 " + sql+ orderby).Tables[0];
  203. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  204. if (msg == "")
  205. {
  206. return Success("导出成功");
  207. }
  208. else
  209. {
  210. return Error("导出失败");
  211. }
  212. }
  213. #endregion
  214. int recordCount = 0;
  215. dt = BLL.PagerBLL.GetListPager(
  216. "T_Bus_WorkOrder",
  217. "F_WorkOrderId",
  218. cols,
  219. sql,
  220. "ORDER BY F_CreateTime DESC",
  221. pagesize,
  222. pageindex,
  223. true,
  224. out recordCount);
  225. #region 声音文件和交办超时
  226. dt.Columns.Add("DeptName", typeof(string));//交办单位
  227. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  228. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  229. dt.Columns.Add("OverState", typeof(string));//超时状态
  230. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  231. dt.Columns.Add("GapTime", typeof(string));//时间差
  232. dt.Columns.Add("PDState", typeof(string));//派单状态
  233. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  234. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  235. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  236. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  237. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  238. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  239. foreach (DataRow dr in dt.Rows)
  240. {
  241. string iszbdw = "0";
  242. string ispd = "";
  243. int state = Int32.Parse(dr["F_WorkState"].ToString());
  244. if (state > 1)
  245. {
  246. //获取最新交办信息
  247. 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";
  248. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  249. if (dtjb.Rows.Count > 0)
  250. {
  251. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  252. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  253. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  254. {
  255. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  256. }
  257. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  258. #region
  259. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  260. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  261. //if (deptinfo != null)
  262. //{
  263. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  264. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  265. //}
  266. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  267. //{
  268. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  269. // string dns = string.Empty;
  270. // foreach (string strid in strids)
  271. // {
  272. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  273. // if (dinfo != null)
  274. // {
  275. // if (string.IsNullOrEmpty(dns))
  276. // {
  277. // dns = dinfo.F_DeptName;//交办单位
  278. // }
  279. // else
  280. // {
  281. // dns += "," + dinfo.F_DeptName;//交办单位
  282. // }
  283. // }
  284. // }
  285. // dr["OtherDeptName"] = dns;
  286. //}
  287. #endregion
  288. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  289. dr["LimitTime"] = lt;
  290. #region 超时时限
  291. //if (state < 6 || state == 8)
  292. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  293. {
  294. if (!string.IsNullOrWhiteSpace(lt))
  295. {
  296. var ltime = DateTime.Parse(lt);
  297. TimeSpan ts = ltime.Subtract(DateTime.Now);
  298. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  299. if (tss < 0) { tss = -tss; }
  300. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  301. if (ltime > DateTime.Now)
  302. {
  303. if (configcs != null)
  304. {
  305. int cs = Int32.Parse(configcs.F_ParamValue);
  306. if (ts.TotalHours > cs)
  307. {
  308. dr["OverState"] = 1;
  309. }
  310. else
  311. {
  312. dr["OverState"] = 2;
  313. }
  314. }
  315. dr["GapTime"] = "剩余" + gshsj;
  316. }
  317. else
  318. {
  319. dr["OverState"] = 3;
  320. dr["GapTime"] = "超时" + gshsj;
  321. }
  322. }
  323. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  324. dr["PDState"] = ispd;
  325. }
  326. if (state == (int)EnumWorkState.finish)
  327. {
  328. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  329. var dttime = DateTime.Now;
  330. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  331. if (!string.IsNullOrWhiteSpace(lt))
  332. {
  333. var ltime = DateTime.Parse(lt);
  334. TimeSpan ts = ltime.Subtract(dttime);
  335. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  336. if (tss < 0) { tss = -tss; }
  337. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  338. if (ltime < dttime)
  339. {
  340. dr["OverState"] = 3;
  341. dr["GapTime"] = "超时" + gshsj;
  342. }
  343. }
  344. }
  345. #endregion
  346. }
  347. }
  348. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  349. {
  350. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  351. }
  352. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  353. {
  354. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  355. }
  356. var buttons= ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  357. #region 判断是否存在待督办
  358. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  359. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  360. if (recount > 0 && butt!=null)
  361. buttons.Remove(butt);
  362. #endregion
  363. dr["Buttons"] = buttons;
  364. }
  365. #endregion
  366. var obj = new
  367. {
  368. state = "success",
  369. message = "成功",
  370. rows = dt,
  371. total = recordCount
  372. };
  373. return Content(obj.ToJson());
  374. }
  375. /// <summary>
  376. /// 获取坐席处理列表
  377. /// </summary>
  378. /// <returns></returns>
  379. [Authority]
  380. public ActionResult GetZXDealList(int isdc = 0)
  381. {
  382. DataTable dt = new DataTable();
  383. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  384. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  385. string sql = " and F_IsDelete=0";
  386. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  387. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  388. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  389. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  390. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  391. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  392. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  393. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  394. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  395. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  396. int source = RequestString.GetInt("source", 0);
  397. int keyid = RequestString.GetInt("keyid", 0);
  398. int type = RequestString.GetInt("type", 0);
  399. int bigtype = RequestString.GetInt("bigtype", 0);
  400. int smalltype = RequestString.GetInt("smalltype", 0);
  401. int sourcearea = RequestString.GetInt("sourcearea", 0);
  402. int deptid = RequestString.GetInt("deptid", 0);
  403. int deptlevel = RequestString.GetInt("deptlevel", 0);
  404. string strpageindex = RequestString.GetQueryString("page");
  405. int pageindex = 1;
  406. string strpagesize = RequestString.GetQueryString("pagesize");
  407. int pagesize = 10;
  408. switch (strtab)
  409. {
  410. case "-1"://待处理工单(其他来源)
  411. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  412. break;
  413. case "0"://待处理工单
  414. if (userModel.F_RoleCode != "GLY")
  415. {
  416. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  417. }
  418. if (strstate.Trim() != "" && strstate != "undefined")
  419. {
  420. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  421. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  422. else
  423. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  424. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  425. }
  426. else
  427. {
  428. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + ") ";
  429. //sql += " and F_WorkState in (0,6) ";
  430. }
  431. break;
  432. case "1"://已提交的工单
  433. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  434. sql += " and F_WorkState >0 ";
  435. if (strstate.Trim() != "" && strstate != "undefined")
  436. {
  437. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  438. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  439. else
  440. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  441. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  442. }
  443. if (userModel.F_RoleCode != "GLY")
  444. {
  445. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  446. }
  447. break;
  448. case "2"://已回访的工单
  449. if (strstate.Trim() != "" && strstate != "undefined")
  450. {
  451. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  452. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  453. else
  454. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  455. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  456. }
  457. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult where F_State=1 and F_IsDelete=0 ";
  458. if (userModel.F_RoleCode != "GLY")
  459. {
  460. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  461. }
  462. else
  463. {
  464. sql += ")";
  465. }
  466. break;
  467. case "3"://已回退的工单
  468. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  469. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  470. if (userModel.F_RoleCode != "GLY")
  471. {
  472. sql += " and F_CreateUser='" + userModel.F_UserCode;
  473. }
  474. break;
  475. }
  476. if (strworkid.Trim() != "" && strworkid != "undefined")
  477. {
  478. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  479. }
  480. if (strname.Trim() != "" && strname != "undefined")
  481. {
  482. sql += " and F_CusName like '%" + strname + "%' ";
  483. }
  484. if (strtel.Trim() != "" && strtel != "undefined")
  485. {
  486. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  487. }
  488. if (strkey.Trim() != "" && strkey != "undefined")
  489. {
  490. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  491. }
  492. #region 坐席&调度员
  493. if (strusercode.Trim() != "" && strusercode != "undefined")
  494. {//坐席
  495. var usercode = strusercode.Trim().Split(',');
  496. var newusercode = "";
  497. foreach (var item in usercode)
  498. {
  499. if (!string.IsNullOrWhiteSpace(item.Trim()))
  500. newusercode += "'" + item + "',";
  501. }
  502. newusercode = newusercode.Trim(',');
  503. if (newusercode.Trim() != "" && newusercode != "undefined")
  504. {
  505. sql += " and F_CreateUser in (" + newusercode + ") ";
  506. }
  507. }
  508. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  509. {//调度员
  510. var ddusercode = strddusercode.Trim().Split(',');
  511. var newusercode = "";
  512. foreach (var item in ddusercode)
  513. {
  514. if (!string.IsNullOrWhiteSpace(item.Trim()))
  515. newusercode += "'" + item + "',";
  516. }
  517. newusercode = newusercode.Trim(',');
  518. if (newusercode.Trim() != "" && newusercode != "undefined")
  519. {
  520. sql += " and F_AssignUser in(" + newusercode + ") ";
  521. }
  522. }
  523. //if (strusercode.Trim() != "" && strusercode != "undefined")
  524. //{
  525. // sql += " and F_CreateUser = '" + strusercode + "' ";
  526. //}
  527. #endregion
  528. if (source != 0)
  529. {
  530. sql += " and F_InfoSource = '" + source + "' ";
  531. }
  532. if (keyid != 0)
  533. {
  534. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  535. }
  536. if (type != 0)
  537. {
  538. sql += " and F_InfoType = '" + type + "' ";
  539. }
  540. if (bigtype != 0)
  541. {
  542. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  543. }
  544. if (smalltype != 0)
  545. {
  546. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  547. }
  548. if (sourcearea != 0)
  549. {
  550. sql += " and F_SourceArea = '" + sourcearea + "' ";
  551. }
  552. if (deptid != 0)
  553. {
  554. if (deptlevel == 0)
  555. {
  556. 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 ";
  557. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  558. }
  559. else
  560. {
  561. 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 ";
  562. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  563. }
  564. }
  565. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  566. {
  567. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  568. }
  569. if (strendtime.Trim() != "" && strendtime != "undefined")
  570. {
  571. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  572. }
  573. if (strpageindex.Trim() != "")
  574. {
  575. pageindex = Convert.ToInt32(strpageindex);
  576. }
  577. if (strpagesize.Trim() != "")
  578. {
  579. pagesize = Convert.ToInt32(strpagesize);
  580. }
  581. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  582. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  583. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  584. if (isdc > 0)
  585. {
  586. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  587. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  588. if (msg == "")
  589. {
  590. return Success("导出成功");
  591. }
  592. else
  593. {
  594. return Error("导出失败");
  595. }
  596. }
  597. int recordCount = 0;
  598. dt = BLL.PagerBLL.GetListPager(
  599. "T_Bus_WorkOrder",
  600. "F_WorkOrderId",
  601. cols,
  602. sql,
  603. "ORDER BY F_CreateTime DESC",
  604. pagesize,
  605. pageindex,
  606. true,
  607. out recordCount);
  608. dt.Columns.Add("DeptName", typeof(string));//交办单位
  609. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  610. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  611. dt.Columns.Add("OverState", typeof(string));//超时状态
  612. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  613. dt.Columns.Add("GapTime", typeof(string));//时间差
  614. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  615. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  616. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  617. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  618. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  619. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  620. foreach (DataRow dr in dt.Rows)
  621. {
  622. //获取最新交办信息
  623. string iszbdw = "0";
  624. int state = Int32.Parse(dr["F_WorkState"].ToString());
  625. if (state > 1)
  626. {
  627. 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";
  628. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  629. if (dtjb.Rows.Count > 0)
  630. {
  631. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  632. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  633. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  634. {
  635. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  636. }
  637. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  638. #region
  639. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  640. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  641. //if (deptinfo != null)
  642. //{
  643. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  644. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  645. //}
  646. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  647. //{
  648. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  649. // string dns = string.Empty;
  650. // foreach (string strid in strids)
  651. // {
  652. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  653. // if (dinfo != null)
  654. // {
  655. // if (string.IsNullOrEmpty(dns))
  656. // {
  657. // dns = dinfo.F_DeptName;//交办单位
  658. // }
  659. // else
  660. // {
  661. // dns += "," + dinfo.F_DeptName;//交办单位
  662. // }
  663. // }
  664. // }
  665. // dr["OtherDeptName"] = dns;
  666. //}
  667. #endregion
  668. #region
  669. //if (state < 6 || state == 8)
  670. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  671. {
  672. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  673. dr["LimitTime"] = lt;
  674. if (!string.IsNullOrWhiteSpace(lt))
  675. {
  676. var ltime = DateTime.Parse(lt);
  677. TimeSpan ts = ltime.Subtract(DateTime.Now);
  678. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  679. if (tss < 0) { tss = -tss; }
  680. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  681. if (ltime > DateTime.Now)
  682. {
  683. if (configcs != null)
  684. {
  685. int cs = Int32.Parse(configcs.F_ParamValue);
  686. if (ts.TotalHours > cs)
  687. {
  688. dr["OverState"] = 1;
  689. }
  690. else
  691. {
  692. dr["OverState"] = 2;
  693. }
  694. }
  695. dr["GapTime"] = "剩余" + gshsj;
  696. }
  697. else
  698. {
  699. dr["OverState"] = 3;
  700. dr["GapTime"] = "超时" + gshsj;
  701. }
  702. }
  703. }
  704. if (state == (int)EnumWorkState.finish)
  705. {
  706. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  707. var dttime = DateTime.Now;
  708. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  709. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  710. dr["LimitTime"] = lt;
  711. if (!string.IsNullOrWhiteSpace(lt))
  712. {
  713. var ltime = DateTime.Parse(lt);
  714. TimeSpan ts = ltime.Subtract(dttime);
  715. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  716. if (tss < 0) { tss = -tss; }
  717. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  718. if (ltime < dttime)
  719. {
  720. dr["OverState"] = 3;
  721. dr["GapTime"] = "超时" + gshsj;
  722. }
  723. }
  724. }
  725. #endregion
  726. }
  727. }
  728. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  729. {
  730. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  731. }
  732. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  733. {
  734. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  735. }
  736. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  737. if (Int32.Parse(strtab) == 0)
  738. {
  739. btns.Clear();
  740. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  741. #region 判断是否存在待督办
  742. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  743. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  744. if (recount > 0 && butt != null)
  745. btns.Remove(butt);
  746. #endregion
  747. }
  748. else if (Int32.Parse(strtab) == -1)
  749. {
  750. btns.Clear();
  751. btns.Add(ButtonGroup.query());
  752. btns.Add(ButtonGroup.edit());
  753. }
  754. else
  755. {
  756. btns.Clear();
  757. btns.Add(ButtonGroup.query());
  758. }
  759. dr["Buttons"] = btns;
  760. }
  761. var obj = new
  762. {
  763. state = "success",
  764. message = "成功",
  765. rows = dt,
  766. total = recordCount
  767. };
  768. return Content(obj.ToJson());
  769. }
  770. /// <summary>
  771. /// 获取领导处理列表
  772. /// </summary>
  773. /// <returns></returns>
  774. [Authority]
  775. public ActionResult GetLDDealList(int isdc = 0)
  776. {
  777. DataTable dt = new DataTable();
  778. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  779. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  780. string sql = " and F_IsDelete=0";
  781. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  782. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  783. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  784. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  785. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  786. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  787. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  788. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  789. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  790. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  791. int source = RequestString.GetInt("source", 0);
  792. int keyid = RequestString.GetInt("keyid", 0);
  793. int type = RequestString.GetInt("type", 0);
  794. int bigtype = RequestString.GetInt("bigtype", 0);
  795. int smalltype = RequestString.GetInt("smalltype", 0);
  796. int sourcearea = RequestString.GetInt("sourcearea", 0);
  797. int deptid = RequestString.GetInt("deptid", 0);
  798. int deptlevel = RequestString.GetInt("deptlevel", 0);
  799. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  800. string strpageindex = RequestString.GetQueryString("page");
  801. int pageindex = 1;
  802. string strpagesize = RequestString.GetQueryString("pagesize");
  803. int pagesize = 10;
  804. switch (strtab)
  805. {
  806. case "0"://待处理工单
  807. if (strstate.Trim() != "" && strstate != "undefined")
  808. {
  809. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  810. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  811. else
  812. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  813. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  814. if (strstate.Trim() == ((int)EnumWorkState.visit).ToString() && issatisfie != -1)
  815. {
  816. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult where F_State=1 and F_IsDelete=0 ";
  817. sql += " and F_IsSatisfie='" + issatisfie + "')";
  818. }
  819. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  820. {
  821. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 ";
  822. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  823. {
  824. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  825. }
  826. else
  827. {
  828. sql += ")";
  829. }
  830. }
  831. else
  832. {
  833. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  834. {
  835. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_State = 1 and F_IsDelete = 0 "
  836. + "and F_CreateUser = '" + userModel.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo where"
  837. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  838. }
  839. }
  840. }
  841. else
  842. {
  843. //int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  844. //sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  845. ////sql += " and F_WorkState in (1,2,3,5,7,8)";
  846. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  847. 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 where F_State=1 and F_IsDelete=0 ";
  848. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  849. {
  850. sql += " and F_CreateUser='" + userModel.F_UserCode + "')))";
  851. }
  852. else
  853. {
  854. sql += ")))";
  855. }
  856. }
  857. break;
  858. case "1"://已交办的工单
  859. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  860. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  861. if (strstate.Trim() != "" && strstate != "undefined")
  862. {
  863. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  864. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  865. else
  866. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  867. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  868. }
  869. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 ";
  870. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  871. {
  872. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  873. }
  874. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  875. {
  876. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  877. }
  878. if (deptid != 0)
  879. {
  880. sql += " and F_MainDeptId = '" + deptid + "'";
  881. }
  882. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  883. {
  884. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  885. }
  886. else
  887. {
  888. sql += ")";
  889. }
  890. break;
  891. case "2"://已审核退回的工单
  892. if (strstate.Trim() != "" && strstate != "undefined")
  893. {
  894. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  895. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  896. else
  897. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  898. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  899. }
  900. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_Feedback where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  901. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  902. {
  903. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  904. }
  905. else
  906. {
  907. sql += ")";
  908. }
  909. break;
  910. case "3"://已审核延时的工单
  911. if (strstate.Trim() != "" && strstate != "undefined")
  912. {
  913. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  914. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  915. else
  916. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  917. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  918. }
  919. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  920. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  921. {
  922. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  923. }
  924. else
  925. {
  926. sql += ")";
  927. }
  928. break;
  929. case "4"://已重办的工单
  930. if (strstate.Trim() != "" && strstate != "undefined")
  931. {
  932. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  933. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  934. else
  935. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  936. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  937. }
  938. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_IsReload>0 ";
  939. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  940. {
  941. sql += " and F_ReloadUser='" + userModel.F_UserCode + "')";
  942. }
  943. else
  944. {
  945. sql += ")";
  946. }
  947. break;
  948. case "5"://已结案的工单
  949. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  950. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  951. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  952. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  953. {
  954. sql += " and F_CloseUser='" + userModel.F_UserCode + "'";
  955. }
  956. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  957. {
  958. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  959. }
  960. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  961. {
  962. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  963. }
  964. break;
  965. case "6"://已督办的工单
  966. if (strstate.Trim() != "" && strstate != "undefined")
  967. {
  968. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  969. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  970. else
  971. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  972. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  973. }
  974. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  975. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  976. {
  977. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  978. }
  979. else
  980. {
  981. sql += ")";
  982. }
  983. break;
  984. case "7"://已监察的工单
  985. if (strstate.Trim() != "" && strstate != "undefined")
  986. {
  987. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  988. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  989. else
  990. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  991. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  992. }
  993. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  994. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY")
  995. {
  996. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  997. }
  998. else
  999. {
  1000. sql += ")";
  1001. }
  1002. break;
  1003. case "8"://待督办列表
  1004. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  1005. if (strstate.Trim() != "" && strstate != "undefined")
  1006. {
  1007. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1008. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1009. else
  1010. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1011. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1012. }
  1013. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=0 and F_IsDelete=0 and F_Type =1 ";
  1014. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode!= "DBZY")
  1015. {
  1016. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1017. }
  1018. else
  1019. {
  1020. sql += ")";
  1021. }
  1022. break;
  1023. }
  1024. if (strworkid.Trim() != "" && strworkid != "undefined")
  1025. {
  1026. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1027. }
  1028. if (strname.Trim() != "" && strname != "undefined")
  1029. {
  1030. sql += " and F_CusName like '%" + strname + "%' ";
  1031. }
  1032. if (strtel.Trim() != "" && strtel != "undefined")
  1033. {
  1034. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1035. }
  1036. if (strkey.Trim() != "" && strkey != "undefined")
  1037. {
  1038. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1039. }
  1040. #region 坐席&调度员
  1041. if (strusercode.Trim() != "" && strusercode != "undefined")
  1042. {//坐席
  1043. var usercode = strusercode.Trim().Split(',');
  1044. var newusercode = "";
  1045. foreach (var item in usercode)
  1046. {
  1047. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1048. newusercode += "'" + item + "',";
  1049. }
  1050. newusercode = newusercode.Trim(',');
  1051. if (newusercode.Trim() != "" && newusercode != "undefined")
  1052. {
  1053. sql += " and F_CreateUser in (" + newusercode + ") ";
  1054. }
  1055. }
  1056. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1057. {//调度员
  1058. var ddusercode = strddusercode.Trim().Split(',');
  1059. var newusercode = "";
  1060. foreach (var item in ddusercode)
  1061. {
  1062. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1063. newusercode += "'" + item + "',";
  1064. }
  1065. newusercode = newusercode.Trim(',');
  1066. if (newusercode.Trim() != "" && newusercode != "undefined")
  1067. {
  1068. sql += " and F_AssignUser in(" + newusercode + ") ";
  1069. }
  1070. }
  1071. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1072. //{
  1073. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1074. //}
  1075. #endregion
  1076. if (source != 0)
  1077. {
  1078. sql += " and F_InfoSource = '" + source + "' ";
  1079. }
  1080. if (keyid != 0)
  1081. {
  1082. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1083. }
  1084. if (type != 0)
  1085. {
  1086. sql += " and F_InfoType = '" + type + "' ";
  1087. }
  1088. if (bigtype != 0)
  1089. {
  1090. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1091. }
  1092. if (smalltype != 0)
  1093. {
  1094. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1095. }
  1096. if (sourcearea != 0)
  1097. {
  1098. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1099. }
  1100. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1101. {
  1102. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1103. }
  1104. if (strendtime.Trim() != "" && strendtime != "undefined")
  1105. {
  1106. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1107. }
  1108. if (deptid != 0 && strtab != "1")
  1109. {
  1110. if (deptlevel == 0)
  1111. {
  1112. 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 ";
  1113. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1114. }
  1115. else
  1116. {
  1117. 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 ";
  1118. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1119. }
  1120. }
  1121. if (strpageindex.Trim() != "")
  1122. {
  1123. pageindex = Convert.ToInt32(strpageindex);
  1124. }
  1125. if (strpagesize.Trim() != "")
  1126. {
  1127. pagesize = Convert.ToInt32(strpagesize);
  1128. }
  1129. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1130. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1131. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1132. if (isdc > 0)
  1133. {
  1134. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  1135. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1136. if (msg == "")
  1137. {
  1138. return Success("导出成功");
  1139. }
  1140. else
  1141. {
  1142. return Error("导出失败");
  1143. }
  1144. }
  1145. int recordCount = 0;
  1146. dt = BLL.PagerBLL.GetListPager(
  1147. "T_Bus_WorkOrder",
  1148. "F_WorkOrderId",
  1149. cols,
  1150. sql,
  1151. "ORDER BY F_CreateTime DESC",
  1152. pagesize,
  1153. pageindex,
  1154. true,
  1155. out recordCount);
  1156. #region 声音文件
  1157. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1158. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1159. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1160. dt.Columns.Add("OverState", typeof(string));//超时状态
  1161. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1162. dt.Columns.Add("GapTime", typeof(string));//时间差
  1163. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1164. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1165. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1166. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1167. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1168. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1169. foreach (DataRow dr in dt.Rows)
  1170. {
  1171. //获取最新交办信息
  1172. string iszbdw = "0";
  1173. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1174. if (state > 1)
  1175. {
  1176. 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";
  1177. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1178. if (dtjb.Rows.Count > 0)
  1179. {
  1180. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  1181. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1182. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1183. {
  1184. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1185. }
  1186. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1187. #region
  1188. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1189. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1190. //if (deptinfo != null)
  1191. //{
  1192. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  1193. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1194. //}
  1195. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1196. //{
  1197. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1198. // string dns = string.Empty;
  1199. // foreach (string strid in strids)
  1200. // {
  1201. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1202. // if (dinfo != null)
  1203. // {
  1204. // if (string.IsNullOrEmpty(dns))
  1205. // {
  1206. // dns = dinfo.F_DeptName;//交办单位
  1207. // }
  1208. // else
  1209. // {
  1210. // dns += "," + dinfo.F_DeptName;//交办单位
  1211. // }
  1212. // }
  1213. // }
  1214. // dr["OtherDeptName"] = dns;
  1215. //}
  1216. #endregion
  1217. #region
  1218. //if (state < 6 || state == 8)
  1219. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1220. {
  1221. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1222. dr["LimitTime"] = lt;
  1223. if (!string.IsNullOrWhiteSpace(lt))
  1224. {
  1225. var ltime = DateTime.Parse(lt);
  1226. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1227. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1228. if (tss < 0) { tss = -tss; }
  1229. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1230. if (ltime > DateTime.Now)
  1231. {
  1232. if (configcs != null)
  1233. {
  1234. int cs = Int32.Parse(configcs.F_ParamValue);
  1235. if (ts.TotalHours > cs)
  1236. {
  1237. dr["OverState"] = 1;
  1238. }
  1239. else
  1240. {
  1241. dr["OverState"] = 2;
  1242. }
  1243. }
  1244. dr["GapTime"] = "剩余" + gshsj;
  1245. }
  1246. else
  1247. {
  1248. dr["OverState"] = 3;
  1249. dr["GapTime"] = "超时" + gshsj;
  1250. }
  1251. }
  1252. }
  1253. if (state == (int)EnumWorkState.finish)
  1254. {
  1255. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1256. var dttime = DateTime.Now;
  1257. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1258. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1259. dr["LimitTime"] = lt;
  1260. if (!string.IsNullOrWhiteSpace(lt))
  1261. {
  1262. var ltime = DateTime.Parse(lt);
  1263. TimeSpan ts = ltime.Subtract(dttime);
  1264. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1265. if (tss < 0) { tss = -tss; }
  1266. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1267. if (ltime < dttime)
  1268. {
  1269. dr["OverState"] = 3;
  1270. dr["GapTime"] = "超时" + gshsj;
  1271. }
  1272. }
  1273. }
  1274. #endregion
  1275. }
  1276. }
  1277. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1278. {
  1279. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1280. }
  1281. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1282. {
  1283. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1284. }
  1285. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1286. if (Int32.Parse(strtab) <= 1)
  1287. {
  1288. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1289. #region 判断是否存在待督办
  1290. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1291. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1292. if (recount > 0 && butt != null)
  1293. btns.Remove(butt);
  1294. #endregion
  1295. }
  1296. else
  1297. {
  1298. btns.Clear();
  1299. if (Int32.Parse(strtab) == 8)
  1300. btns = ButtonGroup.GetButtons("12", userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1301. else
  1302. btns.Add(ButtonGroup.query());
  1303. }
  1304. dr["Buttons"] = btns;
  1305. }
  1306. #endregion
  1307. var obj = new
  1308. {
  1309. state = "success",
  1310. message = "成功",
  1311. rows = dt,
  1312. total = recordCount
  1313. };
  1314. return Content(obj.ToJson());
  1315. }
  1316. /// <summary>
  1317. /// 获取单位处理列表
  1318. /// </summary>
  1319. /// <returns></returns>
  1320. [Authority]
  1321. public ActionResult GetDWDealList(int isdc = 0)
  1322. {
  1323. DataTable dt = new DataTable();
  1324. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  1325. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  1326. string sql = " and F_IsDelete=0";
  1327. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1328. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1329. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1330. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1331. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1332. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1333. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1334. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1335. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1336. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1337. int source = RequestString.GetInt("source", 0);
  1338. int keyid = RequestString.GetInt("keyid", 0);
  1339. int type = RequestString.GetInt("type", 0);
  1340. int bigtype = RequestString.GetInt("bigtype", 0);
  1341. int smalltype = RequestString.GetInt("smalltype", 0);
  1342. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1343. int deptid = RequestString.GetInt("deptid", 0);
  1344. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1345. string strpageindex = RequestString.GetQueryString("page");
  1346. int pageindex = 1;
  1347. string strpagesize = RequestString.GetQueryString("pagesize");
  1348. int pagesize = 10;
  1349. #region 模块
  1350. switch (strtab)
  1351. {
  1352. case "0"://待处理工单
  1353. int isyq = RequestString.GetInt("isyq", -1);
  1354. if (strstate.Trim() != "" && strstate != "undefined")
  1355. {
  1356. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1357. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1358. else
  1359. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1360. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1361. }
  1362. else
  1363. {
  1364. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  1365. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1366. //sql += " and F_WorkState in (2,4,8)";
  1367. }
  1368. if (userModel.F_RoleCode != "GLY")
  1369. {
  1370. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and "
  1371. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)) or "
  1372. //+ "(','+F_OtherDeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_IsSure=1))";
  1373. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  1374. if (isyq != -1)
  1375. {
  1376. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  1377. }
  1378. else
  1379. {
  1380. sql += ")";
  1381. }
  1382. }
  1383. break;
  1384. case "1"://已查收的工单
  1385. if (strstate.Trim() != "" && strstate != "undefined")
  1386. {
  1387. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1388. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1389. else
  1390. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1391. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1392. }
  1393. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_IsSure=1 ";
  1394. if (userModel.F_RoleCode != "GLY")
  1395. {
  1396. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  1397. }
  1398. else
  1399. {
  1400. sql += ")";
  1401. }
  1402. break;
  1403. case "2"://已申请退回的工单
  1404. if (strstate.Trim() != "" && strstate != "undefined")
  1405. {
  1406. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1407. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1408. else
  1409. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1410. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1411. }
  1412. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback where F_State=1 and F_IsDelete=0 and F_Type = 3 ";
  1413. if (userModel.F_RoleCode != "GLY")
  1414. {
  1415. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1416. }
  1417. else
  1418. {
  1419. sql += ")";
  1420. }
  1421. break;
  1422. case "3"://已申请延时的工单
  1423. if (strstate.Trim() != "" && strstate != "undefined")
  1424. {
  1425. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1426. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1427. else
  1428. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1429. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1430. }
  1431. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime where F_State=1 and F_IsDelete=0 ";
  1432. if (userModel.F_RoleCode != "GLY")
  1433. {
  1434. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1435. }
  1436. else
  1437. {
  1438. sql += ")";
  1439. }
  1440. break;
  1441. case "4"://已办理的工单
  1442. if (strstate.Trim() != "" && strstate != "undefined")
  1443. {
  1444. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1445. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1446. else
  1447. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1448. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1449. }
  1450. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  1451. if (userModel.F_RoleCode != "GLY")
  1452. {
  1453. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1454. }
  1455. else
  1456. {
  1457. sql += ")";
  1458. }
  1459. break;
  1460. case "5"://被督办的工单
  1461. if (strstate.Trim() != "" && strstate != "undefined")
  1462. {
  1463. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1464. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1465. else
  1466. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1467. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1468. }
  1469. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  1470. if (userModel.F_RoleCode != "GLY")
  1471. {
  1472. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  1473. }
  1474. else
  1475. {
  1476. sql += ")";
  1477. }
  1478. break;
  1479. case "6"://被监察的工单
  1480. if (strstate.Trim() != "" && strstate != "undefined")
  1481. {
  1482. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1483. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1484. else
  1485. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1486. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1487. }
  1488. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  1489. if (userModel.F_RoleCode != "GLY")
  1490. {
  1491. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  1492. }
  1493. else
  1494. {
  1495. sql += ")";
  1496. }
  1497. break;
  1498. case "7"://延时审核中的工单
  1499. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  1500. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_IsSure=1 and isnull(F_FeedbackTime,'')=''";
  1501. if (userModel.F_RoleCode != "GLY")
  1502. {
  1503. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  1504. }
  1505. else
  1506. {
  1507. sql += ")";
  1508. }
  1509. break;
  1510. case "8"://退回审核中的工单
  1511. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  1512. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_IsSure=2 and isnull(F_FeedbackTime,'')=''";
  1513. if (userModel.F_RoleCode != "GLY")
  1514. {
  1515. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  1516. }
  1517. else
  1518. {
  1519. sql += ")";
  1520. }
  1521. break;
  1522. }
  1523. #endregion
  1524. #region 条件
  1525. if (strworkid.Trim() != "" && strworkid != "undefined")
  1526. {
  1527. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1528. }
  1529. if (strname.Trim() != "" && strname != "undefined")
  1530. {
  1531. sql += " and F_CusName like '%" + strname + "%' ";
  1532. }
  1533. if (strtel.Trim() != "" && strtel != "undefined")
  1534. {
  1535. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1536. }
  1537. if (strkey.Trim() != "" && strkey != "undefined")
  1538. {
  1539. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1540. }
  1541. #region 坐席&调度员
  1542. if (strusercode.Trim() != "" && strusercode != "undefined")
  1543. {//坐席
  1544. var usercode = strusercode.Trim().Split(',');
  1545. var newusercode = "";
  1546. foreach (var item in usercode)
  1547. {
  1548. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1549. newusercode += "'" + item + "',";
  1550. }
  1551. newusercode = newusercode.Trim(',');
  1552. if (newusercode.Trim() != "" && newusercode != "undefined")
  1553. {
  1554. sql += " and F_CreateUser in (" + newusercode + ") ";
  1555. }
  1556. }
  1557. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1558. {//调度员
  1559. var ddusercode = strddusercode.Trim().Split(',');
  1560. var newusercode = "";
  1561. foreach (var item in ddusercode)
  1562. {
  1563. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1564. newusercode += "'" + item + "',";
  1565. }
  1566. newusercode = newusercode.Trim(',');
  1567. if (newusercode.Trim() != "" && newusercode != "undefined")
  1568. {
  1569. sql += " and F_AssignUser in(" + newusercode + ") ";
  1570. }
  1571. }
  1572. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1573. //{
  1574. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1575. //}
  1576. #endregion
  1577. if (source != 0)
  1578. {
  1579. sql += " and F_InfoSource = '" + source + "' ";
  1580. }
  1581. if (keyid != 0)
  1582. {
  1583. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1584. }
  1585. if (type != 0)
  1586. {
  1587. sql += " and F_InfoType = '" + type + "' ";
  1588. }
  1589. if (bigtype != 0)
  1590. {
  1591. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1592. }
  1593. if (smalltype != 0)
  1594. {
  1595. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1596. }
  1597. if (sourcearea != 0)
  1598. {
  1599. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1600. }
  1601. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1602. {
  1603. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1604. }
  1605. if (strendtime.Trim() != "" && strendtime != "undefined")
  1606. {
  1607. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1608. }
  1609. if (strpageindex.Trim() != "")
  1610. {
  1611. pageindex = Convert.ToInt32(strpageindex);
  1612. }
  1613. if (strpagesize.Trim() != "")
  1614. {
  1615. pagesize = Convert.ToInt32(strpagesize);
  1616. }
  1617. #endregion
  1618. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1619. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1620. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1621. if (isdc > 0)
  1622. {
  1623. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  1624. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1625. if (msg == "")
  1626. {
  1627. return Success("导出成功");
  1628. }
  1629. else
  1630. {
  1631. return Error("导出失败");
  1632. }
  1633. }
  1634. int recordCount = 0;
  1635. dt = BLL.PagerBLL.GetListPager(
  1636. "T_Bus_WorkOrder",
  1637. "F_WorkOrderId",
  1638. cols,
  1639. sql,
  1640. "ORDER BY F_CreateTime DESC",
  1641. pagesize,
  1642. pageindex,
  1643. true,
  1644. out recordCount);
  1645. #region 声音文件
  1646. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1647. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1648. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1649. dt.Columns.Add("OverState", typeof(string));//超时状态
  1650. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1651. dt.Columns.Add("GapTime", typeof(string));//时间差
  1652. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1653. dt.Columns.Add("PDState", typeof(string));//派单状态
  1654. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1655. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1656. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1657. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1658. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1659. foreach (DataRow dr in dt.Rows)
  1660. {
  1661. //获取最新交办信息
  1662. string iszbdw = "0";
  1663. string ispd = "";
  1664. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1665. if (state > 1)
  1666. {
  1667. 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";
  1668. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1669. if (dtjb.Rows.Count > 0)
  1670. {
  1671. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  1672. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1673. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1674. {
  1675. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1676. }
  1677. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1678. #region
  1679. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1680. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1681. //if (deptinfo != null)
  1682. //{
  1683. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  1684. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1685. //}
  1686. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1687. //{
  1688. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1689. // string dns = string.Empty;
  1690. // foreach (string strid in strids)
  1691. // {
  1692. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1693. // if (dinfo != null)
  1694. // {
  1695. // if (string.IsNullOrEmpty(dns))
  1696. // {
  1697. // dns = dinfo.F_DeptName;//交办单位
  1698. // }
  1699. // else
  1700. // {
  1701. // dns += "," + dinfo.F_DeptName;//交办单位
  1702. // }
  1703. // }
  1704. // }
  1705. // dr["OtherDeptName"] = dns;
  1706. //}
  1707. #endregion
  1708. #region
  1709. //if (state < 6 || state == 8)
  1710. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1711. {
  1712. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1713. dr["LimitTime"] = lt;
  1714. if (!string.IsNullOrWhiteSpace(lt))
  1715. {
  1716. var ltime = DateTime.Parse(lt);
  1717. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1718. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1719. if (tss < 0) { tss = -tss; }
  1720. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1721. if (ltime > DateTime.Now)
  1722. {
  1723. if (configcs != null)
  1724. {
  1725. int cs = Int32.Parse(configcs.F_ParamValue);
  1726. if (ts.TotalHours > cs)
  1727. {
  1728. dr["OverState"] = 1;
  1729. }
  1730. else
  1731. {
  1732. dr["OverState"] = 2;
  1733. }
  1734. }
  1735. dr["GapTime"] = "剩余" + gshsj;
  1736. }
  1737. else
  1738. {
  1739. dr["OverState"] = 3;
  1740. dr["GapTime"] = "超时" + gshsj;
  1741. }
  1742. }
  1743. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  1744. dr["PDState"] = ispd;
  1745. }
  1746. if (state == (int)EnumWorkState.finish)
  1747. {
  1748. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1749. var dttime = DateTime.Now;
  1750. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1751. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1752. dr["LimitTime"] = lt;
  1753. if (!string.IsNullOrWhiteSpace(lt))
  1754. {
  1755. var ltime = DateTime.Parse(lt);
  1756. TimeSpan ts = ltime.Subtract(dttime);
  1757. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1758. if (tss < 0) { tss = -tss; }
  1759. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1760. if (ltime < dttime)
  1761. {
  1762. dr["OverState"] = 3;
  1763. dr["GapTime"] = "超时" + gshsj;
  1764. }
  1765. }
  1766. }
  1767. #endregion
  1768. }
  1769. }
  1770. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1771. {
  1772. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1773. }
  1774. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1775. {
  1776. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1777. }
  1778. //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";
  1779. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  1780. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1781. if (Int32.Parse(strtab) < 1)
  1782. {
  1783. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  1784. #region 判断是否存在待督办
  1785. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1786. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1787. if (recount > 0 && butt != null)
  1788. btns.Remove(butt);
  1789. #endregion
  1790. }
  1791. else
  1792. {
  1793. btns.Add(ButtonGroup.query());
  1794. }
  1795. dr["Buttons"] = btns;
  1796. }
  1797. #endregion
  1798. var obj = new
  1799. {
  1800. state = "success",
  1801. message = "成功",
  1802. rows = dt,
  1803. total = recordCount
  1804. };
  1805. return Content(obj.ToJson());
  1806. }
  1807. /// <summary>
  1808. /// 获取单位处理列表
  1809. /// </summary>
  1810. /// <returns></returns>
  1811. [Authority]
  1812. public ActionResult GetXBDWDealList(int isdc = 0)
  1813. {
  1814. DataTable dt = new DataTable();
  1815. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  1816. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  1817. string sql = " and F_IsDelete=0";
  1818. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1819. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1820. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1821. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1822. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1823. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1824. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1825. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1826. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1827. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1828. int source = RequestString.GetInt("source", 0);
  1829. int keyid = RequestString.GetInt("keyid", 0);
  1830. int type = RequestString.GetInt("type", 0);
  1831. int bigtype = RequestString.GetInt("bigtype", 0);
  1832. int smalltype = RequestString.GetInt("smalltype", 0);
  1833. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1834. int deptid = RequestString.GetInt("deptid", 0);
  1835. string strpageindex = RequestString.GetQueryString("page");
  1836. int pageindex = 1;
  1837. string strpagesize = RequestString.GetQueryString("pagesize");
  1838. int pagesize = 10;
  1839. switch (strtab)
  1840. {
  1841. case "0"://待处理工单
  1842. int isyq = RequestString.GetInt("isyq", -1);
  1843. if (strstate.Trim() != "" && strstate != "undefined")
  1844. {
  1845. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1846. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1847. else
  1848. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1849. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1850. }
  1851. else
  1852. {
  1853. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  1854. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1855. //sql += " and F_WorkState in (2,4,8)";
  1856. }
  1857. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo where F_State=1 and F_IsDelete=0 and "
  1858. + " ISNULL(F_FeedbackTime, '')='' ";
  1859. if (userModel.F_RoleCode != "GLY")
  1860. {
  1861. sql += " and F_DeptId =" + userModel.F_DeptId;
  1862. }
  1863. if (isyq != -1)
  1864. {
  1865. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  1866. }
  1867. else
  1868. {
  1869. sql += ")";
  1870. }
  1871. break;
  1872. case "1"://已办理的工单
  1873. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  1874. if (userModel.F_RoleCode != "GLY")
  1875. {
  1876. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1877. }
  1878. else
  1879. {
  1880. sql += ")";
  1881. }
  1882. break;
  1883. }
  1884. if (strworkid.Trim() != "" && strworkid != "undefined")
  1885. {
  1886. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1887. }
  1888. if (strname.Trim() != "" && strname != "undefined")
  1889. {
  1890. sql += " and F_CusName like '%" + strname + "%' ";
  1891. }
  1892. if (strtel.Trim() != "" && strtel != "undefined")
  1893. {
  1894. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1895. }
  1896. if (strkey.Trim() != "" && strkey != "undefined")
  1897. {
  1898. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1899. }
  1900. #region 坐席&调度员
  1901. if (strusercode.Trim() != "" && strusercode != "undefined")
  1902. {//坐席
  1903. var usercode = strusercode.Trim().Split(',');
  1904. var newusercode = "";
  1905. foreach (var item in usercode)
  1906. {
  1907. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1908. newusercode += "'" + item + "',";
  1909. }
  1910. newusercode = newusercode.Trim(',');
  1911. if (newusercode.Trim() != "" && newusercode != "undefined")
  1912. {
  1913. sql += " and F_CreateUser in (" + newusercode + ") ";
  1914. }
  1915. }
  1916. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1917. {//调度员
  1918. var ddusercode = strddusercode.Trim().Split(',');
  1919. var newusercode = "";
  1920. foreach (var item in ddusercode)
  1921. {
  1922. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1923. newusercode += "'" + item + "',";
  1924. }
  1925. newusercode = newusercode.Trim(',');
  1926. if (newusercode.Trim() != "" && newusercode != "undefined")
  1927. {
  1928. sql += " and F_AssignUser in(" + newusercode + ") ";
  1929. }
  1930. }
  1931. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1932. //{
  1933. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1934. //}
  1935. #endregion
  1936. if (source != 0)
  1937. {
  1938. sql += " and F_InfoSource = '" + source + "' ";
  1939. }
  1940. if (keyid != 0)
  1941. {
  1942. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1943. }
  1944. if (type != 0)
  1945. {
  1946. sql += " and F_InfoType = '" + type + "' ";
  1947. }
  1948. if (bigtype != 0)
  1949. {
  1950. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1951. }
  1952. if (smalltype != 0)
  1953. {
  1954. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1955. }
  1956. if (sourcearea != 0)
  1957. {
  1958. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1959. }
  1960. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1961. {
  1962. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1963. }
  1964. if (strendtime.Trim() != "" && strendtime != "undefined")
  1965. {
  1966. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1967. }
  1968. if (strpageindex.Trim() != "")
  1969. {
  1970. pageindex = Convert.ToInt32(strpageindex);
  1971. }
  1972. if (strpagesize.Trim() != "")
  1973. {
  1974. pagesize = Convert.ToInt32(strpagesize);
  1975. }
  1976. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1977. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1978. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1979. if (isdc > 0)
  1980. {
  1981. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  1982. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1983. if (msg == "")
  1984. {
  1985. return Success("导出成功");
  1986. }
  1987. else
  1988. {
  1989. return Error("导出失败");
  1990. }
  1991. }
  1992. int recordCount = 0;
  1993. dt = BLL.PagerBLL.GetListPager(
  1994. "T_Bus_WorkOrder",
  1995. "F_WorkOrderId",
  1996. cols,
  1997. sql,
  1998. "ORDER BY F_CreateTime DESC",
  1999. pagesize,
  2000. pageindex,
  2001. true,
  2002. out recordCount);
  2003. #region 声音文件
  2004. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2005. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2006. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2007. dt.Columns.Add("OverState", typeof(string));//超时状态
  2008. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2009. dt.Columns.Add("GapTime", typeof(string));//时间差
  2010. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2011. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2012. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2013. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2014. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2015. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2016. foreach (DataRow dr in dt.Rows)
  2017. {
  2018. //获取最新交办信息
  2019. string iszbdw = "0";
  2020. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2021. if (state > 1)
  2022. {
  2023. 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";
  2024. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2025. if (dtjb.Rows.Count > 0)
  2026. {
  2027. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2028. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2029. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2030. {
  2031. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2032. }
  2033. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2034. #region
  2035. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2036. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2037. //if (deptinfo != null)
  2038. //{
  2039. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2040. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2041. //}
  2042. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2043. //{
  2044. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2045. // string dns = string.Empty;
  2046. // foreach (string strid in strids)
  2047. // {
  2048. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2049. // if (dinfo != null)
  2050. // {
  2051. // if (string.IsNullOrEmpty(dns))
  2052. // {
  2053. // dns = dinfo.F_DeptName;//交办单位
  2054. // }
  2055. // else
  2056. // {
  2057. // dns += "," + dinfo.F_DeptName;//交办单位
  2058. // }
  2059. // }
  2060. // }
  2061. // dr["OtherDeptName"] = dns;
  2062. //}
  2063. #endregion
  2064. #region
  2065. //if (state < 6 || state == 8)
  2066. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2067. {
  2068. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2069. dr["LimitTime"] = lt;
  2070. if (!string.IsNullOrWhiteSpace(lt))
  2071. {
  2072. var ltime = DateTime.Parse(lt);
  2073. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2074. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2075. if (tss < 0) { tss = -tss; }
  2076. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2077. if (ltime > DateTime.Now)
  2078. {
  2079. if (configcs != null)
  2080. {
  2081. int cs = Int32.Parse(configcs.F_ParamValue);
  2082. if (ts.TotalHours > cs)
  2083. {
  2084. dr["OverState"] = 1;
  2085. }
  2086. else
  2087. {
  2088. dr["OverState"] = 2;
  2089. }
  2090. }
  2091. dr["GapTime"] = "剩余" + gshsj;
  2092. }
  2093. else
  2094. {
  2095. dr["OverState"] = 3;
  2096. dr["GapTime"] = "超时" + gshsj;
  2097. }
  2098. }
  2099. }
  2100. if (state == (int)EnumWorkState.finish)
  2101. {
  2102. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2103. var dttime = DateTime.Now;
  2104. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2105. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2106. dr["LimitTime"] = lt;
  2107. if (!string.IsNullOrWhiteSpace(lt))
  2108. {
  2109. var ltime = DateTime.Parse(lt);
  2110. TimeSpan ts = ltime.Subtract(dttime);
  2111. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2112. if (tss < 0) { tss = -tss; }
  2113. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2114. if (ltime < dttime)
  2115. {
  2116. dr["OverState"] = 3;
  2117. dr["GapTime"] = "超时" + gshsj;
  2118. }
  2119. }
  2120. }
  2121. #endregion
  2122. }
  2123. }
  2124. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2125. {
  2126. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2127. }
  2128. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2129. {
  2130. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2131. }
  2132. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2133. if (Int32.Parse(strtab) < 1)
  2134. {
  2135. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2136. #region 判断是否存在待督办
  2137. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2138. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2139. if (recount > 0 && butt != null)
  2140. btns.Remove(butt);
  2141. #endregion
  2142. }
  2143. else
  2144. {
  2145. btns.Add(ButtonGroup.query());
  2146. }
  2147. dr["Buttons"] = btns;
  2148. }
  2149. #endregion
  2150. var obj = new
  2151. {
  2152. state = "success",
  2153. message = "成功",
  2154. rows = dt,
  2155. total = recordCount
  2156. };
  2157. return Content(obj.ToJson());
  2158. }
  2159. /// <summary>
  2160. /// 获取单位主办协办未处理工单列表
  2161. /// </summary>
  2162. /// <returns></returns>
  2163. [Authority]
  2164. public ActionResult GetDWNoDealList(int isdc = 0)
  2165. {
  2166. DataTable dt = new DataTable();
  2167. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2168. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2169. string sql = " and F_IsDelete=0";
  2170. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2171. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2172. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2173. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2174. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2175. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2176. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2177. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2178. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2179. int source = RequestString.GetInt("source", 0);
  2180. int keyid = RequestString.GetInt("keyid", 0);
  2181. int type = RequestString.GetInt("type", 0);
  2182. int bigtype = RequestString.GetInt("bigtype", 0);
  2183. int smalltype = RequestString.GetInt("smalltype", 0);
  2184. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2185. int deptid = RequestString.GetInt("deptid", 0);
  2186. string strpageindex = RequestString.GetQueryString("page");
  2187. int pageindex = 1;
  2188. string strpagesize = RequestString.GetQueryString("pagesize");
  2189. int pagesize = 10;
  2190. if (userModel.F_RoleCode == "ZXHWY")
  2191. {
  2192. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  2193. }
  2194. #region 坐席&调度员
  2195. if (strusercode.Trim() != "" && strusercode != "undefined")
  2196. {//坐席
  2197. var usercode = strusercode.Trim().Split(',');
  2198. var newusercode = "";
  2199. foreach (var item in usercode)
  2200. {
  2201. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2202. newusercode += "'" + item + "',";
  2203. }
  2204. newusercode = newusercode.Trim(',');
  2205. if (newusercode.Trim() != "" && newusercode != "undefined")
  2206. {
  2207. sql += " and F_CreateUser in (" + newusercode + ") ";
  2208. }
  2209. }
  2210. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2211. {//调度员
  2212. var ddusercode = strddusercode.Trim().Split(',');
  2213. var newusercode = "";
  2214. foreach (var item in ddusercode)
  2215. {
  2216. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2217. newusercode += "'" + item + "',";
  2218. }
  2219. newusercode = newusercode.Trim(',');
  2220. if (newusercode.Trim() != "" && newusercode != "undefined")
  2221. {
  2222. sql += " and F_AssignUser in(" + newusercode + ") ";
  2223. }
  2224. }
  2225. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2226. //{
  2227. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2228. //}
  2229. #endregion
  2230. sql += " and ( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  2231. if (userModel.F_RoleCode == "WLDW")
  2232. {
  2233. sql += " and F_MainDeptId = '" + userModel.F_DeptId + "' ";
  2234. }
  2235. else if (deptid != 0)
  2236. {
  2237. sql += " and F_MainDeptId = '" + deptid + "' ";
  2238. }
  2239. sql += ") or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' ";
  2240. if (userModel.F_RoleCode == "WLDW")
  2241. {
  2242. sql += " and F_DeptId = '" + userModel.F_DeptId + "' ";
  2243. }
  2244. else if (deptid != 0)
  2245. {
  2246. sql += " and F_DeptId = '" + deptid + "' ";
  2247. }
  2248. sql += "))";
  2249. if (strstate.Trim() != "" && strstate != "undefined")
  2250. {
  2251. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2252. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2253. else
  2254. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2255. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2256. }
  2257. else
  2258. {
  2259. sql += " and F_WorkState in (2,4,8)";
  2260. }
  2261. if (strworkid.Trim() != "" && strworkid != "undefined")
  2262. {
  2263. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2264. }
  2265. if (strname.Trim() != "" && strname != "undefined")
  2266. {
  2267. sql += " and F_CusName like '%" + strname + "%' ";
  2268. }
  2269. if (strtel.Trim() != "" && strtel != "undefined")
  2270. {
  2271. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2272. }
  2273. if (strkey.Trim() != "" && strkey != "undefined")
  2274. {
  2275. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2276. }
  2277. if (source != 0)
  2278. {
  2279. sql += " and F_InfoSource = '" + source + "' ";
  2280. }
  2281. if (keyid != 0)
  2282. {
  2283. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2284. }
  2285. if (type != 0)
  2286. {
  2287. sql += " and F_InfoType = '" + type + "' ";
  2288. }
  2289. if (bigtype != 0)
  2290. {
  2291. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2292. }
  2293. if (smalltype != 0)
  2294. {
  2295. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2296. }
  2297. if (sourcearea != 0)
  2298. {
  2299. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2300. }
  2301. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2302. {
  2303. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2304. }
  2305. if (strendtime.Trim() != "" && strendtime != "undefined")
  2306. {
  2307. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2308. }
  2309. if (strpageindex.Trim() != "")
  2310. {
  2311. pageindex = Convert.ToInt32(strpageindex);
  2312. }
  2313. if (strpagesize.Trim() != "")
  2314. {
  2315. pagesize = Convert.ToInt32(strpagesize);
  2316. }
  2317. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  2318. if (isdc > 0)
  2319. {
  2320. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  2321. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2322. if (msg == "")
  2323. {
  2324. return Success("导出成功");
  2325. }
  2326. else
  2327. {
  2328. return Error("导出失败");
  2329. }
  2330. }
  2331. int recordCount = 0;
  2332. dt = BLL.PagerBLL.GetListPager(
  2333. "T_Bus_WorkOrder",
  2334. "F_WorkOrderId",
  2335. cols,
  2336. sql,
  2337. "ORDER BY F_CreateTime DESC",
  2338. pagesize,
  2339. pageindex,
  2340. true,
  2341. out recordCount);
  2342. #region 声音文件
  2343. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2344. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2345. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2346. dt.Columns.Add("OverState", typeof(string));//超时状态
  2347. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2348. dt.Columns.Add("GapTime", typeof(string));//时间差
  2349. dt.Columns.Add("FilePath", typeof(string));
  2350. dt.Columns.Add("Buttons", typeof(object));
  2351. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2352. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2353. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2354. foreach (DataRow dr in dt.Rows)
  2355. {
  2356. //获取最新交办信息
  2357. string iszbdw = "0";
  2358. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2359. if (state > 1)
  2360. {
  2361. 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";
  2362. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2363. if (dtjb.Rows.Count > 0)
  2364. {
  2365. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2366. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2367. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2368. {
  2369. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2370. }
  2371. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2372. #region
  2373. //if (state < 6 || state == 8)
  2374. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2375. {
  2376. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2377. dr["LimitTime"] = lt;
  2378. if (!string.IsNullOrWhiteSpace(lt))
  2379. {
  2380. var ltime = DateTime.Parse(lt);
  2381. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2382. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2383. if (tss < 0) { tss = -tss; }
  2384. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2385. if (ltime > DateTime.Now)
  2386. {
  2387. if (configcs != null)
  2388. {
  2389. int cs = Int32.Parse(configcs.F_ParamValue);
  2390. if (ts.TotalHours > cs)
  2391. {
  2392. dr["OverState"] = 1;
  2393. }
  2394. else
  2395. {
  2396. dr["OverState"] = 2;
  2397. }
  2398. }
  2399. dr["GapTime"] = "剩余" + gshsj;
  2400. }
  2401. else
  2402. {
  2403. dr["OverState"] = 3;
  2404. dr["GapTime"] = "超时" + gshsj;
  2405. }
  2406. }
  2407. }
  2408. if (state == (int)EnumWorkState.finish)
  2409. {
  2410. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2411. var dttime = DateTime.Now;
  2412. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2413. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2414. dr["LimitTime"] = lt;
  2415. if (!string.IsNullOrWhiteSpace(lt))
  2416. {
  2417. var ltime = DateTime.Parse(lt);
  2418. TimeSpan ts = ltime.Subtract(dttime);
  2419. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2420. if (tss < 0) { tss = -tss; }
  2421. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2422. if (ltime < dttime)
  2423. {
  2424. dr["OverState"] = 3;
  2425. dr["GapTime"] = "超时" + gshsj;
  2426. }
  2427. }
  2428. }
  2429. #endregion
  2430. }
  2431. }
  2432. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2433. {
  2434. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2435. }
  2436. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2437. {
  2438. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2439. }
  2440. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2441. btns.Add(ButtonGroup.query());
  2442. dr["Buttons"] = btns;
  2443. }
  2444. #endregion
  2445. var obj = new
  2446. {
  2447. state = "success",
  2448. message = "成功",
  2449. rows = dt,
  2450. total = recordCount
  2451. };
  2452. return Content(obj.ToJson());
  2453. }
  2454. /// <summary>
  2455. /// 获取二级单位处理列表
  2456. /// </summary>
  2457. /// <returns></returns>
  2458. [Authority]
  2459. public ActionResult GetEJDWDealList(int isdc = 0)
  2460. {
  2461. DataTable dt = new DataTable();
  2462. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2463. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2464. string sql = " and F_IsDelete=0";
  2465. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2466. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2467. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2468. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2469. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2470. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2471. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2472. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2473. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2474. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2475. int source = RequestString.GetInt("source", 0);
  2476. int keyid = RequestString.GetInt("keyid", 0);
  2477. int type = RequestString.GetInt("type", 0);
  2478. int bigtype = RequestString.GetInt("bigtype", 0);
  2479. int smalltype = RequestString.GetInt("smalltype", 0);
  2480. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2481. int deptid = RequestString.GetInt("deptid", 0);
  2482. string strpageindex = RequestString.GetQueryString("page");
  2483. int pageindex = 1;
  2484. string strpagesize = RequestString.GetQueryString("pagesize");
  2485. int pagesize = 10;
  2486. #region 模块
  2487. switch (strtab)
  2488. {
  2489. case "0"://待处理工单
  2490. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  2491. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2492. //sql += " and F_WorkState in (4,5) ";
  2493. if (userModel.F_RoleCode != "GLY")
  2494. {
  2495. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next where F_State=1 and F_IsDelete=0 and "
  2496. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1))";
  2497. }
  2498. break;
  2499. case "1"://已办理的工单
  2500. if (strstate.Trim() != "" && strstate != "undefined")
  2501. {
  2502. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2503. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2504. else
  2505. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2506. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2507. }
  2508. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  2509. if (userModel.F_RoleCode != "GLY")
  2510. {
  2511. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2512. }
  2513. else
  2514. {
  2515. sql += ")";
  2516. }
  2517. break;
  2518. }
  2519. #endregion
  2520. #region 条件
  2521. if (strworkid.Trim() != "" && strworkid != "undefined")
  2522. {
  2523. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2524. }
  2525. if (strname.Trim() != "" && strname != "undefined")
  2526. {
  2527. sql += " and F_CusName like '%" + strname + "%' ";
  2528. }
  2529. if (strtel.Trim() != "" && strtel != "undefined")
  2530. {
  2531. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2532. }
  2533. if (strkey.Trim() != "" && strkey != "undefined")
  2534. {
  2535. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2536. }
  2537. #region 坐席&调度员
  2538. if (strusercode.Trim() != "" && strusercode != "undefined")
  2539. {//坐席
  2540. var usercode = strusercode.Trim().Split(',');
  2541. var newusercode = "";
  2542. foreach (var item in usercode)
  2543. {
  2544. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2545. newusercode += "'" + item + "',";
  2546. }
  2547. newusercode = newusercode.Trim(',');
  2548. if (newusercode.Trim() != "" && newusercode != "undefined")
  2549. {
  2550. sql += " and F_CreateUser in (" + newusercode + ") ";
  2551. }
  2552. }
  2553. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2554. {//调度员
  2555. var ddusercode = strddusercode.Trim().Split(',');
  2556. var newusercode = "";
  2557. foreach (var item in ddusercode)
  2558. {
  2559. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2560. newusercode += "'" + item + "',";
  2561. }
  2562. newusercode = newusercode.Trim(',');
  2563. if (newusercode.Trim() != "" && newusercode != "undefined")
  2564. {
  2565. sql += " and F_AssignUser in(" + newusercode + ") ";
  2566. }
  2567. }
  2568. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2569. //{
  2570. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2571. //}
  2572. #endregion
  2573. if (source != 0)
  2574. {
  2575. sql += " and F_InfoSource = '" + source + "' ";
  2576. }
  2577. if (keyid != 0)
  2578. {
  2579. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2580. }
  2581. if (type != 0)
  2582. {
  2583. sql += " and F_InfoType = '" + type + "' ";
  2584. }
  2585. if (bigtype != 0)
  2586. {
  2587. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2588. }
  2589. if (smalltype != 0)
  2590. {
  2591. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2592. }
  2593. if (sourcearea != 0)
  2594. {
  2595. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2596. }
  2597. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2598. {
  2599. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2600. }
  2601. if (strendtime.Trim() != "" && strendtime != "undefined")
  2602. {
  2603. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2604. }
  2605. if (strpageindex.Trim() != "")
  2606. {
  2607. pageindex = Convert.ToInt32(strpageindex);
  2608. }
  2609. if (strpagesize.Trim() != "")
  2610. {
  2611. pagesize = Convert.ToInt32(strpagesize);
  2612. }
  2613. #endregion
  2614. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2615. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2616. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2617. if (isdc > 0)
  2618. {
  2619. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  2620. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2621. if (msg == "")
  2622. {
  2623. return Success("导出成功");
  2624. }
  2625. else
  2626. {
  2627. return Error("导出失败");
  2628. }
  2629. }
  2630. int recordCount = 0;
  2631. dt = BLL.PagerBLL.GetListPager(
  2632. "T_Bus_WorkOrder",
  2633. "F_WorkOrderId",
  2634. cols,
  2635. sql,
  2636. "ORDER BY F_CreateTime DESC",
  2637. pagesize,
  2638. pageindex,
  2639. true,
  2640. out recordCount);
  2641. #region 声音文件
  2642. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2643. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2644. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2645. dt.Columns.Add("OverState", typeof(string));//超时状态
  2646. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2647. dt.Columns.Add("GapTime", typeof(string));//时间差
  2648. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2649. dt.Columns.Add("PDState", typeof(string));//派单状态
  2650. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2651. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2652. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2653. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2654. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2655. foreach (DataRow dr in dt.Rows)
  2656. {
  2657. //获取最新交办信息
  2658. string iszbdw = "0";
  2659. string ispd = "";
  2660. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2661. if (state > 1)
  2662. {
  2663. 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";
  2664. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2665. if (dtjb.Rows.Count > 0)
  2666. {
  2667. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2668. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2669. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2670. {
  2671. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2672. }
  2673. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2674. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2675. dr["LimitTime"] = lt;
  2676. #region
  2677. //if (state < 6 || state == 8)
  2678. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2679. {
  2680. if (!string.IsNullOrWhiteSpace(lt))
  2681. {
  2682. var ltime = DateTime.Parse(lt);
  2683. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2684. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2685. if (tss < 0) { tss = -tss; }
  2686. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2687. if (ltime > DateTime.Now)
  2688. {
  2689. if (configcs != null)
  2690. {
  2691. int cs = Int32.Parse(configcs.F_ParamValue);
  2692. if (ts.TotalHours > cs)
  2693. {
  2694. dr["OverState"] = 1;
  2695. }
  2696. else
  2697. {
  2698. dr["OverState"] = 2;
  2699. }
  2700. }
  2701. dr["GapTime"] = "剩余" + gshsj;
  2702. }
  2703. else
  2704. {
  2705. dr["OverState"] = 3;
  2706. dr["GapTime"] = "超时" + gshsj;
  2707. }
  2708. }
  2709. }
  2710. if (state == (int)EnumWorkState.finish)
  2711. {
  2712. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2713. var dttime = DateTime.Now;
  2714. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2715. if (!string.IsNullOrWhiteSpace(lt))
  2716. {
  2717. var ltime = DateTime.Parse(lt);
  2718. TimeSpan ts = ltime.Subtract(dttime);
  2719. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2720. if (tss < 0) { tss = -tss; }
  2721. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2722. if (ltime < dttime)
  2723. {
  2724. dr["OverState"] = 3;
  2725. dr["GapTime"] = "超时" + gshsj;
  2726. }
  2727. }
  2728. }
  2729. #endregion
  2730. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  2731. dr["PDState"] = ispd;
  2732. }
  2733. }
  2734. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2735. {
  2736. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2737. }
  2738. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2739. {
  2740. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2741. }
  2742. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2743. if (Int32.Parse(strtab) < 1)
  2744. {
  2745. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2746. #region 判断是否存在待督办
  2747. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2748. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2749. if (recount > 0 && butt != null)
  2750. btns.Remove(butt);
  2751. #endregion
  2752. }
  2753. else
  2754. {
  2755. btns.Add(ButtonGroup.query());
  2756. }
  2757. dr["Buttons"] = btns;
  2758. }
  2759. #endregion
  2760. var obj = new
  2761. {
  2762. state = "success",
  2763. message = "成功",
  2764. rows = dt,
  2765. total = recordCount
  2766. };
  2767. return Content(obj.ToJson());
  2768. }
  2769. /// <summary>
  2770. /// 获取逾期未回复工单列表
  2771. /// </summary>
  2772. /// <returns></returns>
  2773. [Authority]
  2774. public ActionResult GetTimeOutList(int isdc = 0)
  2775. {
  2776. DataTable dt = new DataTable();
  2777. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2778. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2779. string sql = " and F_IsDelete=0";
  2780. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2781. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2782. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2783. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2784. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2785. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2786. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2787. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2788. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2789. int source = RequestString.GetInt("source", 0);
  2790. int keyid = RequestString.GetInt("keyid", 0);
  2791. int type = RequestString.GetInt("type", 0);
  2792. int bigtype = RequestString.GetInt("bigtype", 0);
  2793. int smalltype = RequestString.GetInt("smalltype", 0);
  2794. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2795. int deptid = RequestString.GetInt("deptid", 0);
  2796. string strpageindex = RequestString.GetQueryString("page");
  2797. int pageindex = 1;
  2798. string strpagesize = RequestString.GetQueryString("pagesize");
  2799. int pagesize = 10;
  2800. if (userModel.F_RoleCode == "ZXHWY")
  2801. {
  2802. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  2803. }
  2804. else
  2805. {
  2806. #region 坐席&调度员
  2807. if (strusercode.Trim() != "" && strusercode != "undefined")
  2808. {//坐席
  2809. var usercode = strusercode.Trim().Split(',');
  2810. var newusercode = "";
  2811. foreach (var item in usercode)
  2812. {
  2813. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2814. newusercode += "'" + item + "',";
  2815. }
  2816. newusercode = newusercode.Trim(',');
  2817. if (newusercode.Trim() != "" && newusercode != "undefined")
  2818. {
  2819. sql += " and F_CreateUser in (" + newusercode + ") ";
  2820. }
  2821. }
  2822. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2823. {//调度员
  2824. var ddusercode = strddusercode.Trim().Split(',');
  2825. var newusercode = "";
  2826. foreach (var item in ddusercode)
  2827. {
  2828. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2829. newusercode += "'" + item + "',";
  2830. }
  2831. newusercode = newusercode.Trim(',');
  2832. if (newusercode.Trim() != "" && newusercode != "undefined")
  2833. {
  2834. sql += " and F_AssignUser in(" + newusercode + ") ";
  2835. }
  2836. }
  2837. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2838. //{
  2839. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2840. //}
  2841. #endregion
  2842. }
  2843. sql += " and ( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  2844. if (userModel.F_RoleCode == "WLDW")
  2845. {
  2846. sql += " and F_MainDeptId = '" + userModel.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo"
  2847. + " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + userModel.F_DeptId + "' ";
  2848. }
  2849. else if (deptid != 0)
  2850. {
  2851. sql += " and F_MainDeptId = '" + deptid + "' ";
  2852. }
  2853. if (userModel.F_RoleCode == "ZXLD")
  2854. {
  2855. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  2856. }
  2857. sql += "))";
  2858. if (strstate.Trim() != "" && strstate != "undefined")
  2859. {
  2860. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2861. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2862. else
  2863. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2864. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2865. }
  2866. else
  2867. {
  2868. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  2869. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2870. //sql += " and F_WorkState in (2,4,8)";
  2871. }
  2872. if (strworkid.Trim() != "" && strworkid != "undefined")
  2873. {
  2874. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2875. }
  2876. if (strname.Trim() != "" && strname != "undefined")
  2877. {
  2878. sql += " and F_CusName like '%" + strname + "%' ";
  2879. }
  2880. if (strtel.Trim() != "" && strtel != "undefined")
  2881. {
  2882. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2883. }
  2884. if (strkey.Trim() != "" && strkey != "undefined")
  2885. {
  2886. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2887. }
  2888. if (source != 0)
  2889. {
  2890. sql += " and F_InfoSource = '" + source + "' ";
  2891. }
  2892. if (keyid != 0)
  2893. {
  2894. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2895. }
  2896. if (type != 0)
  2897. {
  2898. sql += " and F_InfoType = '" + type + "' ";
  2899. }
  2900. if (bigtype != 0)
  2901. {
  2902. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2903. }
  2904. if (smalltype != 0)
  2905. {
  2906. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2907. }
  2908. if (sourcearea != 0)
  2909. {
  2910. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2911. }
  2912. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2913. {
  2914. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2915. }
  2916. if (strendtime.Trim() != "" && strendtime != "undefined")
  2917. {
  2918. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2919. }
  2920. if (strpageindex.Trim() != "")
  2921. {
  2922. pageindex = Convert.ToInt32(strpageindex);
  2923. }
  2924. if (strpagesize.Trim() != "")
  2925. {
  2926. pagesize = Convert.ToInt32(strpagesize);
  2927. }
  2928. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  2929. if (isdc > 0)
  2930. {
  2931. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  2932. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2933. if (msg == "")
  2934. {
  2935. return Success("导出成功");
  2936. }
  2937. else
  2938. {
  2939. return Error("导出失败");
  2940. }
  2941. }
  2942. int recordCount = 0;
  2943. dt = BLL.PagerBLL.GetListPager(
  2944. "T_Bus_WorkOrder",
  2945. "F_WorkOrderId",
  2946. cols,
  2947. sql,
  2948. "ORDER BY F_CreateTime DESC",
  2949. pagesize,
  2950. pageindex,
  2951. true,
  2952. out recordCount);
  2953. #region 声音文件
  2954. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2955. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2956. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2957. dt.Columns.Add("OverState", typeof(string));//超时状态
  2958. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2959. dt.Columns.Add("GapTime", typeof(string));//时间差
  2960. dt.Columns.Add("FilePath", typeof(string));
  2961. dt.Columns.Add("Buttons", typeof(object));
  2962. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2963. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2964. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2965. foreach (DataRow dr in dt.Rows)
  2966. {
  2967. //获取最新交办信息
  2968. string iszbdw = "0";
  2969. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2970. if (state > 1)
  2971. {
  2972. 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";
  2973. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2974. if (dtjb.Rows.Count > 0)
  2975. {
  2976. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2977. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2978. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2979. {
  2980. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2981. }
  2982. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2983. #region 时限
  2984. //if (state < 6 || state == 8)
  2985. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2986. {
  2987. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2988. dr["LimitTime"] = lt;
  2989. if (!string.IsNullOrWhiteSpace(lt))
  2990. {
  2991. var ltime = DateTime.Parse(lt);
  2992. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2993. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2994. if (tss < 0) { tss = -tss; }
  2995. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2996. if (ltime > DateTime.Now)
  2997. {
  2998. if (configcs != null)
  2999. {
  3000. int cs = Int32.Parse(configcs.F_ParamValue);
  3001. if (ts.TotalHours > cs)
  3002. {
  3003. dr["OverState"] = 1;
  3004. }
  3005. else
  3006. {
  3007. dr["OverState"] = 2;
  3008. }
  3009. }
  3010. dr["GapTime"] = "剩余" + gshsj;
  3011. }
  3012. else
  3013. {
  3014. dr["OverState"] = 3;
  3015. dr["GapTime"] = "超时" + gshsj;
  3016. }
  3017. }
  3018. }
  3019. #endregion
  3020. }
  3021. }
  3022. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3023. {
  3024. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3025. }
  3026. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3027. {
  3028. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3029. }
  3030. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3031. btns.Add(ButtonGroup.query());
  3032. dr["Buttons"] = btns;
  3033. }
  3034. #endregion
  3035. var obj = new
  3036. {
  3037. state = "success",
  3038. message = "成功",
  3039. rows = dt,
  3040. total = recordCount
  3041. };
  3042. return Content(obj.ToJson());
  3043. }
  3044. /// <summary>
  3045. /// 获取媒体工单列表
  3046. /// </summary>
  3047. /// <returns></returns>
  3048. [Authority]
  3049. public ActionResult GetMediaList(int isdc = 0)
  3050. {
  3051. DataTable dt = new DataTable();
  3052. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3053. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3054. string sql = " and F_IsDelete=0";
  3055. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3056. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3057. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3058. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3059. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3060. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3061. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3062. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3063. int source = RequestString.GetInt("source", 0);
  3064. int keyid = RequestString.GetInt("keyid", 0);
  3065. int type = RequestString.GetInt("type", 0);
  3066. int bigtype = RequestString.GetInt("bigtype", 0);
  3067. int smalltype = RequestString.GetInt("smalltype", 0);
  3068. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3069. int deptid = RequestString.GetInt("deptid", 0);
  3070. string strpageindex = RequestString.GetQueryString("page");
  3071. int pageindex = 1;
  3072. string strpagesize = RequestString.GetQueryString("pagesize");
  3073. int pagesize = 10;
  3074. sql += " and isnull(F_IsRelease,0) =1 ";
  3075. if (strworkid.Trim() != "" && strworkid != "undefined")
  3076. {
  3077. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3078. }
  3079. if (strname.Trim() != "" && strname != "undefined")
  3080. {
  3081. sql += " and F_CusName like '%" + strname + "%' ";
  3082. }
  3083. if (strtel.Trim() != "" && strtel != "undefined")
  3084. {
  3085. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3086. }
  3087. if (strkey.Trim() != "" && strkey != "undefined")
  3088. {
  3089. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3090. }
  3091. #region 坐席&调度员
  3092. if (strusercode.Trim() != "" && strusercode != "undefined")
  3093. {//坐席
  3094. var usercode = strusercode.Trim().Split(',');
  3095. var newusercode = "";
  3096. foreach (var item in usercode)
  3097. {
  3098. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3099. newusercode += "'" + item + "',";
  3100. }
  3101. newusercode = newusercode.Trim(',');
  3102. if (newusercode.Trim() != "" && newusercode != "undefined")
  3103. {
  3104. sql += " and F_CreateUser in (" + newusercode + ") ";
  3105. }
  3106. }
  3107. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3108. {//调度员
  3109. var ddusercode = strddusercode.Trim().Split(',');
  3110. var newusercode = "";
  3111. foreach (var item in ddusercode)
  3112. {
  3113. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3114. newusercode += "'" + item + "',";
  3115. }
  3116. newusercode = newusercode.Trim(',');
  3117. if (newusercode.Trim() != "" && newusercode != "undefined")
  3118. {
  3119. sql += " and F_AssignUser in(" + newusercode + ") ";
  3120. }
  3121. }
  3122. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3123. //{
  3124. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3125. //}
  3126. #endregion
  3127. if (source != 0)
  3128. {
  3129. sql += " and F_InfoSource = '" + source + "' ";
  3130. }
  3131. if (keyid != 0)
  3132. {
  3133. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3134. }
  3135. if (type != 0)
  3136. {
  3137. sql += " and F_InfoType = '" + type + "' ";
  3138. }
  3139. if (bigtype != 0)
  3140. {
  3141. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3142. }
  3143. if (smalltype != 0)
  3144. {
  3145. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3146. }
  3147. if (sourcearea != 0)
  3148. {
  3149. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3150. }
  3151. if (deptid != 0)
  3152. {
  3153. 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 ";
  3154. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3155. }
  3156. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3157. {
  3158. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3159. }
  3160. if (strendtime.Trim() != "" && strendtime != "undefined")
  3161. {
  3162. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3163. }
  3164. if (strpageindex.Trim() != "")
  3165. {
  3166. pageindex = Convert.ToInt32(strpageindex);
  3167. }
  3168. if (strpagesize.Trim() != "")
  3169. {
  3170. pagesize = Convert.ToInt32(strpagesize);
  3171. }
  3172. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  3173. + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3174. if (isdc > 0)
  3175. {
  3176. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  3177. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3178. if (msg == "")
  3179. {
  3180. return Success("导出成功");
  3181. }
  3182. else
  3183. {
  3184. return Error("导出失败");
  3185. }
  3186. }
  3187. int recordCount = 0;
  3188. dt = BLL.PagerBLL.GetListPager(
  3189. "T_Bus_WorkOrder",
  3190. "F_WorkOrderId",
  3191. cols,
  3192. sql,
  3193. "ORDER BY F_CreateTime DESC",
  3194. pagesize,
  3195. pageindex,
  3196. true,
  3197. out recordCount);
  3198. #region 声音文件
  3199. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3200. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3201. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3202. dt.Columns.Add("IsReturnMedia", typeof(string));
  3203. dt.Columns.Add("Buttons", typeof(object));
  3204. int IsReturnMedia = 0;
  3205. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  3206. {
  3207. IsReturnMedia = 1;
  3208. }
  3209. foreach (DataRow dr in dt.Rows)
  3210. {
  3211. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3212. if (state > 1)
  3213. {
  3214. //获取最新交办信息
  3215. 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";
  3216. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3217. if (dtjb.Rows.Count > 0)
  3218. {
  3219. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3220. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3221. {
  3222. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3223. }
  3224. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3225. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3226. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3227. //if (deptinfo != null)
  3228. //{
  3229. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3230. //}
  3231. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3232. //{
  3233. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3234. // string dns = string.Empty;
  3235. // foreach (string strid in strids)
  3236. // {
  3237. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3238. // if (dinfo != null)
  3239. // {
  3240. // if (string.IsNullOrEmpty(dns))
  3241. // {
  3242. // dns = dinfo.F_DeptName;//交办单位
  3243. // }
  3244. // else
  3245. // {
  3246. // dns += "," + dinfo.F_DeptName;//交办单位
  3247. // }
  3248. // }
  3249. // }
  3250. // dr["OtherDeptName"] = dns;
  3251. //}
  3252. }
  3253. }
  3254. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3255. btns.Add(ButtonGroup.query());
  3256. dr["Buttons"] = btns;
  3257. dr["IsReturnMedia"] = IsReturnMedia;
  3258. }
  3259. #endregion
  3260. var obj = new
  3261. {
  3262. state = "success",
  3263. message = "成功",
  3264. rows = dt,
  3265. total = recordCount
  3266. };
  3267. return Content(obj.ToJson());
  3268. }
  3269. ///// <summary>
  3270. ///// 获取通报工单列表
  3271. ///// </summary>
  3272. ///// <returns></returns>
  3273. //[Authority]
  3274. //public ActionResult GetNoticeList(int isdc = 0)
  3275. //{
  3276. // DataTable dt = new DataTable();
  3277. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3278. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3279. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  3280. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3281. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3282. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3283. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3284. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3285. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3286. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3287. // int source = RequestString.GetInt("source", 0);
  3288. // int keyid = RequestString.GetInt("keyid", 0);
  3289. // int type = RequestString.GetInt("type", 0);
  3290. // int bigtype = RequestString.GetInt("bigtype", 0);
  3291. // int smalltype = RequestString.GetInt("smalltype", 0);
  3292. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  3293. // int deptid = RequestString.GetInt("deptid", 0);
  3294. // string strpageindex = RequestString.GetQueryString("page");
  3295. // int pageindex = 1;
  3296. // string strpagesize = RequestString.GetQueryString("pagesize");
  3297. // int pagesize = 10;
  3298. // if (strworkid.Trim() != "" && strworkid != "undefined")
  3299. // {
  3300. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3301. // }
  3302. // if (strname.Trim() != "" && strname != "undefined")
  3303. // {
  3304. // sql += " and F_CusName like '%" + strname + "%' ";
  3305. // }
  3306. // if (strtel.Trim() != "" && strtel != "undefined")
  3307. // {
  3308. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3309. // }
  3310. // if (strkey.Trim() != "" && strkey != "undefined")
  3311. // {
  3312. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3313. // }
  3314. // if (strusercode.Trim() != "" && strusercode != "undefined")
  3315. // {
  3316. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3317. // }
  3318. // if (source != 0)
  3319. // {
  3320. // sql += " and F_InfoSource = '" + source + "' ";
  3321. // }
  3322. // if (keyid != 0)
  3323. // {
  3324. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3325. // }
  3326. // if (type != 0)
  3327. // {
  3328. // sql += " and F_InfoType = '" + type + "' ";
  3329. // }
  3330. // if (bigtype != 0)
  3331. // {
  3332. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3333. // }
  3334. // if (smalltype != 0)
  3335. // {
  3336. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3337. // }
  3338. // if (sourcearea != 0)
  3339. // {
  3340. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  3341. // }
  3342. // if (deptid != 0)
  3343. // {
  3344. // 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 ";
  3345. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3346. // }
  3347. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3348. // {
  3349. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3350. // }
  3351. // if (strendtime.Trim() != "" && strendtime != "undefined")
  3352. // {
  3353. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3354. // }
  3355. // if (strpageindex.Trim() != "")
  3356. // {
  3357. // pageindex = Convert.ToInt32(strpageindex);
  3358. // }
  3359. // if (strpagesize.Trim() != "")
  3360. // {
  3361. // pagesize = Convert.ToInt32(strpagesize);
  3362. // }
  3363. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3364. // if (isdc > 0)
  3365. // {
  3366. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  3367. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3368. // if (msg == "")
  3369. // {
  3370. // return Success("导出成功");
  3371. // }
  3372. // else
  3373. // {
  3374. // return Error("导出失败");
  3375. // }
  3376. // }
  3377. // int recordCount = 0;
  3378. // dt = BLL.PagerBLL.GetListPager(
  3379. // "T_Bus_WorkOrder",
  3380. // "F_WorkOrderId",
  3381. // cols,
  3382. // sql,
  3383. // "ORDER BY F_CreateTime DESC",
  3384. // pagesize,
  3385. // pageindex,
  3386. // true,
  3387. // out recordCount);
  3388. // #region 声音文件
  3389. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  3390. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3391. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  3392. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  3393. // dt.Columns.Add("IsReturnNotice", typeof(string));
  3394. // dt.Columns.Add("FilePath", typeof(string));
  3395. // dt.Columns.Add("Buttons", typeof(object));
  3396. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3397. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3398. // int IsReturnNotice = 0;
  3399. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  3400. // {
  3401. // IsReturnNotice = 1;
  3402. // }
  3403. // foreach (DataRow dr in dt.Rows)
  3404. // {
  3405. // //获取最新交办信息
  3406. // //string iszbdw = "0";
  3407. // 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";
  3408. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3409. // if (dtjb.Rows.Count > 0)
  3410. // {
  3411. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3412. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3413. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3414. // {
  3415. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3416. // }
  3417. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3418. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3419. // //if (deptinfo != null)
  3420. // //{
  3421. // // //if (did == userModel.F_DeptId) { iszbdw = "1"; }
  3422. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3423. // //}
  3424. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3425. // //{
  3426. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3427. // // string dns = string.Empty;
  3428. // // foreach (string strid in strids)
  3429. // // {
  3430. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3431. // // if (dinfo != null)
  3432. // // {
  3433. // // if (string.IsNullOrEmpty(dns))
  3434. // // {
  3435. // // dns = dinfo.F_DeptName;//交办单位
  3436. // // }
  3437. // // else
  3438. // // {
  3439. // // dns += "," + dinfo.F_DeptName;//交办单位
  3440. // // }
  3441. // // }
  3442. // // }
  3443. // // dr["OtherDeptName"] = dns;
  3444. // //}
  3445. // }
  3446. // //获取最新通报信息
  3447. // 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";
  3448. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  3449. // if (dttb.Rows.Count > 0)
  3450. // {
  3451. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  3452. // {
  3453. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  3454. // }
  3455. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  3456. // }
  3457. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3458. // {
  3459. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3460. // }
  3461. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3462. // {
  3463. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3464. // }
  3465. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3466. // btns.Add(ButtonGroup.query());
  3467. // dr["Buttons"] = btns;
  3468. // dr["IsReturnNotice"] = IsReturnNotice;
  3469. // }
  3470. // #endregion
  3471. // var obj = new
  3472. // {
  3473. // state = "success",
  3474. // message = "成功",
  3475. // rows = dt,
  3476. // total = recordCount
  3477. // };
  3478. // return Content(obj.ToJson());
  3479. //}
  3480. /// <summary>
  3481. /// 获取通报工单列表
  3482. /// </summary>
  3483. /// <returns></returns>
  3484. [Authority]
  3485. public ActionResult GetNoticeList(int isdc = 0)
  3486. {
  3487. DataTable dt = new DataTable();
  3488. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3489. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3490. string sql = " and F_IsDelete=0 ";
  3491. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3492. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3493. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3494. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3495. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3496. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3497. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3498. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3499. int source = RequestString.GetInt("source", 0);
  3500. int keyid = RequestString.GetInt("keyid", 0);
  3501. int type = RequestString.GetInt("type", 0);
  3502. int bigtype = RequestString.GetInt("bigtype", 0);
  3503. int smalltype = RequestString.GetInt("smalltype", 0);
  3504. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3505. int deptid = RequestString.GetInt("deptid", 0);
  3506. string strpageindex = RequestString.GetQueryString("page");
  3507. int pageindex = 1;
  3508. string strpagesize = RequestString.GetQueryString("pagesize");
  3509. int pagesize = 10;
  3510. if (strworkid.Trim() != "" && strworkid != "undefined")
  3511. {
  3512. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3513. }
  3514. if (strname.Trim() != "" && strname != "undefined")
  3515. {
  3516. sql += " and F_CusName like '%" + strname + "%' ";
  3517. }
  3518. if (strtel.Trim() != "" && strtel != "undefined")
  3519. {
  3520. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3521. }
  3522. if (strkey.Trim() != "" && strkey != "undefined")
  3523. {
  3524. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3525. }
  3526. #region 坐席&调度员
  3527. if (strusercode.Trim() != "" && strusercode != "undefined")
  3528. {//坐席
  3529. var usercode = strusercode.Trim().Split(',');
  3530. var newusercode = "";
  3531. foreach (var item in usercode)
  3532. {
  3533. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3534. newusercode += "'" + item + "',";
  3535. }
  3536. newusercode = newusercode.Trim(',');
  3537. if (newusercode.Trim() != "" && newusercode != "undefined")
  3538. {
  3539. sql += " and F_CreateUser in (" + newusercode + ") ";
  3540. }
  3541. }
  3542. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3543. {//调度员
  3544. var ddusercode = strddusercode.Trim().Split(',');
  3545. var newusercode = "";
  3546. foreach (var item in ddusercode)
  3547. {
  3548. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3549. newusercode += "'" + item + "',";
  3550. }
  3551. newusercode = newusercode.Trim(',');
  3552. if (newusercode.Trim() != "" && newusercode != "undefined")
  3553. {
  3554. sql += " and F_AssignUser in(" + newusercode + ") ";
  3555. }
  3556. }
  3557. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3558. //{
  3559. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3560. //}
  3561. #endregion
  3562. if (source != 0)
  3563. {
  3564. sql += " and F_InfoSource = '" + source + "' ";
  3565. }
  3566. if (keyid != 0)
  3567. {
  3568. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3569. }
  3570. if (type != 0)
  3571. {
  3572. sql += " and F_InfoType = '" + type + "' ";
  3573. }
  3574. if (bigtype != 0)
  3575. {
  3576. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3577. }
  3578. if (smalltype != 0)
  3579. {
  3580. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3581. }
  3582. if (sourcearea != 0)
  3583. {
  3584. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3585. }
  3586. if (deptid != 0)
  3587. {
  3588. 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 ";
  3589. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3590. }
  3591. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3592. {
  3593. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3594. }
  3595. if (strendtime.Trim() != "" && strendtime != "undefined")
  3596. {
  3597. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3598. }
  3599. if (userModel.F_RoleCode == "WLDW")
  3600. {
  3601. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism where ','+F_DeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  3602. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  3603. }
  3604. else
  3605. {
  3606. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism where F_State=1 and F_IsDelete=0) ";
  3607. }
  3608. if (strpageindex.Trim() != "")
  3609. {
  3610. pageindex = Convert.ToInt32(strpageindex);
  3611. }
  3612. if (strpagesize.Trim() != "")
  3613. {
  3614. pagesize = Convert.ToInt32(strpagesize);
  3615. }
  3616. string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3617. if (isdc > 0)
  3618. {
  3619. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  3620. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3621. if (msg == "")
  3622. {
  3623. return Success("导出成功");
  3624. }
  3625. else
  3626. {
  3627. return Error("导出失败");
  3628. }
  3629. }
  3630. int recordCount = 0;
  3631. dt = BLL.PagerBLL.GetListPager(
  3632. "T_Bus_WorkOrder",
  3633. "F_WorkOrderId",
  3634. cols,
  3635. sql,
  3636. "ORDER BY F_CreateTime DESC",
  3637. pagesize,
  3638. pageindex,
  3639. true,
  3640. out recordCount);
  3641. #region 声音文件
  3642. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3643. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3644. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3645. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  3646. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  3647. dt.Columns.Add("IsReturnNotice", typeof(string));
  3648. dt.Columns.Add("FilePath", typeof(string));
  3649. dt.Columns.Add("Buttons", typeof(object));
  3650. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3651. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3652. int IsReturnNotice = 0;
  3653. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  3654. {
  3655. IsReturnNotice = 1;
  3656. }
  3657. foreach (DataRow dr in dt.Rows)
  3658. {
  3659. //获取最新交办信息
  3660. //string iszbdw = "0";
  3661. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3662. if (state > 1)
  3663. {
  3664. 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";
  3665. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3666. if (dtjb.Rows.Count > 0)
  3667. {
  3668. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3669. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3670. {
  3671. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3672. }
  3673. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3674. }
  3675. }
  3676. //获取最新通报信息
  3677. 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";
  3678. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  3679. if (dttb.Rows.Count > 0)
  3680. {
  3681. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  3682. {
  3683. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  3684. }
  3685. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  3686. }
  3687. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3688. {
  3689. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3690. }
  3691. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3692. {
  3693. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3694. }
  3695. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3696. btns.Add(ButtonGroup.query());
  3697. dr["Buttons"] = btns;
  3698. dr["IsReturnNotice"] = IsReturnNotice;
  3699. }
  3700. #endregion
  3701. var obj = new
  3702. {
  3703. state = "success",
  3704. message = "成功",
  3705. rows = dt,
  3706. total = recordCount
  3707. };
  3708. return Content(obj.ToJson());
  3709. }
  3710. /// <summary>
  3711. /// 获取工单信息
  3712. /// </summary>
  3713. /// <returns></returns>
  3714. [Authority]
  3715. public ActionResult GetWorkOrder()
  3716. {
  3717. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3718. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3719. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  3720. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  3721. if (!string.IsNullOrEmpty(strworkorderid))
  3722. {
  3723. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  3724. //+ "dbo.GetDictionaryName(F_InfoConBigType) as TypeName2,dbo.GetDictionaryName(F_InfoConSmallType) as TypeName3,"
  3725. //+ "dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName,dbo.GetDictionaryName(F_InfoSource) as SourceName ,"
  3726. + "dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName "
  3727. + " from T_Bus_WorkOrder where F_WorkOrderId ='" + strworkorderid + "'";
  3728. var dt = DbHelperSQL.Query(sql).Tables[0];
  3729. if (dt.Rows.Count > 0)
  3730. {
  3731. if (dt.Rows[0]["F_IsProtect"] != null && (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "EJWLDW"))
  3732. {
  3733. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  3734. if (isp == "1")
  3735. {
  3736. dt.Rows[0]["F_CusName"] = "";
  3737. dt.Rows[0]["F_CusPhone"] = "";
  3738. dt.Rows[0]["F_ConPhone"] = "";
  3739. }
  3740. }
  3741. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3742. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3743. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  3744. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  3745. + "from T_Bus_RemindRecord where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3746. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  3747. + "from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3748. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3749. + "from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'";
  3750. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3751. + "from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 and F_Type=2 and F_WorkOrderId ='" + strworkorderid + "'";
  3752. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3753. + "from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 and F_Type=3 and F_WorkOrderId ='" + strworkorderid + "'";
  3754. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  3755. + "from T_Bus_AssignedInfo where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3756. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  3757. + "from T_Bus_Feedback where F_State=1 and F_Type=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3758. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3759. + "from T_Bus_DelayTime where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3760. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  3761. + "from T_Bus_Feedback where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3762. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3763. + "from T_Bus_VisitResult where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3764. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3765. + "from T_Bus_Operation where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3766. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  3767. + "from T_Bus_Additional where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  3768. #region 声音文件
  3769. dt.Columns.Add("FilePath", typeof(string));
  3770. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  3771. {
  3772. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3773. }
  3774. else if (dt.Rows[0]["F_CallRecordId"] != null)
  3775. {
  3776. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  3777. }
  3778. #endregion
  3779. #region 附件
  3780. if (configfj != null)
  3781. {
  3782. dt = BindFileData(dt, configfj.F_ParamValue);
  3783. }
  3784. #endregion
  3785. #region 监察信息
  3786. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  3787. if (configfj != null)
  3788. {
  3789. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  3790. }
  3791. #endregion
  3792. #region 批示信息
  3793. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  3794. if (configfj != null)
  3795. {
  3796. psdt = BindFileData(psdt, configfj.F_ParamValue);
  3797. }
  3798. #endregion
  3799. #region 指示信息
  3800. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  3801. if (configfj != null)
  3802. {
  3803. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  3804. }
  3805. #endregion
  3806. #region 回退信息
  3807. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  3808. #endregion
  3809. #region 督办信息
  3810. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  3811. if (configfj != null)
  3812. {
  3813. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  3814. }
  3815. #endregion
  3816. #region 交办信息
  3817. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  3818. if (configfj != null)
  3819. {
  3820. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  3821. }
  3822. #endregion
  3823. #region 退回信息
  3824. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  3825. #endregion
  3826. #region 延时信息
  3827. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  3828. #endregion
  3829. #region 办理情况
  3830. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  3831. if (configfj != null)
  3832. {
  3833. bldt = BindFileData(bldt, configfj.F_ParamValue);
  3834. }
  3835. #endregion
  3836. #region 回访信息
  3837. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  3838. hfdt.Columns.Add("FilePath", typeof(string));
  3839. foreach (DataRow bldr in hfdt.Rows)
  3840. {
  3841. if (bldr["F_CallRecordId"] != null && config != null)
  3842. {
  3843. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3844. }
  3845. }
  3846. #endregion
  3847. #region 市民催单
  3848. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  3849. cbdt.Columns.Add("FilePath", typeof(string));
  3850. foreach (DataRow bldr in cbdt.Rows)
  3851. {
  3852. if (bldr["F_CallRecordId"] != null && config != null)
  3853. {
  3854. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3855. }
  3856. }
  3857. #endregion
  3858. #region 办理过程
  3859. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  3860. gcdt.Columns.Add("File", typeof(object));
  3861. gcdt.Columns.Add("FilePath", typeof(string));
  3862. if (configfj != null || configly != null || config != null)
  3863. {
  3864. foreach (DataRow bldr in gcdt.Rows)
  3865. {
  3866. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  3867. {
  3868. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  3869. }
  3870. if (bldr["F_LeaveRecordId"] != null && configly != null)
  3871. {
  3872. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3873. }
  3874. else if (bldr["F_CallRecordId"] != null && config != null)
  3875. {
  3876. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3877. }
  3878. }
  3879. }
  3880. #endregion
  3881. #region 操作按钮
  3882. var btns = new List<ButtonGroup.button>();
  3883. if (jbdt.Rows.Count > 0)
  3884. {
  3885. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  3886. string ispd = jbzx["F_IsNext"].ToString();
  3887. string iszbdw = "0";
  3888. string fmd = jbzx["F_MainDeptId"].ToString();
  3889. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  3890. if (fmd == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3891. else if (fod != "" && fod.Split(',').Contains(userModel.F_DeptId.ToString()))
  3892. {
  3893. iszbdw = "2";
  3894. }
  3895. if (!(userModel.F_RoleCode == "WLDW" && iszbdw == "0"))
  3896. {
  3897. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  3898. }
  3899. }
  3900. else
  3901. {
  3902. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  3903. }
  3904. #region 判断是否存在待督办
  3905. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  3906. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3907. if (recount > 0 && butt != null)
  3908. btns.Remove(butt);
  3909. #endregion
  3910. #endregion
  3911. #region 其他权限
  3912. int issend = 0;
  3913. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY"))
  3914. {
  3915. if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  3916. {
  3917. issend = 1;
  3918. }
  3919. }
  3920. int isnotice = 0;
  3921. if (dt.Rows[0]["F_IsNotice"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY"))
  3922. {
  3923. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  3924. {
  3925. isnotice = 1;
  3926. }
  3927. }
  3928. int isedit = 0;
  3929. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY"))
  3930. {
  3931. isedit = 1;
  3932. }
  3933. #endregion
  3934. var obj = new
  3935. {
  3936. data = dt,
  3937. jcdata = jcdt,
  3938. psdata = psdt,
  3939. zsdata = zsdt,
  3940. htdata = htdt,
  3941. dbdata = dbdt,
  3942. jbdata = jbdt,
  3943. thdata = thdt,
  3944. ysdata = ysdt,
  3945. bldata = bldt,
  3946. hfdata = hfdt,
  3947. cbdata = cbdt,
  3948. gcdata = gcdt,
  3949. issend = issend,
  3950. isedit = isedit,
  3951. isnotice = isnotice,
  3952. btndata = btns
  3953. };
  3954. return Success("获取成功", obj);
  3955. }
  3956. else
  3957. {
  3958. return Error("获取失败");
  3959. }
  3960. }
  3961. else
  3962. {
  3963. return Error("参数传输失败");
  3964. }
  3965. }
  3966. /// <summary>
  3967. /// 获取草稿信息
  3968. /// </summary>
  3969. /// <returns></returns>
  3970. [Authority]
  3971. public ActionResult GetDraftInfo()
  3972. {
  3973. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3974. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3975. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  3976. int type = RequestString.GetInt("type", 0);//1交办信息2反馈信息3回访信息
  3977. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  3978. {
  3979. string sql = string.Empty;
  3980. switch (type)
  3981. {
  3982. case 1: sql = "select top 1 *,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName from T_Bus_AssignedInfo"; break;
  3983. case 2: sql = "select top 1 * from T_Bus_Feedback"; break;
  3984. case 3: sql = "select top 1 * from T_Bus_VisitResult"; break;
  3985. }
  3986. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + userModel.F_UserCode + " order by F_CreateTime desc";
  3987. var dt = DbHelperSQL.Query(sql).Tables[0];
  3988. if (dt.Rows.Count > 0)
  3989. {
  3990. #region 附件
  3991. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  3992. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  3993. {
  3994. BindFileData(dt, configfj.F_ParamValue);
  3995. }
  3996. #endregion
  3997. }
  3998. return Success("获取成功", dt);
  3999. }
  4000. else
  4001. {
  4002. return Error("参数传输失败");
  4003. }
  4004. }
  4005. /// <summary>
  4006. /// 获取审核信息
  4007. /// </summary>
  4008. /// <returns></returns>
  4009. [Authority]
  4010. public ActionResult GetAuditInfo()
  4011. {
  4012. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4013. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4014. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  4015. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  4016. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  4017. {
  4018. string sql = string.Empty;
  4019. switch (type)
  4020. {
  4021. case 1: sql = "select top 1 * from T_Bus_Feedback where F_Type=3 and"; break;
  4022. case 2: sql = "select top 1 * from T_Bus_DelayTime where"; break;
  4023. }
  4024. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  4025. var dt = DbHelperSQL.Query(sql).Tables[0];
  4026. if (dt.Rows.Count > 0)
  4027. {
  4028. #region 附件
  4029. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  4030. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  4031. {
  4032. BindFileData(dt, configfj.F_ParamValue);
  4033. }
  4034. #endregion
  4035. }
  4036. return Success("获取成功", dt);
  4037. }
  4038. else
  4039. {
  4040. return Error("参数传输失败");
  4041. }
  4042. }
  4043. /// <summary>
  4044. /// 获取所有交办单位
  4045. /// </summary>
  4046. /// <returns></returns>
  4047. [Authority]
  4048. public ActionResult GetAllAssignDept()
  4049. {
  4050. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4051. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4052. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  4053. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  4054. if (modelT_Bus_WorkOrder != null)
  4055. {
  4056. string ids = string.Empty;
  4057. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  4058. foreach (var assign in Assigns)
  4059. {
  4060. if (string.IsNullOrEmpty(ids))
  4061. {
  4062. ids = assign.F_MainDeptId.Value.ToString();
  4063. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  4064. {
  4065. ids += "," + assign.F_OtherDeptIds;
  4066. }
  4067. }
  4068. else
  4069. {
  4070. ids += "," + assign.F_MainDeptId.Value.ToString();
  4071. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  4072. {
  4073. ids += "," + assign.F_OtherDeptIds;
  4074. }
  4075. }
  4076. }
  4077. if (string.IsNullOrEmpty(ids))
  4078. {
  4079. ids = "0";
  4080. }
  4081. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  4082. return Success("获取成功", dt);
  4083. }
  4084. else
  4085. {
  4086. return Error("操作失败");
  4087. }
  4088. }
  4089. /// <summary>
  4090. /// 获取二级单位处理信息
  4091. /// </summary>
  4092. /// <returns></returns>
  4093. [Authority]
  4094. public ActionResult GetSecondDealInfo()
  4095. {
  4096. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4097. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4098. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  4099. if (!string.IsNullOrEmpty(strworkorderid))
  4100. {
  4101. //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, ";
  4102. //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, ";
  4103. //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, ";
  4104. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  4105. //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";
  4106. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  4107. //var dt = DbHelperSQL.Query(sql).Tables[0];
  4108. string sql = "select top 1 * from T_Bus_AssignedInfo_Next where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  4109. string sql1 = "select * from T_Bus_Feedback_Next where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  4110. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  4111. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  4112. if (configfj != null)
  4113. {
  4114. bldt = BindFileData(bldt, configfj.F_ParamValue);
  4115. }
  4116. var obj = new {
  4117. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  4118. fkinfo = bldt
  4119. };
  4120. return Success("获取成功", obj);
  4121. }
  4122. else
  4123. {
  4124. return Error("参数传输失败");
  4125. }
  4126. }
  4127. /// <summary>
  4128. /// 获取二级单位最新处理信息
  4129. /// </summary>
  4130. /// <returns></returns>
  4131. [Authority]
  4132. public ActionResult GetNewSecondDealInfo()
  4133. {
  4134. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4135. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4136. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  4137. if (!string.IsNullOrEmpty(strworkorderid))
  4138. {
  4139. string sql = "select top 1 * from T_Bus_Feedback_Next where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  4140. var bldt = DbHelperSQL.Query(sql).Tables[0];
  4141. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  4142. if (configfj != null)
  4143. {
  4144. bldt = BindFileData(bldt, configfj.F_ParamValue);
  4145. }
  4146. return Success("获取成功", bldt);
  4147. }
  4148. else
  4149. {
  4150. return Error("参数传输失败");
  4151. }
  4152. }
  4153. #endregion
  4154. #region 新增工单
  4155. /// <summary>
  4156. /// 上传附件
  4157. /// </summary>
  4158. /// <returns></returns>
  4159. [Authority]
  4160. public ActionResult UploadFile()
  4161. {
  4162. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4163. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4164. #region 单个上传 no use
  4165. //string path = string.Empty;
  4166. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  4167. //if (_upfile != null)
  4168. //{
  4169. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  4170. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  4171. // string name = string.Empty;
  4172. // FileUp fu = new FileUp();
  4173. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  4174. // if (model != null)
  4175. // {
  4176. // name = fu.Upload(_upfile, model.F_ParamValue);
  4177. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  4178. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  4179. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  4180. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  4181. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  4182. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  4183. // model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  4184. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  4185. // return Success("成功", model_T_Sys_Accessories);
  4186. // }
  4187. // else
  4188. // {
  4189. // return Error("上传失败");
  4190. // }
  4191. //}
  4192. //else
  4193. //{
  4194. // return Error("请选择要上传的文件");
  4195. //}
  4196. #endregion
  4197. #region 多个上传
  4198. HttpFileCollection files = RequestString.GetFiles();
  4199. if (files.Count > 0)
  4200. {
  4201. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  4202. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  4203. for (int i = 0; i < files.Count; i++)
  4204. {
  4205. HttpPostedFile file = files[i];
  4206. FileUp fu = new FileUp();
  4207. string name = fu.Upload(file, path);
  4208. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  4209. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  4210. model_T_Sys_Accessories.F_FileName = name;//附件名称
  4211. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  4212. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  4213. model_T_Sys_Accessories.F_Size = file.ContentLength;
  4214. model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  4215. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  4216. model_T_Sys_Accessories.F_FileId = id;
  4217. acs.Add(model_T_Sys_Accessories);
  4218. }
  4219. return Success("成功", acs);
  4220. }
  4221. else
  4222. {
  4223. return Error("请选择要上传的文件");
  4224. }
  4225. #endregion
  4226. }
  4227. /// <summary>
  4228. /// 添加工单信息
  4229. /// </summary>
  4230. /// <returns></returns>
  4231. [Authority]
  4232. public ActionResult AddWorkOrder()
  4233. {
  4234. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4235. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4236. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ"
  4237. || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY"
  4238. || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "DBZY"
  4239. || userModel.F_RoleCode == "GLY")
  4240. {
  4241. int source = RequestString.GetInt("source", 0);
  4242. string cusname = RequestString.GetFormString("cusname");
  4243. string cussex = RequestString.GetFormString("cussex");
  4244. string cusphone = RequestString.GetFormString("cusphone");
  4245. string cusaddress = RequestString.GetFormString("cusaddress");
  4246. string email = RequestString.GetFormString("email");
  4247. string zipcode = RequestString.GetFormString("zipcode");
  4248. string conname = RequestString.GetFormString("conname");
  4249. string conphone = RequestString.GetFormString("conphone");
  4250. string title = RequestString.GetFormString("title");
  4251. string content = RequestString.GetFormString("content");
  4252. string files = RequestString.GetFormString("files");
  4253. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4254. string sourceaddress = RequestString.GetFormString("sourceaddress");
  4255. int isresult = RequestString.GetInt("isresult", 0);
  4256. string result = RequestString.GetFormString("result");
  4257. string keys = RequestString.GetFormString("keys");
  4258. string splituser = RequestString.GetFormString("splituser");
  4259. int type = RequestString.GetInt("type", 0);
  4260. int bigtype = RequestString.GetInt("bigtype", 0);
  4261. int smalltype = RequestString.GetInt("smalltype", 0);
  4262. int isprotect = RequestString.GetInt("isprotect", 0);
  4263. int level = RequestString.GetInt("level", 0);
  4264. int issubmit = RequestString.GetInt("issubmit", 0);
  4265. string callid = RequestString.GetFormString("callid");
  4266. string longitude = RequestString.GetFormString("longitude");//经度
  4267. string latitude = RequestString.GetFormString("latitude");//纬度
  4268. using (TransactionScope trans = new TransactionScope())
  4269. {
  4270. #region 保存工单信息
  4271. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  4272. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  4273. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  4274. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  4275. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  4276. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  4277. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  4278. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  4279. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  4280. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  4281. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  4282. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  4283. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  4284. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  4285. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  4286. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  4287. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  4288. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  4289. modelT_Bus_WorkOrder.F_File = files;//附件
  4290. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  4291. modelT_Bus_WorkOrder.F_Key = keys;
  4292. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  4293. modelT_Bus_WorkOrder.F_Level = level;
  4294. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  4295. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  4296. //是否直办(即时答复)0:,否1: 是
  4297. modelT_Bus_WorkOrder.F_IsResult = isresult;
  4298. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  4299. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  4300. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  4301. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  4302. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  4303. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  4304. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  4305. //如果选择即刻答复:是,即为直办,工单结束
  4306. if (isresult == 1)
  4307. {
  4308. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  4309. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  4310. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  4311. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  4312. modelT_Bus_WorkOrder.F_IsClosed = 1;
  4313. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  4314. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  4315. }
  4316. else if (issubmit == 1)
  4317. {
  4318. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4319. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4320. }
  4321. #region
  4322. //信阳12345 模仿自动派单 关键词为“社会安全”,直接指派公安部
  4323. if(keys=="24")
  4324. {
  4325. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4326. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  4327. modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(7);
  4328. modelT_Bus_WorkOrder.F_MainDeptId = 29;
  4329. }
  4330. #endregion
  4331. #region
  4332. //20190715需求变动,去掉审核环节 提交后直接调度指派 zhengbingbing
  4333. //else
  4334. //{
  4335. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  4336. //}
  4337. #region
  4338. //20190315需求变动,保存并提交按钮取消,保存后提交待审核 20190329 zhengbingbing
  4339. //else if (issubmit == 1)
  4340. //{
  4341. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4342. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4343. //}
  4344. #endregion
  4345. #endregion
  4346. if (!string.IsNullOrEmpty(callid))
  4347. {
  4348. modelT_Bus_WorkOrder.F_CallId = callid;
  4349. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  4350. if (rd != null)
  4351. {
  4352. rd.IsExitWorkOrder = true;
  4353. new BLL.T_Call_CallRecords().Update(rd);
  4354. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  4355. }
  4356. }
  4357. workorderBLL.Add(modelT_Bus_WorkOrder);
  4358. #endregion
  4359. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  4360. {
  4361. #region 交办记录
  4362. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  4363. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4364. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;//办理时限
  4365. modelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  4366. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  4367. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  4368. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  4369. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  4370. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  4371. modelT_Bus_AssignedInfo.F_IsSure = 0;
  4372. modelT_Bus_AssignedInfo.F_IsReload = 0;
  4373. modelT_Bus_AssignedInfo.F_IsNext = 0;
  4374. assignBLL.Add(modelT_Bus_AssignedInfo);
  4375. #endregion
  4376. }
  4377. #region 插入操作记录
  4378. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4379. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4380. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4381. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4382. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4383. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  4384. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  4385. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  4386. {
  4387. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4388. }
  4389. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  4390. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  4391. {
  4392. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4393. }
  4394. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  4395. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  4396. {
  4397. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4398. }
  4399. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  4400. {
  4401. oper.F_Message = userinfo + " 登记工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId+",已自动转派";
  4402. }
  4403. oper.F_CreateUser = userModel.F_UserCode;
  4404. oper.F_CreateTime = DateTime.Now;
  4405. oper.F_IsDelete = 0;
  4406. operBLL.Add(oper);
  4407. //推送消息表
  4408. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  4409. {
  4410. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  4411. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  4412. foreach (var u in users)
  4413. {
  4414. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode);
  4415. }
  4416. }
  4417. #endregion
  4418. trans.Complete();
  4419. }
  4420. return Success("操作成功");
  4421. }
  4422. else
  4423. {
  4424. return Error("权限不足");
  4425. }
  4426. }
  4427. /// <summary>
  4428. /// 添加工单信息
  4429. /// </summary>
  4430. /// <returns></returns>
  4431. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  4432. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  4433. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  4434. {
  4435. string workorderid = string.Empty;
  4436. using (TransactionScope trans = new TransactionScope())
  4437. {
  4438. #region 保存工单信息
  4439. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  4440. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source.ToString().PadLeft(4, '0'));
  4441. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  4442. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  4443. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  4444. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  4445. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  4446. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  4447. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  4448. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  4449. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  4450. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  4451. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  4452. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  4453. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  4454. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  4455. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  4456. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  4457. modelT_Bus_WorkOrder.F_File = files;//附件
  4458. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  4459. modelT_Bus_WorkOrder.F_Key = keys;
  4460. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  4461. modelT_Bus_WorkOrder.F_Level = level;
  4462. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  4463. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  4464. //modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  4465. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  4466. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  4467. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  4468. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  4469. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  4470. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  4471. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  4472. workorderBLL.Add(modelT_Bus_WorkOrder);
  4473. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  4474. #endregion
  4475. #region 插入操作记录
  4476. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4477. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4478. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4479. string userinfo = "";
  4480. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  4481. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  4482. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  4483. {
  4484. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4485. }
  4486. //oper.F_CreateUser = userModel.F_UserCode;
  4487. oper.F_CreateTime = DateTime.Now;
  4488. oper.F_IsDelete = 0;
  4489. operBLL.Add(oper);
  4490. #endregion
  4491. trans.Complete();
  4492. }
  4493. return workorderid;
  4494. }
  4495. /// <summary>
  4496. /// 添加工单信息留言
  4497. /// </summary>
  4498. /// <returns></returns>
  4499. [Authority]
  4500. public ActionResult AddWorkOrderByLY()
  4501. {
  4502. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4503. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4504. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  4505. {
  4506. int source = RequestString.GetInt("source", 0);
  4507. string cusname = RequestString.GetFormString("cusname");
  4508. string cussex = RequestString.GetFormString("cussex");
  4509. string cusphone = RequestString.GetFormString("cusphone");
  4510. string cusaddress = RequestString.GetFormString("cusaddress");
  4511. string email = RequestString.GetFormString("email");
  4512. string zipcode = RequestString.GetFormString("zipcode");
  4513. string conname = RequestString.GetFormString("conname");
  4514. string conphone = RequestString.GetFormString("conphone");
  4515. string title = RequestString.GetFormString("title");
  4516. string content = RequestString.GetFormString("content");
  4517. string files = RequestString.GetFormString("files");
  4518. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4519. string sourceaddress = RequestString.GetFormString("sourceaddress");
  4520. int isresult = RequestString.GetInt("isresult", 0);
  4521. string result = RequestString.GetFormString("result");
  4522. string keys = RequestString.GetFormString("keys");
  4523. string splituser = RequestString.GetFormString("splituser");
  4524. int type = RequestString.GetInt("type", 0);
  4525. int bigtype = RequestString.GetInt("bigtype", 0);
  4526. int smalltype = RequestString.GetInt("smalltype", 0);
  4527. int isprotect = RequestString.GetInt("isprotect", 0);
  4528. int level = RequestString.GetInt("level", 0);
  4529. int issubmit = RequestString.GetInt("issubmit", 0);
  4530. int lyid = RequestString.GetInt("lyid", 0);
  4531. using (TransactionScope trans = new TransactionScope())
  4532. {
  4533. #region 保存工单信息
  4534. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  4535. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  4536. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  4537. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  4538. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  4539. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  4540. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  4541. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  4542. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  4543. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  4544. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  4545. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  4546. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  4547. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  4548. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  4549. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  4550. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  4551. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  4552. modelT_Bus_WorkOrder.F_File = files;//附件
  4553. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  4554. modelT_Bus_WorkOrder.F_Key = keys;
  4555. modelT_Bus_WorkOrder.F_Level = level;
  4556. //是否直办(即时答复)0:,否1: 是
  4557. modelT_Bus_WorkOrder.F_IsResult = isresult;
  4558. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  4559. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  4560. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  4561. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  4562. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  4563. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  4564. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  4565. //如果选择即刻答复:是,即为直办,工单结束
  4566. if (isresult == 1)
  4567. {
  4568. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  4569. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  4570. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  4571. modelT_Bus_WorkOrder.F_IsClosed = 1;
  4572. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  4573. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  4574. }
  4575. else if (issubmit == 1)
  4576. {
  4577. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4578. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4579. }
  4580. #region
  4581. //20190715去掉审核环节
  4582. //else
  4583. //{
  4584. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  4585. //}
  4586. //else if (issubmit == 1)
  4587. //{
  4588. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4589. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4590. //}
  4591. #endregion
  4592. if (lyid != 0)
  4593. {
  4594. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  4595. if (rd != null)
  4596. {
  4597. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  4598. }
  4599. }
  4600. workorderBLL.Add(modelT_Bus_WorkOrder);
  4601. #endregion
  4602. #region 插入操作记录
  4603. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4604. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4605. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4606. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4607. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4608. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  4609. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  4610. {
  4611. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4612. }
  4613. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  4614. {
  4615. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4616. }
  4617. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  4618. {
  4619. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  4620. }
  4621. oper.F_CreateUser = userModel.F_UserCode;
  4622. oper.F_CreateTime = DateTime.Now;
  4623. oper.F_IsDelete = 0;
  4624. operBLL.Add(oper);
  4625. //推送消息表
  4626. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  4627. {
  4628. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  4629. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  4630. foreach (var u in users)
  4631. {
  4632. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode);
  4633. }
  4634. }
  4635. #endregion
  4636. trans.Complete();
  4637. }
  4638. return Success("操作成功");
  4639. }
  4640. else
  4641. {
  4642. return Error("权限不足");
  4643. }
  4644. }
  4645. /// <summary>
  4646. /// 添加工单信息
  4647. /// </summary>
  4648. /// <returns></returns>
  4649. [Authority]
  4650. public ActionResult AddWorkOrderByAPP()
  4651. {
  4652. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4653. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4654. int source = RequestString.GetInt("source", 6);
  4655. string cusname = RequestString.GetFormString("cusname");
  4656. string cussex = RequestString.GetFormString("cussex");
  4657. string cusphone = RequestString.GetFormString("cusphone");
  4658. string cusaddress = RequestString.GetFormString("cusaddress");
  4659. string email = RequestString.GetFormString("email");
  4660. string zipcode = RequestString.GetFormString("zipcode");
  4661. string conname = RequestString.GetFormString("conname");
  4662. string conphone = RequestString.GetFormString("conphone");
  4663. string title = RequestString.GetFormString("title");
  4664. string content = RequestString.GetFormString("content");
  4665. string files = RequestString.GetFormString("files");
  4666. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4667. string sourceaddress = RequestString.GetFormString("sourceaddress");
  4668. int isresult = RequestString.GetInt("isresult", 0);
  4669. string result = RequestString.GetFormString("result");
  4670. string keys = RequestString.GetFormString("keys");
  4671. string splituser = RequestString.GetFormString("splituser");
  4672. int type = RequestString.GetInt("type", 0);
  4673. int bigtype = RequestString.GetInt("bigtype", 0);
  4674. int smalltype = RequestString.GetInt("smalltype", 0);
  4675. int isprotect = RequestString.GetInt("isprotect", 0);
  4676. int level = RequestString.GetInt("level", 0);
  4677. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  4678. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  4679. if (!string.IsNullOrEmpty(workorderid))
  4680. {
  4681. using (TransactionScope trans = new TransactionScope())
  4682. {
  4683. #region 保存用户工单信息
  4684. var model = new BLL.T_Sys_Users().GetModel(userModel.F_UserCode);
  4685. if (model == null)
  4686. {
  4687. model = new Model.T_Sys_Users();
  4688. model.F_OpenId = userModel.F_UserCode;
  4689. model.F_Type = 3;
  4690. model.F_CreateTime = DateTime.Now;
  4691. model.F_Id = new BLL.T_Sys_Users().Add(model);
  4692. }
  4693. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  4694. tbu.F_UserId = model.F_Id;
  4695. tbu.F_WorkOrderId = workorderid;
  4696. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  4697. #endregion
  4698. trans.Complete();
  4699. }
  4700. return Success("操作成功");
  4701. }
  4702. else
  4703. {
  4704. return Error("操作失败");
  4705. }
  4706. }
  4707. #endregion
  4708. #region 操作工单
  4709. /// <summary>
  4710. /// 修改工单信息
  4711. /// </summary>
  4712. /// <returns></returns>
  4713. [Authority]
  4714. public ActionResult EditWorkOrder()
  4715. {
  4716. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4717. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4718. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  4719. {
  4720. string workorderid = RequestString.GetFormString("workorderid");
  4721. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  4722. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  4723. 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))
  4724. {
  4725. int source = RequestString.GetInt("source", 0);
  4726. string cusname = RequestString.GetFormString("cusname");
  4727. string cussex = RequestString.GetFormString("cussex");
  4728. string cusphone = RequestString.GetFormString("cusphone");
  4729. string cusaddress = RequestString.GetFormString("cusaddress");
  4730. string email = RequestString.GetFormString("email");
  4731. string zipcode = RequestString.GetFormString("zipcode");
  4732. string conname = RequestString.GetFormString("conname");
  4733. string conphone = RequestString.GetFormString("conphone");
  4734. string title = RequestString.GetFormString("title");
  4735. string content = RequestString.GetFormString("content");
  4736. string files = RequestString.GetFormString("files");
  4737. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4738. string sourceaddress = RequestString.GetFormString("sourceaddress");
  4739. int isresult = RequestString.GetInt("isresult", 0);
  4740. string result = RequestString.GetFormString("result");
  4741. string keys = RequestString.GetFormString("keys");
  4742. string splituser = RequestString.GetFormString("splituser");
  4743. int type = RequestString.GetInt("type", 0);
  4744. int bigtype = RequestString.GetInt("bigtype", 0);
  4745. int smalltype = RequestString.GetInt("smalltype", 0);
  4746. int isprotect = RequestString.GetInt("isprotect", 0);
  4747. int level = RequestString.GetInt("level", 0);
  4748. int issubmit = RequestString.GetInt("issubmit", 0);
  4749. using (TransactionScope trans = new TransactionScope())
  4750. {
  4751. #region 保存工单信息
  4752. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  4753. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  4754. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  4755. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  4756. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  4757. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  4758. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  4759. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  4760. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  4761. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  4762. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  4763. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  4764. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  4765. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  4766. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  4767. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  4768. modelT_Bus_WorkOrder.F_File = files;//附件
  4769. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  4770. modelT_Bus_WorkOrder.F_Key = keys;
  4771. modelT_Bus_WorkOrder.F_Level = level;
  4772. //是否直办(即时答复)0:,否1: 是
  4773. modelT_Bus_WorkOrder.F_IsResult = isresult;
  4774. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  4775. //如果选择即刻答复:是,即为直办,工单结束
  4776. if (isresult == 1)
  4777. {
  4778. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  4779. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  4780. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  4781. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  4782. modelT_Bus_WorkOrder.F_IsClosed = 1;
  4783. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  4784. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  4785. }
  4786. else if (issubmit == 1)
  4787. {
  4788. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4789. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4790. }
  4791. #region
  4792. //20190715 审核环节去掉 zhengbingbing
  4793. //else
  4794. //{
  4795. // if(modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  4796. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  4797. //}
  4798. //else if (issubmit == 1)
  4799. //{
  4800. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4801. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4802. //}
  4803. #endregion
  4804. workorderBLL.Update(modelT_Bus_WorkOrder);
  4805. #endregion
  4806. #region 插入操作记录
  4807. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4808. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4809. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4810. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4811. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4812. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  4813. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  4814. {
  4815. oper.F_Message = userinfo + " 修改了工单";
  4816. }
  4817. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  4818. {
  4819. oper.F_Message = userinfo + " 修改并提交了工单";
  4820. }
  4821. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  4822. {
  4823. oper.F_Message = userinfo + " 修改并结案了工单";
  4824. }
  4825. oper.F_CreateUser = userModel.F_UserCode;
  4826. oper.F_CreateTime = DateTime.Now;
  4827. oper.F_IsDelete = 0;
  4828. operBLL.Add(oper);
  4829. //推送消息表
  4830. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  4831. {
  4832. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  4833. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  4834. foreach (var u in users)
  4835. {
  4836. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  4837. }
  4838. }
  4839. //调用科大讯飞
  4840. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  4841. {
  4842. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  4843. 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());
  4844. if (bl)
  4845. {
  4846. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  4847. }
  4848. else
  4849. {
  4850. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  4851. }
  4852. }
  4853. #endregion
  4854. trans.Complete();
  4855. }
  4856. return Success("操作成功");
  4857. }
  4858. else
  4859. {
  4860. return Error("操作失败");
  4861. }
  4862. }
  4863. else
  4864. {
  4865. return Success("权限不足");
  4866. }
  4867. }
  4868. /// <summary>
  4869. /// 修改工单信息
  4870. /// </summary>
  4871. /// <returns></returns>
  4872. [Authority]
  4873. public ActionResult EditWorkOrderBySource()
  4874. {
  4875. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4876. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4877. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  4878. {
  4879. string workorderid = RequestString.GetFormString("workorderid");
  4880. int source = RequestString.GetInt("source", 0);
  4881. string cusname = RequestString.GetFormString("cusname");
  4882. string cussex = RequestString.GetFormString("cussex");
  4883. string cusphone = RequestString.GetFormString("cusphone");
  4884. string cusaddress = RequestString.GetFormString("cusaddress");
  4885. string email = RequestString.GetFormString("email");
  4886. string zipcode = RequestString.GetFormString("zipcode");
  4887. string conname = RequestString.GetFormString("conname");
  4888. string conphone = RequestString.GetFormString("conphone");
  4889. string title = RequestString.GetFormString("title");
  4890. string content = RequestString.GetFormString("content");
  4891. string files = RequestString.GetFormString("files");
  4892. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4893. string sourceaddress = RequestString.GetFormString("sourceaddress");
  4894. int isresult = RequestString.GetInt("isresult", 0);
  4895. string result = RequestString.GetFormString("result");
  4896. string keys = RequestString.GetFormString("keys");
  4897. string splituser = RequestString.GetFormString("splituser");
  4898. int type = RequestString.GetInt("type", 0);
  4899. int bigtype = RequestString.GetInt("bigtype", 0);
  4900. int smalltype = RequestString.GetInt("smalltype", 0);
  4901. int isprotect = RequestString.GetInt("isprotect", 0);
  4902. int level = RequestString.GetInt("level", 0);
  4903. int issubmit = RequestString.GetInt("issubmit", 0);
  4904. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  4905. if (modelT_Bus_WorkOrder != null)
  4906. {
  4907. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  4908. {
  4909. using (TransactionScope trans = new TransactionScope())
  4910. {
  4911. #region 保存工单信息
  4912. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  4913. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  4914. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  4915. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  4916. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  4917. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  4918. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  4919. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  4920. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  4921. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  4922. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  4923. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  4924. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  4925. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  4926. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  4927. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  4928. modelT_Bus_WorkOrder.F_File = files;//附件
  4929. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  4930. modelT_Bus_WorkOrder.F_Key = keys;
  4931. modelT_Bus_WorkOrder.F_Level = level;
  4932. //是否直办(即时答复)0:,否1: 是
  4933. modelT_Bus_WorkOrder.F_IsResult = isresult;
  4934. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  4935. //如果选择即刻答复:是,即为直办,工单结束
  4936. if (isresult == 1)
  4937. {
  4938. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  4939. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  4940. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  4941. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  4942. modelT_Bus_WorkOrder.F_IsClosed = 1;
  4943. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  4944. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  4945. }
  4946. else if (issubmit == 1)
  4947. {
  4948. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4949. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4950. }
  4951. #region
  4952. //20190715 去掉审核环节 zhengbingbing
  4953. //else
  4954. //{
  4955. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  4956. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  4957. //}
  4958. //20190329
  4959. //else if (issubmit == 1)
  4960. //{
  4961. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  4962. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  4963. //}
  4964. #endregion
  4965. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;
  4966. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  4967. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  4968. modelT_Bus_WorkOrder.F_IsDelete = 0;
  4969. workorderBLL.Update(modelT_Bus_WorkOrder);
  4970. #endregion
  4971. #region 插入操作记录
  4972. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  4973. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  4974. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  4975. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  4976. oper.F_File = modelT_Bus_WorkOrder.F_File;
  4977. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  4978. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  4979. {
  4980. oper.F_Message = userinfo + " 处理了工单";
  4981. }
  4982. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  4983. {
  4984. oper.F_Message = userinfo + " 处理并提交了工单";
  4985. }
  4986. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  4987. {
  4988. oper.F_Message = userinfo + " 处理并结案了工单";
  4989. }
  4990. oper.F_CreateUser = userModel.F_UserCode;
  4991. oper.F_CreateTime = DateTime.Now;
  4992. oper.F_IsDelete = 0;
  4993. operBLL.Add(oper);
  4994. //推送消息表
  4995. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  4996. {
  4997. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  4998. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  4999. foreach (var u in users)
  5000. {
  5001. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  5002. }
  5003. }
  5004. //调用科大讯飞
  5005. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  5006. {
  5007. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  5008. 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());
  5009. if (bl)
  5010. {
  5011. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  5012. }
  5013. else
  5014. {
  5015. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  5016. }
  5017. }
  5018. #endregion
  5019. trans.Complete();
  5020. }
  5021. return Success("操作成功");
  5022. }
  5023. else
  5024. {
  5025. return Error("已经处理过了");
  5026. }
  5027. }
  5028. else
  5029. {
  5030. return Error("操作失败");
  5031. }
  5032. }
  5033. else
  5034. {
  5035. return Success("权限不足");
  5036. }
  5037. }
  5038. #region 新增审核工单流程
  5039. /// <summary>
  5040. /// 20190315需求变动,新增审核工单,由组长审核
  5041. /// </summary>
  5042. /// <param name="ids"></param>
  5043. /// <returns></returns>
  5044. [Authority]
  5045. public ActionResult AuditWorkOrder()
  5046. {
  5047. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5048. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5049. if (userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  5050. {
  5051. string workorderid = RequestString.GetFormString("workorderid");
  5052. int state = RequestString.GetInt("state", 0);
  5053. string reason = RequestString.GetFormString("reason");
  5054. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5055. if (modelT_Bus_WorkOrder != null)
  5056. {
  5057. using (TransactionScope trans = new TransactionScope())
  5058. {
  5059. if (modelT_Bus_WorkOrder != null)
  5060. {
  5061. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  5062. {
  5063. var opt = "审核并提交"; var re = "";
  5064. #region 保存工单信息
  5065. if (state == 1)
  5066. {
  5067. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  5068. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  5069. }
  5070. else
  5071. {
  5072. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  5073. opt = "审核并退回";
  5074. re = ",退回原因:" + reason;
  5075. }
  5076. workorderBLL.Update(modelT_Bus_WorkOrder);
  5077. #endregion
  5078. #region 插入操作记录
  5079. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5080. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5081. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5082. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5083. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  5084. oper.F_CreateUser = userModel.F_UserCode;
  5085. oper.F_CreateTime = DateTime.Now;
  5086. oper.F_IsDelete = 0;
  5087. operBLL.Add(oper);
  5088. //推送消息表
  5089. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  5090. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  5091. {
  5092. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  5093. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  5094. foreach (var u in users)
  5095. {
  5096. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  5097. }
  5098. }
  5099. #endregion
  5100. }
  5101. }
  5102. trans.Complete();
  5103. }
  5104. return Success("操作成功");
  5105. }
  5106. else
  5107. {
  5108. return Error("操作失败");
  5109. }
  5110. }
  5111. else
  5112. {
  5113. return Error("权限不足");
  5114. }
  5115. }
  5116. #endregion
  5117. /// <summary>
  5118. /// 提交工单
  5119. /// </summary>
  5120. /// <param name="ids"></param>
  5121. /// <returns></returns>
  5122. [Authority]
  5123. public ActionResult SubmitWorkOrder(string[] ids)
  5124. {
  5125. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5126. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5127. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  5128. {
  5129. if (ids != null && ids.Length > 0)
  5130. {
  5131. foreach (string str in ids)
  5132. {
  5133. using (TransactionScope trans = new TransactionScope())
  5134. {
  5135. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  5136. if (modelT_Bus_WorkOrder != null)
  5137. {
  5138. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  5139. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  5140. {
  5141. #region 保存工单信息
  5142. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  5143. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  5144. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  5145. workorderBLL.Update(modelT_Bus_WorkOrder);
  5146. #endregion
  5147. #region 插入操作记录
  5148. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5149. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5150. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5151. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5152. oper.F_Message = userinfo + " 提交了工单";
  5153. oper.F_CreateUser = userModel.F_UserCode;
  5154. oper.F_CreateTime = DateTime.Now;
  5155. oper.F_IsDelete = 0;
  5156. operBLL.Add(oper);
  5157. //推送消息表
  5158. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  5159. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  5160. {
  5161. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  5162. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  5163. foreach (var u in users)
  5164. {
  5165. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  5166. }
  5167. }
  5168. #endregion
  5169. }
  5170. }
  5171. trans.Complete();
  5172. }
  5173. }
  5174. return Success("操作成功");
  5175. }
  5176. else
  5177. {
  5178. return Error("操作失败");
  5179. }
  5180. }
  5181. else
  5182. {
  5183. return Error("权限不足");
  5184. }
  5185. }
  5186. /// <summary>
  5187. /// 回退工单
  5188. /// </summary>
  5189. /// <returns></returns>
  5190. [Authority]
  5191. public ActionResult ReturnWorkOrder()
  5192. {
  5193. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5194. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  5195. string workorderid = RequestString.GetFormString("workorderid");
  5196. string backuser = RequestString.GetFormString("backuser");
  5197. string backreason = RequestString.GetFormString("backreason");
  5198. string files = RequestString.GetFormString("files");
  5199. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  5200. if (modelT_Bus_WorkOrder != null)
  5201. {
  5202. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  5203. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  5204. {
  5205. using (TransactionScope trans = new TransactionScope())
  5206. {
  5207. #region 保存工单信息
  5208. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  5209. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  5210. modelT_Bus_WorkOrder.F_IsResult = 0;
  5211. modelT_Bus_WorkOrder.F_IsReturn = 1;
  5212. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  5213. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  5214. workorderBLL.Update(modelT_Bus_WorkOrder);
  5215. #endregion
  5216. #region 插入批示记录
  5217. //批示记录
  5218. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  5219. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  5220. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  5221. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  5222. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  5223. model_T_Bus_SubmitSuper.F_File = files;//附件
  5224. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  5225. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  5226. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  5227. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  5228. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  5229. #endregion
  5230. #region 插入操作记录
  5231. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5232. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5233. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5234. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5235. oper.F_Message = userinfo + " 回退了工单";
  5236. oper.F_CreateUser = userModel.F_UserCode;
  5237. oper.F_CreateTime = DateTime.Now;
  5238. oper.F_IsDelete = 0;
  5239. operBLL.Add(oper);
  5240. #endregion
  5241. trans.Complete();
  5242. }
  5243. return Success("操作成功");
  5244. }
  5245. else
  5246. {
  5247. return Error("已经处理过了");
  5248. }
  5249. }
  5250. else
  5251. {
  5252. return Error("操作失败");
  5253. }
  5254. }
  5255. /// <summary>
  5256. /// 领导批示/市长指示
  5257. /// </summary>
  5258. /// <param name="ids"></param>
  5259. /// <returns></returns>
  5260. [Authority]
  5261. public ActionResult SuperWorkOrder()
  5262. {
  5263. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5264. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5265. string workorderid = RequestString.GetFormString("workorderid");
  5266. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  5267. string superuser = RequestString.GetFormString("superuser");
  5268. string superopinion = RequestString.GetFormString("superopinion");
  5269. string files = RequestString.GetFormString("files");
  5270. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5271. if (modelT_Bus_WorkOrder != null)
  5272. {
  5273. using (TransactionScope trans = new TransactionScope())
  5274. {
  5275. #region 保存工单信息 no use
  5276. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  5277. //workorderBLL.Update(modelT_Bus_WorkOrder);
  5278. #endregion
  5279. #region 插入批示记录
  5280. //批示记录
  5281. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  5282. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  5283. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  5284. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  5285. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  5286. model_T_Bus_SubmitSuper.F_File = files;//附件
  5287. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  5288. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  5289. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  5290. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  5291. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  5292. #endregion
  5293. #region 插入操作记录
  5294. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5295. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5296. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5297. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5298. oper.F_Message = userinfo+ " 批示了工单";
  5299. oper.F_CreateUser = userModel.F_UserCode;
  5300. oper.F_CreateTime = DateTime.Now;
  5301. oper.F_IsDelete = 0;
  5302. operBLL.Add(oper);
  5303. #endregion
  5304. trans.Complete();
  5305. }
  5306. return Success("操作成功");
  5307. }
  5308. else
  5309. {
  5310. return Error("操作失败");
  5311. }
  5312. }
  5313. /// <summary>
  5314. /// 交办工单
  5315. /// </summary>
  5316. /// <returns></returns>
  5317. [Authority]
  5318. public ActionResult AssignWorkOrder()
  5319. {
  5320. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5321. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5322. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  5323. {
  5324. string workorderid = RequestString.GetFormString("workorderid");
  5325. int state = RequestString.GetInt("state", 0);
  5326. int assignid = RequestString.GetInt("assignid", 0);
  5327. int maindeptid = RequestString.GetInt("maindeptid", 0);
  5328. string otherdeptids = RequestString.GetFormString("otherdeptids");
  5329. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  5330. string assignedopinion = RequestString.GetFormString("assignedopinion");
  5331. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  5332. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  5333. {
  5334. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  5335. {
  5336. return Error("操作失败");
  5337. }
  5338. }
  5339. if (!string.IsNullOrEmpty(otherdeptids))
  5340. {
  5341. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  5342. {
  5343. return Error("主办单位不能出现在协办单位");
  5344. }
  5345. }
  5346. if (limittime < DateTime.Now)
  5347. {
  5348. return Error("办理时限不能小于当前时间");
  5349. }
  5350. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5351. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  5352. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  5353. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  5354. {
  5355. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  5356. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  5357. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  5358. {
  5359. int aid = 0;
  5360. using (TransactionScope trans = new TransactionScope())
  5361. {
  5362. if (assignid == 0)
  5363. {
  5364. #region 插入交办记录
  5365. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5366. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  5367. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  5368. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  5369. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  5370. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  5371. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  5372. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  5373. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  5374. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  5375. modelT_Bus_AssignedInfo.F_IsSure = 0;
  5376. modelT_Bus_AssignedInfo.F_IsReload = 0;
  5377. modelT_Bus_AssignedInfo.F_IsNext = 0;
  5378. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  5379. #endregion
  5380. }
  5381. else
  5382. {
  5383. #region 修改交办记录
  5384. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  5385. if (modelT_Bus_AssignedInfo != null)
  5386. {
  5387. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  5388. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  5389. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  5390. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  5391. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  5392. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  5393. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  5394. assignBLL.Update(modelT_Bus_AssignedInfo);
  5395. aid = modelT_Bus_AssignedInfo.F_Id;
  5396. }
  5397. #endregion
  5398. }
  5399. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  5400. {
  5401. #region 保存工单信息
  5402. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  5403. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  5404. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  5405. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  5406. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  5407. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  5408. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  5409. workorderBLL.Update(modelT_Bus_WorkOrder);
  5410. #endregion
  5411. #region 删除草稿信息
  5412. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  5413. foreach (var cg in cglist)
  5414. {
  5415. cg.F_IsDelete = 1;
  5416. cg.F_DeleteUser = userModel.F_UserCode;
  5417. cg.F_DeleteTime = DateTime.Now;
  5418. assignBLL.Update(cg);
  5419. }
  5420. #endregion
  5421. #region 插入操作记录
  5422. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5423. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5424. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5425. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5426. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5427. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  5428. if (!string.IsNullOrEmpty(otherdeptids))
  5429. {
  5430. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  5431. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  5432. }
  5433. oper.F_CreateUser = userModel.F_UserCode;
  5434. oper.F_CreateTime = DateTime.Now;
  5435. oper.F_IsDelete = 0;
  5436. operBLL.Add(oper);
  5437. //推送消息表
  5438. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  5439. foreach (var u in users)
  5440. {
  5441. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  5442. }
  5443. #endregion
  5444. }
  5445. trans.Complete();
  5446. }
  5447. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  5448. }
  5449. else
  5450. {
  5451. return Error("已经交办过了");
  5452. }
  5453. }
  5454. else
  5455. {
  5456. return Error("操作失败");
  5457. }
  5458. }
  5459. else
  5460. {
  5461. return Error("权限不足");
  5462. }
  5463. }
  5464. /// <summary>
  5465. /// 收回工单
  5466. /// </summary>
  5467. /// <returns></returns>
  5468. [Authority]
  5469. public ActionResult TakeBackWorkOrder()
  5470. {
  5471. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5472. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5473. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  5474. {
  5475. string workorderid = RequestString.GetFormString("workorderid");
  5476. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5477. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5478. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  5479. {
  5480. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  5481. {
  5482. return Error("操作失败");
  5483. }
  5484. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  5485. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  5486. {
  5487. using (TransactionScope trans = new TransactionScope())
  5488. {
  5489. #region 插入交办记录
  5490. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  5491. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5492. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  5493. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  5494. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  5495. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  5496. AssignedInfo.F_State = 0;//0草稿 1正式
  5497. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  5498. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  5499. AssignedInfo.F_IsDelete = 0;
  5500. AssignedInfo.F_IsOverdue = 0;
  5501. AssignedInfo.F_IsSure = 0;
  5502. AssignedInfo.F_IsReload = 0;
  5503. AssignedInfo.F_IsNext = 0;
  5504. assignBLL.Add(AssignedInfo);
  5505. #endregion
  5506. #region 保存工单信息
  5507. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  5508. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  5509. modelT_Bus_WorkOrder.F_MainDeptId = null;
  5510. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  5511. workorderBLL.Update(modelT_Bus_WorkOrder);
  5512. #endregion
  5513. #region 删除交办信息
  5514. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  5515. modelT_Bus_AssignedInfo.F_DeleteUser = userModel.F_UserCode;
  5516. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  5517. assignBLL.Update(modelT_Bus_AssignedInfo);
  5518. #endregion
  5519. #region 删除派单信息
  5520. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  5521. foreach (var cg in pdlist)
  5522. {
  5523. cg.F_IsDelete = 1;
  5524. cg.F_DeleteUser = userModel.F_UserCode;
  5525. cg.F_DeleteTime = DateTime.Now;
  5526. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  5527. }
  5528. #endregion
  5529. #region 删除二级单位处理信息
  5530. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  5531. foreach (var cg in cglist)
  5532. {
  5533. cg.F_IsDelete = 1;
  5534. cg.F_DeleteUser = userModel.F_UserCode;
  5535. cg.F_DeleteTime = DateTime.Now;
  5536. new BLL.T_Bus_Feedback_Next().Update(cg);
  5537. }
  5538. #endregion
  5539. #region 插入操作记录
  5540. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5541. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5542. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5543. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5544. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5545. oper.F_Message = userinfo + " 收回了工单";
  5546. oper.F_CreateUser = userModel.F_UserCode;
  5547. oper.F_CreateTime = DateTime.Now;
  5548. oper.F_IsDelete = 0;
  5549. operBLL.Add(oper);
  5550. #endregion
  5551. trans.Complete();
  5552. }
  5553. return Success("操作成功");
  5554. }
  5555. else
  5556. {
  5557. return Error("单位已查收,不能收回");
  5558. }
  5559. }
  5560. else
  5561. {
  5562. return Error("操作失败");
  5563. }
  5564. }
  5565. else
  5566. {
  5567. return Error("权限不足");
  5568. }
  5569. }
  5570. /// <summary>
  5571. /// 查收工单
  5572. /// </summary>
  5573. /// <returns></returns>
  5574. [Authority]
  5575. public ActionResult ReceiveWorkOrder()
  5576. {
  5577. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5578. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5579. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  5580. {
  5581. string workorderid = RequestString.GetFormString("workorderid");
  5582. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5583. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5584. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  5585. {
  5586. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  5587. {
  5588. using (TransactionScope trans = new TransactionScope())
  5589. {
  5590. #region 保存工单信息
  5591. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  5592. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  5593. workorderBLL.Update(modelT_Bus_WorkOrder);
  5594. #endregion
  5595. #region 保存查收信息
  5596. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  5597. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  5598. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  5599. assignBLL.Update(modelT_Bus_AssignedInfo);
  5600. #endregion
  5601. #region 保存明细信息
  5602. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  5603. {
  5604. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  5605. foreach (string strid in strids)
  5606. {
  5607. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  5608. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5609. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  5610. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  5611. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  5612. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  5613. modelT_Bus_AssignedItemInfo.F_State = 1;
  5614. modelT_Bus_AssignedItemInfo.F_Type = 2;
  5615. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  5616. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  5617. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  5618. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  5619. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  5620. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  5621. }
  5622. }
  5623. #endregion
  5624. #region 插入操作记录
  5625. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5626. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5627. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5628. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5629. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5630. oper.F_Message = userinfo + " 查收了工单";
  5631. oper.F_CreateUser = userModel.F_UserCode;
  5632. oper.F_CreateTime = DateTime.Now;
  5633. oper.F_IsDelete = 0;
  5634. operBLL.Add(oper);
  5635. #endregion
  5636. trans.Complete();
  5637. }
  5638. return Success("操作成功");
  5639. }
  5640. else
  5641. {
  5642. return Error("单位已查收,不能再次查收");
  5643. }
  5644. }
  5645. else
  5646. {
  5647. return Error("操作失败");
  5648. }
  5649. }
  5650. else
  5651. {
  5652. return Error("权限不足");
  5653. }
  5654. }
  5655. /// <summary>
  5656. /// 退回工单
  5657. /// </summary>
  5658. /// <returns></returns>
  5659. [Authority]
  5660. public ActionResult RebackWorkOrder()
  5661. {
  5662. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5663. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5664. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  5665. {
  5666. string workorderid = RequestString.GetFormString("workorderid");
  5667. string backreason = RequestString.GetFormString("backreason");
  5668. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5669. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5670. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  5671. {
  5672. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  5673. {
  5674. using (TransactionScope trans = new TransactionScope())
  5675. {
  5676. #region 保存工单信息
  5677. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  5678. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  5679. workorderBLL.Update(modelT_Bus_WorkOrder);
  5680. #endregion
  5681. #region 插入退回申请信息
  5682. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  5683. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  5684. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  5685. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  5686. model_T_Bus_Feedback.F_IsAudit = 0;
  5687. model_T_Bus_Feedback.F_IsDelete = 0;
  5688. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  5689. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  5690. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  5691. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  5692. model_T_Bus_Feedback.F_State = 1;
  5693. model_T_Bus_Feedback.F_Type = 3;
  5694. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  5695. #endregion
  5696. #region 保存交办信息
  5697. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  5698. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  5699. //{
  5700. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  5701. //}
  5702. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  5703. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  5704. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  5705. assignBLL.Update(modelT_Bus_AssignedInfo);
  5706. #endregion
  5707. #region 插入操作记录
  5708. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5709. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5710. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5711. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5712. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5713. oper.F_Message = userinfo + " 申请退回了工单";
  5714. oper.F_CreateUser = userModel.F_UserCode;
  5715. oper.F_CreateTime = DateTime.Now;
  5716. oper.F_IsDelete = 0;
  5717. operBLL.Add(oper);
  5718. //推送消息表
  5719. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode);
  5720. #endregion
  5721. trans.Complete();
  5722. }
  5723. return Success("操作成功");
  5724. }
  5725. else
  5726. {
  5727. return Error("单位已查收,不能退回");
  5728. }
  5729. }
  5730. else
  5731. {
  5732. return Error("操作失败");
  5733. }
  5734. }
  5735. else
  5736. {
  5737. return Error("权限不足");
  5738. }
  5739. }
  5740. /// <summary>
  5741. /// 审核退回工单
  5742. /// </summary>
  5743. /// <returns></returns>
  5744. [Authority]
  5745. public ActionResult AuditRebackWorkOrder()
  5746. {
  5747. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5748. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5749. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  5750. {
  5751. string workorderid = RequestString.GetFormString("workorderid");
  5752. int state = RequestString.GetInt("state", 0);
  5753. string reason = RequestString.GetFormString("reason");
  5754. int rebackid = RequestString.GetInt("rebackid", 0);
  5755. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5756. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  5757. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5758. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  5759. {
  5760. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  5761. {
  5762. return Error("操作失败");
  5763. }
  5764. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  5765. {
  5766. using (TransactionScope trans = new TransactionScope())
  5767. {
  5768. #region 保存查收信息
  5769. modelT_Bus_Feedback.F_IsAudit = state;//审核
  5770. modelT_Bus_Feedback.F_AuditUser = userModel.F_UserCode;
  5771. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  5772. modelT_Bus_Feedback.F_AuditReason = reason;
  5773. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  5774. #endregion
  5775. string strmsg = "同意";
  5776. if (modelT_Bus_Feedback.F_IsAudit == 1)
  5777. {
  5778. #region 插入交办记录
  5779. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  5780. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5781. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  5782. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  5783. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  5784. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  5785. AssignedInfo.F_State = 0;//0草稿 1正式
  5786. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  5787. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  5788. AssignedInfo.F_IsDelete = 0;
  5789. AssignedInfo.F_IsOverdue = 0;
  5790. AssignedInfo.F_IsSure = 0;
  5791. AssignedInfo.F_IsNext = 0;
  5792. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  5793. assignBLL.Add(AssignedInfo);
  5794. #endregion
  5795. #region 保存交办信息
  5796. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  5797. assignBLL.Update(modelT_Bus_AssignedInfo);
  5798. #endregion
  5799. #region 保存工单信息
  5800. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  5801. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  5802. workorderBLL.Update(modelT_Bus_WorkOrder);
  5803. #endregion
  5804. }
  5805. else
  5806. {
  5807. #region 保存工单信息
  5808. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  5809. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  5810. workorderBLL.Update(modelT_Bus_WorkOrder);
  5811. #endregion
  5812. #region 保存交办信息
  5813. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  5814. modelT_Bus_AssignedInfo.F_IsSure = 0;
  5815. modelT_Bus_AssignedInfo.F_SureUser = "";
  5816. modelT_Bus_AssignedInfo.F_SureTime = null;
  5817. assignBLL.Update(modelT_Bus_AssignedInfo);
  5818. #endregion
  5819. strmsg = "拒绝";
  5820. }
  5821. #region 插入操作记录
  5822. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5823. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5824. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5825. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5826. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5827. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  5828. oper.F_CreateUser = userModel.F_UserCode;
  5829. oper.F_CreateTime = DateTime.Now;
  5830. oper.F_IsDelete = 0;
  5831. operBLL.Add(oper);
  5832. //推送消息表
  5833. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, userModel.F_UserCode);
  5834. #endregion
  5835. trans.Complete();
  5836. }
  5837. return Success("操作成功");
  5838. }
  5839. else
  5840. {
  5841. return Error("此审核已经处理");
  5842. }
  5843. }
  5844. else
  5845. {
  5846. return Error("操作失败");
  5847. }
  5848. }
  5849. else
  5850. {
  5851. return Error("权限不足");
  5852. }
  5853. }
  5854. /// <summary>
  5855. /// 申请延时
  5856. /// </summary>
  5857. /// <returns></returns>
  5858. [Authority]
  5859. public ActionResult DelayWorkOrder()
  5860. {
  5861. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5862. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5863. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  5864. {
  5865. string workorderid = RequestString.GetFormString("workorderid");
  5866. //int state = RequestString.GetInt("state", 0);
  5867. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  5868. string reason = RequestString.GetFormString("reason");
  5869. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5870. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5871. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  5872. {
  5873. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  5874. {
  5875. using (TransactionScope trans = new TransactionScope())
  5876. {
  5877. #region 保存工单信息
  5878. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  5879. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  5880. workorderBLL.Update(modelT_Bus_WorkOrder);
  5881. #endregion
  5882. #region 插入申请延时信息
  5883. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  5884. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5885. //delay.F_State = state;
  5886. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  5887. delay.F_NewTime = newlimittime;
  5888. delay.F_Reason = reason;
  5889. delay.F_State = 1;
  5890. delay.F_IsAudit = 0;
  5891. delay.F_IsDelete = 0;
  5892. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5893. delay.F_CreateUser = userModel.F_UserCode;
  5894. delay.F_CreateTime = DateTime.Now;
  5895. new BLL.T_Bus_DelayTime().Add(delay);
  5896. #endregion
  5897. #region 插入操作记录
  5898. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5899. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5900. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5901. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  5902. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  5903. oper.F_Message = userinfo + " 申请了延时处理";
  5904. oper.F_CreateUser = userModel.F_UserCode;
  5905. oper.F_CreateTime = DateTime.Now;
  5906. oper.F_IsDelete = 0;
  5907. operBLL.Add(oper);
  5908. //推送消息表
  5909. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode);
  5910. #endregion
  5911. trans.Complete();
  5912. }
  5913. return Success("操作成功");
  5914. }
  5915. else
  5916. {
  5917. return Error("操作失敗,已查收");
  5918. }
  5919. }
  5920. else
  5921. {
  5922. return Error("操作失败");
  5923. }
  5924. }
  5925. else
  5926. {
  5927. return Error("权限不足");
  5928. }
  5929. }
  5930. /// <summary>
  5931. /// 审核延时工单
  5932. /// </summary>
  5933. /// <returns></returns>
  5934. [Authority]
  5935. public ActionResult AuditDelayWorkOrder()
  5936. {
  5937. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5938. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5939. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  5940. {
  5941. string workorderid = RequestString.GetFormString("workorderid");
  5942. int state = RequestString.GetInt("state", 0);
  5943. string reason = RequestString.GetFormString("reason");
  5944. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  5945. int delayid = RequestString.GetInt("delayid", 0);
  5946. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  5947. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  5948. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  5949. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  5950. {
  5951. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  5952. {
  5953. return Error("操作失败");
  5954. }
  5955. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  5956. {
  5957. using (TransactionScope trans = new TransactionScope())
  5958. {
  5959. #region 保存工单信息
  5960. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  5961. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  5962. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  5963. workorderBLL.Update(modelT_Bus_WorkOrder);
  5964. #endregion
  5965. #region 保存审核信息
  5966. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  5967. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  5968. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  5969. modelT_Bus_DelayTime.F_RefuseReason = reason;
  5970. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  5971. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  5972. #endregion
  5973. string type = "同意"; string des = "";
  5974. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  5975. {
  5976. #region 修改交办记录
  5977. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  5978. assignBLL.Update(modelT_Bus_AssignedInfo);
  5979. #endregion
  5980. #region 处理协办单位
  5981. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  5982. foreach (var xb in xblist)
  5983. {
  5984. //xb.F_LimitTime = DateTime.Now;
  5985. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  5986. assignItemBLL.Update(xb);
  5987. }
  5988. #endregion
  5989. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  5990. }
  5991. else
  5992. {
  5993. type = "拒绝";
  5994. }
  5995. #region 插入操作记录
  5996. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  5997. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  5998. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  5999. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6000. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6001. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  6002. oper.F_CreateUser = userModel.F_UserCode;
  6003. oper.F_CreateTime = DateTime.Now;
  6004. oper.F_IsDelete = 0;
  6005. operBLL.Add(oper);
  6006. //推送消息表
  6007. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode);
  6008. #endregion
  6009. trans.Complete();
  6010. }
  6011. return Success("操作成功");
  6012. }
  6013. else
  6014. {
  6015. return Error("此审核已经处理");
  6016. }
  6017. }
  6018. else
  6019. {
  6020. return Error("操作失败");
  6021. }
  6022. }
  6023. else
  6024. {
  6025. return Error("权限不足");
  6026. }
  6027. }
  6028. /// <summary>
  6029. /// 办理工单
  6030. /// </summary>
  6031. /// <returns></returns>
  6032. [Authority]
  6033. public ActionResult FeedBackWorkOrder()
  6034. {
  6035. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6036. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6037. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  6038. {
  6039. string workorderid = RequestString.GetFormString("workorderid");
  6040. string dealman = RequestString.GetFormString("dealman");
  6041. string result = RequestString.GetFormString("result");
  6042. string files = RequestString.GetFormString("files");
  6043. int state = RequestString.GetInt("state", 0);
  6044. int feedbackid = RequestString.GetInt("feedbackid", 0);
  6045. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6046. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6047. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  6048. int type = 0;
  6049. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  6050. {
  6051. type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  6052. if (type > 0)
  6053. {
  6054. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  6055. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  6056. {
  6057. using (TransactionScope trans = new TransactionScope())
  6058. {
  6059. if (feedbackid == 0)
  6060. {
  6061. #region 插入反馈记录
  6062. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  6063. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  6064. modelT_Bus_Feedback.F_DealUser = dealman;
  6065. modelT_Bus_Feedback.F_Result = result;//反馈内容
  6066. modelT_Bus_Feedback.F_File = files;
  6067. modelT_Bus_Feedback.F_IsAudit = 0;
  6068. modelT_Bus_Feedback.F_IsDelete = 0;
  6069. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  6070. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  6071. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  6072. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  6073. modelT_Bus_Feedback.F_State = state;
  6074. modelT_Bus_Feedback.F_Type = type;
  6075. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  6076. #endregion
  6077. }
  6078. else
  6079. {
  6080. #region 修改反馈记录
  6081. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  6082. if (modelT_Bus_Feedback != null)
  6083. {
  6084. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  6085. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  6086. modelT_Bus_Feedback.F_DealUser = dealman;
  6087. modelT_Bus_Feedback.F_Result = result;//反馈内容
  6088. modelT_Bus_Feedback.F_File = files;
  6089. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  6090. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  6091. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  6092. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  6093. modelT_Bus_Feedback.F_State = state;
  6094. if (modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  6095. {
  6096. modelT_Bus_Feedback.F_Type = 1;
  6097. }
  6098. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(userModel.F_DeptId.ToString()))
  6099. {
  6100. modelT_Bus_Feedback.F_Type = 2;
  6101. }
  6102. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  6103. }
  6104. #endregion
  6105. }
  6106. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  6107. {
  6108. string typemsg = "办理";
  6109. if (type == 1)
  6110. {
  6111. int iscs = 0;
  6112. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  6113. {
  6114. iscs = 1;
  6115. }
  6116. #region 保存工单信息
  6117. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  6118. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  6119. modelT_Bus_WorkOrder.F_Result = result;
  6120. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  6121. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  6122. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  6123. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  6124. workorderBLL.Update(modelT_Bus_WorkOrder);
  6125. #endregion
  6126. #region 保存交办信息
  6127. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  6128. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  6129. {
  6130. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  6131. }
  6132. assignBLL.Update(modelT_Bus_AssignedInfo);
  6133. #endregion
  6134. #region 删除草稿信息
  6135. 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 + "'");
  6136. foreach (var cg in cglist)
  6137. {
  6138. cg.F_IsDelete = 1;
  6139. cg.F_DeleteUser = userModel.F_UserCode;
  6140. cg.F_DeleteTime = DateTime.Now;
  6141. new BLL.T_Bus_Feedback().Update(cg);
  6142. }
  6143. #endregion
  6144. #region 删除二级单位未办理信息
  6145. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  6146. foreach (var ej in ejlist)
  6147. {
  6148. ej.F_IsDelete = 1;
  6149. ej.F_DeleteUser = userModel.F_UserCode;
  6150. ej.F_DeleteTime = DateTime.Now;
  6151. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  6152. }
  6153. #endregion
  6154. #region 处理协办单位
  6155. 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 + "'");
  6156. foreach (var xb in xblist)
  6157. {
  6158. xb.F_State = 2;
  6159. xb.F_SureUser = userModel.F_UserCode;
  6160. xb.F_SureTime = DateTime.Now;
  6161. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  6162. }
  6163. #endregion
  6164. typemsg = "主办";
  6165. }
  6166. else if (type == 2)
  6167. {
  6168. #region 保存明细信息
  6169. 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();
  6170. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  6171. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  6172. {
  6173. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  6174. }
  6175. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  6176. #endregion
  6177. #region 删除草稿信息
  6178. 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 + "'");
  6179. foreach (var cg in cglist)
  6180. {
  6181. cg.F_IsDelete = 1;
  6182. cg.F_DeleteUser = userModel.F_UserCode;
  6183. cg.F_DeleteTime = DateTime.Now;
  6184. new BLL.T_Bus_Feedback().Update(cg);
  6185. }
  6186. #endregion
  6187. typemsg = "协办";
  6188. }
  6189. #region 插入操作记录
  6190. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6191. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6192. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  6193. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6194. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6195. oper.F_Message = userinfo + " " + typemsg + "了工单";
  6196. oper.F_CreateUser = userModel.F_UserCode;
  6197. oper.F_CreateTime = DateTime.Now;
  6198. oper.F_IsDelete = 0;
  6199. operBLL.Add(oper);
  6200. //推送消息表
  6201. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode);
  6202. #endregion
  6203. }
  6204. trans.Complete();
  6205. }
  6206. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  6207. }
  6208. else
  6209. {
  6210. return Error("已经办理过了");
  6211. }
  6212. }
  6213. else
  6214. {
  6215. return Error("权限不足");
  6216. }
  6217. }
  6218. else
  6219. {
  6220. return Error("操作失败");
  6221. }
  6222. }
  6223. else
  6224. {
  6225. return Error("权限不足");
  6226. }
  6227. }
  6228. /// <summary>
  6229. /// 派工单
  6230. /// </summary>
  6231. /// <returns></returns>
  6232. [Authority]
  6233. public ActionResult SplitWorkOrder()
  6234. {
  6235. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6236. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6237. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  6238. {
  6239. string workorderid = RequestString.GetFormString("workorderid");
  6240. int maindeptid = RequestString.GetInt("maindeptid", 0);
  6241. string otherdeptids = RequestString.GetFormString("otherdeptids");
  6242. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  6243. string assignedopinion = RequestString.GetFormString("assignedopinion");
  6244. string files = RequestString.GetFormString("files");
  6245. int state = RequestString.GetInt("state", 0);
  6246. int nextid = RequestString.GetInt("nextid", 0);
  6247. if (limittime < DateTime.Now)
  6248. {
  6249. return Error("办理时限不能小于当前时间");
  6250. }
  6251. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6252. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6253. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  6254. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  6255. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  6256. {
  6257. int type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  6258. //if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == 4) || userModel.F_RoleCode == "GLY")
  6259. if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing) || userModel.F_RoleCode == "GLY")
  6260. {
  6261. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0)
  6262. {
  6263. using (TransactionScope trans = new TransactionScope())
  6264. {
  6265. if (nextid == 0)
  6266. {
  6267. #region 插入派单记录
  6268. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6269. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  6270. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  6271. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  6272. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  6273. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  6274. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  6275. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  6276. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  6277. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  6278. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  6279. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  6280. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  6281. #endregion
  6282. }
  6283. else
  6284. {
  6285. #region 修改派单记录
  6286. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  6287. if (modelT_Bus_AssignedInfo_Next != null)
  6288. {
  6289. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  6290. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  6291. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  6292. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  6293. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  6294. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  6295. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  6296. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  6297. }
  6298. #endregion
  6299. }
  6300. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  6301. {
  6302. #region 保存交办信息
  6303. modelT_Bus_AssignedInfo.F_IsNext = 1;
  6304. modelT_Bus_AssignedInfo.F_NextUser = userModel.F_UserCode;
  6305. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  6306. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  6307. #endregion
  6308. #region 插入操作记录
  6309. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6310. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6311. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  6312. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6313. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6314. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  6315. oper.F_CreateUser = userModel.F_UserCode;
  6316. oper.F_CreateTime = DateTime.Now;
  6317. oper.F_IsDelete = 0;
  6318. operBLL.Add(oper);
  6319. //推送消息表
  6320. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode);
  6321. #endregion
  6322. }
  6323. trans.Complete();
  6324. }
  6325. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  6326. }
  6327. else
  6328. {
  6329. return Error("已经派过单了");
  6330. }
  6331. }
  6332. else
  6333. {
  6334. return Error("操作失败");
  6335. }
  6336. }
  6337. else
  6338. {
  6339. return Error("操作失败");
  6340. }
  6341. }
  6342. else
  6343. {
  6344. return Error("权限不足");
  6345. }
  6346. }
  6347. /// <summary>
  6348. /// 撤回工单
  6349. /// </summary>
  6350. /// <returns></returns>
  6351. [Authority]
  6352. public ActionResult WithdrawWorkOrder()
  6353. {
  6354. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6355. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6356. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  6357. {
  6358. string workorderid = RequestString.GetFormString("workorderid");
  6359. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6360. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6361. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  6362. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  6363. {
  6364. using (TransactionScope trans = new TransactionScope())
  6365. {
  6366. #region 保存撤单信息
  6367. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  6368. modelT_Bus_AssignedInfo_Next.F_DeleteUser = userModel.F_UserCode;
  6369. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  6370. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  6371. #endregion
  6372. #region 删除处理信息
  6373. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  6374. foreach (var cg in cglist)
  6375. {
  6376. cg.F_IsDelete = 1;
  6377. cg.F_DeleteUser = userModel.F_UserCode;
  6378. cg.F_DeleteTime = DateTime.Now;
  6379. new BLL.T_Bus_Feedback_Next().Update(cg);
  6380. }
  6381. #endregion
  6382. #region 保存交办信息
  6383. modelT_Bus_AssignedInfo.F_IsNext = 0;
  6384. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  6385. #endregion
  6386. #region 插入操作记录
  6387. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6388. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6389. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  6390. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6391. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6392. oper.F_Message = userinfo + " 撤回了工单";
  6393. oper.F_CreateUser = userModel.F_UserCode;
  6394. oper.F_CreateTime = DateTime.Now;
  6395. oper.F_IsDelete = 0;
  6396. operBLL.Add(oper);
  6397. #endregion
  6398. trans.Complete();
  6399. }
  6400. return Success("操作成功");
  6401. }
  6402. else
  6403. {
  6404. return Error("操作失败");
  6405. }
  6406. }
  6407. else
  6408. {
  6409. return Error("权限不足");
  6410. }
  6411. }
  6412. /// <summary>
  6413. /// 签收工单
  6414. /// </summary>
  6415. /// <returns></returns>
  6416. [Authority]
  6417. public ActionResult SignWorkOrder()
  6418. {
  6419. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6420. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6421. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY")
  6422. {
  6423. string workorderid = RequestString.GetFormString("workorderid");
  6424. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6425. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6426. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  6427. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  6428. {
  6429. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  6430. {
  6431. using (TransactionScope trans = new TransactionScope())
  6432. {
  6433. #region 保存签收信息
  6434. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  6435. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  6436. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  6437. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  6438. #endregion
  6439. #region 保存交办信息
  6440. modelT_Bus_AssignedInfo.F_IsNext = 2;
  6441. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  6442. #endregion
  6443. #region 插入操作记录
  6444. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6445. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6446. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  6447. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6448. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6449. oper.F_Message = userinfo + " 签收了工单";
  6450. oper.F_CreateUser = userModel.F_UserCode;
  6451. oper.F_CreateTime = DateTime.Now;
  6452. oper.F_IsDelete = 0;
  6453. operBLL.Add(oper);
  6454. #endregion
  6455. trans.Complete();
  6456. }
  6457. return Success("操作成功");
  6458. }
  6459. else
  6460. {
  6461. return Error("单位已签收,不能再次签收");
  6462. }
  6463. }
  6464. else
  6465. {
  6466. return Error("操作失败");
  6467. }
  6468. }
  6469. else
  6470. {
  6471. return Error("权限不足");
  6472. }
  6473. }
  6474. /// <summary>
  6475. /// 拒收工单
  6476. /// </summary>
  6477. /// <returns></returns>
  6478. [Authority]
  6479. public ActionResult RefuseWorkOrder()
  6480. {
  6481. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6482. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6483. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY")
  6484. {
  6485. string workorderid = RequestString.GetFormString("workorderid");
  6486. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6487. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6488. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  6489. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  6490. {
  6491. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  6492. {
  6493. using (TransactionScope trans = new TransactionScope())
  6494. {
  6495. #region 保存签收信息
  6496. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  6497. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  6498. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  6499. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  6500. #endregion
  6501. #region 保存交办信息
  6502. modelT_Bus_AssignedInfo.F_IsNext = 0;
  6503. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  6504. #endregion
  6505. #region 插入操作记录
  6506. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6507. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6508. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  6509. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6510. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6511. oper.F_Message = userinfo + " 拒收了工单";
  6512. oper.F_CreateUser = userModel.F_UserCode;
  6513. oper.F_CreateTime = DateTime.Now;
  6514. oper.F_IsDelete = 0;
  6515. operBLL.Add(oper);
  6516. #endregion
  6517. trans.Complete();
  6518. }
  6519. return Success("操作成功");
  6520. }
  6521. else
  6522. {
  6523. return Error("单位已签收,不能再次签收");
  6524. }
  6525. }
  6526. else
  6527. {
  6528. return Error("操作失败");
  6529. }
  6530. }
  6531. else
  6532. {
  6533. return Error("权限不足");
  6534. }
  6535. }
  6536. /// <summary>
  6537. /// 处理工单
  6538. /// </summary>
  6539. /// <returns></returns>
  6540. [Authority]
  6541. public ActionResult DealWorkOrder()
  6542. {
  6543. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6544. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6545. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY")
  6546. {
  6547. string workorderid = RequestString.GetFormString("workorderid");
  6548. string dealman = RequestString.GetFormString("dealman");
  6549. string result = RequestString.GetFormString("result");
  6550. string files = RequestString.GetFormString("files");
  6551. int state = RequestString.GetInt("state", 0);
  6552. int dealid = RequestString.GetInt("dealid", 0);
  6553. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6554. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6555. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  6556. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  6557. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  6558. {
  6559. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  6560. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  6561. {
  6562. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  6563. {
  6564. using (TransactionScope trans = new TransactionScope())
  6565. {
  6566. if (dealid == 0)
  6567. {
  6568. #region 插入反馈记录
  6569. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  6570. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  6571. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  6572. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  6573. modelT_Bus_Feedback_Next.F_File = files;
  6574. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  6575. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  6576. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  6577. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  6578. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  6579. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  6580. modelT_Bus_Feedback_Next.F_State = state;
  6581. modelT_Bus_Feedback_Next.F_Type = 1;
  6582. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  6583. #endregion
  6584. }
  6585. else
  6586. {
  6587. #region 修改反馈记录
  6588. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  6589. if (modelT_Bus_Feedback_Next != null)
  6590. {
  6591. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  6592. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  6593. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  6594. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  6595. modelT_Bus_Feedback_Next.F_File = files;
  6596. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  6597. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  6598. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  6599. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  6600. modelT_Bus_Feedback_Next.F_State = state;
  6601. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  6602. }
  6603. #endregion
  6604. }
  6605. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  6606. {
  6607. #region 保存交办信息
  6608. modelT_Bus_AssignedInfo.F_IsNext = 3;
  6609. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  6610. #endregion
  6611. #region 保存派单信息
  6612. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  6613. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  6614. {
  6615. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  6616. }
  6617. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  6618. #endregion
  6619. #region 删除草稿信息
  6620. 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 + "'");
  6621. foreach (var cg in cglist)
  6622. {
  6623. cg.F_IsDelete = 1;
  6624. cg.F_DeleteUser = userModel.F_UserCode;
  6625. cg.F_DeleteTime = DateTime.Now;
  6626. new BLL.T_Bus_Feedback_Next().Update(cg);
  6627. }
  6628. #endregion
  6629. #region 插入操作记录
  6630. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6631. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6632. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  6633. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6634. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6635. oper.F_Message = userinfo + " 办理了工单";
  6636. oper.F_CreateUser = userModel.F_UserCode;
  6637. oper.F_CreateTime = DateTime.Now;
  6638. oper.F_IsDelete = 0;
  6639. operBLL.Add(oper);
  6640. //推送消息表
  6641. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode);
  6642. #endregion
  6643. }
  6644. trans.Complete();
  6645. }
  6646. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  6647. }
  6648. else
  6649. {
  6650. return Error("已经办理过了");
  6651. }
  6652. }
  6653. else
  6654. {
  6655. return Error("已经办理过了");
  6656. }
  6657. }
  6658. else
  6659. {
  6660. return Error("操作失败");
  6661. }
  6662. }
  6663. else
  6664. {
  6665. return Error("权限不足");
  6666. }
  6667. }
  6668. /// <summary>
  6669. /// 审核派单
  6670. /// </summary>
  6671. /// <returns></returns>
  6672. [Authority]
  6673. public ActionResult AuditSplitWorkOrder()
  6674. {
  6675. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6676. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6677. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY")
  6678. {
  6679. string workorderid = RequestString.GetFormString("workorderid");
  6680. int state = RequestString.GetInt("state", 0);
  6681. string reason = RequestString.GetFormString("reason");
  6682. int backid = RequestString.GetInt("backid", 0);
  6683. string files = RequestString.GetFormString("files");
  6684. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6685. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6686. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  6687. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  6688. {
  6689. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  6690. {
  6691. using (TransactionScope trans = new TransactionScope())
  6692. {
  6693. modelT_Bus_Feedback_Next.F_IsAudit = state;
  6694. modelT_Bus_Feedback_Next.F_AuditUser = userModel.F_UserCode;
  6695. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  6696. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  6697. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  6698. string strmsg = "";
  6699. if (state == 1)
  6700. {
  6701. strmsg = "同意";
  6702. #region 插入反馈记录
  6703. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  6704. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  6705. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  6706. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  6707. modelT_Bus_Feedback.F_Result = modelT_Bus_Feedback_Next.F_Result;//反馈内容
  6708. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  6709. modelT_Bus_Feedback.F_IsAudit = 0;
  6710. modelT_Bus_Feedback.F_IsDelete = 0;
  6711. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  6712. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  6713. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  6714. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  6715. modelT_Bus_Feedback.F_State = state;
  6716. modelT_Bus_Feedback.F_Type = 1;
  6717. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  6718. #endregion
  6719. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  6720. {
  6721. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  6722. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  6723. }
  6724. #region 保存工单信息
  6725. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  6726. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  6727. modelT_Bus_WorkOrder.F_Result = modelT_Bus_Feedback_Next.F_Result;
  6728. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  6729. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  6730. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  6731. workorderBLL.Update(modelT_Bus_WorkOrder);
  6732. #endregion
  6733. #region 保存交办信息
  6734. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  6735. assignBLL.Update(modelT_Bus_AssignedInfo);
  6736. #endregion
  6737. #region 删除草稿信息
  6738. 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 + "'");
  6739. foreach (var cg in cglist)
  6740. {
  6741. cg.F_IsDelete = 1;
  6742. cg.F_DeleteUser = userModel.F_UserCode;
  6743. cg.F_DeleteTime = DateTime.Now;
  6744. new BLL.T_Bus_Feedback().Update(cg);
  6745. }
  6746. #endregion
  6747. #region 处理协办单位
  6748. 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 + "'");
  6749. foreach (var xb in xblist)
  6750. {
  6751. xb.F_State = 2;
  6752. xb.F_SureUser = userModel.F_UserCode;
  6753. xb.F_SureTime = DateTime.Now;
  6754. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  6755. }
  6756. #endregion
  6757. }
  6758. else if (state == 2)
  6759. {
  6760. strmsg = "拒绝";
  6761. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  6762. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  6763. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  6764. modelT_Bus_AssignedInfo.F_IsNext = 2;
  6765. assignBLL.Update(modelT_Bus_AssignedInfo);
  6766. //#region 插入派单记录
  6767. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  6768. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  6769. //modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6770. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo_Next1.F_LimitTime;//办理时限
  6771. //modelT_Bus_AssignedInfo_Next.F_MainDeptId = modelT_Bus_AssignedInfo_Next1.F_MainDeptId;//主办单位id
  6772. //modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = modelT_Bus_AssignedInfo_Next1.F_OtherDeptIds;//协办单位id
  6773. //modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = reason;//交办意见
  6774. //modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  6775. //modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  6776. //modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  6777. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  6778. //modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  6779. //modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  6780. //modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  6781. //modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  6782. //#endregion
  6783. }
  6784. #region 插入操作记录
  6785. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6786. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6787. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  6788. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6789. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6790. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  6791. oper.F_CreateUser = userModel.F_UserCode;
  6792. oper.F_CreateTime = DateTime.Now;
  6793. oper.F_IsDelete = 0;
  6794. operBLL.Add(oper);
  6795. //推送消息表
  6796. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode);
  6797. #endregion
  6798. trans.Complete();
  6799. }
  6800. return Success("操作成功");
  6801. }
  6802. else
  6803. {
  6804. return Error("已经审核过了");
  6805. }
  6806. }
  6807. else
  6808. {
  6809. return Error("操作失败");
  6810. }
  6811. }
  6812. else
  6813. {
  6814. return Error("权限不足");
  6815. }
  6816. }
  6817. /// <summary>
  6818. /// 回访工单
  6819. /// </summary>
  6820. /// <returns></returns>
  6821. [Authority]
  6822. public ActionResult VisitWorkOrder()
  6823. {
  6824. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6825. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6826. //if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  6827. if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  6828. {
  6829. string workorderid = RequestString.GetFormString("workorderid");
  6830. string visituser = RequestString.GetFormString("visituser");//回访人
  6831. int type = RequestString.GetInt("type", 0);//回访方式
  6832. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  6833. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));//不满意,重办的办理时限
  6834. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  6835. int visitid = RequestString.GetInt("visitid", 0);
  6836. string result = RequestString.GetFormString("result");//回访情况
  6837. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2结案
  6838. //string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  6839. //string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  6840. string callid = RequestString.GetFormString("callid");
  6841. string guid = RequestString.GetFormString("guid");
  6842. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  6843. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  6844. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  6845. if (modelT_Bus_WorkOrder != null)
  6846. {
  6847. //if (modelT_Bus_WorkOrder.F_WorkState == 6)
  6848. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  6849. {
  6850. using (TransactionScope trans = new TransactionScope())
  6851. {
  6852. #region 回访
  6853. if (visitid == 0)
  6854. {
  6855. #region 新增回访结果记录
  6856. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6857. modelT_Bus_VisitResult.F_AssignedId = 0;
  6858. modelT_Bus_VisitResult.F_VisitUser = visituser;
  6859. modelT_Bus_VisitResult.F_Type = type;
  6860. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  6861. modelT_Bus_VisitResult.F_Result = result;
  6862. modelT_Bus_VisitResult.F_State = state;
  6863. if (!string.IsNullOrEmpty(callid))
  6864. {
  6865. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  6866. if (rd != null)
  6867. {
  6868. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  6869. }
  6870. }
  6871. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  6872. modelT_Bus_VisitResult.F_IsDelete = 0;
  6873. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  6874. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  6875. if (modelT_Bus_AssignedInfo != null)
  6876. {
  6877. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  6878. }
  6879. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  6880. modelT_Bus_VisitResult.F_Id = id;
  6881. //保存回访记录
  6882. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  6883. #endregion
  6884. }
  6885. else
  6886. {
  6887. #region 修改回访结果记录
  6888. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  6889. if (modelT_Bus_VisitResult != null)
  6890. {
  6891. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6892. modelT_Bus_VisitResult.F_AssignedId = 0;
  6893. modelT_Bus_VisitResult.F_VisitUser = visituser;
  6894. modelT_Bus_VisitResult.F_Type = type;
  6895. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  6896. modelT_Bus_VisitResult.F_Result = result;
  6897. modelT_Bus_VisitResult.F_State = state;
  6898. if (!string.IsNullOrEmpty(callid))
  6899. {
  6900. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  6901. if (rd != null)
  6902. {
  6903. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  6904. }
  6905. }
  6906. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  6907. modelT_Bus_VisitResult.F_IsDelete = 0;
  6908. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  6909. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  6910. if (modelT_Bus_AssignedInfo != null)
  6911. {
  6912. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  6913. }
  6914. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  6915. modelT_Bus_VisitResult.F_Id = id;
  6916. //保存回访记录
  6917. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  6918. }
  6919. #endregion
  6920. }
  6921. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  6922. {
  6923. #region 保存交办信息
  6924. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  6925. assignBLL.Update(modelT_Bus_AssignedInfo);
  6926. #endregion
  6927. #region 保存工单信息
  6928. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  6929. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  6930. workorderBLL.Update(modelT_Bus_WorkOrder);
  6931. #endregion
  6932. #region 删除草稿信息
  6933. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  6934. foreach (var cg in cglist)
  6935. {
  6936. cg.F_IsDelete = 1;
  6937. cg.F_DeleteUser = userModel.F_UserCode;
  6938. cg.F_DeleteTime = DateTime.Now;
  6939. new BLL.T_Bus_VisitResult().Update(cg);
  6940. //保存回访记录
  6941. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  6942. }
  6943. #endregion
  6944. var opt = "回访";
  6945. #region 重办
  6946. if (nexttype == 1)
  6947. {
  6948. #region 保存工单信息
  6949. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  6950. workorderBLL.Update(modelT_Bus_WorkOrder);
  6951. #endregion
  6952. opt = "回访并提交重办";
  6953. }
  6954. #endregion
  6955. #region 插入操作记录
  6956. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6957. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6958. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  6959. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6960. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6961. oper.F_Message = userinfo+" " + opt + "了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  6962. oper.F_CreateUser = userModel.F_UserCode;
  6963. oper.F_CreateTime = DateTime.Now;
  6964. oper.F_IsDelete = 0;
  6965. operBLL.Add(oper);
  6966. //推送消息表
  6967. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode);
  6968. #endregion
  6969. #region 自动语音回访
  6970. if (issatisfie == 1)//如果满意就进行自动语音回访
  6971. {
  6972. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  6973. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  6974. {
  6975. string AutoCallMsg = string.Empty;
  6976. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  6977. }
  6978. }
  6979. #endregion
  6980. }
  6981. #endregion
  6982. trans.Complete();
  6983. }
  6984. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  6985. }
  6986. else
  6987. {
  6988. return Error("已经回访过了");
  6989. }
  6990. }
  6991. else
  6992. {
  6993. return Error("操作失败");
  6994. }
  6995. }
  6996. else
  6997. {
  6998. return Error("权限不足");
  6999. }
  7000. }
  7001. /// <summary>
  7002. /// 督办或监察工单
  7003. /// </summary>
  7004. /// <returns></returns>
  7005. [Authority]
  7006. public ActionResult RemindWorkOrder()
  7007. {
  7008. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7009. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7010. string workorderid = RequestString.GetFormString("workorderid");
  7011. int type = RequestString.GetInt("type", 0);//1督办 2监察
  7012. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  7013. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  7014. string files = RequestString.GetFormString("files");
  7015. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7016. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  7017. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  7018. {
  7019. using (TransactionScope trans = new TransactionScope())
  7020. {
  7021. #region 插入督办记录
  7022. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  7023. if (type == 1 && state > 0)
  7024. {
  7025. 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();
  7026. if(modelT_Bus_RemindRecord!=null)
  7027. {
  7028. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  7029. modelT_Bus_RemindRecord.F_State = state;
  7030. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  7031. }
  7032. }
  7033. else
  7034. {
  7035. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7036. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  7037. modelT_Bus_RemindRecord.F_Type = type;
  7038. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  7039. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  7040. modelT_Bus_RemindRecord.F_File = files;
  7041. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  7042. modelT_Bus_RemindRecord.F_IsDelete = 0;
  7043. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  7044. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  7045. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  7046. }
  7047. #endregion
  7048. #region 插入操作记录
  7049. string typename = "督办";
  7050. if (type == 2) { typename = "监察"; }
  7051. if (type == 1 && state==0) { typename = "提交督办"; }
  7052. if (type == 1 && state == 1) { typename = "督办"; }
  7053. if (type == 1 && state == 2) { typename = "退回督办"; }
  7054. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7055. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7056. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  7057. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7058. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7059. oper.F_Message = userinfo + " " + typename + "了工单";
  7060. oper.F_CreateUser = userModel.F_UserCode;
  7061. oper.F_CreateTime = DateTime.Now;
  7062. oper.F_IsDelete = 0;
  7063. operBLL.Add(oper);
  7064. #endregion
  7065. trans.Complete();
  7066. }
  7067. return Success("操作成功");
  7068. }
  7069. else
  7070. {
  7071. return Error("操作失败");
  7072. }
  7073. }
  7074. /// <summary>
  7075. /// 重办工单
  7076. /// </summary>
  7077. /// <returns></returns>
  7078. [Authority]
  7079. public ActionResult ReloadWorkOrder()
  7080. {
  7081. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7082. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7083. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7084. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  7085. {
  7086. string workorderid = RequestString.GetFormString("workorderid");
  7087. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  7088. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  7089. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7090. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  7091. if (modelT_Bus_WorkOrder != null)
  7092. {
  7093. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  7094. {
  7095. return Error("操作失败");
  7096. }
  7097. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  7098. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  7099. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  7100. {
  7101. using (TransactionScope trans = new TransactionScope())
  7102. {
  7103. #region 插入督办记录
  7104. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  7105. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7106. modelT_Bus_RemindRecord.F_AssignedId = 0;
  7107. modelT_Bus_RemindRecord.F_Type = 1;
  7108. if (modelT_Bus_AssignedInfo != null)//转办后重办
  7109. {
  7110. #region 插入交办记录
  7111. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo 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());
  7112. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  7113. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  7114. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  7115. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  7116. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7117. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  7118. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  7119. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  7120. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  7121. AssignedInfo.F_State = 1;//0草稿 1正式
  7122. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  7123. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  7124. AssignedInfo.F_IsDelete = 0;
  7125. AssignedInfo.F_IsOverdue = 0;
  7126. AssignedInfo.F_IsSure = 0;
  7127. AssignedInfo.F_IsReload = n + 1;
  7128. AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  7129. AssignedInfo.F_ReloadTime = DateTime.Now;
  7130. assignBLL.Add(AssignedInfo);
  7131. #endregion
  7132. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  7133. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  7134. }
  7135. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  7136. {
  7137. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  7138. if (cruser != null)
  7139. {
  7140. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  7141. }
  7142. }
  7143. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  7144. modelT_Bus_RemindRecord.F_State = 1;
  7145. modelT_Bus_RemindRecord.F_IsDelete = 0;
  7146. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  7147. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  7148. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  7149. #endregion
  7150. #region 保存工单信息
  7151. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  7152. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  7153. modelT_Bus_WorkOrder.F_Result = "";
  7154. modelT_Bus_WorkOrder.F_DealDeptId = null;
  7155. modelT_Bus_WorkOrder.F_DealUser = "";
  7156. modelT_Bus_WorkOrder.F_DealTime = null;
  7157. workorderBLL.Update(modelT_Bus_WorkOrder);
  7158. #endregion
  7159. #region 插入操作记录
  7160. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7161. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7162. if (modelT_Bus_AssignedInfo != null)
  7163. {
  7164. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  7165. }
  7166. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7167. string deptname = "";
  7168. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  7169. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  7170. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7171. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  7172. oper.F_CreateUser = userModel.F_UserCode;
  7173. oper.F_CreateTime = DateTime.Now;
  7174. oper.F_IsDelete = 0;
  7175. operBLL.Add(oper);
  7176. //推送消息表
  7177. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  7178. foreach (var u in users)
  7179. {
  7180. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  7181. }
  7182. #endregion
  7183. trans.Complete();
  7184. }
  7185. return Success("操作成功");
  7186. }
  7187. else
  7188. {
  7189. return Error("已经处理过了");
  7190. }
  7191. }
  7192. else
  7193. {
  7194. return Error("操作失败");
  7195. }
  7196. }
  7197. else
  7198. {
  7199. return Error("权限不足");
  7200. }
  7201. }
  7202. /// <summary>
  7203. /// 重办提交工单 提交后为重办待交办
  7204. /// </summary>
  7205. /// <returns></returns>
  7206. [Authority]
  7207. public ActionResult SubReloadWorkOrder(string[] ids)
  7208. {
  7209. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7210. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7211. if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  7212. {
  7213. if (ids != null && ids.Length > 0)
  7214. {
  7215. foreach (string str in ids)
  7216. {
  7217. using (TransactionScope trans = new TransactionScope())
  7218. {
  7219. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7220. if (modelT_Bus_WorkOrder != null)
  7221. {
  7222. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  7223. {
  7224. #region 保存工单信息
  7225. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7226. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  7227. workorderBLL.Update(modelT_Bus_WorkOrder);
  7228. #endregion
  7229. #region 插入操作记录
  7230. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7231. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7232. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7233. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7234. oper.F_Message = userinfo + " 提交重办了工单";
  7235. oper.F_CreateUser = userModel.F_UserCode;
  7236. oper.F_CreateTime = DateTime.Now;
  7237. oper.F_IsDelete = 0;
  7238. operBLL.Add(oper);
  7239. #endregion
  7240. }
  7241. }
  7242. trans.Complete();
  7243. }
  7244. }
  7245. return Success("操作成功");
  7246. }
  7247. else
  7248. {
  7249. return Error("操作失败");
  7250. }
  7251. }
  7252. else
  7253. {
  7254. return Error("权限不足");
  7255. }
  7256. }
  7257. /// <summary>
  7258. /// 重办工单
  7259. /// </summary>
  7260. /// <returns></returns>
  7261. [Authority]
  7262. public ActionResult NewReloadWorkOrder()
  7263. {
  7264. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7265. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7266. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7267. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  7268. {
  7269. string workorderid = RequestString.GetFormString("workorderid");
  7270. int maindeptid = RequestString.GetInt("maindeptid", 0);
  7271. string otherdeptids = RequestString.GetFormString("otherdeptids");
  7272. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  7273. string assignedopinion = RequestString.GetFormString("assignedopinion");
  7274. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7275. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  7276. if (modelT_Bus_WorkOrder != null)
  7277. {
  7278. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  7279. {
  7280. return Error("操作失败");
  7281. }
  7282. if (!string.IsNullOrEmpty(otherdeptids))
  7283. {
  7284. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  7285. {
  7286. return Error("主办单位不能出现在协办单位");
  7287. }
  7288. }
  7289. if (limittime < DateTime.Now)
  7290. {
  7291. return Error("办理时限不能小于当前时间");
  7292. }
  7293. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  7294. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  7295. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  7296. {
  7297. using (TransactionScope trans = new TransactionScope())
  7298. {
  7299. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  7300. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7301. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  7302. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  7303. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  7304. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  7305. newmodelT_Bus_AssignedInfo.F_State = 1;
  7306. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  7307. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  7308. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  7309. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  7310. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  7311. newmodelT_Bus_AssignedInfo.F_IsReload = 0;
  7312. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  7313. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  7314. #region 保存工单信息
  7315. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  7316. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  7317. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  7318. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  7319. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo 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());
  7320. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  7321. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  7322. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  7323. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  7324. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  7325. modelT_Bus_WorkOrder.F_Result = "";
  7326. modelT_Bus_WorkOrder.F_DealDeptId = null;
  7327. modelT_Bus_WorkOrder.F_DealUser = "";
  7328. modelT_Bus_WorkOrder.F_DealTime = null;
  7329. workorderBLL.Update(modelT_Bus_WorkOrder);
  7330. #endregion
  7331. #region 插入操作记录
  7332. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7333. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7334. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  7335. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7336. string deptname = "";
  7337. var deptinfo = new BLL.T_Sys_Department().GetModel(newmodelT_Bus_AssignedInfo.F_MainDeptId.Value);
  7338. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  7339. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7340. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  7341. if (!string.IsNullOrEmpty(otherdeptids))
  7342. {
  7343. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  7344. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  7345. }
  7346. oper.F_CreateUser = userModel.F_UserCode;
  7347. oper.F_CreateTime = DateTime.Now;
  7348. oper.F_IsDelete = 0;
  7349. operBLL.Add(oper);
  7350. //推送消息表
  7351. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  7352. foreach (var u in users)
  7353. {
  7354. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode);
  7355. }
  7356. #endregion
  7357. trans.Complete();
  7358. }
  7359. return Success("操作成功");
  7360. }
  7361. else
  7362. {
  7363. return Error("已经处理过了");
  7364. }
  7365. }
  7366. else
  7367. {
  7368. return Error("操作失败");
  7369. }
  7370. }
  7371. else
  7372. {
  7373. return Error("权限不足");
  7374. }
  7375. }
  7376. /// <summary>
  7377. /// 结案工单
  7378. /// </summary>
  7379. /// <returns></returns>
  7380. [Authority]
  7381. public ActionResult FinishWorkOrder()
  7382. {
  7383. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7384. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7385. //if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7386. if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  7387. {
  7388. string workorderid = RequestString.GetFormString("workorderid");
  7389. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  7390. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  7391. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  7392. string deptids = RequestString.GetFormString("deptids");//通告单位
  7393. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  7394. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7395. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  7396. if (modelT_Bus_WorkOrder != null)
  7397. {
  7398. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  7399. //{
  7400. // return Error("操作失败");
  7401. //}
  7402. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  7403. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  7404. {
  7405. using (TransactionScope trans = new TransactionScope())
  7406. {
  7407. #region 修改工单记录
  7408. //modelT_Bus_WorkOrder.F_WorkState = 9;
  7409. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  7410. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  7411. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7412. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7413. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7414. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  7415. if (isnotice == 1)
  7416. {
  7417. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  7418. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  7419. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7420. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  7421. modelT_Bus_NoticeCriticism.F_State = 1;
  7422. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  7423. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  7424. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  7425. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  7426. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  7427. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  7428. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  7429. assignBLL.Update(modelT_Bus_AssignedInfo);
  7430. modelT_Bus_WorkOrder.F_IsNotice = 1;
  7431. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  7432. }
  7433. workorderBLL.Update(modelT_Bus_WorkOrder);
  7434. #endregion
  7435. #region 插入操作记录
  7436. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7437. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7438. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7439. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7440. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  7441. if (isnotice == 1)
  7442. {
  7443. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  7444. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  7445. }
  7446. oper.F_CreateUser = userModel.F_UserCode;
  7447. oper.F_CreateTime = DateTime.Now;
  7448. oper.F_IsDelete = 0;
  7449. operBLL.Add(oper);
  7450. //调用科大讯飞
  7451. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  7452. {
  7453. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  7454. if (tbf != null)
  7455. {
  7456. string deptname = string.Empty;
  7457. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  7458. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  7459. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7460. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  7461. if (bl)
  7462. {
  7463. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7464. }
  7465. else
  7466. {
  7467. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7468. }
  7469. }
  7470. }
  7471. #endregion
  7472. trans.Complete();
  7473. }
  7474. return Success("操作成功");
  7475. }
  7476. else
  7477. {
  7478. return Error("已经处理过了");
  7479. }
  7480. }
  7481. else
  7482. {
  7483. return Error("操作失败");
  7484. }
  7485. }
  7486. else
  7487. {
  7488. return Error("权限不足");
  7489. }
  7490. }
  7491. /// <summary>
  7492. /// 结案工单
  7493. /// </summary>
  7494. /// <returns></returns>
  7495. [Authority]
  7496. public ActionResult ForceFinishWorkOrder()
  7497. {
  7498. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7499. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7500. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7501. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  7502. {
  7503. string workorderid = RequestString.GetFormString("workorderid");
  7504. string result = RequestString.GetFormString("result");//处理结果
  7505. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  7506. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  7507. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  7508. string deptids = RequestString.GetFormString("deptids");//通告单位
  7509. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  7510. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7511. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  7512. if (modelT_Bus_WorkOrder != null)
  7513. {
  7514. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  7515. {
  7516. return Error("操作失败");
  7517. }
  7518. using (TransactionScope trans = new TransactionScope())
  7519. {
  7520. #region 修改工单记录
  7521. modelT_Bus_WorkOrder.F_Result = result;
  7522. //modelT_Bus_WorkOrder.F_WorkState = 9;
  7523. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  7524. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  7525. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7526. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7527. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7528. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  7529. if (isnotice == 1)
  7530. {
  7531. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  7532. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  7533. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7534. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  7535. modelT_Bus_NoticeCriticism.F_State = 1;
  7536. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  7537. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  7538. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  7539. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  7540. modelT_Bus_WorkOrder.F_IsNotice = 1;
  7541. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  7542. if (modelT_Bus_AssignedInfo != null)
  7543. {
  7544. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  7545. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  7546. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  7547. assignBLL.Update(modelT_Bus_AssignedInfo);
  7548. }
  7549. }
  7550. workorderBLL.Update(modelT_Bus_WorkOrder);
  7551. #endregion
  7552. #region 插入操作记录
  7553. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7554. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7555. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7556. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7557. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  7558. if (isnotice == 1)
  7559. {
  7560. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  7561. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  7562. }
  7563. oper.F_CreateUser = userModel.F_UserCode;
  7564. oper.F_CreateTime = DateTime.Now;
  7565. oper.F_IsDelete = 0;
  7566. operBLL.Add(oper);
  7567. //调用科大讯飞
  7568. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == 9)
  7569. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  7570. {
  7571. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7572. 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());
  7573. if (bl)
  7574. {
  7575. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7576. }
  7577. else
  7578. {
  7579. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7580. }
  7581. }
  7582. #endregion
  7583. trans.Complete();
  7584. }
  7585. return Success("操作成功");
  7586. }
  7587. else
  7588. {
  7589. return Error("操作失败");
  7590. }
  7591. }
  7592. else
  7593. {
  7594. return Error("权限不足");
  7595. }
  7596. }
  7597. /// <summary>
  7598. /// 删除工单
  7599. /// </summary>
  7600. /// <returns></returns>
  7601. public ActionResult DelWorkOrder(string[] ids)
  7602. {
  7603. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7604. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7605. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  7606. {
  7607. //StringBuilder sb = new StringBuilder();
  7608. foreach (var item in ids)
  7609. {
  7610. //sb.Append("'" + item + "',");
  7611. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  7612. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  7613. {
  7614. using (TransactionScope trans = new TransactionScope())
  7615. {
  7616. #region 修改工单记录
  7617. modelT_Bus_WorkOrder.F_IsDelete = 1;
  7618. modelT_Bus_WorkOrder.F_DeleteUser= userModel.F_UserCode;
  7619. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  7620. workorderBLL.Update(modelT_Bus_WorkOrder);
  7621. #endregion
  7622. #region 插入操作记录
  7623. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7624. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7625. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7626. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7627. oper.F_Message = userinfo + " 删除了工单";
  7628. oper.F_CreateUser = userModel.F_UserCode;
  7629. oper.F_CreateTime = DateTime.Now;
  7630. oper.F_IsDelete = 0;
  7631. operBLL.Add(oper);
  7632. #endregion
  7633. trans.Complete();
  7634. }
  7635. }
  7636. }
  7637. return Success("删除成功");
  7638. }
  7639. else
  7640. {
  7641. return Error("权限不足");
  7642. }
  7643. }
  7644. /// <summary>
  7645. /// 转媒体工单
  7646. /// </summary>
  7647. /// <returns></returns>
  7648. [Authority]
  7649. public ActionResult ReleaseWorkOrder()
  7650. {
  7651. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7652. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7653. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7654. {
  7655. string workorderid = RequestString.GetFormString("workorderid");
  7656. int isrelease = RequestString.GetInt("isrelease", -1);
  7657. if (isrelease != -1)
  7658. {
  7659. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7660. if (modelT_Bus_WorkOrder != null)
  7661. {
  7662. using (TransactionScope trans = new TransactionScope())
  7663. {
  7664. #region 修改工单记录
  7665. modelT_Bus_WorkOrder.F_IsRelease = isrelease;
  7666. workorderBLL.Update(modelT_Bus_WorkOrder);
  7667. #endregion
  7668. #region 插入操作记录
  7669. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7670. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7671. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7672. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7673. oper.F_Message = userinfo + " " + (isrelease == 1 ? "转媒体了" : "收回了转媒体") + "工单";
  7674. oper.F_CreateUser = userModel.F_UserCode;
  7675. oper.F_CreateTime = DateTime.Now;
  7676. oper.F_IsDelete = 0;
  7677. operBLL.Add(oper);
  7678. #endregion
  7679. trans.Complete();
  7680. }
  7681. return Success("操作成功");
  7682. }
  7683. else
  7684. {
  7685. return Error("操作失败");
  7686. }
  7687. }
  7688. else
  7689. {
  7690. return Error("操作失败");
  7691. }
  7692. }
  7693. else
  7694. {
  7695. return Error("权限不足");
  7696. }
  7697. }
  7698. ///// <summary>
  7699. ///// 通告和撤销通告
  7700. ///// </summary>
  7701. ///// <returns></returns>
  7702. //[Authority]
  7703. //public ActionResult NoticeWorkOrder()
  7704. //{
  7705. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7706. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7707. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  7708. // {
  7709. // int assignid = RequestString.GetInt("id", 0);
  7710. // int isnotice = RequestString.GetInt("isnotice", -1);
  7711. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  7712. // if (modelT_Bus_AssignedInfo != null)
  7713. // {
  7714. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  7715. // {
  7716. // using (TransactionScope trans = new TransactionScope())
  7717. // {
  7718. // #region 修改交办记录
  7719. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  7720. // assignBLL.Update(modelT_Bus_AssignedInfo);
  7721. // #endregion
  7722. // #region 插入操作记录
  7723. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7724. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  7725. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  7726. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7727. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  7728. // oper.F_CreateUser = userModel.F_UserCode;
  7729. // oper.F_CreateTime = DateTime.Now;
  7730. // oper.F_IsDelete = 0;
  7731. // operBLL.Add(oper);
  7732. // #endregion
  7733. // trans.Complete();
  7734. // }
  7735. // return Success("操作成功");
  7736. // }
  7737. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  7738. // {
  7739. // using (TransactionScope trans = new TransactionScope())
  7740. // {
  7741. // #region 修改交办记录
  7742. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  7743. // assignBLL.Update(modelT_Bus_AssignedInfo);
  7744. // #endregion
  7745. // #region 插入操作记录
  7746. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7747. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  7748. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  7749. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7750. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  7751. // oper.F_CreateUser = userModel.F_UserCode;
  7752. // oper.F_CreateTime = DateTime.Now;
  7753. // oper.F_IsDelete = 0;
  7754. // operBLL.Add(oper);
  7755. // #endregion
  7756. // trans.Complete();
  7757. // }
  7758. // return Success("操作成功");
  7759. // }
  7760. // else
  7761. // {
  7762. // return Error("操作失败");
  7763. // }
  7764. // }
  7765. // else
  7766. // {
  7767. // return Error("操作失败");
  7768. // }
  7769. // }
  7770. // else
  7771. // {
  7772. // return Error("权限不足");
  7773. // }
  7774. //}
  7775. /// <summary>
  7776. /// 通告和撤销通告
  7777. /// </summary>
  7778. /// <returns></returns>
  7779. [Authority]
  7780. public ActionResult NoticeWorkOrder()
  7781. {
  7782. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7783. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7784. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  7785. {
  7786. string workorderid = RequestString.GetFormString("workorderid");
  7787. int isnotice = RequestString.GetInt("isnotice", -1);
  7788. string deptids = RequestString.GetFormString("deptids");//通告单位
  7789. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  7790. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7791. if (modelT_Bus_WorkOrder != null)
  7792. {
  7793. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  7794. {
  7795. using (TransactionScope trans = new TransactionScope())
  7796. {
  7797. #region 修改工单记录
  7798. modelT_Bus_WorkOrder.F_IsNotice = 0;
  7799. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  7800. workorderBLL.Update(modelT_Bus_WorkOrder);
  7801. #endregion
  7802. #region 修改通告记录
  7803. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  7804. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  7805. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  7806. modelT_Bus_NoticeCriticism.F_DeleteUser = userModel.F_UserCode;
  7807. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  7808. #endregion
  7809. #region 插入操作记录
  7810. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7811. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7812. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  7813. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7814. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  7815. oper.F_CreateUser = userModel.F_UserCode;
  7816. oper.F_CreateTime = DateTime.Now;
  7817. oper.F_IsDelete = 0;
  7818. operBLL.Add(oper);
  7819. #endregion
  7820. trans.Complete();
  7821. }
  7822. return Success("操作成功");
  7823. }
  7824. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  7825. {
  7826. using (TransactionScope trans = new TransactionScope())
  7827. {
  7828. #region 修改工单记录
  7829. modelT_Bus_WorkOrder.F_IsNotice = 1;
  7830. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  7831. workorderBLL.Update(modelT_Bus_WorkOrder);
  7832. #endregion
  7833. #region 新增通告记录
  7834. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  7835. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  7836. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7837. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  7838. modelT_Bus_NoticeCriticism.F_State = 1;
  7839. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  7840. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  7841. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  7842. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  7843. #endregion
  7844. #region 插入操作记录
  7845. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7846. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7847. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  7848. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7849. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  7850. oper.F_CreateUser = userModel.F_UserCode;
  7851. oper.F_CreateTime = DateTime.Now;
  7852. oper.F_IsDelete = 0;
  7853. operBLL.Add(oper);
  7854. #endregion
  7855. trans.Complete();
  7856. }
  7857. return Success("操作成功");
  7858. }
  7859. else
  7860. {
  7861. return Error("操作失败");
  7862. }
  7863. }
  7864. else
  7865. {
  7866. return Error("操作失败");
  7867. }
  7868. }
  7869. else
  7870. {
  7871. return Error("权限不足");
  7872. }
  7873. }
  7874. /// <summary>
  7875. /// 市民催单
  7876. /// </summary>
  7877. /// <returns></returns>
  7878. [Authority]
  7879. public ActionResult AdditionalWorkOrder()
  7880. {
  7881. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7882. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  7883. string workorderid = RequestString.GetFormString("workorderid");
  7884. string title = RequestString.GetFormString("title");
  7885. string content = RequestString.GetFormString("content");
  7886. string files = RequestString.GetFormString("files");
  7887. string callid = RequestString.GetFormString("callid");
  7888. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  7889. if (modelT_Bus_WorkOrder != null)
  7890. {
  7891. using (TransactionScope trans = new TransactionScope())
  7892. {
  7893. #region 插入附加记录
  7894. //批示记录
  7895. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  7896. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  7897. model_T_Bus_Additional.F_Title = title;
  7898. model_T_Bus_Additional.F_Content = content;
  7899. if (!string.IsNullOrEmpty(callid))
  7900. {
  7901. model_T_Bus_Additional.F_CallId = callid;
  7902. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  7903. if (rd != null)
  7904. {
  7905. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  7906. }
  7907. }
  7908. model_T_Bus_Additional.F_File = files;//附件
  7909. model_T_Bus_Additional.F_CreateUser = userModel.F_UserCode;//呈批人
  7910. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  7911. model_T_Bus_Additional.F_IsDelete = 0;
  7912. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  7913. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  7914. #endregion
  7915. #region 插入操作记录
  7916. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7917. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7918. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7919. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7920. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  7921. oper.F_CreateUser = userModel.F_UserCode;
  7922. oper.F_CreateTime = DateTime.Now;
  7923. oper.F_IsDelete = 0;
  7924. operBLL.Add(oper);
  7925. #endregion
  7926. trans.Complete();
  7927. }
  7928. return Success("操作成功");
  7929. }
  7930. else
  7931. {
  7932. return Error("操作失败");
  7933. }
  7934. }
  7935. #endregion
  7936. #region 语音附件其他
  7937. /// <summary>
  7938. /// 验证当前单位是否交办单位
  7939. /// </summary>
  7940. /// <param name="modelT_Bus_AssignedInfo"></param>
  7941. /// <param name="deptid"></param>
  7942. /// <returns></returns>
  7943. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  7944. {
  7945. int type = 0;
  7946. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  7947. {
  7948. type = 1;//主办
  7949. }
  7950. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  7951. {
  7952. type = 2;//协办
  7953. }
  7954. return type;
  7955. }
  7956. /// <summary>
  7957. /// 获取留言路径
  7958. /// </summary>
  7959. /// <param name="lid">留言id</param>
  7960. /// <param name="prefix">前缀</param>
  7961. /// <returns></returns>
  7962. public string GetLeavePath(string lid, string prefix)
  7963. {
  7964. string path = string.Empty;
  7965. var liuyan = new BLL.T_Call_LeaveRecord().GetModelList(" F_Id='" + lid + "' ").FirstOrDefault();
  7966. if (liuyan != null)
  7967. {
  7968. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  7969. {
  7970. path = prefix + liuyan.F_RecFileUrl;
  7971. }
  7972. }
  7973. return path;
  7974. }
  7975. /// <summary>
  7976. /// 获取通话录音路径
  7977. /// </summary>
  7978. /// <param name="cid">通话id</param>
  7979. /// <param name="prefix">前缀</param>
  7980. /// <returns></returns>
  7981. public string GetCallPath(string cid, string prefix)
  7982. {
  7983. string path = string.Empty;
  7984. var luyin = new BLL.T_Call_CallRecords().GetModelList(" CallRecordsId='" + cid + "' ").FirstOrDefault();
  7985. if (luyin != null)
  7986. {
  7987. if (!string.IsNullOrEmpty(luyin.FilePath))
  7988. {
  7989. var ym = prefix;
  7990. ym = ym.Substring(0, ym.Length - 1);
  7991. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  7992. path = ym + lujing;
  7993. //if (!CommonHelper.FileIsExist(path))
  7994. //{
  7995. // path = lujing;
  7996. //}
  7997. }
  7998. }
  7999. return path;
  8000. }
  8001. /// <summary>
  8002. /// 获取附件数据
  8003. /// </summary>
  8004. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  8005. /// <param name="prefix">前缀</param>
  8006. /// <returns></returns>
  8007. public DataTable GetFileData(string ids, string prefix)
  8008. {
  8009. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories where F_FileId in (" + ids + ")").Tables[0];
  8010. foreach (DataRow dr in dt.Rows)
  8011. {
  8012. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  8013. }
  8014. return dt;
  8015. }
  8016. /// <summary>
  8017. /// 绑定附件信息
  8018. /// </summary>
  8019. /// <param name="dt"></param>
  8020. /// <param name="prefix"></param>
  8021. /// <returns></returns>
  8022. public DataTable BindFileData(DataTable dt, string prefix)
  8023. {
  8024. dt.Columns.Add("File", typeof(object));
  8025. foreach (DataRow dr in dt.Rows)
  8026. {
  8027. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  8028. {
  8029. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  8030. }
  8031. }
  8032. return dt;
  8033. }
  8034. #endregion
  8035. #region 修改工单 by admin
  8036. /// <summary>
  8037. /// 获取详情
  8038. /// </summary>
  8039. /// <returns></returns>
  8040. [Authority]
  8041. public ActionResult GetInfoByAdmin(int id, int type)
  8042. {
  8043. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8044. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8045. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8046. {
  8047. //string sql = "select * from ";
  8048. string table = string.Empty;
  8049. switch (type)
  8050. {
  8051. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  8052. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  8053. case 3: table = "T_Bus_Feedback"; break;//办理信息
  8054. case 4: table = "T_Bus_RemindRecord"; break;//督办
  8055. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  8056. case 6: table = "T_Bus_VisitResult"; break;//回访
  8057. }
  8058. string sql = "select * from " + table + " where F_IsDelete=0 and F_Id=" + id;
  8059. var dt = DbHelperSQL.Query(sql).Tables[0];
  8060. return Success("操作成功", dt);
  8061. }
  8062. else
  8063. {
  8064. return Error("权限不足");
  8065. }
  8066. }
  8067. /// <summary>
  8068. /// 修改工单信息
  8069. /// </summary>
  8070. /// <returns></returns>
  8071. [Authority]
  8072. public ActionResult EditWorkOrderByAdmin()
  8073. {
  8074. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8075. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8076. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8077. {
  8078. string workorderid = RequestString.GetFormString("workorderid");
  8079. int source = RequestString.GetInt("source", 0);
  8080. string cusname = RequestString.GetFormString("cusname");
  8081. string cussex = RequestString.GetFormString("cussex");
  8082. string cusphone = RequestString.GetFormString("cusphone");
  8083. string cusaddress = RequestString.GetFormString("cusaddress");
  8084. string email = RequestString.GetFormString("email");
  8085. string zipcode = RequestString.GetFormString("zipcode");
  8086. string conname = RequestString.GetFormString("conname");
  8087. string conphone = RequestString.GetFormString("conphone");
  8088. string title = RequestString.GetFormString("title");
  8089. string content = RequestString.GetFormString("content");
  8090. string files = RequestString.GetFormString("files");
  8091. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8092. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8093. string keys = RequestString.GetFormString("keys");
  8094. string splituser = RequestString.GetFormString("splituser");
  8095. int type = RequestString.GetInt("type", 0);
  8096. int bigtype = RequestString.GetInt("bigtype", 0);
  8097. int smalltype = RequestString.GetInt("smalltype", 0);
  8098. int isprotect = RequestString.GetInt("isprotect", 0);
  8099. int level = RequestString.GetInt("level", 0);
  8100. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8101. if (modelT_Bus_WorkOrder != null)
  8102. {
  8103. using (TransactionScope trans = new TransactionScope())
  8104. {
  8105. #region 保存工单信息
  8106. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8107. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8108. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8109. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8110. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8111. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8112. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8113. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8114. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8115. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8116. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8117. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8118. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8119. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8120. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8121. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8122. modelT_Bus_WorkOrder.F_File = files;//附件
  8123. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8124. modelT_Bus_WorkOrder.F_Key = keys;
  8125. modelT_Bus_WorkOrder.F_Level = level;
  8126. workorderBLL.Update(modelT_Bus_WorkOrder);
  8127. #endregion
  8128. #region 插入操作记录
  8129. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8130. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8131. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8132. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8133. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8134. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8135. oper.F_Message = userinfo + " 修改了工单基本信息";
  8136. oper.F_CreateUser = userModel.F_UserCode;
  8137. oper.F_CreateTime = DateTime.Now;
  8138. oper.F_IsDelete = 0;
  8139. operBLL.Add(oper);
  8140. #endregion
  8141. trans.Complete();
  8142. }
  8143. return Success("操作成功");
  8144. }
  8145. else
  8146. {
  8147. return Error("操作失败");
  8148. }
  8149. }
  8150. else
  8151. {
  8152. return Success("权限不足");
  8153. }
  8154. }
  8155. /// <summary>
  8156. /// 修改批示信息
  8157. /// </summary>
  8158. /// <returns></returns>
  8159. [Authority]
  8160. public ActionResult EditSuperInfoByAdmin()
  8161. {
  8162. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8163. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8164. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8165. {
  8166. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  8167. string superuser = RequestString.GetFormString("superuser");
  8168. string superopinion = RequestString.GetFormString("superopinion");
  8169. string files = RequestString.GetFormString("files");
  8170. int id = RequestString.GetInt("id", 0);
  8171. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  8172. if (model_T_Bus_SubmitSuper != null)
  8173. {
  8174. using (TransactionScope trans = new TransactionScope())
  8175. {
  8176. #region 保存批示信息
  8177. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  8178. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  8179. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  8180. model_T_Bus_SubmitSuper.F_File = files;//附件
  8181. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  8182. #endregion
  8183. #region 插入操作记录
  8184. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8185. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  8186. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  8187. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8188. oper.F_Message = userinfo + " 修改了工单批示信息";
  8189. oper.F_CreateUser = userModel.F_UserCode;
  8190. oper.F_CreateTime = DateTime.Now;
  8191. oper.F_IsDelete = 0;
  8192. operBLL.Add(oper);
  8193. #endregion
  8194. trans.Complete();
  8195. }
  8196. return Success("操作成功");
  8197. }
  8198. else
  8199. {
  8200. return Error("操作失败");
  8201. }
  8202. }
  8203. else
  8204. {
  8205. return Error("权限不足");
  8206. }
  8207. }
  8208. /// <summary>
  8209. /// 修改交办信息
  8210. /// </summary>
  8211. /// <returns></returns>
  8212. [Authority]
  8213. public ActionResult EditAssignInfoByAdmin()
  8214. {
  8215. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8216. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8217. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8218. {
  8219. int assignid = RequestString.GetInt("id", 0);
  8220. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  8221. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  8222. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  8223. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8224. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8225. if (modelT_Bus_AssignedInfo != null)
  8226. {
  8227. using (TransactionScope trans = new TransactionScope())
  8228. {
  8229. #region 保存交办信息
  8230. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8231. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8232. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8233. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8234. assignBLL.Update(modelT_Bus_AssignedInfo);
  8235. #endregion
  8236. #region 插入操作记录
  8237. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8238. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  8239. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  8240. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8241. oper.F_Message = userinfo + " 修改了工单交办信息";
  8242. oper.F_CreateUser = userModel.F_UserCode;
  8243. oper.F_CreateTime = DateTime.Now;
  8244. oper.F_IsDelete = 0;
  8245. operBLL.Add(oper);
  8246. #endregion
  8247. trans.Complete();
  8248. }
  8249. return Success("操作成功");
  8250. }
  8251. else
  8252. {
  8253. return Error("操作失败");
  8254. }
  8255. }
  8256. else
  8257. {
  8258. return Error("权限不足");
  8259. }
  8260. }
  8261. /// <summary>
  8262. /// 修改办理信息
  8263. /// </summary>
  8264. /// <returns></returns>
  8265. [Authority]
  8266. public ActionResult EditFeedBackInfoByAdmin()
  8267. {
  8268. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8269. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8270. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8271. {
  8272. string dealman = RequestString.GetFormString("dealman");
  8273. string result = RequestString.GetFormString("result");
  8274. string files = RequestString.GetFormString("files");
  8275. int feedbackid = RequestString.GetInt("id", 0);
  8276. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  8277. if (model_T_Bus_Feedback != null)
  8278. {
  8279. using (TransactionScope trans = new TransactionScope())
  8280. {
  8281. #region 保存办理信息
  8282. model_T_Bus_Feedback.F_DealUser = dealman;
  8283. model_T_Bus_Feedback.F_Result = result;//反馈内容
  8284. model_T_Bus_Feedback.F_File = files;
  8285. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  8286. #endregion
  8287. #region 保存工单信息
  8288. int maxid = Int32.Parse(DbHelperSQL.GetSingle("select max(F_Id) from T_Bus_AssignedInfo where F_WorkOrderId='" + model_T_Bus_Feedback.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 ").ToString());
  8289. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  8290. if (maxid == assign.F_Id)
  8291. {
  8292. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  8293. order.F_Result = result;//反馈内容
  8294. workorderBLL.Update(order);
  8295. }
  8296. #endregion
  8297. #region 插入操作记录
  8298. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8299. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  8300. oper.F_File = model_T_Bus_Feedback.F_File;
  8301. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8302. oper.F_Message = userinfo + " 修改了工单办理信息";
  8303. oper.F_CreateUser = userModel.F_UserCode;
  8304. oper.F_CreateTime = DateTime.Now;
  8305. oper.F_IsDelete = 0;
  8306. operBLL.Add(oper);
  8307. #endregion
  8308. trans.Complete();
  8309. }
  8310. return Success("操作成功");
  8311. }
  8312. else
  8313. {
  8314. return Error("操作失败");
  8315. }
  8316. }
  8317. else
  8318. {
  8319. return Error("权限不足");
  8320. }
  8321. }
  8322. /// <summary>
  8323. /// 修改回访信息
  8324. /// </summary>
  8325. /// <returns></returns>
  8326. [Authority]
  8327. public ActionResult EditVisitInfoByAdmin()
  8328. {
  8329. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8330. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8331. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8332. {
  8333. string visituser = RequestString.GetFormString("visituser");//回访人
  8334. int type = RequestString.GetInt("type", 0);//回访方式
  8335. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  8336. int visitid = RequestString.GetInt("id", 0);
  8337. string result = RequestString.GetFormString("result");//回访情况
  8338. string guid = RequestString.GetFormString("guid");
  8339. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  8340. if (modelT_Bus_VisitResult != null)
  8341. {
  8342. using (TransactionScope trans = new TransactionScope())
  8343. {
  8344. #region 保存回访信息
  8345. modelT_Bus_VisitResult.F_VisitUser = visituser;
  8346. modelT_Bus_VisitResult.F_Type = type;
  8347. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  8348. modelT_Bus_VisitResult.F_Result = result;
  8349. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  8350. //保存回访记录
  8351. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  8352. #endregion
  8353. #region 插入操作记录
  8354. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8355. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  8356. oper.F_File = modelT_Bus_VisitResult.F_File;
  8357. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8358. oper.F_Message = userinfo + " 修改了工单回访信息";
  8359. oper.F_CreateUser = userModel.F_UserCode;
  8360. oper.F_CreateTime = DateTime.Now;
  8361. oper.F_IsDelete = 0;
  8362. operBLL.Add(oper);
  8363. #endregion
  8364. trans.Complete();
  8365. }
  8366. return Success("操作成功");
  8367. }
  8368. else
  8369. {
  8370. return Error("操作失败");
  8371. }
  8372. }
  8373. else
  8374. {
  8375. return Error("权限不足");
  8376. }
  8377. }
  8378. /// <summary>
  8379. /// 修改退回审核信息
  8380. /// </summary>
  8381. /// <returns></returns>
  8382. [Authority]
  8383. public ActionResult EditAuditRebackByAdmin()
  8384. {
  8385. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8386. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8387. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8388. {
  8389. string reason = RequestString.GetFormString("reason");
  8390. int rebackid = RequestString.GetInt("id", 0);
  8391. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  8392. if (modelT_Bus_Feedback != null)
  8393. {
  8394. using (TransactionScope trans = new TransactionScope())
  8395. {
  8396. #region 保存反馈信息
  8397. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  8398. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  8399. #endregion
  8400. #region 插入操作记录
  8401. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8402. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  8403. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8404. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  8405. oper.F_CreateUser = userModel.F_UserCode;
  8406. oper.F_CreateTime = DateTime.Now;
  8407. oper.F_IsDelete = 0;
  8408. operBLL.Add(oper);
  8409. #endregion
  8410. trans.Complete();
  8411. }
  8412. return Success("操作成功");
  8413. }
  8414. else
  8415. {
  8416. return Error("操作失败");
  8417. }
  8418. }
  8419. else
  8420. {
  8421. return Error("权限不足");
  8422. }
  8423. }
  8424. /// <summary>
  8425. /// 修改延时审核信息
  8426. /// </summary>
  8427. /// <returns></returns>
  8428. [Authority]
  8429. public ActionResult EditAuditDelayByAdmin()
  8430. {
  8431. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8432. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8433. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8434. {
  8435. string reason = RequestString.GetFormString("reason");
  8436. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  8437. int delayid = RequestString.GetInt("id", 0);
  8438. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  8439. if (modelT_Bus_DelayTime != null)
  8440. {
  8441. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  8442. using (TransactionScope trans = new TransactionScope())
  8443. {
  8444. #region 保存延时审核信息
  8445. modelT_Bus_DelayTime.F_RefuseReason = reason;
  8446. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  8447. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  8448. #endregion
  8449. #region 插入操作记录
  8450. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8451. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  8452. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8453. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  8454. oper.F_CreateUser = userModel.F_UserCode;
  8455. oper.F_CreateTime = DateTime.Now;
  8456. oper.F_IsDelete = 0;
  8457. operBLL.Add(oper);
  8458. #endregion
  8459. trans.Complete();
  8460. }
  8461. return Success("操作成功");
  8462. }
  8463. else
  8464. {
  8465. return Error("操作失败");
  8466. }
  8467. }
  8468. else
  8469. {
  8470. return Error("权限不足");
  8471. }
  8472. }
  8473. #endregion
  8474. #region 县级对接
  8475. /// <summary>
  8476. /// 获取网点列表
  8477. /// </summary>
  8478. /// <param name="code"></param>
  8479. /// <param name="name"></param>
  8480. /// <returns></returns>
  8481. [Authority]
  8482. public ActionResult GetCityList(string code, string name)
  8483. {
  8484. string signcode = Configs.GetValue("CityOutSignCode");
  8485. string url = Configs.GetValue("CityOutUrl");
  8486. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  8487. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  8488. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  8489. return Content(result);
  8490. }
  8491. /// <summary>
  8492. /// 获取网点详情
  8493. /// </summary>
  8494. /// <param name="code"></param>
  8495. /// <returns></returns>
  8496. [Authority]
  8497. public ActionResult GetCityDetail(string code)
  8498. {
  8499. string signcode = Configs.GetValue("CityOutSignCode");
  8500. string url = Configs.GetValue("CityOutUrl");
  8501. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  8502. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  8503. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  8504. return Content(result);
  8505. }
  8506. /// <summary>
  8507. /// 转派工单到县级
  8508. /// </summary>
  8509. /// <returns></returns>
  8510. [Authority]
  8511. public ActionResult TurnWorkOrder()
  8512. {
  8513. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8514. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8515. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  8516. {
  8517. string workorderid = RequestString.GetFormString("workorderid");
  8518. string citycode = RequestString.GetFormString("citycode");
  8519. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8520. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  8521. {
  8522. string code = Configs.GetValue("CityCode");
  8523. var branchmodel = GetCityInfo(code);
  8524. var citymodel = GetCityInfo(citycode);
  8525. if (branchmodel != null && citymodel != null)
  8526. {
  8527. using (TransactionScope trans = new TransactionScope())
  8528. {
  8529. string cityworkorderid = string.Empty;
  8530. #region 转单
  8531. string turnsigncode = citymodel["F_Sign"].ToString();
  8532. string turnurl = citymodel["F_Url"].ToString();
  8533. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  8534. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  8535. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  8536. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  8537. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  8538. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  8539. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  8540. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  8541. var turnresult = turnresultstr.ToJObject();
  8542. if (turnresult["state"].ToString() != "success")
  8543. {
  8544. return Content(turnresultstr);
  8545. }
  8546. else
  8547. {
  8548. cityworkorderid = turnresult["data"].ToString();
  8549. }
  8550. #endregion
  8551. #region 保存工单信息
  8552. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  8553. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8554. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  8555. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  8556. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8557. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8558. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8559. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8560. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8561. workorderBLL.Update(modelT_Bus_WorkOrder);
  8562. #endregion
  8563. #region 删除草稿信息
  8564. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8565. foreach (var cg in cglist)
  8566. {
  8567. cg.F_IsDelete = 1;
  8568. cg.F_DeleteUser = userModel.F_UserCode;
  8569. cg.F_DeleteTime = DateTime.Now;
  8570. assignBLL.Update(cg);
  8571. }
  8572. #endregion
  8573. #region 新增转单记录
  8574. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  8575. modelT_Bus_CityTurn.F_CityCode = citycode;
  8576. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  8577. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  8578. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8579. modelT_Bus_CityTurn.F_Type = 2;
  8580. modelT_Bus_CityTurn.F_State = 1;
  8581. modelT_Bus_CityTurn.F_IsSure = 0;
  8582. modelT_Bus_CityTurn.F_IsDelete = 0;
  8583. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  8584. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  8585. #endregion
  8586. #region 插入操作记录
  8587. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8588. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8589. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8590. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8591. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  8592. oper.F_CreateUser = userModel.F_UserCode;
  8593. oper.F_CreateTime = DateTime.Now;
  8594. oper.F_IsDelete = 0;
  8595. operBLL.Add(oper);
  8596. #endregion
  8597. trans.Complete();
  8598. }
  8599. return Success("操作成功");
  8600. }
  8601. else
  8602. {
  8603. return Error("操作失败");
  8604. }
  8605. }
  8606. else
  8607. {
  8608. return Error("操作失败");
  8609. }
  8610. }
  8611. else
  8612. {
  8613. return Success("权限不足");
  8614. }
  8615. }
  8616. /// <summary>
  8617. /// 获取当前网点信息
  8618. /// </summary>
  8619. /// <returns></returns>
  8620. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  8621. {
  8622. string signcode = Configs.GetValue("CityOutSignCode");
  8623. string url = Configs.GetValue("CityOutUrl");
  8624. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  8625. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  8626. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  8627. if (result["state"].ToString() == "success")
  8628. {
  8629. return result["data"].ToString().ToJObject();
  8630. }
  8631. else
  8632. {
  8633. return null;
  8634. }
  8635. }
  8636. #endregion
  8637. }
  8638. }