Bez popisu

WorkOrderController.cs 841KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046
  1. using CallCenter.Utility;
  2. using CallCenterApi.Common;
  3. using CallCenterApi.DB;
  4. using CallCenterApi.Interface.Controllers.Base;
  5. using CallCenterApi.Interface.Models.Common;
  6. using CallCenterApi.Model;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.ComponentModel;
  10. using System.Data;
  11. using System.Linq;
  12. using System.Text;
  13. using System.Text.RegularExpressions;
  14. using System.Transactions;
  15. using System.Web;
  16. using System.Web.Mvc;
  17. namespace CallCenterApi.Interface.Controllers.workorder
  18. {
  19. public class WorkOrderController : BaseController
  20. {
  21. // GET: WorkOrder
  22. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  23. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  24. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  25. private information.InternalMessagesController msg = new information.InternalMessagesController();
  26. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  27. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  28. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  29. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  30. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  31. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  32. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  33. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  34. #region 获取工单
  35. /// <summary>
  36. /// 获取工单列表
  37. /// </summary>
  38. /// <returns></returns>
  39. //[Authority]
  40. #region MyRegion
  41. public ActionResult GetList(int isdc = 0)
  42. {
  43. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  44. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  45. DataTable dt = new DataTable();
  46. string sql = " and F_IsDelete=0 ";
  47. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  48. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  49. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  50. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  51. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  52. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  53. string wjstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  54. string wjstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  55. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  56. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  57. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  58. //回传时间筛选
  59. string hcstrstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrstarttime"));
  60. string hcstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("hcstrendtime"));
  61. int source = RequestString.GetInt("source", 0);
  62. int keyid = RequestString.GetInt("keyid", 0);
  63. int type = RequestString.GetInt("type", 0);
  64. int bigtype = RequestString.GetInt("bigtype", 0);
  65. int smalltype = RequestString.GetInt("smalltype", 0);
  66. int sourcearea = RequestString.GetInt("sourcearea", 0);
  67. int files = RequestString.GetInt("files", 0);
  68. int deptid = RequestString.GetInt("deptid", 0);
  69. int dealtype = RequestString.GetInt("dealtype", -1);
  70. int issend = RequestString.GetInt("issend", -1);
  71. int deptlevel = RequestString.GetInt("deptlevel", 0);
  72. int satisfaction = RequestString.GetInt("satisfaction", -1);
  73. int timesort = RequestString.GetInt("timesort", -1);
  74. string strpageindex = RequestString.GetQueryString("page");
  75. int pageindex = 1;
  76. string strpagesize = RequestString.GetQueryString("pagesize");
  77. int pagesize = 10;
  78. int IsExport = RequestString.GetInt("isexport", -1);
  79. if (IsExport > -1)
  80. {
  81. if (IsExport == 0)
  82. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  83. else
  84. sql += " and IsExport = '" + IsExport + "' ";
  85. }
  86. #region sql 语句相关处理
  87. if (strstate.Trim() != "" && strstate != "undefined")
  88. {
  89. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  90. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  91. else
  92. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  93. }
  94. if (files > 1)
  95. {
  96. sql += " and F_Files is not null and F_Files!='' ";
  97. }
  98. if (strworkid.Trim() != "" && strworkid != "undefined")
  99. {
  100. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  101. }
  102. if (strname.Trim() != "" && strname != "undefined")
  103. {
  104. sql += " and F_CusName like '%" + strname + "%' ";
  105. }
  106. if (strtel.Trim() != "" && strtel != "undefined")
  107. {
  108. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  109. }
  110. if (strkey.Trim() != "" && strkey != "undefined")
  111. {
  112. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  113. }
  114. if (strusercode.Trim() != "" && strusercode != "undefined")
  115. {//坐席
  116. var usercode = strusercode.Trim().Split(',');
  117. var newusercode = "";
  118. foreach (var item in usercode)
  119. {
  120. if (!string.IsNullOrWhiteSpace(item.Trim()))
  121. newusercode += "'" + item + "',";
  122. }
  123. newusercode = newusercode.Trim(',');
  124. if (newusercode.Trim() != "" && newusercode != "undefined")
  125. {
  126. sql += " and F_CreateUser in (" + newusercode + ") ";
  127. //sql += " and F_CreateUser ='" + strusercode + "' ";
  128. }
  129. }
  130. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  131. {//调度员
  132. var ddusercode = strddusercode.Trim().Split(',');
  133. var newusercode = "";
  134. foreach (var item in ddusercode)
  135. {
  136. if (!string.IsNullOrWhiteSpace(item.Trim()))
  137. newusercode += "'" + item + "',";
  138. }
  139. newusercode = newusercode.Trim(',');
  140. if (newusercode.Trim() != "" && newusercode != "undefined")
  141. {
  142. sql += " and F_AssignUser in(" + newusercode + ") ";
  143. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  144. }
  145. }
  146. if (source != 0)
  147. {
  148. sql += " and F_InfoSource = '" + source + "' ";
  149. }
  150. if (satisfaction > -1)
  151. {
  152. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  153. }
  154. if (keyid != 0)
  155. {
  156. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  157. }
  158. else if (userModel.F_RoleCode == "DFZF")
  159. {
  160. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  161. }
  162. if (type != 0)
  163. {
  164. sql += " and F_InfoType = '" + type + "' ";
  165. }
  166. if (bigtype != 0)
  167. {
  168. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  169. }
  170. if (smalltype != 0)
  171. {
  172. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  173. }
  174. if (sourcearea != 0)
  175. {
  176. sql += " and F_SourceArea = '" + sourcearea + "' ";
  177. }
  178. if (deptid != 0)
  179. {
  180. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  181. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  182. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  183. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  184. //if (deptlevel == 0)
  185. //{
  186. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  187. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  188. //}
  189. //else
  190. //{
  191. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  192. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  193. //}
  194. #endregion
  195. }
  196. if (dealtype != -1)
  197. {
  198. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  199. }
  200. if (issend != -1)
  201. {
  202. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  203. }
  204. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  205. {
  206. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  207. }
  208. if (strendtime.Trim() != "" && strendtime != "undefined")
  209. {
  210. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  211. }
  212. #region 结案时间
  213. if (wjstrstarttime.Trim() != "" && wjstrstarttime != "undefined")
  214. {
  215. sql += " and datediff(day,F_CloseTime,'" + wjstrstarttime + "')<=0 ";
  216. }
  217. if (wjstrendtime.Trim() != "" && wjstrendtime != "undefined")
  218. {
  219. sql += " and datediff(day,F_CloseTime,'" + wjstrendtime + "')>=0 ";
  220. }
  221. #endregion
  222. //根据回传时间判断
  223. if (hcstrstarttime.Trim() != "" && hcstrstarttime != "undefined")
  224. {
  225. //sql += " and F_Hcdatetime >= '"+ hcstrstarttime + "'";
  226. sql += " and datediff(day,F_Hcdatetime,'" + hcstrstarttime + "')<=0 ";
  227. }
  228. if (hcstrendtime.Trim() != "" && hcstrendtime != "undefined")
  229. {
  230. // sql += " and F_Hcdatetime<='"+ hcstrendtime + "' ";
  231. sql += " and datediff(day,F_Hcdatetime,'" + hcstrendtime + "')>=0 ";
  232. }
  233. #endregion
  234. if (strpageindex.Trim() != "")
  235. {
  236. pageindex = Convert.ToInt32(strpageindex);
  237. }
  238. if (strpagesize.Trim() != "")
  239. {
  240. pagesize = Convert.ToInt32(strpagesize);
  241. }
  242. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  243. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  244. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  245. string sort = "ORDER BY F_CreateTime DESC";
  246. if (timesort == 0)
  247. sort = "ORDER BY LimitTime ASC";
  248. else if (timesort == 1)
  249. sort = "ORDER BY F_CreateTime DESC";
  250. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_Scanning,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,IsExport,F_Files,F_WorkRemarks";
  251. #region 导出
  252. if (isdc > 0)
  253. {
  254. var top = " "; var orderby = " order by F_CreateTime";
  255. if (sql == " and F_IsDelete=0 ")
  256. {
  257. top = " top 1000 "; orderby += " desc ";
  258. }
  259. //20190715调整导出字段 zhengbingbing
  260. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  261. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  262. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  263. + " (select top 1 F_Situation from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_CreateTime) 办理结果,"
  264. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 then '基本满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  265. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  266. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  267. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  268. if (msg == "")
  269. {
  270. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  271. // {
  272. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  273. // }
  274. return Success("导出成功");
  275. }
  276. else
  277. {
  278. return Error("导出失败");
  279. }
  280. }
  281. #endregion
  282. int recordCount = 0;
  283. dt = BLL.PagerBLL.GetListPager(
  284. "T_Bus_WorkOrder WITH(NOLOCK)",
  285. "F_WorkOrderId",
  286. cols,
  287. sql,
  288. sort,
  289. pagesize,
  290. pageindex,
  291. true,
  292. out recordCount);
  293. #region 声音文件和交办超时
  294. dt.Columns.Add("DeptName", typeof(string));//交办单位
  295. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  296. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  297. dt.Columns.Add("OverState", typeof(string));//超时状态
  298. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  299. dt.Columns.Add("GapTime", typeof(string));//时间差
  300. dt.Columns.Add("PDState", typeof(string));//派单状态
  301. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  302. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  303. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  304. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  305. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  306. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  307. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  308. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  309. foreach (DataRow dr in dt.Rows)
  310. {
  311. string iszbdw = "0";
  312. string ispd = "";
  313. int state = Int32.Parse(dr["F_WorkState"].ToString());
  314. if (state > 1)
  315. {
  316. //获取最新交办信息
  317. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  318. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  319. if (dtjb.Rows.Count > 0)
  320. {
  321. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  322. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  323. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  324. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  325. {
  326. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  327. }
  328. #region 20191016
  329. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  330. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  331. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  332. //{
  333. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  334. //}
  335. #endregion
  336. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  337. #region
  338. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  339. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  340. //if (deptinfo != null)
  341. //{
  342. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  343. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  344. //}
  345. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  346. //{
  347. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  348. // string dns = string.Empty;
  349. // foreach (string strid in strids)
  350. // {
  351. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  352. // if (dinfo != null)
  353. // {
  354. // if (string.IsNullOrEmpty(dns))
  355. // {
  356. // dns = dinfo.F_DeptName;//交办单位
  357. // }
  358. // else
  359. // {
  360. // dns += "," + dinfo.F_DeptName;//交办单位
  361. // }
  362. // }
  363. // }
  364. // dr["OtherDeptName"] = dns;
  365. //}
  366. #endregion
  367. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  368. dr["LimitTime"] = lt;
  369. #region 超时时限
  370. //if (state < 6 || state == 8)
  371. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  372. {
  373. if (!string.IsNullOrWhiteSpace(lt))
  374. {
  375. var ltime = DateTime.Parse(lt);
  376. TimeSpan ts = ltime.Subtract(DateTime.Now);
  377. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  378. if (tss < 0) { tss = -tss; }
  379. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  380. if (ltime > DateTime.Now)
  381. {
  382. if (configcs != null)
  383. {
  384. int cs = Int32.Parse(configcs.F_ParamValue);
  385. if (ts.TotalHours > cs)
  386. {
  387. dr["OverState"] = 1;
  388. }
  389. else
  390. {
  391. dr["OverState"] = 2;
  392. }
  393. }
  394. dr["GapTime"] = "剩余" + gshsj;
  395. }
  396. else
  397. {
  398. dr["OverState"] = 3;
  399. dr["GapTime"] = "超时" + gshsj;
  400. }
  401. }
  402. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  403. dr["PDState"] = ispd;
  404. }
  405. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  406. {
  407. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  408. if (!string.IsNullOrEmpty(closetime))
  409. {
  410. var dttime = DateTime.Parse(closetime);
  411. if (!string.IsNullOrEmpty(lt))
  412. {
  413. var ltime = DateTime.Parse(lt);
  414. TimeSpan ts = ltime.Subtract(dttime);
  415. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  416. if (tss < 0) { tss = -tss; }
  417. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  418. if (ltime < dttime)
  419. {
  420. dr["OverState"] = 3;
  421. dr["GapTime"] = "超时" + gshsj;
  422. }
  423. }
  424. }
  425. }
  426. #endregion
  427. }
  428. }
  429. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  430. {
  431. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  432. }
  433. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  434. {
  435. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  436. }
  437. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  438. {
  439. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  440. dr["IsFiles"] = 1;
  441. else
  442. dr["IsFiles"] = 0;
  443. }
  444. else
  445. {
  446. dr["IsFiles"] = 0;
  447. }
  448. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, dr["IsExport"].ToString());
  449. #region 判断是否存在待督办
  450. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  451. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  452. if (userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "ZXLD")
  453. {
  454. buttons.Add(ButtonGroup.delete());
  455. }
  456. if (recount > 0 && butt != null)
  457. buttons.Remove(butt);
  458. #endregion
  459. dr["Buttons"] = buttons;
  460. }
  461. #endregion
  462. var obj = new
  463. {
  464. state = "success",
  465. message = "成功",
  466. rows = dt,
  467. total = recordCount
  468. };
  469. return Content(obj.ToJson());
  470. }
  471. #endregion
  472. #region MyRegion
  473. public ActionResult GetListTimeOut(int isdc = 0)
  474. {
  475. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  476. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  477. var configcs1 = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  478. int cscount = 1;
  479. if (configcs1 != null)
  480. {
  481. cscount= Int32.Parse(configcs1.F_ParamValue);
  482. }
  483. DataTable dt = new DataTable();
  484. string sql = " and F_IsDelete=0 and (F_LimitTime<= DATEADD(hh, "+ cscount + ", GETDATE())) and (F_WorkState<6 or F_WorkState=8) and F_MainDeptId >0";
  485. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  486. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  487. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  488. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  489. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  490. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  491. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  492. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  493. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  494. int source = RequestString.GetInt("source", 0);
  495. int keyid = RequestString.GetInt("keyid", 0);
  496. int type = RequestString.GetInt("type", 0);
  497. int bigtype = RequestString.GetInt("bigtype", 0);
  498. int smalltype = RequestString.GetInt("smalltype", 0);
  499. int sourcearea = RequestString.GetInt("sourcearea", 0);
  500. int files = RequestString.GetInt("files", 0);
  501. int deptid = RequestString.GetInt("deptid", 0);
  502. int dealtype = RequestString.GetInt("dealtype", -1);
  503. int issend = RequestString.GetInt("issend", -1);
  504. int deptlevel = RequestString.GetInt("deptlevel", 0);
  505. int satisfaction = RequestString.GetInt("satisfaction", -1);
  506. int timesort = RequestString.GetInt("timesort", -1);
  507. string strpageindex = RequestString.GetQueryString("page");
  508. int pageindex = 1;
  509. string strpagesize = RequestString.GetQueryString("pagesize");
  510. int pagesize = 10;
  511. int IsExport = RequestString.GetInt("isexport", -1);
  512. if (IsExport > -1)
  513. {
  514. if (IsExport == 0)
  515. sql += " and (IsExport != '" + 1 + "'or IsExport is null) ";
  516. else
  517. sql += " and IsExport = '" + IsExport + "' ";
  518. }
  519. #region sql 语句相关处理
  520. if (strstate.Trim() != "" && strstate != "undefined")
  521. {
  522. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  523. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  524. else
  525. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  526. }
  527. if (files > 1)
  528. {
  529. sql += " and F_Files is not null and F_Files!='' ";
  530. }
  531. if (strworkid.Trim() != "" && strworkid != "undefined")
  532. {
  533. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  534. }
  535. if (strname.Trim() != "" && strname != "undefined")
  536. {
  537. sql += " and F_CusName like '%" + strname + "%' ";
  538. }
  539. if (strtel.Trim() != "" && strtel != "undefined")
  540. {
  541. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  542. }
  543. if (strkey.Trim() != "" && strkey != "undefined")
  544. {
  545. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  546. }
  547. if (strusercode.Trim() != "" && strusercode != "undefined")
  548. {//坐席
  549. var usercode = strusercode.Trim().Split(',');
  550. var newusercode = "";
  551. foreach (var item in usercode)
  552. {
  553. if (!string.IsNullOrWhiteSpace(item.Trim()))
  554. newusercode += "'" + item + "',";
  555. }
  556. newusercode = newusercode.Trim(',');
  557. if (newusercode.Trim() != "" && newusercode != "undefined")
  558. {
  559. sql += " and F_CreateUser in (" + newusercode + ") ";
  560. //sql += " and F_CreateUser ='" + strusercode + "' ";
  561. }
  562. }
  563. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  564. {//调度员
  565. var ddusercode = strddusercode.Trim().Split(',');
  566. var newusercode = "";
  567. foreach (var item in ddusercode)
  568. {
  569. if (!string.IsNullOrWhiteSpace(item.Trim()))
  570. newusercode += "'" + item + "',";
  571. }
  572. newusercode = newusercode.Trim(',');
  573. if (newusercode.Trim() != "" && newusercode != "undefined")
  574. {
  575. sql += " and F_AssignUser in(" + newusercode + ") ";
  576. //sql += " and F_AssignUser = '" + strddusercode + "' ";
  577. }
  578. }
  579. if (source != 0)
  580. {
  581. sql += " and F_InfoSource = '" + source + "' ";
  582. }
  583. if (satisfaction > -1)
  584. {
  585. sql += " and F_Satisfaction = '" + satisfaction + "' ";
  586. }
  587. if (keyid != 0)
  588. {
  589. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  590. }
  591. else if (userModel.F_RoleCode == "DFZF")
  592. {
  593. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  594. }
  595. if (type != 0)
  596. {
  597. sql += " and F_InfoType = '" + type + "' ";
  598. }
  599. if (bigtype != 0)
  600. {
  601. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  602. }
  603. if (smalltype != 0)
  604. {
  605. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  606. }
  607. if (sourcearea != 0)
  608. {
  609. sql += " and F_SourceArea = '" + sourcearea + "' ";
  610. }
  611. if (deptid != 0)
  612. {
  613. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  614. //sql += " and isnull(F_MainDeptId,null)='"+ deptid + "'";
  615. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  616. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  617. //if (deptlevel == 0)
  618. //{
  619. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  620. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  621. //}
  622. //else
  623. //{
  624. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  625. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  626. //}
  627. #endregion
  628. }
  629. if (dealtype != -1)
  630. {
  631. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  632. }
  633. if (issend != -1)
  634. {
  635. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  636. }
  637. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  638. {
  639. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  640. }
  641. if (strendtime.Trim() != "" && strendtime != "undefined")
  642. {
  643. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  644. }
  645. #endregion
  646. if (strpageindex.Trim() != "")
  647. {
  648. pageindex = Convert.ToInt32(strpageindex);
  649. }
  650. if (strpagesize.Trim() != "")
  651. {
  652. pagesize = Convert.ToInt32(strpagesize);
  653. }
  654. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  655. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  656. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  657. string sort = "ORDER BY F_LimitTime desc";
  658. if (timesort == 0)
  659. sort = "ORDER BY LimitTime ASC";
  660. else if (timesort == 1)
  661. sort = "ORDER BY F_CreateTime DESC";
  662. string cols = "F_OldWorkOrderId,F_LimitTime,F_WorkOrderId,F_Scanning,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,IsExport,F_Files,F_WorkRemarks";
  663. #region 导出
  664. if (isdc > 0)
  665. {
  666. var top = " "; var orderby = " order by F_CreateTime";
  667. if (sql == " and F_IsDelete=0 ")
  668. {
  669. top = " top 1000 "; orderby += " desc ";
  670. }
  671. sql+= " and (F_LimitTime>= DATEADD(hh,"+ cscount + ",F_LimitTime) or F_LimitTime<GETDATE()) and (F_WorkState<6 or F_WorkState=8) ";
  672. //20190715调整导出字段 zhengbingbing
  673. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  674. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  675. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  676. + " (select top 1 F_Situation from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_CreateTime) 办理结果,"
  677. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 then '基本满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  678. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  679. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + sort).Tables[0];
  680. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  681. if (msg == "")
  682. {
  683. //if ( strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  684. // {
  685. // var dtex= DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql ).Tables[0];
  686. // }
  687. return Success("导出成功");
  688. }
  689. else
  690. {
  691. return Error("导出失败");
  692. }
  693. }
  694. #endregion
  695. int recordCount = 0;
  696. dt = BLL.PagerBLL.GetListPager(
  697. "T_Bus_WorkOrder WITH(NOLOCK)",
  698. "F_WorkOrderId",
  699. cols,
  700. sql,
  701. sort,
  702. pagesize,
  703. pageindex,
  704. true,
  705. out recordCount);
  706. // var dtt = workorderBLL.GetList(" 1=1" +sql);
  707. // dt = dtt.Tables[0];
  708. #region 声音文件和交办超时
  709. dt.Columns.Add("DeptName", typeof(string));//交办单位
  710. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  711. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  712. dt.Columns.Add("OverState", typeof(int));//超时状态
  713. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  714. dt.Columns.Add("GapTime", typeof(string));//时间差
  715. dt.Columns.Add("PDState", typeof(string));//派单状态
  716. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  717. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  718. dt.Columns.Add("FilePaths", typeof(object));//操作按钮
  719. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  720. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  721. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  722. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  723. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  724. foreach (DataRow dr in dt.Rows)
  725. {
  726. string iszbdw = "0";
  727. string ispd = "";
  728. int state = Int32.Parse(dr["F_WorkState"].ToString());
  729. if (state > 1)
  730. {
  731. //获取最新交办信息
  732. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  733. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  734. if (dtjb.Rows.Count > 0)
  735. {
  736. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  737. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  738. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  739. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  740. {
  741. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  742. }
  743. #region 20191016
  744. //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  745. //dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  746. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  747. //{
  748. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  749. //}
  750. #endregion
  751. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  752. #region
  753. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  754. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  755. //if (deptinfo != null)
  756. //{
  757. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  758. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  759. //}
  760. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  761. //{
  762. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  763. // string dns = string.Empty;
  764. // foreach (string strid in strids)
  765. // {
  766. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  767. // if (dinfo != null)
  768. // {
  769. // if (string.IsNullOrEmpty(dns))
  770. // {
  771. // dns = dinfo.F_DeptName;//交办单位
  772. // }
  773. // else
  774. // {
  775. // dns += "," + dinfo.F_DeptName;//交办单位
  776. // }
  777. // }
  778. // }
  779. // dr["OtherDeptName"] = dns;
  780. //}
  781. #endregion
  782. var lt = dr["F_LimitTime"].ToString();//限制时间
  783. dr["LimitTime"] = lt;
  784. #region 超时时限
  785. //if (state < 6 || state == 8)
  786. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  787. {
  788. if (!string.IsNullOrWhiteSpace(lt))
  789. {
  790. var ltime = DateTime.Parse(lt);
  791. TimeSpan ts = ltime.Subtract(DateTime.Now);
  792. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  793. if (tss < 0) { tss = -tss; }
  794. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  795. if (ltime > DateTime.Now)
  796. {
  797. if (configcs != null)
  798. {
  799. int cs = Int32.Parse(configcs.F_ParamValue);
  800. if (ts.TotalHours > cs)
  801. {
  802. dr["OverState"] = 1;
  803. }
  804. else
  805. {
  806. dr["OverState"] = 2;
  807. }
  808. }
  809. dr["GapTime"] = "剩余" + gshsj;
  810. }
  811. else
  812. {
  813. dr["OverState"] = 3;
  814. dr["GapTime"] = "超时" + gshsj;
  815. }
  816. }
  817. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  818. dr["PDState"] = ispd;
  819. }
  820. if (state == (int)EnumWorkState.finish || state == (int)EnumWorkState.closed)
  821. {
  822. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  823. if (!string.IsNullOrEmpty(closetime))
  824. {
  825. var dttime = DateTime.Parse(closetime);
  826. if (!string.IsNullOrEmpty(lt))
  827. {
  828. var ltime = DateTime.Parse(lt);
  829. TimeSpan ts = ltime.Subtract(dttime);
  830. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  831. if (tss < 0) { tss = -tss; }
  832. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  833. if (ltime < dttime)
  834. {
  835. dr["OverState"] = 3;
  836. dr["GapTime"] = "超时" + gshsj;
  837. }
  838. }
  839. }
  840. }
  841. #endregion
  842. }
  843. }
  844. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  845. {
  846. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  847. }
  848. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  849. {
  850. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  851. }
  852. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  853. {
  854. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  855. dr["IsFiles"] = 1;
  856. else
  857. dr["IsFiles"] = 0;
  858. }
  859. else
  860. {
  861. dr["IsFiles"] = 0;
  862. }
  863. var buttons = ButtonGroup.GetButtonstimeout();
  864. dr["Buttons"] = buttons;
  865. }
  866. #endregion
  867. //dt.DefaultView.Sort = "";
  868. // dt = dt.DefaultView.ToTable();
  869. // var allcount = dt.Rows.Count;
  870. // dt = GetPagedTable(dt,pageindex,pagesize);
  871. var obj = new
  872. {
  873. state = "success",
  874. message = "成功",
  875. rows = dt,
  876. total = recordCount
  877. };
  878. return Content(obj.ToJson());
  879. }
  880. #endregion
  881. public DataTable GetPagedTable(DataTable dt, int PageIndex, int PageSize)//PageIndex表示第几页,PageSize表示每页的记录数
  882. {
  883. if (PageIndex == 0)
  884. return dt;//0页代表每页数据,直接返回
  885. DataTable newdt = dt.Copy();
  886. newdt.Clear();//copy dt的框架
  887. int rowbegin = (PageIndex - 1) * PageSize;
  888. int rowend = PageIndex * PageSize;
  889. if (rowbegin >= dt.Rows.Count)
  890. return newdt;//源数据记录数小于等于要显示的记录,直接返回dt
  891. if (rowend > dt.Rows.Count)
  892. rowend = dt.Rows.Count;
  893. for (int i = rowbegin; i <= rowend - 1; i++)
  894. {
  895. DataRow newdr = newdt.NewRow();
  896. DataRow dr = dt.Rows[i];
  897. foreach (DataColumn column in dt.Columns)
  898. {
  899. newdr[column.ColumnName] = dr[column.ColumnName];
  900. }
  901. newdt.Rows.Add(newdr);
  902. }
  903. return newdt;
  904. }
  905. /// <summary>
  906. /// 获取坐席处理列表
  907. /// </summary>
  908. /// <returns></returns>
  909. [Authority]
  910. public ActionResult GetZXDealList(int isdc = 0)
  911. {
  912. DataTable dt = new DataTable();
  913. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  914. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  915. string sql = " and F_IsDelete=0";
  916. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  917. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  918. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  919. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  920. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  921. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  922. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  923. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  924. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  925. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  926. int source = RequestString.GetInt("source", 0);
  927. int keyid = RequestString.GetInt("keyid", 0);
  928. int type = RequestString.GetInt("type", 0);
  929. int bigtype = RequestString.GetInt("bigtype", 0);
  930. int smalltype = RequestString.GetInt("smalltype", 0);
  931. int sourcearea = RequestString.GetInt("sourcearea", 0);
  932. int deptid = RequestString.GetInt("deptid", 0);
  933. int deptlevel = RequestString.GetInt("deptlevel", 0);
  934. string strpageindex = RequestString.GetQueryString("page");
  935. int pageindex = 1;
  936. string strpagesize = RequestString.GetQueryString("pagesize");
  937. int pagesize = 10;
  938. int IsExport = RequestString.GetInt("isexport",0);
  939. int timesort = RequestString.GetInt("timesort", -1);
  940. string sort = "ORDER BY F_CreateTime ASC";
  941. if (timesort == 0)
  942. sort = "ORDER BY LimitTime ASC";
  943. else if (timesort == 1)
  944. sort = "ORDER BY F_CreateTime DESC";
  945. if (IsExport>0)
  946. {
  947. sql += " and IsExport = '" + IsExport + "' ";
  948. }
  949. switch (strtab)
  950. {
  951. case "-1"://待处理工单(其他来源)
  952. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  953. break;
  954. case "0"://待处理工单
  955. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  956. {
  957. if (userModel.F_RoleCode != "ZJZY")
  958. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  959. }
  960. if (strstate.Trim() != "" && strstate != "undefined")
  961. {
  962. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  963. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  964. else
  965. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  966. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  967. }
  968. else
  969. {
  970. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.dealed + ") ";
  971. //sql += " and F_WorkState in (0,6) ";
  972. }
  973. break;
  974. case "1"://已提交的工单
  975. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper where F_State=1 and F_IsDelete=0 ";
  976. sql += " and F_WorkState >0 ";
  977. if (strstate.Trim() != "" && strstate != "undefined")
  978. {
  979. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  980. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  981. else
  982. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  983. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  984. }
  985. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  986. {
  987. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  988. }
  989. break;
  990. case "2"://已回访的工单
  991. if (strstate.Trim() != "" && strstate != "undefined")
  992. {
  993. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  994. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  995. else
  996. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  997. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  998. }
  999. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1000. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1001. {
  1002. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1003. }
  1004. else
  1005. {
  1006. sql += ")";
  1007. }
  1008. break;
  1009. case "3"://已回退的工单
  1010. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  1011. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  1012. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  1013. {
  1014. sql += " and F_CreateUser='" + userModel.F_UserCode;
  1015. }
  1016. break;
  1017. }
  1018. if (strworkid.Trim() != "" && strworkid != "undefined")
  1019. {
  1020. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  1021. }
  1022. if (strname.Trim() != "" && strname != "undefined")
  1023. {
  1024. sql += " and F_CusName like '%" + strname + "%' ";
  1025. }
  1026. if (strtel.Trim() != "" && strtel != "undefined")
  1027. {
  1028. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1029. }
  1030. if (strkey.Trim() != "" && strkey != "undefined")
  1031. {
  1032. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  1033. }
  1034. #region 坐席&调度员
  1035. if (strusercode.Trim() != "" && strusercode != "undefined")
  1036. {//坐席
  1037. var usercode = strusercode.Trim().Split(',');
  1038. var newusercode = "";
  1039. foreach (var item in usercode)
  1040. {
  1041. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1042. newusercode += "'" + item + "',";
  1043. }
  1044. newusercode = newusercode.Trim(',');
  1045. if (newusercode.Trim() != "" && newusercode != "undefined")
  1046. {
  1047. sql += " and F_CreateUser in (" + newusercode + ") ";
  1048. }
  1049. }
  1050. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1051. {//调度员
  1052. var ddusercode = strddusercode.Trim().Split(',');
  1053. var newusercode = "";
  1054. foreach (var item in ddusercode)
  1055. {
  1056. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1057. newusercode += "'" + item + "',";
  1058. }
  1059. newusercode = newusercode.Trim(',');
  1060. if (newusercode.Trim() != "" && newusercode != "undefined")
  1061. {
  1062. sql += " and F_AssignUser in(" + newusercode + ") ";
  1063. }
  1064. }
  1065. //if (strusercode.Trim() != "" && strusercode != "undefined")
  1066. //{
  1067. // sql += " and F_CreateUser = '" + strusercode + "' ";
  1068. //}
  1069. #endregion
  1070. if (source != 0)
  1071. {
  1072. sql += " and F_InfoSource = '" + source + "' ";
  1073. }
  1074. if (keyid != 0)
  1075. {
  1076. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  1077. }
  1078. if (type != 0)
  1079. {
  1080. sql += " and F_InfoType = '" + type + "' ";
  1081. }
  1082. if (bigtype != 0)
  1083. {
  1084. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1085. }
  1086. if (smalltype != 0)
  1087. {
  1088. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1089. }
  1090. if (sourcearea != 0)
  1091. {
  1092. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1093. }
  1094. if (deptid != 0)
  1095. {
  1096. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1097. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  1098. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1099. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1100. //if (deptlevel == 0)
  1101. //{
  1102. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  1103. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1104. //}
  1105. //else
  1106. //{
  1107. // string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  1108. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  1109. //}
  1110. #endregion
  1111. }
  1112. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1113. {
  1114. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  1115. }
  1116. if (strendtime.Trim() != "" && strendtime != "undefined")
  1117. {
  1118. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  1119. }
  1120. if (strpageindex.Trim() != "")
  1121. {
  1122. pageindex = Convert.ToInt32(strpageindex);
  1123. }
  1124. if (strpagesize.Trim() != "")
  1125. {
  1126. pagesize = Convert.ToInt32(strpagesize);
  1127. }
  1128. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1129. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1130. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1131. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  1132. if (isdc > 0)
  1133. {
  1134. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  1135. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1136. if (msg == "")
  1137. {
  1138. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  1139. //{
  1140. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  1141. //}
  1142. return Success("导出成功");
  1143. }
  1144. else
  1145. {
  1146. return Error("导出失败");
  1147. }
  1148. }
  1149. int recordCount = 0;
  1150. dt = BLL.PagerBLL.GetListPager(
  1151. "T_Bus_WorkOrder WITH(NOLOCK)",
  1152. "F_WorkOrderId",
  1153. cols,
  1154. sql,
  1155. sort ,
  1156. pagesize,
  1157. pageindex,
  1158. true,
  1159. out recordCount);
  1160. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1161. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1162. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1163. dt.Columns.Add("OverState", typeof(string));//超时状态
  1164. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1165. dt.Columns.Add("GapTime", typeof(string));//时间差
  1166. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1167. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1168. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  1169. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1170. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1171. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1172. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1173. foreach (DataRow dr in dt.Rows)
  1174. {
  1175. //获取最新交办信息
  1176. string iszbdw = "0";
  1177. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1178. if (state > 1)
  1179. {
  1180. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  1181. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1182. if (dtjb.Rows.Count > 0)
  1183. {
  1184. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  1185. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  1186. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1187. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1188. {
  1189. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1190. }
  1191. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1192. #region
  1193. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  1194. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  1195. //if (deptinfo != null)
  1196. //{
  1197. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  1198. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  1199. //}
  1200. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1201. //{
  1202. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  1203. // string dns = string.Empty;
  1204. // foreach (string strid in strids)
  1205. // {
  1206. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  1207. // if (dinfo != null)
  1208. // {
  1209. // if (string.IsNullOrEmpty(dns))
  1210. // {
  1211. // dns = dinfo.F_DeptName;//交办单位
  1212. // }
  1213. // else
  1214. // {
  1215. // dns += "," + dinfo.F_DeptName;//交办单位
  1216. // }
  1217. // }
  1218. // }
  1219. // dr["OtherDeptName"] = dns;
  1220. //}
  1221. #endregion
  1222. #region
  1223. //if (state < 6 || state == 8)
  1224. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1225. {
  1226. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1227. dr["LimitTime"] = lt;
  1228. if (!string.IsNullOrWhiteSpace(lt))
  1229. {
  1230. var ltime = DateTime.Parse(lt);
  1231. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1232. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1233. if (tss < 0) { tss = -tss; }
  1234. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1235. if (ltime > DateTime.Now)
  1236. {
  1237. if (configcs != null)
  1238. {
  1239. int cs = Int32.Parse(configcs.F_ParamValue);
  1240. if (ts.TotalHours > cs)
  1241. {
  1242. dr["OverState"] = 1;
  1243. }
  1244. else
  1245. {
  1246. dr["OverState"] = 2;
  1247. }
  1248. }
  1249. dr["GapTime"] = "剩余" + gshsj;
  1250. }
  1251. else
  1252. {
  1253. dr["OverState"] = 3;
  1254. dr["GapTime"] = "超时" + gshsj;
  1255. }
  1256. }
  1257. }
  1258. if (state == (int)EnumWorkState.finish)
  1259. {
  1260. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1261. var dttime = DateTime.Now;
  1262. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1263. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1264. dr["LimitTime"] = lt;
  1265. if (!string.IsNullOrWhiteSpace(lt))
  1266. {
  1267. var ltime = DateTime.Parse(lt);
  1268. TimeSpan ts = ltime.Subtract(dttime);
  1269. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1270. if (tss < 0) { tss = -tss; }
  1271. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1272. if (ltime < dttime)
  1273. {
  1274. dr["OverState"] = 3;
  1275. dr["GapTime"] = "超时" + gshsj;
  1276. }
  1277. }
  1278. }
  1279. #endregion
  1280. }
  1281. }
  1282. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1283. {
  1284. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  1285. }
  1286. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1287. {
  1288. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1289. }
  1290. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  1291. {
  1292. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  1293. dr["IsFiles"] = 1;
  1294. else
  1295. dr["IsFiles"] = 0;
  1296. }
  1297. else
  1298. {
  1299. dr["IsFiles"] = 0;
  1300. }
  1301. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1302. if (Int32.Parse(strtab) == 0)
  1303. {
  1304. btns.Clear();
  1305. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  1306. #region 判断是否存在待督办
  1307. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1308. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1309. if (recount > 0 && butt != null)
  1310. btns.Remove(butt);
  1311. #endregion
  1312. }
  1313. else if (Int32.Parse(strtab) == -1)
  1314. {
  1315. btns.Clear();
  1316. btns.Add(ButtonGroup.query());
  1317. btns.Add(ButtonGroup.edit());
  1318. }
  1319. else
  1320. {
  1321. btns.Clear();
  1322. btns.Add(ButtonGroup.query());
  1323. }
  1324. dr["Buttons"] = btns;
  1325. }
  1326. var obj = new
  1327. {
  1328. state = "success",
  1329. message = "成功",
  1330. rows = dt,
  1331. total = recordCount
  1332. };
  1333. return Content(obj.ToJson());
  1334. }
  1335. /// <summary>
  1336. /// 上传阿里云
  1337. /// </summary>
  1338. public class uploadAddWorders
  1339. {
  1340. /// <summary>
  1341. /// 案件编号
  1342. /// </summary>
  1343. public string cenrollid { set; get; }
  1344. /// <summary>
  1345. /// 来电人
  1346. /// </summary>
  1347. public string custname { set; get; }
  1348. /// <summary>
  1349. /// 登记时间
  1350. /// </summary>
  1351. public string tsystime { set; get; }
  1352. /// <summary>
  1353. /// 事件类别
  1354. /// </summary>
  1355. public string ismallcategory { set; get; }
  1356. /// <summary>
  1357. /// 转办人
  1358. /// </summary>
  1359. public string unit_code { set; get; }
  1360. /// <summary>
  1361. /// 转办时间
  1362. /// </summary>
  1363. public string transferTime { set; get; }
  1364. /// <summary>
  1365. /// 转办单位
  1366. /// </summary>
  1367. public string transferunit { set; get; }
  1368. /// <summary>
  1369. /// 详细内容
  1370. /// </summary>
  1371. public string content { set; get; }
  1372. /// <summary>
  1373. /// 拟办意见
  1374. /// </summary>
  1375. public string advice { set; get; }
  1376. /// <summary>
  1377. /// 处理结果
  1378. /// </summary>
  1379. public string result { set; get; }
  1380. /// <summary>
  1381. /// 回访情况
  1382. /// </summary>
  1383. public string remark { set; get; }
  1384. public int ideliverprogress { set; get; }
  1385. public int type { set; get; }
  1386. public string phone { set; get; }
  1387. public string title { set; get; }
  1388. public string backreason { set; get; }
  1389. }
  1390. public class uploadSatisfaction
  1391. {
  1392. public string cenrollid { set; get; }
  1393. public int Satisfaction { set; get; }
  1394. }
  1395. [HttpPost]
  1396. public ActionResult updateSatisfaction(uploadSatisfaction info)
  1397. {
  1398. if (info == null)
  1399. return Error("内容为空");
  1400. try
  1401. {
  1402. using (TransactionScope trans = new TransactionScope())
  1403. {
  1404. #region 保存工单信息
  1405. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1406. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1407. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1408. "and F_IsDelete=0");
  1409. if (workorder != null && workorder.Count > 0)
  1410. {
  1411. // modelT_Bus_WorkOrder = workorder[0];
  1412. // modelT_Bus_WorkOrder.F_Satisfaction = info.Satisfaction;
  1413. // var workorderlist = workorderBLL.GetModelList("F_MainWorkOrderId='" + workorder[0].F_WorkOrderId +
  1414. // "and F_IsDelete=0");
  1415. // if (workorderlist != null && workorderlist.Count > 0)
  1416. // {
  1417. foreach (var it in workorder)
  1418. {
  1419. it.F_Satisfaction = info.Satisfaction;
  1420. workorderBLL.Update(it);
  1421. }
  1422. // }
  1423. }
  1424. else
  1425. {
  1426. return Error("系统不存在此工单");
  1427. }
  1428. workorderBLL.Update(modelT_Bus_WorkOrder);
  1429. #endregion
  1430. trans.Complete();
  1431. }
  1432. return Success("操作成功");
  1433. }
  1434. catch (Exception ex)
  1435. {
  1436. return Error("操作失败" + ex.Message);
  1437. }
  1438. }
  1439. [HttpPost]
  1440. public ActionResult uploadAddWorkorders(uploadAddWorders info)
  1441. {
  1442. if (info == null)
  1443. return Error("内容为空");
  1444. try
  1445. {
  1446. using (TransactionScope trans = new TransactionScope())
  1447. {
  1448. #region 保存工单信息
  1449. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1450. modelT_Bus_WorkOrder.F_OldWorkOrderId = info.cenrollid;
  1451. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1452. "and F_IsDelete=0");
  1453. if (workorder != null && workorder.Count > 0)
  1454. {
  1455. modelT_Bus_WorkOrder = workorder[0];
  1456. if (info .ideliverprogress ==11)
  1457. {
  1458. if (workorder[0].IsExport !=1 )
  1459. {
  1460. return Success("操作成功");
  1461. }
  1462. workorder[0].IsExport = 0;
  1463. workorder[0].F_WorkState = 11;
  1464. }
  1465. else
  1466. {
  1467. return Success("操作成功");
  1468. //Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1469. //if (modelT_Bus_AssignedInfo != null)
  1470. //{
  1471. // Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL.GetModelList(" F_AssignedId=" + modelT_Bus_AssignedInfo.F_Id + " and F_IsFeedEnd=1 and F_State=1 order by F_CreateTime desc").FirstOrDefault();
  1472. // #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1473. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1474. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1475. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1476. // modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1477. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1478. // #endregion
  1479. //}
  1480. //workorder[0].F_WorkState = 13;
  1481. }
  1482. }
  1483. else
  1484. {
  1485. modelT_Bus_WorkOrder.F_WorkState = 1;
  1486. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1487. }
  1488. if (info.ideliverprogress == 11)
  1489. modelT_Bus_WorkOrder.F_Backreason = info.backreason;
  1490. if (info .type ==1)
  1491. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1492. else
  1493. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1494. modelT_Bus_WorkOrder.F_CusName = info.custname;
  1495. modelT_Bus_WorkOrder.F_ConName = info.custname; ;//联系人姓名
  1496. modelT_Bus_WorkOrder.F_CusPhone = info .phone;//
  1497. modelT_Bus_WorkOrder.F_ConPhone = info.phone;//联系人
  1498. try
  1499. {
  1500. modelT_Bus_WorkOrder.F_CreateTime =DateTime .Parse ( info.tsystime);
  1501. }
  1502. catch
  1503. {
  1504. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1505. }
  1506. modelT_Bus_WorkOrder.F_Event = info .ismallcategory ;//事件类别
  1507. modelT_Bus_WorkOrder.F_Transferor =info .unit_code ;//转办人
  1508. try
  1509. {
  1510. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(info .transferTime );
  1511. }
  1512. catch
  1513. {
  1514. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1515. }
  1516. modelT_Bus_WorkOrder.F_ComTitle = info.title;
  1517. modelT_Bus_WorkOrder.F_Transferunit =info .transferunit ;//转办单位
  1518. modelT_Bus_WorkOrder.F_ComContent = info .content ;//
  1519. modelT_Bus_WorkOrder.F_ResultRemarks = info .advice ;//拟办意见
  1520. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1521. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1522. {
  1523. try
  1524. {
  1525. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1526. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1527. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1528. }
  1529. catch
  1530. {
  1531. }
  1532. }
  1533. modelT_Bus_WorkOrder.F_FinalOpinion =info .result ;//处理结果
  1534. modelT_Bus_WorkOrder.F_Result = info .remark ;//回访情况
  1535. modelT_Bus_WorkOrder.F_Remarks = "★以上登记信息仅供市长热线平台及承办人员查阅,未经许可不得向外提供";//
  1536. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1537. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1538. if (modelT_Bus_WorkOrder.F_Id > 0)
  1539. {
  1540. workorderBLL.Update(modelT_Bus_WorkOrder);
  1541. }
  1542. else
  1543. {
  1544. workorderBLL.Add(modelT_Bus_WorkOrder);
  1545. }
  1546. #endregion
  1547. #region 插入操作记录
  1548. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1549. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1550. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1551. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  1552. oper.F_File = modelT_Bus_WorkOrder.F_File;
  1553. string userinfo = "系统";
  1554. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  1555. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  1556. {
  1557. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1558. }
  1559. oper.F_CreateUser = "8000";
  1560. oper.F_CreateTime = DateTime.Now;
  1561. oper.F_IsDelete = 0;
  1562. operBLL.Add(oper);
  1563. #endregion
  1564. trans.Complete();
  1565. }
  1566. return Success("操作成功");
  1567. }
  1568. catch (Exception ex)
  1569. {
  1570. return Error("操作失败" + ex.Message);
  1571. }
  1572. }
  1573. [HttpPost]
  1574. public ActionResult AddWorkorders(string message )
  1575. {
  1576. if (string.IsNullOrEmpty(message))
  1577. return Error("内容为空");
  1578. try
  1579. {
  1580. using (TransactionScope trans = new TransactionScope())
  1581. {
  1582. #region 保存工单信息
  1583. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  1584. string[] value = { "案件编号:", "来电人", "联系电话",
  1585. "登记时间" ,"事件类别","转办人" ,
  1586. "转办时间","转办单位","详细内容"
  1587. ,"拟办意见","处理结果","回访情况","★"};
  1588. string[] values = message.Split(value, StringSplitOptions.RemoveEmptyEntries);
  1589. modelT_Bus_WorkOrder.F_OldWorkOrderId = values[1].Replace("\r", "")
  1590. .Replace("\a", "");
  1591. var workorder = workorderBLL.GetModelList("F_OldWorkOrderId='" + modelT_Bus_WorkOrder.F_OldWorkOrderId + "'" +
  1592. "and F_IsDelete=0");
  1593. if (workorder!=null&& workorder.Count >0)
  1594. {
  1595. modelT_Bus_WorkOrder = workorder[0];
  1596. if (workorder[0].F_WorkState <=3)
  1597. {
  1598. workorder[0].F_WorkState = 11;
  1599. }
  1600. else if (workorder[0].F_WorkState == 4)
  1601. {
  1602. workorder[0].F_WorkState = 8;
  1603. }
  1604. else
  1605. {
  1606. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc ").FirstOrDefault();
  1607. if (modelT_Bus_AssignedInfo!=null )
  1608. {
  1609. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL.GetModelList(" F_AssignedId=" + modelT_Bus_AssignedInfo.F_Id + " and F_IsFeedEnd=1 and F_State=1 order by F_CreateTime desc").FirstOrDefault();
  1610. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  1611. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  1612. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  1613. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  1614. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  1615. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  1616. #endregion
  1617. }
  1618. workorder[0].F_WorkState = 13;
  1619. }
  1620. }
  1621. else
  1622. modelT_Bus_WorkOrder.F_WorkState = 1;
  1623. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID("8000");
  1624. if (modelT_Bus_WorkOrder.F_OldWorkOrderId.Contains("xx"))
  1625. modelT_Bus_WorkOrder.F_InfoSource = 2;//信息来源
  1626. else
  1627. modelT_Bus_WorkOrder.F_InfoSource = 3;//信息来源
  1628. modelT_Bus_WorkOrder.F_CusName = values[2].Replace("\r", "")
  1629. .Replace("\a", "");//
  1630. modelT_Bus_WorkOrder.F_ConName = values[2].Replace("\r", "")
  1631. .Replace("\a", "");//联系人姓名
  1632. modelT_Bus_WorkOrder.F_CusPhone = values[3].Replace("\r", "")
  1633. .Replace("\a", "");//
  1634. modelT_Bus_WorkOrder.F_ConPhone = values[3].Replace("\r", "")
  1635. .Replace("\a", "");//联系人姓名
  1636. try
  1637. {
  1638. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Parse(values[4].Replace("\r", "")
  1639. .Replace("\a", ""));
  1640. }
  1641. catch
  1642. {
  1643. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1644. }
  1645. modelT_Bus_WorkOrder.F_Event = values[5].Replace("\r", "")
  1646. .Replace("\a", "");//事件类别
  1647. modelT_Bus_WorkOrder.F_Transferor = values[6].Replace("\r", "")
  1648. .Replace("\a", "");//转办人
  1649. try
  1650. {
  1651. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Parse(values[7].Replace("\r", "")
  1652. .Replace("\a", ""));
  1653. }
  1654. catch
  1655. {
  1656. modelT_Bus_WorkOrder.F_TransferTime = DateTime.Now;
  1657. }
  1658. modelT_Bus_WorkOrder.F_Transferunit = values[8].Replace("\r", "")
  1659. .Replace("\a", "");//转办单位
  1660. modelT_Bus_WorkOrder.F_ComContent = values[9].Replace("\r", "")
  1661. .Replace("\a", "");//
  1662. modelT_Bus_WorkOrder.F_ResultRemarks = values[10].Replace("\r", "")
  1663. .Replace("\a", "");//拟办意见
  1664. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfos = new Model.T_Bus_AssignedInfo();
  1665. if (!string .IsNullOrEmpty(modelT_Bus_WorkOrder.F_ResultRemarks))
  1666. {
  1667. try
  1668. {
  1669. string[] limtim = modelT_Bus_WorkOrder.F_ResultRemarks.Split('于', '月', '日', '前');
  1670. DateTime limittime = DateTime.Parse(DateTime.Now.ToString("yyyy") + "年" + limtim[1] + "月" + limtim[2] + "日" + " 23:59:59");
  1671. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  1672. }
  1673. catch
  1674. {
  1675. }
  1676. }
  1677. modelT_Bus_WorkOrder.F_FinalOpinion = values[11].Replace("\r", "")
  1678. .Replace("\a", "");//处理结果
  1679. modelT_Bus_WorkOrder.F_Result = values[12].Replace("\r", "")
  1680. .Replace("\a", "");//回访情况
  1681. modelT_Bus_WorkOrder.F_Remarks = "★" + values[13].Replace("\r", "")
  1682. .Replace("\a", "");//
  1683. modelT_Bus_WorkOrder.F_IsDelete = 0;
  1684. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;
  1685. if(modelT_Bus_WorkOrder.F_Id >0)
  1686. {
  1687. workorderBLL.Update (modelT_Bus_WorkOrder);
  1688. }
  1689. else
  1690. {
  1691. workorderBLL.Add(modelT_Bus_WorkOrder);
  1692. }
  1693. #endregion
  1694. #region 插入操作记录
  1695. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  1696. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  1697. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  1698. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  1699. oper.F_File = modelT_Bus_WorkOrder.F_File;
  1700. string userinfo = "系统";
  1701. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  1702. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  1703. {
  1704. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  1705. }
  1706. oper.F_CreateUser = "8000";
  1707. oper.F_CreateTime = DateTime.Now;
  1708. oper.F_IsDelete = 0;
  1709. operBLL.Add(oper);
  1710. #endregion
  1711. trans.Complete();
  1712. }
  1713. return Success("操作成功");
  1714. }
  1715. catch (Exception ex)
  1716. {
  1717. return Error ("操作失败"+ex .Message );
  1718. }
  1719. }
  1720. /// <summary>
  1721. /// 获取领导处理列表
  1722. /// </summary>
  1723. /// <returns></returns>
  1724. [Authority]
  1725. public ActionResult GetLDDealList(int isdc = 0)
  1726. {
  1727. DataTable dt = new DataTable();
  1728. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  1729. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  1730. string sql = " and F_IsDelete=0";
  1731. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1732. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1733. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1734. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1735. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1736. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1737. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1738. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1739. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1740. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1741. int source = RequestString.GetInt("source", 0);
  1742. int keyid = RequestString.GetInt("keyid", 0);
  1743. int type = RequestString.GetInt("type", 0);
  1744. int bigtype = RequestString.GetInt("bigtype", 0);
  1745. int smalltype = RequestString.GetInt("smalltype", 0);
  1746. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1747. int deptid = RequestString.GetInt("deptid", 0);
  1748. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1749. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1750. string strpageindex = RequestString.GetQueryString("page");
  1751. int pageindex = 1;
  1752. string strpagesize = RequestString.GetQueryString("pagesize");
  1753. int pagesize = 10;
  1754. int IsExport = RequestString.GetInt("isexport", 0);
  1755. int timesort = RequestString.GetInt("timesort", -1);
  1756. string sort = "ORDER BY F_CreateTime ASC";
  1757. if (timesort == 0)
  1758. sort = "ORDER BY LimitTime ASC";
  1759. else if (timesort == 1)
  1760. sort = "ORDER BY F_CreateTime DESC";
  1761. if (IsExport > 0)
  1762. {
  1763. sql += " and IsExport = '" + IsExport + "' ";
  1764. }
  1765. switch (strtab)
  1766. {
  1767. case "0"://待处理工单
  1768. if (strstate.Trim() != "" && strstate != "undefined")
  1769. {
  1770. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1771. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1772. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  1773. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  1774. else
  1775. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1776. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1777. if (strstate.Trim() == ((int)EnumWorkState.visit).ToString() && issatisfie != -1)
  1778. {
  1779. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1780. sql += " and F_IsSatisfie='" + issatisfie + "')";
  1781. }
  1782. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  1783. {
  1784. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1785. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG"&& userModel.F_RoleCode != "ZXLD")
  1786. {
  1787. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1788. }
  1789. else
  1790. {
  1791. sql += ")";
  1792. }
  1793. }
  1794. else
  1795. {
  1796. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1797. {
  1798. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  1799. + "and F_CreateUser = '" + userModel.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  1800. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  1801. }
  1802. }
  1803. }
  1804. else
  1805. {
  1806. //int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1807. //sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  1808. ////sql += " and F_WorkState in (1,2,3,5,7,8)";
  1809. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.auditreback, (int)EnumWorkState.auditdelay, (int)EnumWorkState.visit, (int)EnumWorkState.reload };
  1810. sql += " and (F_WorkState='" + (int)EnumWorkState.submit + "' or ( F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ") and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1811. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1812. {
  1813. sql += " and F_CreateUser='" + userModel.F_UserCode + "')))";
  1814. }
  1815. else
  1816. {
  1817. sql += ")))";
  1818. }
  1819. }
  1820. break;
  1821. case "1"://已交办的工单
  1822. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  1823. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  1824. if (strstate.Trim() != "" && strstate != "undefined")
  1825. {
  1826. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1827. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1828. else
  1829. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1830. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1831. }
  1832. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1833. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  1834. {
  1835. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  1836. }
  1837. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  1838. {
  1839. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  1840. }
  1841. //if (deptid != 0)
  1842. //{
  1843. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1844. // sql += " and F_MainDeptId = '" + deptid + "'";
  1845. //}
  1846. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1847. {
  1848. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1849. }
  1850. else
  1851. {
  1852. sql += ")";
  1853. }
  1854. break;
  1855. case "2"://已审核退回的工单
  1856. if (strstate.Trim() != "" && strstate != "undefined")
  1857. {
  1858. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1859. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1860. else
  1861. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1862. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1863. }
  1864. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  1865. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1866. {
  1867. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  1868. }
  1869. else
  1870. {
  1871. sql += ")";
  1872. }
  1873. break;
  1874. case "3"://已审核延时的工单
  1875. if (strstate.Trim() != "" && strstate != "undefined")
  1876. {
  1877. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1878. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1879. else
  1880. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1881. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1882. }
  1883. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 ";
  1884. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1885. {
  1886. sql += " and F_AuditUser='" + userModel.F_UserCode + "')";
  1887. }
  1888. else
  1889. {
  1890. sql += ")";
  1891. }
  1892. break;
  1893. case "4"://已重办的工单
  1894. if (strstate.Trim() != "" && strstate != "undefined")
  1895. {
  1896. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1897. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1898. else
  1899. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1900. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1901. }
  1902. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsReload>0 ";
  1903. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1904. {
  1905. sql += " and F_ReloadUser='" + userModel.F_UserCode + "')";
  1906. }
  1907. else
  1908. {
  1909. sql += ")";
  1910. }
  1911. break;
  1912. case "5"://已结案的工单
  1913. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  1914. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  1915. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  1916. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1917. {
  1918. sql += " and F_CloseUser='" + userModel.F_UserCode + "'";
  1919. }
  1920. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  1921. {
  1922. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  1923. }
  1924. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  1925. {
  1926. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  1927. }
  1928. break;
  1929. case "6"://已督办的工单
  1930. if (strstate.Trim() != "" && strstate != "undefined")
  1931. {
  1932. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1933. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1934. else
  1935. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1936. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1937. }
  1938. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  1939. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1940. {
  1941. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1942. }
  1943. else
  1944. {
  1945. sql += ")";
  1946. }
  1947. break;
  1948. case "7"://已监察的工单
  1949. if (strstate.Trim() != "" && strstate != "undefined")
  1950. {
  1951. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1952. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1953. else
  1954. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1955. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1956. }
  1957. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  1958. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  1959. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1960. {
  1961. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1962. }
  1963. else
  1964. {
  1965. sql += ")";
  1966. }
  1967. break;
  1968. case "8"://待督办列表
  1969. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  1970. if (strstate.Trim() != "" && strstate != "undefined")
  1971. {
  1972. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  1973. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1974. else
  1975. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1976. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1977. }
  1978. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=0 and F_IsDelete=0 and F_Type =1 ";
  1979. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode!= "DBZY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1980. {
  1981. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  1982. }
  1983. else
  1984. {
  1985. sql += ")";
  1986. }
  1987. break;
  1988. case "9"://重办驳回列表
  1989. sql += " and F_WorkState="+ (int)EnumWorkState.rejload;
  1990. sql += " and F_WorkOrderID in (select F_WorkOrderId from T_Bus_Operation WITH(NOLOCK) where F_Id in (select max(F_Id) from T_Bus_Operation WITH(NOLOCK) where F_State = " + (int)EnumWorkState.resubmit + " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_Operation WITH(NOLOCK) where F_State=" + (int)EnumWorkState.rejload + ") group by F_WorkOrderId)";
  1991. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG" && userModel.F_RoleCode != "ZXLD")
  1992. {
  1993. sql += " and F_CreateUser='" + userModel.F_UserCode + "'";
  1994. }
  1995. sql += ")";
  1996. break;
  1997. }
  1998. if (strworkid.Trim() != "" && strworkid != "undefined")
  1999. {
  2000. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2001. }
  2002. if (strname.Trim() != "" && strname != "undefined")
  2003. {
  2004. sql += " and F_CusName like '%" + strname + "%' ";
  2005. }
  2006. if (strtel.Trim() != "" && strtel != "undefined")
  2007. {
  2008. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2009. }
  2010. if (strkey.Trim() != "" && strkey != "undefined")
  2011. {
  2012. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2013. }
  2014. #region 坐席&调度员
  2015. if (strusercode.Trim() != "" && strusercode != "undefined")
  2016. {//坐席
  2017. var usercode = strusercode.Trim().Split(',');
  2018. var newusercode = "";
  2019. foreach (var item in usercode)
  2020. {
  2021. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2022. newusercode += "'" + item + "',";
  2023. }
  2024. newusercode = newusercode.Trim(',');
  2025. if (newusercode.Trim() != "" && newusercode != "undefined")
  2026. {
  2027. sql += " and F_CreateUser in (" + newusercode + ") ";
  2028. }
  2029. }
  2030. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2031. {//调度员
  2032. var ddusercode = strddusercode.Trim().Split(',');
  2033. var newusercode = "";
  2034. foreach (var item in ddusercode)
  2035. {
  2036. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2037. newusercode += "'" + item + "',";
  2038. }
  2039. newusercode = newusercode.Trim(',');
  2040. if (newusercode.Trim() != "" && newusercode != "undefined")
  2041. {
  2042. sql += " and F_AssignUser in(" + newusercode + ") ";
  2043. }
  2044. }
  2045. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2046. //{
  2047. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2048. //}
  2049. #endregion
  2050. if (source != 0)
  2051. {
  2052. sql += " and F_InfoSource = '" + source + "' ";
  2053. }
  2054. if (keyid != 0)
  2055. {
  2056. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2057. }
  2058. if (type != 0)
  2059. {
  2060. sql += " and F_InfoType = '" + type + "' ";
  2061. }
  2062. if (bigtype != 0)
  2063. {
  2064. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2065. }
  2066. if (smalltype != 0)
  2067. {
  2068. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2069. }
  2070. if (sourcearea != 0)
  2071. {
  2072. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2073. }
  2074. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2075. {
  2076. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2077. }
  2078. if (strendtime.Trim() != "" && strendtime != "undefined")
  2079. {
  2080. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2081. }
  2082. if (deptid != 0 && strtab != "1")
  2083. {
  2084. if (deptlevel == 0)
  2085. {
  2086. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  2087. //string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo where ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  2088. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2089. }
  2090. else
  2091. {
  2092. //string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next where ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  2093. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  2094. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2095. }
  2096. }
  2097. if(deptid!=0)
  2098. {
  2099. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2100. }
  2101. if (strpageindex.Trim() != "")
  2102. {
  2103. pageindex = Convert.ToInt32(strpageindex);
  2104. }
  2105. if (strpagesize.Trim() != "")
  2106. {
  2107. pagesize = Convert.ToInt32(strpagesize);
  2108. }
  2109. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2110. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2111. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2112. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  2113. string colst = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2114. if (isdc > 0)
  2115. {
  2116. var dtdc = DbHelperSQL.Query(" select " + colst + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  2117. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2118. if (msg == "")
  2119. {
  2120. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2121. //{
  2122. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2123. //}
  2124. return Success("导出成功");
  2125. }
  2126. else
  2127. {
  2128. return Error("导出失败");
  2129. }
  2130. }
  2131. int recordCount = 0;
  2132. dt = BLL.PagerBLL.GetListPager(
  2133. "T_Bus_WorkOrder WITH(NOLOCK)",
  2134. "F_WorkOrderId",
  2135. cols,
  2136. sql,
  2137. sort ,
  2138. pagesize,
  2139. pageindex,
  2140. true,
  2141. out recordCount);
  2142. #region 声音文件
  2143. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2144. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2145. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2146. dt.Columns.Add("OverState", typeof(string));//超时状态
  2147. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2148. dt.Columns.Add("GapTime", typeof(string));//时间差
  2149. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2150. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2151. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2152. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2153. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2154. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2155. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2156. foreach (DataRow dr in dt.Rows)
  2157. {
  2158. //获取最新交办信息
  2159. string iszbdw = "0";
  2160. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2161. if (state > 1)
  2162. {
  2163. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  2164. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2165. if (dtjb.Rows.Count > 0)
  2166. {
  2167. //if (dtjb.Rows[0]["F_MainDeptId"] != null && dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(userModel.F_DeptId.ToString())) { iszbdw = "1"; }
  2168. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2169. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2170. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2171. {
  2172. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2173. }
  2174. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2175. #region
  2176. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2177. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2178. //if (deptinfo != null)
  2179. //{
  2180. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2181. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2182. //}
  2183. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2184. //{
  2185. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2186. // string dns = string.Empty;
  2187. // foreach (string strid in strids)
  2188. // {
  2189. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2190. // if (dinfo != null)
  2191. // {
  2192. // if (string.IsNullOrEmpty(dns))
  2193. // {
  2194. // dns = dinfo.F_DeptName;//交办单位
  2195. // }
  2196. // else
  2197. // {
  2198. // dns += "," + dinfo.F_DeptName;//交办单位
  2199. // }
  2200. // }
  2201. // }
  2202. // dr["OtherDeptName"] = dns;
  2203. //}
  2204. #endregion
  2205. #region
  2206. //if (state < 6 || state == 8)
  2207. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2208. {
  2209. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2210. dr["LimitTime"] = lt;
  2211. if (!string.IsNullOrWhiteSpace(lt))
  2212. {
  2213. var ltime = DateTime.Parse(lt);
  2214. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2215. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2216. if (tss < 0) { tss = -tss; }
  2217. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2218. if (ltime > DateTime.Now)
  2219. {
  2220. if (configcs != null)
  2221. {
  2222. int cs = Int32.Parse(configcs.F_ParamValue);
  2223. if (ts.TotalHours > cs)
  2224. {
  2225. dr["OverState"] = 1;
  2226. }
  2227. else
  2228. {
  2229. dr["OverState"] = 2;
  2230. }
  2231. }
  2232. dr["GapTime"] = "剩余" + gshsj;
  2233. }
  2234. else
  2235. {
  2236. dr["OverState"] = 3;
  2237. dr["GapTime"] = "超时" + gshsj;
  2238. }
  2239. }
  2240. }
  2241. if (state == (int)EnumWorkState.finish)
  2242. {
  2243. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2244. var dttime = DateTime.Now;
  2245. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2246. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2247. dr["LimitTime"] = lt;
  2248. if (!string.IsNullOrWhiteSpace(lt))
  2249. {
  2250. var ltime = DateTime.Parse(lt);
  2251. TimeSpan ts = ltime.Subtract(dttime);
  2252. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2253. if (tss < 0) { tss = -tss; }
  2254. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2255. if (ltime < dttime)
  2256. {
  2257. dr["OverState"] = 3;
  2258. dr["GapTime"] = "超时" + gshsj;
  2259. }
  2260. }
  2261. }
  2262. #endregion
  2263. }
  2264. }
  2265. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2266. {
  2267. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2268. }
  2269. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2270. {
  2271. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2272. }
  2273. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  2274. {
  2275. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  2276. dr["IsFiles"] = 1;
  2277. else
  2278. dr["IsFiles"] = 0;
  2279. }
  2280. else
  2281. {
  2282. dr["IsFiles"] = 0;
  2283. }
  2284. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2285. if (Int32.Parse(strtab) <= 1)
  2286. {
  2287. btns.Add(ButtonGroup.query());
  2288. if (Int32.Parse(strtab)==1)
  2289. {
  2290. // btns.Add(ButtonGroup.query());
  2291. if (dr["F_WorkState"].ToString() == "2" || dr["F_WorkState"].ToString() == "4" || dr["F_WorkState"].ToString() == "8")
  2292. {
  2293. if (userModel.F_RoleCode.ToUpper() == "ZXLD" || userModel.F_RoleCode.ToUpper() == "ZXLDGLYGLY" || userModel.F_RoleCode.ToUpper() == "GLY" || userModel.F_RoleCode.ToUpper() == "DDZG")
  2294. {
  2295. btns.Add(ButtonGroup.takeback());
  2296. }
  2297. }
  2298. }
  2299. else
  2300. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2301. #region 判断是否存在待督办
  2302. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2303. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2304. if (recount > 0 && butt != null)
  2305. btns.Remove(butt);
  2306. #endregion
  2307. }
  2308. else
  2309. {
  2310. btns.Clear();
  2311. if (Int32.Parse(strtab) == 8)
  2312. btns = ButtonGroup.GetButtons("12", userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2313. else
  2314. btns.Add(ButtonGroup.query());
  2315. }
  2316. dr["Buttons"] = btns;
  2317. }
  2318. #endregion
  2319. var obj = new
  2320. {
  2321. state = "success",
  2322. message = "成功",
  2323. rows = dt,
  2324. total = recordCount
  2325. };
  2326. return Content(obj.ToJson());
  2327. }
  2328. /// <summary>
  2329. /// 获取单位处理列表
  2330. /// </summary>
  2331. /// <returns></returns>
  2332. [Authority]
  2333. public ActionResult GetDWDealList(int isdc = 0)
  2334. {
  2335. DataTable dt = new DataTable();
  2336. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2337. //int userId = 689;
  2338. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2339. string sql = " and F_IsDelete=0";
  2340. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2341. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2342. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2343. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2344. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2345. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2346. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2347. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2348. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2349. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2350. int source = RequestString.GetInt("source", 0);
  2351. int keyid = RequestString.GetInt("keyid", 0);
  2352. int type = RequestString.GetInt("type", 0);
  2353. int bigtype = RequestString.GetInt("bigtype", 0);
  2354. int smalltype = RequestString.GetInt("smalltype", 0);
  2355. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2356. int deptid = RequestString.GetInt("deptid", 0);
  2357. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2358. string strpageindex = RequestString.GetQueryString("page");
  2359. int pageindex = 1;
  2360. string strpagesize = RequestString.GetQueryString("pagesize");
  2361. int pagesize = 10;
  2362. int IsExport = RequestString.GetInt("isexport", 0);
  2363. int timesort = RequestString.GetInt("timesort", -1);
  2364. string sort = "ORDER BY F_CreateTime DESC";
  2365. if (timesort == 0)
  2366. sort = "ORDER BY LimitTime ASC";
  2367. else if (timesort == 1)
  2368. sort = "ORDER BY F_CreateTime DESC";
  2369. if (IsExport > 0)
  2370. {
  2371. sql += " and IsExport = '" + IsExport + "' ";
  2372. }
  2373. #region 模块
  2374. switch (strtab)
  2375. {
  2376. case "0"://待处理工单
  2377. int isyq = RequestString.GetInt("isyq", -1);
  2378. if (strstate.Trim() != "" && strstate != "undefined")
  2379. {
  2380. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2381. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2382. else
  2383. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2384. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2385. }
  2386. else
  2387. {
  2388. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  2389. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2390. //sql += " and F_WorkState in (2,4,8)";
  2391. }
  2392. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2393. {
  2394. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2395. //+ " ISNULL(F_FeedbackTime, '')='' and ((F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)) or "
  2396. //+ "(','+F_OtherDeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_IsSure=1))";
  2397. //+ " ISNULL(F_FeedbackTime, '')='' and ',' + F_MainDeptID + ',' like '%," + userModel.F_DeptId + ",%' and F_IsSure in (0,1)";
  2398. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1)";
  2399. if (isyq != -1)
  2400. {
  2401. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2402. }
  2403. else
  2404. {
  2405. sql += ")";
  2406. }
  2407. }
  2408. break;
  2409. case "1"://已查收的工单
  2410. if (strstate.Trim() != "" && strstate != "undefined")
  2411. {
  2412. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2413. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2414. else
  2415. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2416. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2417. }
  2418. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure=1 ";
  2419. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2420. {
  2421. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2422. }
  2423. else
  2424. {
  2425. sql += ")";
  2426. }
  2427. break;
  2428. case "2"://已申请退回的工单
  2429. if (strstate.Trim() != "" && strstate != "undefined")
  2430. {
  2431. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2432. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2433. else
  2434. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2435. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2436. }
  2437. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type = 3 ";
  2438. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2439. {
  2440. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2441. }
  2442. else
  2443. {
  2444. sql += ")";
  2445. }
  2446. break;
  2447. case "3"://已申请延时的工单
  2448. if (strstate.Trim() != "" && strstate != "undefined")
  2449. {
  2450. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2451. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2452. else
  2453. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2454. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2455. }
  2456. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2457. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2458. {
  2459. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2460. }
  2461. else
  2462. {
  2463. sql += ")";
  2464. }
  2465. break;
  2466. case "4"://已办理的工单
  2467. if (strstate.Trim() != "" && strstate != "undefined")
  2468. {
  2469. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2470. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2471. else
  2472. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2473. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2474. }
  2475. sort = "ORDER BY F_CreateTime DESC";
  2476. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  2477. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2478. {
  2479. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2480. }
  2481. else
  2482. {
  2483. sql += ")";
  2484. }
  2485. break;
  2486. case "5"://被督办的工单
  2487. if (strstate.Trim() != "" && strstate != "undefined")
  2488. {
  2489. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2490. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2491. else
  2492. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2493. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2494. }
  2495. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type =1 ";
  2496. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2497. {
  2498. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2499. }
  2500. else
  2501. {
  2502. sql += ")";
  2503. }
  2504. break;
  2505. case "6"://被监察的工单
  2506. if (strstate.Trim() != "" && strstate != "undefined")
  2507. {
  2508. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  2509. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2510. else
  2511. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2512. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2513. }
  2514. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2515. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2516. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2517. {
  2518. sql += " and F_DeptId='" + userModel.F_DeptId + "')";
  2519. }
  2520. else
  2521. {
  2522. sql += ")";
  2523. }
  2524. break;
  2525. case "7"://延时审核中的工单
  2526. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2527. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2528. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLDGLY" && userModel.F_RoleCode != "ZXLDGLYGLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2529. {
  2530. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  2531. }
  2532. else
  2533. {
  2534. sql += ")";
  2535. }
  2536. break;
  2537. case "8"://退回审核中的工单
  2538. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2539. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure=2 and isnull(F_FeedbackTime,'')=''";
  2540. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2541. {
  2542. sql += " and F_SureUser='" + userModel.F_UserCode + "')";
  2543. }
  2544. else
  2545. {
  2546. sql += ")";
  2547. }
  2548. break;
  2549. case "9"://需履职界定表
  2550. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2551. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2552. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSatisfie=0 and F_AssignedId in(select F_ID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2553. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2554. {
  2555. sql += " and F_MainDeptId='" + userModel.F_DeptId + "' ";
  2556. }
  2557. sql += "))";
  2558. break;
  2559. case "10"://履职界定待审核表
  2560. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit=0 )";
  2561. break;
  2562. case "11"://履职界定已审核表
  2563. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit>0 )";
  2564. break;
  2565. case "12"://领导批示
  2566. sql += " and F_WorkOrderID in(select F_WorkOrderId from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=1 )";
  2567. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "ZXLD" && userModel.F_RoleCode != "DDZG")
  2568. {
  2569. sql += " and F_MainDeptId='" + userModel.F_DeptId + "'";
  2570. }
  2571. break;
  2572. #region 增加催办列表:被催办的工单可以在此列表进行显示处理,二级单位可以在此进行催办处理 20220316
  2573. case "13"://被催办的工单
  2574. if (strstate.Trim() != "" && strstate != "undefined")
  2575. {
  2576. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2577. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2578. else
  2579. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2580. }
  2581. sql += " and ReminderNum>0 and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure in (0,1)";
  2582. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  2583. {
  2584. sql += " and F_MainDeptId='" + userModel.F_DeptId + "')";
  2585. }
  2586. else
  2587. {
  2588. sql += ")";
  2589. }
  2590. break;
  2591. #endregion
  2592. }
  2593. #endregion
  2594. #region 条件
  2595. if (strworkid.Trim() != "" && strworkid != "undefined")
  2596. {
  2597. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  2598. }
  2599. if (strname.Trim() != "" && strname != "undefined")
  2600. {
  2601. sql += " and F_CusName like '%" + strname + "%' ";
  2602. }
  2603. if (strtel.Trim() != "" && strtel != "undefined")
  2604. {
  2605. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2606. }
  2607. if (strkey.Trim() != "" && strkey != "undefined")
  2608. {
  2609. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  2610. }
  2611. #region 坐席&调度员
  2612. if (strusercode.Trim() != "" && strusercode != "undefined")
  2613. {//坐席
  2614. var usercode = strusercode.Trim().Split(',');
  2615. var newusercode = "";
  2616. foreach (var item in usercode)
  2617. {
  2618. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2619. newusercode += "'" + item + "',";
  2620. }
  2621. newusercode = newusercode.Trim(',');
  2622. if (newusercode.Trim() != "" && newusercode != "undefined")
  2623. {
  2624. sql += " and F_CreateUser in (" + newusercode + ") ";
  2625. }
  2626. }
  2627. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2628. {//调度员
  2629. var ddusercode = strddusercode.Trim().Split(',');
  2630. var newusercode = "";
  2631. foreach (var item in ddusercode)
  2632. {
  2633. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2634. newusercode += "'" + item + "',";
  2635. }
  2636. newusercode = newusercode.Trim(',');
  2637. if (newusercode.Trim() != "" && newusercode != "undefined")
  2638. {
  2639. sql += " and F_AssignUser in(" + newusercode + ") ";
  2640. }
  2641. }
  2642. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2643. //{
  2644. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2645. //}
  2646. #endregion
  2647. if (source != 0)
  2648. {
  2649. sql += " and F_InfoSource = '" + source + "' ";
  2650. }
  2651. if (keyid != 0)
  2652. {
  2653. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  2654. }
  2655. if (type != 0)
  2656. {
  2657. sql += " and F_InfoType = '" + type + "' ";
  2658. }
  2659. if (bigtype != 0)
  2660. {
  2661. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2662. }
  2663. if (smalltype != 0)
  2664. {
  2665. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2666. }
  2667. if (sourcearea != 0)
  2668. {
  2669. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2670. }
  2671. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2672. {
  2673. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  2674. }
  2675. if (strendtime.Trim() != "" && strendtime != "undefined")
  2676. {
  2677. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  2678. }
  2679. if(deptid!=0)
  2680. {
  2681. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2682. }
  2683. if (strpageindex.Trim() != "")
  2684. {
  2685. pageindex = Convert.ToInt32(strpageindex);
  2686. }
  2687. if (strpagesize.Trim() != "")
  2688. {
  2689. pagesize = Convert.ToInt32(strpagesize);
  2690. }
  2691. #endregion
  2692. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2693. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2694. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2695. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_Scanning,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  2696. if (isdc > 0)
  2697. {
  2698. var top = " "; var orderby = " order by F_CreateTime";
  2699. if (sql == " and F_IsDelete=0 ")
  2700. {
  2701. top = " top 1000 "; orderby += " desc ";
  2702. }
  2703. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2704. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  2705. + " (select top 1 F_Situation from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_CreateTime) 办理结果,"
  2706. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 then '基本满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  2707. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  2708. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  2709. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2710. if (msg == "")
  2711. {
  2712. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  2713. //{
  2714. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  2715. //}
  2716. return Success("导出成功");
  2717. }
  2718. else
  2719. {
  2720. return Error("导出失败");
  2721. }
  2722. }
  2723. int recordCount = 0;
  2724. dt = BLL.PagerBLL.GetListPager(
  2725. "T_Bus_WorkOrder WITH(NOLOCK)",
  2726. "F_WorkOrderId",
  2727. cols,
  2728. sql,
  2729. sort ,
  2730. pagesize,
  2731. pageindex,
  2732. true,
  2733. out recordCount);
  2734. #region 声音文件
  2735. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2736. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2737. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2738. dt.Columns.Add("OverState", typeof(string));//超时状态
  2739. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2740. dt.Columns.Add("GapTime", typeof(string));//时间差
  2741. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2742. dt.Columns.Add("PDState", typeof(string));//派单状态
  2743. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2744. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  2745. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2746. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2747. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2748. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2749. foreach (DataRow dr in dt.Rows)
  2750. {
  2751. //获取最新交办信息
  2752. string iszbdw = "0";
  2753. string ispd = "";
  2754. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2755. if (state > 1)
  2756. {
  2757. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  2758. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2759. if (dtjb.Rows.Count > 0)
  2760. {
  2761. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  2762. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2763. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2764. {
  2765. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2766. }
  2767. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2768. dr["LimitTime"] = dtjb.Rows[0]["F_LimitTime"].ToString();
  2769. #region
  2770. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  2771. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  2772. //if (deptinfo != null)
  2773. //{
  2774. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  2775. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  2776. //}
  2777. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2778. //{
  2779. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  2780. // string dns = string.Empty;
  2781. // foreach (string strid in strids)
  2782. // {
  2783. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  2784. // if (dinfo != null)
  2785. // {
  2786. // if (string.IsNullOrEmpty(dns))
  2787. // {
  2788. // dns = dinfo.F_DeptName;//交办单位
  2789. // }
  2790. // else
  2791. // {
  2792. // dns += "," + dinfo.F_DeptName;//交办单位
  2793. // }
  2794. // }
  2795. // }
  2796. // dr["OtherDeptName"] = dns;
  2797. //}
  2798. #endregion
  2799. #region
  2800. //if (state < 6 || state == 8)
  2801. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2802. {
  2803. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2804. dr["LimitTime"] = lt;
  2805. if (!string.IsNullOrWhiteSpace(lt))
  2806. {
  2807. var ltime = DateTime.Parse(lt);
  2808. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2809. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2810. if (tss < 0) { tss = -tss; }
  2811. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2812. if (ltime > DateTime.Now)
  2813. {
  2814. if (configcs != null)
  2815. {
  2816. int cs = Int32.Parse(configcs.F_ParamValue);
  2817. if (ts.TotalHours > cs)
  2818. {
  2819. dr["OverState"] = 1;
  2820. }
  2821. else
  2822. {
  2823. dr["OverState"] = 2;
  2824. }
  2825. }
  2826. dr["GapTime"] = "剩余" + gshsj;
  2827. }
  2828. else
  2829. {
  2830. dr["OverState"] = 3;
  2831. dr["GapTime"] = "超时" + gshsj;
  2832. }
  2833. }
  2834. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  2835. dr["PDState"] = ispd;
  2836. }
  2837. if (state == (int)EnumWorkState.finish)
  2838. {
  2839. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2840. var dttime = DateTime.Now;
  2841. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2842. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2843. if (!string.IsNullOrWhiteSpace(lt))
  2844. {
  2845. var ltime = DateTime.Parse(lt);
  2846. TimeSpan ts = ltime.Subtract(dttime);
  2847. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2848. if (tss < 0) { tss = -tss; }
  2849. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2850. if (ltime < dttime)
  2851. {
  2852. dr["OverState"] = 3;
  2853. dr["GapTime"] = "超时" + gshsj;
  2854. }
  2855. }
  2856. }
  2857. #endregion
  2858. }
  2859. }
  2860. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2861. {
  2862. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  2863. }
  2864. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2865. {
  2866. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2867. }
  2868. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  2869. {
  2870. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  2871. dr["IsFiles"] = 1;
  2872. else
  2873. dr["IsFiles"] = 0;
  2874. }
  2875. else
  2876. {
  2877. dr["IsFiles"] = 0;
  2878. }
  2879. //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";
  2880. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  2881. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2882. if (Int32.Parse(strtab) < 1)
  2883. {
  2884. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2885. #region 判断是否存在待督办
  2886. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2887. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2888. if (recount > 0 && butt != null)
  2889. btns.Remove(butt);
  2890. #endregion
  2891. }
  2892. else
  2893. {
  2894. if (Int32.Parse(strtab) == 9)
  2895. {//需履职界定
  2896. btns.Add(ButtonGroup.perform());
  2897. }
  2898. else if (Int32.Parse(strtab) == 10)
  2899. {//履职界定待审核
  2900. btns.Add(ButtonGroup.performaudit());
  2901. }
  2902. else if (Int32.Parse(strtab) == 12)
  2903. {//领导批示
  2904. btns.Add(ButtonGroup.subreload());
  2905. }
  2906. else if (Int32.Parse(strtab) == 4)
  2907. {//履职界定待审核
  2908. if (dr["F_WorkState"].ToString()=="6")
  2909. btns.Add(ButtonGroup.visit());
  2910. if (dr["F_WorkState"].ToString() == "7"|| dr["F_WorkState"].ToString() == "9")
  2911. {
  2912. if (userModel.F_RoleCode.ToUpper() == "WLDW")
  2913. btns.Add(ButtonGroup.Upload());
  2914. }
  2915. }
  2916. else if (Int32.Parse(strtab) == 7)
  2917. {//履职界定待审核
  2918. btns.Add(ButtonGroup.auditdelay());
  2919. }
  2920. else if (Int32.Parse(strtab) == 13)
  2921. {//工单催办
  2922. if (userModel.F_RoleCode.ToUpper() == "DDZG" || userModel.F_RoleCode.ToUpper() == "GLY")
  2923. {
  2924. btns.Add(ButtonGroup.Reminder());
  2925. }
  2926. else
  2927. {
  2928. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  2929. btns.Add(ButtonGroup.Reminder());
  2930. }
  2931. }
  2932. btns.Add(ButtonGroup.query());
  2933. }
  2934. dr["Buttons"] = btns;
  2935. }
  2936. #endregion
  2937. var obj = new
  2938. {
  2939. state = "success",
  2940. message = "成功",
  2941. rows = dt,
  2942. total = recordCount
  2943. };
  2944. return Content(obj.ToJson());
  2945. }
  2946. /// <summary>
  2947. /// 获取办理数量、催办数量、未上传数量
  2948. /// </summary>
  2949. /// <returns></returns>
  2950. [Authority]
  2951. public ActionResult GetDcsCount()
  2952. {
  2953. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2954. // int userId = 751;
  2955. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  2956. //获取待办理工单数量
  2957. string sql = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and F_WorkState in (2,4,8) and F_MainDeptId="+userModel.F_DeptId;
  2958. //获取催办数量
  2959. string sql1 = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and ReminderNum>0 and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsSure in (0,1) and F_MainDeptId=" + userModel.F_DeptId + ") ";
  2960. //扫描件未上传数量
  2961. string sql2 = " select count(*) dblcount from T_Bus_WorkOrder where F_IsDelete=0 and F_Files ='' and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) and F_CreateUser=" + userModel.F_UserCode + ") ";
  2962. #region 获取待办理数量
  2963. var dbldatable = DbHelperSQL.Query(sql).Tables[0];
  2964. var dblrow = dbldatable.Rows;
  2965. ///待办理数量
  2966. var dblcount = dblrow[0]["dblcount"].ToString();
  2967. #endregion
  2968. #region 获取催办数量
  2969. var cbdatable = DbHelperSQL.Query(sql1).Tables[0];
  2970. var cblrow = cbdatable.Rows;
  2971. ///催办数量
  2972. var cblcount = cblrow[0]["dblcount"].ToString();
  2973. #endregion
  2974. #region 扫描件未上传数量
  2975. var smjdatable = DbHelperSQL.Query(sql2).Tables[0];
  2976. var smjlrow = smjdatable.Rows;
  2977. ///扫描件未上传数量
  2978. var smjcount = smjlrow[0]["dblcount"].ToString();
  2979. #endregion
  2980. var obj = new
  2981. {
  2982. state = "success",
  2983. message = "成功",
  2984. dblcount= dblcount,
  2985. cblcount= cblcount,
  2986. smjcount= smjcount
  2987. };
  2988. return Content(obj.ToJson());
  2989. }
  2990. /// <summary>
  2991. /// 获取单位处理列表
  2992. /// </summary>
  2993. /// <returns></returns>
  2994. [Authority]
  2995. public ActionResult GetXBDWDealList(int isdc = 0)
  2996. {
  2997. DataTable dt = new DataTable();
  2998. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  2999. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3000. string sql = " and F_IsDelete=0";
  3001. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3002. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3003. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3004. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3005. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3006. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3007. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3008. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3009. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3010. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3011. int source = RequestString.GetInt("source", 0);
  3012. int keyid = RequestString.GetInt("keyid", 0);
  3013. int type = RequestString.GetInt("type", 0);
  3014. int bigtype = RequestString.GetInt("bigtype", 0);
  3015. int smalltype = RequestString.GetInt("smalltype", 0);
  3016. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3017. int deptid = RequestString.GetInt("deptid", 0);
  3018. int timesort = RequestString.GetInt("timesort", -1);
  3019. string sort = "ORDER BY F_CreateTime ASC";
  3020. if (timesort == 0)
  3021. sort = "ORDER BY LimitTime ASC";
  3022. else if (timesort == 1)
  3023. sort = "ORDER BY F_CreateTime DESC";
  3024. string strpageindex = RequestString.GetQueryString("page");
  3025. int pageindex = 1;
  3026. string strpagesize = RequestString.GetQueryString("pagesize");
  3027. int pagesize = 10;
  3028. switch (strtab)
  3029. {
  3030. case "0"://待处理工单
  3031. int isyq = RequestString.GetInt("isyq", -1);
  3032. if (strstate.Trim() != "" && strstate != "undefined")
  3033. {
  3034. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3035. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3036. else
  3037. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3038. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3039. }
  3040. else
  3041. {
  3042. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  3043. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3044. //sql += " and F_WorkState in (2,4,8)";
  3045. }
  3046. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3047. + " ISNULL(F_FeedbackTime, '')='' ";
  3048. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3049. {
  3050. sql += " and F_DeptId =" + userModel.F_DeptId;
  3051. }
  3052. if (isyq != -1)
  3053. {
  3054. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3055. }
  3056. else
  3057. {
  3058. sql += ")";
  3059. }
  3060. break;
  3061. case "1"://已办理的工单
  3062. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  3063. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3064. {
  3065. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3066. }
  3067. else
  3068. {
  3069. sql += ")";
  3070. }
  3071. break;
  3072. }
  3073. if(deptid!=0)
  3074. {
  3075. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3076. }
  3077. if (strworkid.Trim() != "" && strworkid != "undefined")
  3078. {
  3079. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3080. }
  3081. if (strname.Trim() != "" && strname != "undefined")
  3082. {
  3083. sql += " and F_CusName like '%" + strname + "%' ";
  3084. }
  3085. if (strtel.Trim() != "" && strtel != "undefined")
  3086. {
  3087. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3088. }
  3089. if (strkey.Trim() != "" && strkey != "undefined")
  3090. {
  3091. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3092. }
  3093. #region 坐席&调度员
  3094. if (strusercode.Trim() != "" && strusercode != "undefined")
  3095. {//坐席
  3096. var usercode = strusercode.Trim().Split(',');
  3097. var newusercode = "";
  3098. foreach (var item in usercode)
  3099. {
  3100. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3101. newusercode += "'" + item + "',";
  3102. }
  3103. newusercode = newusercode.Trim(',');
  3104. if (newusercode.Trim() != "" && newusercode != "undefined")
  3105. {
  3106. sql += " and F_CreateUser in (" + newusercode + ") ";
  3107. }
  3108. }
  3109. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3110. {//调度员
  3111. var ddusercode = strddusercode.Trim().Split(',');
  3112. var newusercode = "";
  3113. foreach (var item in ddusercode)
  3114. {
  3115. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3116. newusercode += "'" + item + "',";
  3117. }
  3118. newusercode = newusercode.Trim(',');
  3119. if (newusercode.Trim() != "" && newusercode != "undefined")
  3120. {
  3121. sql += " and F_AssignUser in(" + newusercode + ") ";
  3122. }
  3123. }
  3124. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3125. //{
  3126. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3127. //}
  3128. #endregion
  3129. if (source != 0)
  3130. {
  3131. sql += " and F_InfoSource = '" + source + "' ";
  3132. }
  3133. if (keyid != 0)
  3134. {
  3135. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3136. }
  3137. if (type != 0)
  3138. {
  3139. sql += " and F_InfoType = '" + type + "' ";
  3140. }
  3141. if (bigtype != 0)
  3142. {
  3143. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3144. }
  3145. if (smalltype != 0)
  3146. {
  3147. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3148. }
  3149. if (sourcearea != 0)
  3150. {
  3151. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3152. }
  3153. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3154. {
  3155. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3156. }
  3157. if (strendtime.Trim() != "" && strendtime != "undefined")
  3158. {
  3159. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3160. }
  3161. if (strpageindex.Trim() != "")
  3162. {
  3163. pageindex = Convert.ToInt32(strpageindex);
  3164. }
  3165. if (strpagesize.Trim() != "")
  3166. {
  3167. pagesize = Convert.ToInt32(strpagesize);
  3168. }
  3169. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3170. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3171. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3172. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  3173. if (isdc > 0)
  3174. {
  3175. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3176. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3177. if (msg == "")
  3178. {
  3179. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3180. //{
  3181. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3182. //}
  3183. return Success("导出成功");
  3184. }
  3185. else
  3186. {
  3187. return Error("导出失败");
  3188. }
  3189. }
  3190. int recordCount = 0;
  3191. dt = BLL.PagerBLL.GetListPager(
  3192. "T_Bus_WorkOrder WITH(NOLOCK)",
  3193. "F_WorkOrderId",
  3194. cols,
  3195. sql,
  3196. sort ,
  3197. pagesize,
  3198. pageindex,
  3199. true,
  3200. out recordCount);
  3201. #region 声音文件
  3202. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3203. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3204. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3205. dt.Columns.Add("OverState", typeof(string));//超时状态
  3206. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3207. dt.Columns.Add("GapTime", typeof(string));//时间差
  3208. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3209. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3210. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  3211. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3212. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3213. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3214. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3215. foreach (DataRow dr in dt.Rows)
  3216. {
  3217. //获取最新交办信息
  3218. string iszbdw = "0";
  3219. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3220. if (state > 1)
  3221. {
  3222. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  3223. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3224. if (dtjb.Rows.Count > 0)
  3225. {
  3226. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3227. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3228. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3229. {
  3230. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3231. }
  3232. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3233. #region
  3234. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3235. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3236. //if (deptinfo != null)
  3237. //{
  3238. // if (did == userModel.F_DeptId) { iszbdw = "1"; }
  3239. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3240. //}
  3241. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3242. //{
  3243. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3244. // string dns = string.Empty;
  3245. // foreach (string strid in strids)
  3246. // {
  3247. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3248. // if (dinfo != null)
  3249. // {
  3250. // if (string.IsNullOrEmpty(dns))
  3251. // {
  3252. // dns = dinfo.F_DeptName;//交办单位
  3253. // }
  3254. // else
  3255. // {
  3256. // dns += "," + dinfo.F_DeptName;//交办单位
  3257. // }
  3258. // }
  3259. // }
  3260. // dr["OtherDeptName"] = dns;
  3261. //}
  3262. #endregion
  3263. #region
  3264. //if (state < 6 || state == 8)
  3265. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3266. {
  3267. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3268. dr["LimitTime"] = lt;
  3269. if (!string.IsNullOrWhiteSpace(lt))
  3270. {
  3271. var ltime = DateTime.Parse(lt);
  3272. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3273. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3274. if (tss < 0) { tss = -tss; }
  3275. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3276. if (ltime > DateTime.Now)
  3277. {
  3278. if (configcs != null)
  3279. {
  3280. int cs = Int32.Parse(configcs.F_ParamValue);
  3281. if (ts.TotalHours > cs)
  3282. {
  3283. dr["OverState"] = 1;
  3284. }
  3285. else
  3286. {
  3287. dr["OverState"] = 2;
  3288. }
  3289. }
  3290. dr["GapTime"] = "剩余" + gshsj;
  3291. }
  3292. else
  3293. {
  3294. dr["OverState"] = 3;
  3295. dr["GapTime"] = "超时" + gshsj;
  3296. }
  3297. }
  3298. }
  3299. if (state == (int)EnumWorkState.finish)
  3300. {
  3301. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3302. var dttime = DateTime.Now;
  3303. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3304. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3305. dr["LimitTime"] = lt;
  3306. if (!string.IsNullOrWhiteSpace(lt))
  3307. {
  3308. var ltime = DateTime.Parse(lt);
  3309. TimeSpan ts = ltime.Subtract(dttime);
  3310. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3311. if (tss < 0) { tss = -tss; }
  3312. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3313. if (ltime < dttime)
  3314. {
  3315. dr["OverState"] = 3;
  3316. dr["GapTime"] = "超时" + gshsj;
  3317. }
  3318. }
  3319. }
  3320. #endregion
  3321. }
  3322. }
  3323. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3324. {
  3325. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3326. }
  3327. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3328. {
  3329. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3330. }
  3331. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3332. {
  3333. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3334. dr["IsFiles"] = 1;
  3335. else
  3336. dr["IsFiles"] = 0;
  3337. }
  3338. else
  3339. {
  3340. dr["IsFiles"] = 0;
  3341. }
  3342. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3343. if (Int32.Parse(strtab) < 1)
  3344. {
  3345. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  3346. #region 判断是否存在待督办
  3347. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3348. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3349. if (recount > 0 && butt != null)
  3350. btns.Remove(butt);
  3351. #endregion
  3352. }
  3353. else
  3354. {
  3355. btns.Add(ButtonGroup.query());
  3356. }
  3357. dr["Buttons"] = btns;
  3358. }
  3359. #endregion
  3360. var obj = new
  3361. {
  3362. state = "success",
  3363. message = "成功",
  3364. rows = dt,
  3365. total = recordCount
  3366. };
  3367. return Content(obj.ToJson());
  3368. }
  3369. /// <summary>
  3370. /// 获取单位主办协办未处理工单列表
  3371. /// </summary>
  3372. /// <returns></returns>
  3373. [Authority]
  3374. public ActionResult GetDWNoDealList(int isdc = 0)
  3375. {
  3376. DataTable dt = new DataTable();
  3377. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3378. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3379. string sql = " and F_IsDelete=0";
  3380. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3381. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3382. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3383. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3384. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3385. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3386. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3387. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3388. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3389. int source = RequestString.GetInt("source", 0);
  3390. int keyid = RequestString.GetInt("keyid", 0);
  3391. int type = RequestString.GetInt("type", 0);
  3392. int bigtype = RequestString.GetInt("bigtype", 0);
  3393. int smalltype = RequestString.GetInt("smalltype", 0);
  3394. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3395. int deptid = RequestString.GetInt("deptid", 0);
  3396. int timesort = RequestString.GetInt("timesort", -1);
  3397. string sort = "ORDER BY F_CreateTime ASC";
  3398. if (timesort == 0)
  3399. sort = "ORDER BY LimitTime ASC";
  3400. else if (timesort == 1)
  3401. sort = "ORDER BY F_CreateTime DESC";
  3402. string strpageindex = RequestString.GetQueryString("page");
  3403. int pageindex = 1;
  3404. string strpagesize = RequestString.GetQueryString("pagesize");
  3405. int pagesize = 10;
  3406. if (userModel.F_RoleCode == "ZXHWY")
  3407. {
  3408. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  3409. }
  3410. #region 坐席&调度员
  3411. if (strusercode.Trim() != "" && strusercode != "undefined")
  3412. {//坐席
  3413. var usercode = strusercode.Trim().Split(',');
  3414. var newusercode = "";
  3415. foreach (var item in usercode)
  3416. {
  3417. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3418. newusercode += "'" + item + "',";
  3419. }
  3420. newusercode = newusercode.Trim(',');
  3421. if (newusercode.Trim() != "" && newusercode != "undefined")
  3422. {
  3423. sql += " and F_CreateUser in (" + newusercode + ") ";
  3424. }
  3425. }
  3426. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3427. {//调度员
  3428. var ddusercode = strddusercode.Trim().Split(',');
  3429. var newusercode = "";
  3430. foreach (var item in ddusercode)
  3431. {
  3432. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3433. newusercode += "'" + item + "',";
  3434. }
  3435. newusercode = newusercode.Trim(',');
  3436. if (newusercode.Trim() != "" && newusercode != "undefined")
  3437. {
  3438. sql += " and F_AssignUser in(" + newusercode + ") ";
  3439. }
  3440. }
  3441. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3442. //{
  3443. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3444. //}
  3445. #endregion
  3446. sql += " and ( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  3447. if (userModel.F_RoleCode == "WLDW")
  3448. {
  3449. sql += " and (F_MainDeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3450. }
  3451. else if (deptid != 0)
  3452. {
  3453. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3454. }
  3455. sql += ") or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' ";
  3456. if (userModel.F_RoleCode == "WLDW")
  3457. {
  3458. sql += " and (F_DeptId = '" + userModel.F_DeptId + "' or F_MainDeptID3='" + userModel.F_DeptId + "')";
  3459. }
  3460. else if (deptid != 0)
  3461. {
  3462. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3463. }
  3464. sql += "))";
  3465. if (strstate.Trim() != "" && strstate != "undefined")
  3466. {
  3467. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3468. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3469. else
  3470. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3471. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3472. }
  3473. else
  3474. {
  3475. sql += " and F_WorkState in (2,4,8)";
  3476. }
  3477. if (strworkid.Trim() != "" && strworkid != "undefined")
  3478. {
  3479. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3480. }
  3481. if (strname.Trim() != "" && strname != "undefined")
  3482. {
  3483. sql += " and F_CusName like '%" + strname + "%' ";
  3484. }
  3485. if (strtel.Trim() != "" && strtel != "undefined")
  3486. {
  3487. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3488. }
  3489. if (strkey.Trim() != "" && strkey != "undefined")
  3490. {
  3491. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3492. }
  3493. if (source != 0)
  3494. {
  3495. sql += " and F_InfoSource = '" + source + "' ";
  3496. }
  3497. if (keyid != 0)
  3498. {
  3499. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3500. }
  3501. if (type != 0)
  3502. {
  3503. sql += " and F_InfoType = '" + type + "' ";
  3504. }
  3505. if (bigtype != 0)
  3506. {
  3507. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3508. }
  3509. if (smalltype != 0)
  3510. {
  3511. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3512. }
  3513. if (sourcearea != 0)
  3514. {
  3515. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3516. }
  3517. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3518. {
  3519. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3520. }
  3521. if (strendtime.Trim() != "" && strendtime != "undefined")
  3522. {
  3523. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3524. }
  3525. if (strpageindex.Trim() != "")
  3526. {
  3527. pageindex = Convert.ToInt32(strpageindex);
  3528. }
  3529. if (strpagesize.Trim() != "")
  3530. {
  3531. pagesize = Convert.ToInt32(strpagesize);
  3532. }
  3533. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  3534. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  3535. if (isdc > 0)
  3536. {
  3537. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3538. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3539. if (msg == "")
  3540. {
  3541. //if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  3542. //{
  3543. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  3544. //}
  3545. return Success("导出成功");
  3546. }
  3547. else
  3548. {
  3549. return Error("导出失败");
  3550. }
  3551. }
  3552. int recordCount = 0;
  3553. dt = BLL.PagerBLL.GetListPager(
  3554. "T_Bus_WorkOrder WITH(NOLOCK)",
  3555. "F_WorkOrderId",
  3556. cols,
  3557. sql,
  3558. sort ,
  3559. pagesize,
  3560. pageindex,
  3561. true,
  3562. out recordCount);
  3563. #region 声音文件
  3564. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3565. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3566. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3567. dt.Columns.Add("OverState", typeof(string));//超时状态
  3568. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3569. dt.Columns.Add("GapTime", typeof(string));//时间差
  3570. dt.Columns.Add("FilePath", typeof(string));
  3571. dt.Columns.Add("Buttons", typeof(object));
  3572. dt.Columns.Add("IsFiles", typeof(object));
  3573. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3574. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3575. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3576. foreach (DataRow dr in dt.Rows)
  3577. {
  3578. //获取最新交办信息
  3579. string iszbdw = "0";
  3580. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3581. if (state > 1)
  3582. {
  3583. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  3584. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3585. if (dtjb.Rows.Count > 0)
  3586. {
  3587. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3588. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3589. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3590. {
  3591. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3592. }
  3593. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3594. #region
  3595. //if (state < 6 || state == 8)
  3596. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3597. {
  3598. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3599. dr["LimitTime"] = lt;
  3600. if (!string.IsNullOrWhiteSpace(lt))
  3601. {
  3602. var ltime = DateTime.Parse(lt);
  3603. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3604. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3605. if (tss < 0) { tss = -tss; }
  3606. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3607. if (ltime > DateTime.Now)
  3608. {
  3609. if (configcs != null)
  3610. {
  3611. int cs = Int32.Parse(configcs.F_ParamValue);
  3612. if (ts.TotalHours > cs)
  3613. {
  3614. dr["OverState"] = 1;
  3615. }
  3616. else
  3617. {
  3618. dr["OverState"] = 2;
  3619. }
  3620. }
  3621. dr["GapTime"] = "剩余" + gshsj;
  3622. }
  3623. else
  3624. {
  3625. dr["OverState"] = 3;
  3626. dr["GapTime"] = "超时" + gshsj;
  3627. }
  3628. }
  3629. }
  3630. if (state == (int)EnumWorkState.finish)
  3631. {
  3632. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3633. var dttime = DateTime.Now;
  3634. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3635. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3636. dr["LimitTime"] = lt;
  3637. if (!string.IsNullOrWhiteSpace(lt))
  3638. {
  3639. var ltime = DateTime.Parse(lt);
  3640. TimeSpan ts = ltime.Subtract(dttime);
  3641. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3642. if (tss < 0) { tss = -tss; }
  3643. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3644. if (ltime < dttime)
  3645. {
  3646. dr["OverState"] = 3;
  3647. dr["GapTime"] = "超时" + gshsj;
  3648. }
  3649. }
  3650. }
  3651. #endregion
  3652. }
  3653. }
  3654. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3655. {
  3656. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3657. }
  3658. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3659. {
  3660. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3661. }
  3662. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3663. {
  3664. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3665. dr["IsFiles"] = 1;
  3666. else
  3667. dr["IsFiles"] = 0;
  3668. }
  3669. else
  3670. {
  3671. dr["IsFiles"] = 0;
  3672. }
  3673. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3674. btns.Add(ButtonGroup.query());
  3675. dr["Buttons"] = btns;
  3676. }
  3677. #endregion
  3678. var obj = new
  3679. {
  3680. state = "success",
  3681. message = "成功",
  3682. rows = dt,
  3683. total = recordCount
  3684. };
  3685. return Content(obj.ToJson());
  3686. }
  3687. /// <summary>
  3688. /// 获取二级单位处理列表
  3689. /// </summary>
  3690. /// <returns></returns>
  3691. [Authority]
  3692. public ActionResult GetEJDWDealList(int isdc = 0)
  3693. {
  3694. DataTable dt = new DataTable();
  3695. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  3696. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  3697. string sql = " and F_IsDelete=0";
  3698. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3699. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3700. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3701. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3702. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3703. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3704. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3705. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3706. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3707. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3708. int source = RequestString.GetInt("source", 0);
  3709. int keyid = RequestString.GetInt("keyid", 0);
  3710. int type = RequestString.GetInt("type", 0);
  3711. int bigtype = RequestString.GetInt("bigtype", 0);
  3712. int smalltype = RequestString.GetInt("smalltype", 0);
  3713. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3714. int deptid = RequestString.GetInt("deptid", 0);
  3715. int timesort = RequestString.GetInt("timesort", -1);
  3716. string sort = "ORDER BY F_CreateTime ASC";
  3717. if (timesort == 0)
  3718. sort = "ORDER BY LimitTime ASC";
  3719. else if (timesort == 1)
  3720. sort = "ORDER BY F_CreateTime DESC";
  3721. string strpageindex = RequestString.GetQueryString("page");
  3722. int pageindex = 1;
  3723. string strpagesize = RequestString.GetQueryString("pagesize");
  3724. int pagesize = 10;
  3725. #region 模块
  3726. switch (strtab)
  3727. {
  3728. case "0"://待处理工单
  3729. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  3730. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3731. //sql += " and F_WorkState in (4,5) ";
  3732. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3733. {
  3734. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3735. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + userModel.F_DeptId + " and F_IsSure in (0,1))";
  3736. }
  3737. break;
  3738. case "1"://已办理的工单
  3739. if (strstate.Trim() != "" && strstate != "undefined")
  3740. {
  3741. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  3742. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3743. else
  3744. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3745. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3746. }
  3747. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  3748. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  3749. {
  3750. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  3751. }
  3752. else
  3753. {
  3754. sql += ")";
  3755. }
  3756. break;
  3757. }
  3758. #endregion
  3759. #region 条件
  3760. if (strworkid.Trim() != "" && strworkid != "undefined")
  3761. {
  3762. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  3763. }
  3764. if (strname.Trim() != "" && strname != "undefined")
  3765. {
  3766. sql += " and F_CusName like '%" + strname + "%' ";
  3767. }
  3768. if (strtel.Trim() != "" && strtel != "undefined")
  3769. {
  3770. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3771. }
  3772. if (strkey.Trim() != "" && strkey != "undefined")
  3773. {
  3774. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  3775. }
  3776. #region 坐席&调度员
  3777. if (strusercode.Trim() != "" && strusercode != "undefined")
  3778. {//坐席
  3779. var usercode = strusercode.Trim().Split(',');
  3780. var newusercode = "";
  3781. foreach (var item in usercode)
  3782. {
  3783. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3784. newusercode += "'" + item + "',";
  3785. }
  3786. newusercode = newusercode.Trim(',');
  3787. if (newusercode.Trim() != "" && newusercode != "undefined")
  3788. {
  3789. sql += " and F_CreateUser in (" + newusercode + ") ";
  3790. }
  3791. }
  3792. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3793. {//调度员
  3794. var ddusercode = strddusercode.Trim().Split(',');
  3795. var newusercode = "";
  3796. foreach (var item in ddusercode)
  3797. {
  3798. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3799. newusercode += "'" + item + "',";
  3800. }
  3801. newusercode = newusercode.Trim(',');
  3802. if (newusercode.Trim() != "" && newusercode != "undefined")
  3803. {
  3804. sql += " and F_AssignUser in(" + newusercode + ") ";
  3805. }
  3806. }
  3807. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3808. //{
  3809. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3810. //}
  3811. #endregion
  3812. if (source != 0)
  3813. {
  3814. sql += " and F_InfoSource = '" + source + "' ";
  3815. }
  3816. if (keyid != 0)
  3817. {
  3818. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  3819. }
  3820. if (type != 0)
  3821. {
  3822. sql += " and F_InfoType = '" + type + "' ";
  3823. }
  3824. if (bigtype != 0)
  3825. {
  3826. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3827. }
  3828. if (smalltype != 0)
  3829. {
  3830. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3831. }
  3832. if (sourcearea != 0)
  3833. {
  3834. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3835. }
  3836. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3837. {
  3838. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  3839. }
  3840. if (strendtime.Trim() != "" && strendtime != "undefined")
  3841. {
  3842. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  3843. }
  3844. if (deptid != 0)
  3845. {
  3846. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='"+deptid+"')";
  3847. }
  3848. if (strpageindex.Trim() != "")
  3849. {
  3850. pageindex = Convert.ToInt32(strpageindex);
  3851. }
  3852. if (strpagesize.Trim() != "")
  3853. {
  3854. pagesize = Convert.ToInt32(strpagesize);
  3855. }
  3856. #endregion
  3857. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3858. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3859. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3860. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  3861. if (isdc > 0)
  3862. {
  3863. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3864. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3865. if (msg == "")
  3866. {
  3867. return Success("导出成功");
  3868. }
  3869. else
  3870. {
  3871. return Error("导出失败");
  3872. }
  3873. }
  3874. int recordCount = 0;
  3875. dt = BLL.PagerBLL.GetListPager(
  3876. "T_Bus_WorkOrder WITH(NOLOCK)",
  3877. "F_WorkOrderId",
  3878. cols,
  3879. sql,
  3880. sort ,
  3881. pagesize,
  3882. pageindex,
  3883. true,
  3884. out recordCount);
  3885. #region 声音文件
  3886. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3887. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3888. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3889. dt.Columns.Add("OverState", typeof(string));//超时状态
  3890. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3891. dt.Columns.Add("GapTime", typeof(string));//时间差
  3892. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3893. dt.Columns.Add("PDState", typeof(string));//派单状态
  3894. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3895. dt.Columns.Add("IsFiles", typeof(object));//操作按钮
  3896. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3897. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3898. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3899. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3900. foreach (DataRow dr in dt.Rows)
  3901. {
  3902. //获取最新交办信息
  3903. string iszbdw = "0";
  3904. string ispd = "";
  3905. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3906. if (state > 1)
  3907. {
  3908. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  3909. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3910. if (dtjb.Rows.Count > 0)
  3911. {
  3912. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  3913. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3914. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3915. {
  3916. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3917. }
  3918. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3919. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3920. dr["LimitTime"] = lt;
  3921. #region
  3922. //if (state < 6 || state == 8)
  3923. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3924. {
  3925. if (!string.IsNullOrWhiteSpace(lt))
  3926. {
  3927. var ltime = DateTime.Parse(lt);
  3928. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3929. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3930. if (tss < 0) { tss = -tss; }
  3931. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3932. if (ltime > DateTime.Now)
  3933. {
  3934. if (configcs != null)
  3935. {
  3936. int cs = Int32.Parse(configcs.F_ParamValue);
  3937. if (ts.TotalHours > cs)
  3938. {
  3939. dr["OverState"] = 1;
  3940. }
  3941. else
  3942. {
  3943. dr["OverState"] = 2;
  3944. }
  3945. }
  3946. dr["GapTime"] = "剩余" + gshsj;
  3947. }
  3948. else
  3949. {
  3950. dr["OverState"] = 3;
  3951. dr["GapTime"] = "超时" + gshsj;
  3952. }
  3953. }
  3954. }
  3955. if (state == (int)EnumWorkState.finish)
  3956. {
  3957. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3958. var dttime = DateTime.Now;
  3959. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3960. if (!string.IsNullOrWhiteSpace(lt))
  3961. {
  3962. var ltime = DateTime.Parse(lt);
  3963. TimeSpan ts = ltime.Subtract(dttime);
  3964. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3965. if (tss < 0) { tss = -tss; }
  3966. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3967. if (ltime < dttime)
  3968. {
  3969. dr["OverState"] = 3;
  3970. dr["GapTime"] = "超时" + gshsj;
  3971. }
  3972. }
  3973. }
  3974. #endregion
  3975. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3976. dr["PDState"] = ispd;
  3977. }
  3978. }
  3979. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3980. {
  3981. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  3982. }
  3983. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3984. {
  3985. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3986. }
  3987. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  3988. {
  3989. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  3990. dr["IsFiles"] = 1;
  3991. else
  3992. dr["IsFiles"] = 0;
  3993. }
  3994. else
  3995. {
  3996. dr["IsFiles"] = 0;
  3997. }
  3998. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3999. if (Int32.Parse(strtab) < 1)
  4000. {
  4001. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4002. #region 判断是否存在待督办
  4003. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4004. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4005. if (recount > 0 && butt != null)
  4006. btns.Remove(butt);
  4007. #endregion
  4008. }
  4009. else
  4010. {
  4011. btns.Add(ButtonGroup.query());
  4012. }
  4013. dr["Buttons"] = btns;
  4014. }
  4015. #endregion
  4016. var obj = new
  4017. {
  4018. state = "success",
  4019. message = "成功",
  4020. rows = dt,
  4021. total = recordCount
  4022. };
  4023. return Content(obj.ToJson());
  4024. }
  4025. /// <summary>
  4026. /// 获取三级单位处理列表
  4027. /// </summary>
  4028. /// <returns></returns>
  4029. [Authority]
  4030. public ActionResult GetSJDWDealList(int isdc = 0)
  4031. {
  4032. DataTable dt = new DataTable();
  4033. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4034. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4035. string sql = " and F_IsDelete=0";
  4036. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4037. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4038. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4039. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4040. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4041. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4042. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4043. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4044. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4045. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4046. int source = RequestString.GetInt("source", 0);
  4047. int keyid = RequestString.GetInt("keyid", 0);
  4048. int type = RequestString.GetInt("type", 0);
  4049. int bigtype = RequestString.GetInt("bigtype", 0);
  4050. int smalltype = RequestString.GetInt("smalltype", 0);
  4051. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4052. int deptid = RequestString.GetInt("deptid", 0);
  4053. int timesort = RequestString.GetInt("timesort", -1);
  4054. string sort = "ORDER BY F_CreateTime ASC";
  4055. if (timesort == 0)
  4056. sort = "ORDER BY LimitTime ASC";
  4057. else if (timesort == 1)
  4058. sort = "ORDER BY F_CreateTime DESC";
  4059. string strpageindex = RequestString.GetQueryString("page");
  4060. int pageindex = 1;
  4061. string strpagesize = RequestString.GetQueryString("pagesize");
  4062. int pagesize = 10;
  4063. #region 模块
  4064. switch (strtab)
  4065. {
  4066. case "0"://待处理工单
  4067. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  4068. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4069. if (userModel.F_RoleCode == "EJWLDW")
  4070. {
  4071. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4072. }
  4073. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4074. {
  4075. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4076. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='"+ userModel.F_DeptId + "' and F_IsSure in (0,1)))";
  4077. if(userModel.F_RoleCode== "WLDW")
  4078. {
  4079. sql += " or (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4080. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + "))";
  4081. }
  4082. sql += ")";
  4083. }
  4084. break;
  4085. case "1"://已办理的工单
  4086. if (strstate.Trim() != "" && strstate != "undefined")
  4087. {
  4088. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4089. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4090. else
  4091. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4092. }
  4093. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  4094. if (userModel.F_RoleCode == "EJWLDW")
  4095. {
  4096. sql += " and F_MainDeptID3 ='" + userModel.F_DeptId + "' ";
  4097. }
  4098. else if (userModel.F_RoleCode == "WLDW")
  4099. {
  4100. sql += " and( (F_MainDeptID3 ='" + userModel.F_DeptId + "')"
  4101. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + userModel.F_DeptId + ")) )";
  4102. }
  4103. else if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4104. {
  4105. sql += " and F_CreateUser='" + userModel.F_UserCode + "')";
  4106. }
  4107. else
  4108. {
  4109. sql += ")";
  4110. }
  4111. break;
  4112. }
  4113. #endregion
  4114. #region 条件
  4115. if (strworkid.Trim() != "" && strworkid != "undefined")
  4116. {
  4117. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4118. }
  4119. if (strname.Trim() != "" && strname != "undefined")
  4120. {
  4121. sql += " and F_CusName like '%" + strname + "%' ";
  4122. }
  4123. if (strtel.Trim() != "" && strtel != "undefined")
  4124. {
  4125. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4126. }
  4127. if (strkey.Trim() != "" && strkey != "undefined")
  4128. {
  4129. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4130. }
  4131. #region 坐席&调度员
  4132. if (strusercode.Trim() != "" && strusercode != "undefined")
  4133. {//坐席
  4134. var usercode = strusercode.Trim().Split(',');
  4135. var newusercode = "";
  4136. foreach (var item in usercode)
  4137. {
  4138. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4139. newusercode += "'" + item + "',";
  4140. }
  4141. newusercode = newusercode.Trim(',');
  4142. if (newusercode.Trim() != "" && newusercode != "undefined")
  4143. {
  4144. sql += " and F_CreateUser in (" + newusercode + ") ";
  4145. }
  4146. }
  4147. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4148. {//调度员
  4149. var ddusercode = strddusercode.Trim().Split(',');
  4150. var newusercode = "";
  4151. foreach (var item in ddusercode)
  4152. {
  4153. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4154. newusercode += "'" + item + "',";
  4155. }
  4156. newusercode = newusercode.Trim(',');
  4157. if (newusercode.Trim() != "" && newusercode != "undefined")
  4158. {
  4159. sql += " and F_AssignUser in(" + newusercode + ") ";
  4160. }
  4161. }
  4162. #endregion
  4163. if (source != 0)
  4164. {
  4165. sql += " and F_InfoSource = '" + source + "' ";
  4166. }
  4167. if (keyid != 0)
  4168. {
  4169. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4170. }
  4171. if (type != 0)
  4172. {
  4173. sql += " and F_InfoType = '" + type + "' ";
  4174. }
  4175. if (bigtype != 0)
  4176. {
  4177. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4178. }
  4179. if (smalltype != 0)
  4180. {
  4181. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4182. }
  4183. if (sourcearea != 0)
  4184. {
  4185. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4186. }
  4187. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4188. {
  4189. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4190. }
  4191. if (strendtime.Trim() != "" && strendtime != "undefined")
  4192. {
  4193. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4194. }
  4195. if (deptid != 0)
  4196. {
  4197. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4198. }
  4199. if (strpageindex.Trim() != "")
  4200. {
  4201. pageindex = Convert.ToInt32(strpageindex);
  4202. }
  4203. if (strpagesize.Trim() != "")
  4204. {
  4205. pagesize = Convert.ToInt32(strpagesize);
  4206. }
  4207. #endregion
  4208. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4209. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  4210. if (isdc > 0)
  4211. {
  4212. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4213. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4214. if (msg == "")
  4215. {
  4216. return Success("导出成功");
  4217. }
  4218. else
  4219. {
  4220. return Error("导出失败");
  4221. }
  4222. }
  4223. int recordCount = 0;
  4224. dt = BLL.PagerBLL.GetListPager(
  4225. "T_Bus_WorkOrder WITH(NOLOCK)",
  4226. "F_WorkOrderId",
  4227. cols,
  4228. sql,
  4229. sort ,
  4230. pagesize,
  4231. pageindex,
  4232. true,
  4233. out recordCount);
  4234. #region 声音文件
  4235. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4236. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4237. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4238. dt.Columns.Add("OverState", typeof(string));//超时状态
  4239. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4240. dt.Columns.Add("GapTime", typeof(string));//时间差
  4241. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4242. dt.Columns.Add("PDState", typeof(string));//派单状态
  4243. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4244. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4245. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4246. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4247. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4248. foreach (DataRow dr in dt.Rows)
  4249. {
  4250. //获取最新交办信息
  4251. string iszbdw = "0";
  4252. string ispd = "";
  4253. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4254. if (state > 1)
  4255. {
  4256. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  4257. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4258. if (dtjb.Rows.Count > 0)
  4259. {
  4260. if (dtjb.Rows[0]["F_MainDeptId"].ToString()==userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4261. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4262. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4263. {
  4264. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4265. }
  4266. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4267. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4268. dr["LimitTime"] = lt;
  4269. #region
  4270. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4271. {
  4272. if (!string.IsNullOrWhiteSpace(lt))
  4273. {
  4274. var ltime = DateTime.Parse(lt);
  4275. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4276. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4277. if (tss < 0) { tss = -tss; }
  4278. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4279. if (ltime > DateTime.Now)
  4280. {
  4281. if (configcs != null)
  4282. {
  4283. int cs = Int32.Parse(configcs.F_ParamValue);
  4284. if (ts.TotalHours > cs)
  4285. {
  4286. dr["OverState"] = 1;
  4287. }
  4288. else
  4289. {
  4290. dr["OverState"] = 2;
  4291. }
  4292. }
  4293. dr["GapTime"] = "剩余" + gshsj;
  4294. }
  4295. else
  4296. {
  4297. dr["OverState"] = 3;
  4298. dr["GapTime"] = "超时" + gshsj;
  4299. }
  4300. }
  4301. }
  4302. if (state == (int)EnumWorkState.finish)
  4303. {
  4304. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4305. var dttime = DateTime.Now;
  4306. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4307. if (!string.IsNullOrWhiteSpace(lt))
  4308. {
  4309. var ltime = DateTime.Parse(lt);
  4310. TimeSpan ts = ltime.Subtract(dttime);
  4311. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4312. if (tss < 0) { tss = -tss; }
  4313. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4314. if (ltime < dttime)
  4315. {
  4316. dr["OverState"] = 3;
  4317. dr["GapTime"] = "超时" + gshsj;
  4318. }
  4319. }
  4320. }
  4321. #endregion
  4322. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4323. dr["PDState"] = ispd;
  4324. }
  4325. }
  4326. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4327. {
  4328. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4329. }
  4330. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4331. {
  4332. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4333. }
  4334. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4335. if (Int32.Parse(strtab) < 1)
  4336. {
  4337. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4338. #region 判断是否存在待督办
  4339. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4340. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4341. if (recount > 0 && butt != null)
  4342. btns.Remove(butt);
  4343. #endregion
  4344. }
  4345. else
  4346. {
  4347. btns.Add(ButtonGroup.query());
  4348. }
  4349. dr["Buttons"] = btns;
  4350. }
  4351. #endregion
  4352. var obj = new
  4353. {
  4354. state = "success",
  4355. message = "成功",
  4356. rows = dt,
  4357. total = recordCount
  4358. };
  4359. return Content(obj.ToJson());
  4360. }
  4361. /// <summary>
  4362. /// 获取自己提交工单
  4363. /// </summary>
  4364. /// <param name="isdc"></param>
  4365. /// <returns></returns>
  4366. [Authority]
  4367. public ActionResult GetSelfList(int isdc = 0)
  4368. {
  4369. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4370. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4371. DataTable dt = new DataTable();
  4372. string sql = " and F_IsDelete=0 ";
  4373. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4374. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4375. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4376. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4377. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4378. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4379. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4380. int source = RequestString.GetInt("source", 0);
  4381. int keyid = RequestString.GetInt("keyid", 0);
  4382. int type = RequestString.GetInt("type", 0);
  4383. int bigtype = RequestString.GetInt("bigtype", 0);
  4384. int smalltype = RequestString.GetInt("smalltype", 0);
  4385. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4386. int deptid = RequestString.GetInt("deptid", 0);
  4387. int dealtype = RequestString.GetInt("dealtype", -1);
  4388. int issend = RequestString.GetInt("issend", -1);
  4389. int deptlevel = RequestString.GetInt("deptlevel", 0);
  4390. int timesort = RequestString.GetInt("timesort", -1);
  4391. string sort = "ORDER BY F_CreateTime ASC";
  4392. if (timesort == 0)
  4393. sort = "ORDER BY LimitTime ASC";
  4394. else if (timesort == 1)
  4395. sort = "ORDER BY F_CreateTime DESC";
  4396. string strpageindex = RequestString.GetQueryString("page");
  4397. int pageindex = 1;
  4398. string strpagesize = RequestString.GetQueryString("pagesize");
  4399. int pagesize = 10;
  4400. #region sql 语句相关处理
  4401. if(userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG")
  4402. sql += " and F_CreateUser ='" + userModel.F_UserCode + "' ";
  4403. if (strstate.Trim() != "" && strstate != "undefined")
  4404. {
  4405. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4406. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4407. else
  4408. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4409. }
  4410. if (strworkid.Trim() != "" && strworkid != "undefined")
  4411. {
  4412. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4413. }
  4414. if (strname.Trim() != "" && strname != "undefined")
  4415. {
  4416. sql += " and F_CusName like '%" + strname + "%' ";
  4417. }
  4418. if (strtel.Trim() != "" && strtel != "undefined")
  4419. {
  4420. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4421. }
  4422. if (strkey.Trim() != "" && strkey != "undefined")
  4423. {
  4424. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4425. }
  4426. if (source != 0)
  4427. {
  4428. sql += " and F_InfoSource = '" + source + "' ";
  4429. }
  4430. if (keyid != 0)
  4431. {
  4432. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4433. }
  4434. if (type != 0)
  4435. {
  4436. sql += " and F_InfoType = '" + type + "' ";
  4437. }
  4438. if (bigtype != 0)
  4439. {
  4440. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4441. }
  4442. if (smalltype != 0)
  4443. {
  4444. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4445. }
  4446. if (sourcearea != 0)
  4447. {
  4448. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4449. }
  4450. if (deptid != 0)
  4451. {
  4452. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4453. }
  4454. if (dealtype != -1)
  4455. {
  4456. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  4457. }
  4458. if (issend != -1)
  4459. {
  4460. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  4461. }
  4462. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4463. {
  4464. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4465. }
  4466. if (strendtime.Trim() != "" && strendtime != "undefined")
  4467. {
  4468. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4469. }
  4470. #endregion
  4471. if (strpageindex.Trim() != "")
  4472. {
  4473. pageindex = Convert.ToInt32(strpageindex);
  4474. }
  4475. if (strpagesize.Trim() != "")
  4476. {
  4477. pagesize = Convert.ToInt32(strpagesize);
  4478. }
  4479. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  4480. #region 导出
  4481. if (isdc > 0)
  4482. {
  4483. var top = " "; var orderby = " order by F_CreateTime";
  4484. if (sql == " and F_IsDelete=0 ")
  4485. {
  4486. top = " top 1000 "; orderby += " desc ";
  4487. }
  4488. //20190715调整导出字段 zhengbingbing
  4489. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  4490. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_OldWorkOrderId 工单号,F_ComTitle 诉求标题,F_CusName 反映人,F_CusPhone 电话号码,F_ComContent 诉求内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4491. + " dbo.GetDeptNames(F_MainDeptId) 承办单位, "
  4492. + " (select top 1 F_Situation from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_CreateTime) 办理结果,"
  4493. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 0 then '不满意'when 2 then '基本满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 承办单位回访结果, case F_Satisfaction when 0 then '不满意'when 1 then" +
  4494. "'基本满意' when 2 then '满意' else '未评价'end 郑州回访结果"
  4495. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  4496. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4497. if (msg == "")
  4498. {
  4499. return Success("导出成功");
  4500. }
  4501. else
  4502. {
  4503. return Error("导出失败");
  4504. }
  4505. }
  4506. #endregion
  4507. int recordCount = 0;
  4508. dt = BLL.PagerBLL.GetListPager(
  4509. "T_Bus_WorkOrder WITH(NOLOCK)",
  4510. "F_WorkOrderId",
  4511. cols,
  4512. sql,
  4513. sort ,
  4514. pagesize,
  4515. pageindex,
  4516. true,
  4517. out recordCount);
  4518. #region 声音文件和交办超时
  4519. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4520. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4521. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4522. dt.Columns.Add("OverState", typeof(string));//超时状态
  4523. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4524. dt.Columns.Add("GapTime", typeof(string));//时间差
  4525. dt.Columns.Add("PDState", typeof(string));//派单状态
  4526. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4527. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4528. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4529. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4530. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4531. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4532. foreach (DataRow dr in dt.Rows)
  4533. {
  4534. string iszbdw = "0";
  4535. string ispd = "";
  4536. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4537. if (state > 1)
  4538. {
  4539. //获取最新交办信息
  4540. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  4541. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4542. if (dtjb.Rows.Count > 0)
  4543. {
  4544. if (dr["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4545. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4546. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  4547. {
  4548. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  4549. }
  4550. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4551. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4552. dr["LimitTime"] = lt;
  4553. #region 超时时限
  4554. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4555. {
  4556. if (!string.IsNullOrWhiteSpace(lt))
  4557. {
  4558. var ltime = DateTime.Parse(lt);
  4559. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4560. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4561. if (tss < 0) { tss = -tss; }
  4562. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4563. if (ltime > DateTime.Now)
  4564. {
  4565. if (configcs != null)
  4566. {
  4567. int cs = Int32.Parse(configcs.F_ParamValue);
  4568. if (ts.TotalHours > cs)
  4569. {
  4570. dr["OverState"] = 1;
  4571. }
  4572. else
  4573. {
  4574. dr["OverState"] = 2;
  4575. }
  4576. }
  4577. dr["GapTime"] = "剩余" + gshsj;
  4578. }
  4579. else
  4580. {
  4581. dr["OverState"] = 3;
  4582. dr["GapTime"] = "超时" + gshsj;
  4583. }
  4584. }
  4585. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  4586. dr["PDState"] = ispd;
  4587. }
  4588. if (state == (int)EnumWorkState.finish)
  4589. {
  4590. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4591. var dttime = DateTime.Now;
  4592. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4593. if (!string.IsNullOrWhiteSpace(lt))
  4594. {
  4595. var ltime = DateTime.Parse(lt);
  4596. TimeSpan ts = ltime.Subtract(dttime);
  4597. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4598. if (tss < 0) { tss = -tss; }
  4599. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4600. if (ltime < dttime)
  4601. {
  4602. dr["OverState"] = 3;
  4603. dr["GapTime"] = "超时" + gshsj;
  4604. }
  4605. }
  4606. }
  4607. #endregion
  4608. }
  4609. }
  4610. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4611. {
  4612. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4613. }
  4614. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4615. {
  4616. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4617. }
  4618. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4619. #region 判断是否存在待督办
  4620. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  4621. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  4622. if (recount > 0 && butt != null)
  4623. buttons.Remove(butt);
  4624. #endregion
  4625. dr["Buttons"] = buttons;
  4626. }
  4627. #endregion
  4628. var obj = new
  4629. {
  4630. state = "success",
  4631. message = "成功",
  4632. rows = dt,
  4633. total = recordCount
  4634. };
  4635. return Content(obj.ToJson());
  4636. }
  4637. /// <summary>
  4638. /// 获取逾期未回复工单列表
  4639. /// </summary>
  4640. /// <returns></returns>
  4641. [Authority]
  4642. public ActionResult GetTimeOutList(int isdc = 0)
  4643. {
  4644. DataTable dt = new DataTable();
  4645. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4646. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4647. string sql = " and F_IsDelete=0";
  4648. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4649. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4650. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4651. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4652. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4653. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4654. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4655. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4656. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4657. int source = RequestString.GetInt("source", 0);
  4658. int keyid = RequestString.GetInt("keyid", 0);
  4659. int type = RequestString.GetInt("type", 0);
  4660. int bigtype = RequestString.GetInt("bigtype", 0);
  4661. int smalltype = RequestString.GetInt("smalltype", 0);
  4662. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4663. int deptid = RequestString.GetInt("deptid", 0);
  4664. int timesort = RequestString.GetInt("timesort", -1);
  4665. string sort = "ORDER BY F_CreateTime ASC";
  4666. if (timesort == 0)
  4667. sort = "ORDER BY LimitTime ASC";
  4668. else if (timesort == 1)
  4669. sort = "ORDER BY F_CreateTime DESC";
  4670. string strpageindex = RequestString.GetQueryString("page");
  4671. int pageindex = 1;
  4672. string strpagesize = RequestString.GetQueryString("pagesize");
  4673. int pagesize = 10;
  4674. if (userModel.F_RoleCode == "ZXHWY")
  4675. {
  4676. sql += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4677. }
  4678. else
  4679. {
  4680. #region 坐席&调度员
  4681. if (strusercode.Trim() != "" && strusercode != "undefined")
  4682. {//坐席
  4683. var usercode = strusercode.Trim().Split(',');
  4684. var newusercode = "";
  4685. foreach (var item in usercode)
  4686. {
  4687. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4688. newusercode += "'" + item + "',";
  4689. }
  4690. newusercode = newusercode.Trim(',');
  4691. if (newusercode.Trim() != "" && newusercode != "undefined")
  4692. {
  4693. sql += " and F_CreateUser in (" + newusercode + ") ";
  4694. }
  4695. }
  4696. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4697. {//调度员
  4698. var ddusercode = strddusercode.Trim().Split(',');
  4699. var newusercode = "";
  4700. foreach (var item in ddusercode)
  4701. {
  4702. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4703. newusercode += "'" + item + "',";
  4704. }
  4705. newusercode = newusercode.Trim(',');
  4706. if (newusercode.Trim() != "" && newusercode != "undefined")
  4707. {
  4708. sql += " and F_AssignUser in(" + newusercode + ") ";
  4709. }
  4710. }
  4711. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4712. //{
  4713. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4714. //}
  4715. #endregion
  4716. }
  4717. string sqlwhere = "";string sqlwhere1 = "";
  4718. sqlwhere += " and ( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and isnull(F_FeedbackTime,'')='' and F_IsSure in (0,1) ";
  4719. if (userModel.F_RoleCode == "WLDW")
  4720. {
  4721. sqlwhere += " and F_MainDeptId = '" + userModel.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  4722. + " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + userModel.F_DeptId + "' ";
  4723. sqlwhere1 += " and F_MainDeptId = '" + userModel.F_DeptId + "'";
  4724. }
  4725. else if (deptid != 0)
  4726. {
  4727. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4728. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4729. }
  4730. if (userModel.F_RoleCode == "ZXLD")
  4731. {
  4732. sqlwhere += " and F_CreateUser = '" + userModel.F_UserCode + "' ";
  4733. sqlwhere1 += " and F_CreateUser = '" + userModel.F_UserCode + "'";
  4734. }
  4735. sqlwhere += "))";
  4736. if (strstate.Trim() != "" && strstate != "undefined")
  4737. {
  4738. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString() )
  4739. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4740. else
  4741. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4742. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  4743. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  4744. else
  4745. sql += sqlwhere;
  4746. }
  4747. else
  4748. {
  4749. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  4750. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4751. sql += sqlwhere;
  4752. //sql += " and F_WorkState in (2,4,8)";
  4753. }
  4754. if (strworkid.Trim() != "" && strworkid != "undefined")
  4755. {
  4756. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  4757. }
  4758. if (strname.Trim() != "" && strname != "undefined")
  4759. {
  4760. sql += " and F_CusName like '%" + strname + "%' ";
  4761. }
  4762. if (strtel.Trim() != "" && strtel != "undefined")
  4763. {
  4764. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4765. }
  4766. if (strkey.Trim() != "" && strkey != "undefined")
  4767. {
  4768. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  4769. }
  4770. if (source != 0)
  4771. {
  4772. sql += " and F_InfoSource = '" + source + "' ";
  4773. }
  4774. if (keyid != 0)
  4775. {
  4776. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  4777. }
  4778. if (type != 0)
  4779. {
  4780. sql += " and F_InfoType = '" + type + "' ";
  4781. }
  4782. if (bigtype != 0)
  4783. {
  4784. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4785. }
  4786. if (smalltype != 0)
  4787. {
  4788. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4789. }
  4790. if (sourcearea != 0)
  4791. {
  4792. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4793. }
  4794. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4795. {
  4796. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  4797. }
  4798. if (strendtime.Trim() != "" && strendtime != "undefined")
  4799. {
  4800. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  4801. }
  4802. if (strpageindex.Trim() != "")
  4803. {
  4804. pageindex = Convert.ToInt32(strpageindex);
  4805. }
  4806. if (strpagesize.Trim() != "")
  4807. {
  4808. pagesize = Convert.ToInt32(strpagesize);
  4809. }
  4810. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  4811. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  4812. if (isdc > 0)
  4813. {
  4814. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4815. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4816. if (msg == "")
  4817. {
  4818. return Success("导出成功");
  4819. }
  4820. else
  4821. {
  4822. return Error("导出失败");
  4823. }
  4824. }
  4825. int recordCount = 0;
  4826. dt = BLL.PagerBLL.GetListPager(
  4827. "T_Bus_WorkOrder WITH(NOLOCK)",
  4828. "F_WorkOrderId",
  4829. cols,
  4830. sql,
  4831. sort ,
  4832. pagesize,
  4833. pageindex,
  4834. true,
  4835. out recordCount);
  4836. #region 声音文件
  4837. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4838. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4839. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4840. dt.Columns.Add("OverState", typeof(string));//超时状态
  4841. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4842. dt.Columns.Add("GapTime", typeof(string));//时间差
  4843. dt.Columns.Add("FilePath", typeof(string));
  4844. dt.Columns.Add("Buttons", typeof(object));
  4845. dt.Columns.Add("IsFiles", typeof(object));
  4846. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4847. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4848. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4849. foreach (DataRow dr in dt.Rows)
  4850. {
  4851. //获取最新交办信息
  4852. string iszbdw = "0";
  4853. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4854. if (state > 1)
  4855. {
  4856. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  4857. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4858. if (dtjb.Rows.Count > 0)
  4859. {
  4860. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  4861. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4862. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4863. {
  4864. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4865. }
  4866. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4867. #region 时限
  4868. //if (state < 6 || state == 8)
  4869. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4870. {
  4871. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4872. dr["LimitTime"] = lt;
  4873. if (!string.IsNullOrWhiteSpace(lt))
  4874. {
  4875. var ltime = DateTime.Parse(lt);
  4876. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4877. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4878. if (tss < 0) { tss = -tss; }
  4879. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4880. if (ltime > DateTime.Now)
  4881. {
  4882. if (configcs != null)
  4883. {
  4884. int cs = Int32.Parse(configcs.F_ParamValue);
  4885. if (ts.TotalHours > cs)
  4886. {
  4887. dr["OverState"] = 1;
  4888. }
  4889. else
  4890. {
  4891. dr["OverState"] = 2;
  4892. }
  4893. }
  4894. dr["GapTime"] = "剩余" + gshsj;
  4895. }
  4896. else
  4897. {
  4898. dr["OverState"] = 3;
  4899. dr["GapTime"] = "超时" + gshsj;
  4900. }
  4901. }
  4902. }
  4903. if (state == (int)EnumWorkState.finish)
  4904. {
  4905. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4906. var dttime = DateTime.Now;
  4907. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4908. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4909. dr["LimitTime"] = lt;
  4910. if (!string.IsNullOrWhiteSpace(lt))
  4911. {
  4912. var ltime = DateTime.Parse(lt);
  4913. TimeSpan ts = ltime.Subtract(dttime);
  4914. int tss = Int32.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4915. if (tss < 0) { tss = -tss; }
  4916. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4917. if (ltime < dttime)
  4918. {
  4919. dr["OverState"] = 3;
  4920. dr["GapTime"] = "超时" + gshsj;
  4921. }
  4922. }
  4923. }
  4924. #endregion
  4925. }
  4926. }
  4927. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4928. {
  4929. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  4930. }
  4931. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4932. {
  4933. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4934. }
  4935. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  4936. {
  4937. if (!string.IsNullOrEmpty(dr["F_Files"].ToString()))
  4938. dr["IsFiles"] = 1;
  4939. else
  4940. dr["IsFiles"] = 0;
  4941. }
  4942. else
  4943. {
  4944. dr["IsFiles"] = 0;
  4945. }
  4946. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4947. btns.Add(ButtonGroup.query());
  4948. dr["Buttons"] = btns;
  4949. }
  4950. #endregion
  4951. var obj = new
  4952. {
  4953. state = "success",
  4954. message = "成功",
  4955. rows = dt,
  4956. total = recordCount
  4957. };
  4958. return Content(obj.ToJson());
  4959. }
  4960. /// <summary>
  4961. /// 获取媒体工单列表
  4962. /// </summary>
  4963. /// <returns></returns>
  4964. [Authority]
  4965. public ActionResult GetMediaList(int isdc = 0)
  4966. {
  4967. DataTable dt = new DataTable();
  4968. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  4969. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  4970. string sql = " and F_IsDelete=0";
  4971. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4972. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4973. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4974. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4975. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4976. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4977. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4978. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4979. int source = RequestString.GetInt("source", 0);
  4980. int keyid = RequestString.GetInt("keyid", 0);
  4981. int type = RequestString.GetInt("type", 0);
  4982. int bigtype = RequestString.GetInt("bigtype", 0);
  4983. int smalltype = RequestString.GetInt("smalltype", 0);
  4984. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4985. int deptid = RequestString.GetInt("deptid", 0);
  4986. int timesort = RequestString.GetInt("timesort", -1);
  4987. string sort = "ORDER BY F_CreateTime ASC";
  4988. if (timesort == 0)
  4989. sort = "ORDER BY LimitTime ASC";
  4990. else if (timesort == 1)
  4991. sort = "ORDER BY F_CreateTime DESC";
  4992. string strpageindex = RequestString.GetQueryString("page");
  4993. int pageindex = 1;
  4994. string strpagesize = RequestString.GetQueryString("pagesize");
  4995. int pagesize = 10;
  4996. sql += " and isnull(F_IsRelease,0) =1 ";
  4997. if (strworkid.Trim() != "" && strworkid != "undefined")
  4998. {
  4999. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5000. }
  5001. if (strname.Trim() != "" && strname != "undefined")
  5002. {
  5003. sql += " and F_CusName like '%" + strname + "%' ";
  5004. }
  5005. if (strtel.Trim() != "" && strtel != "undefined")
  5006. {
  5007. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5008. }
  5009. if (strkey.Trim() != "" && strkey != "undefined")
  5010. {
  5011. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5012. }
  5013. #region 坐席&调度员
  5014. if (strusercode.Trim() != "" && strusercode != "undefined")
  5015. {//坐席
  5016. var usercode = strusercode.Trim().Split(',');
  5017. var newusercode = "";
  5018. foreach (var item in usercode)
  5019. {
  5020. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5021. newusercode += "'" + item + "',";
  5022. }
  5023. newusercode = newusercode.Trim(',');
  5024. if (newusercode.Trim() != "" && newusercode != "undefined")
  5025. {
  5026. sql += " and F_CreateUser in (" + newusercode + ") ";
  5027. }
  5028. }
  5029. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5030. {//调度员
  5031. var ddusercode = strddusercode.Trim().Split(',');
  5032. var newusercode = "";
  5033. foreach (var item in ddusercode)
  5034. {
  5035. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5036. newusercode += "'" + item + "',";
  5037. }
  5038. newusercode = newusercode.Trim(',');
  5039. if (newusercode.Trim() != "" && newusercode != "undefined")
  5040. {
  5041. sql += " and F_AssignUser in(" + newusercode + ") ";
  5042. }
  5043. }
  5044. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5045. //{
  5046. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5047. //}
  5048. #endregion
  5049. if (source != 0)
  5050. {
  5051. sql += " and F_InfoSource = '" + source + "' ";
  5052. }
  5053. if (keyid != 0)
  5054. {
  5055. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5056. }
  5057. if (type != 0)
  5058. {
  5059. sql += " and F_InfoType = '" + type + "' ";
  5060. }
  5061. if (bigtype != 0)
  5062. {
  5063. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5064. }
  5065. if (smalltype != 0)
  5066. {
  5067. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5068. }
  5069. if (sourcearea != 0)
  5070. {
  5071. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5072. }
  5073. if (deptid != 0)
  5074. {
  5075. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  5076. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5077. }
  5078. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5079. {
  5080. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5081. }
  5082. if (strendtime.Trim() != "" && strendtime != "undefined")
  5083. {
  5084. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5085. }
  5086. if (strpageindex.Trim() != "")
  5087. {
  5088. pageindex = Convert.ToInt32(strpageindex);
  5089. }
  5090. if (strpagesize.Trim() != "")
  5091. {
  5092. pagesize = Convert.ToInt32(strpagesize);
  5093. }
  5094. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5095. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5096. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  5097. if (isdc > 0)
  5098. {
  5099. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5100. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5101. if (msg == "")
  5102. {
  5103. return Success("导出成功");
  5104. }
  5105. else
  5106. {
  5107. return Error("导出失败");
  5108. }
  5109. }
  5110. int recordCount = 0;
  5111. dt = BLL.PagerBLL.GetListPager(
  5112. "T_Bus_WorkOrder WITH(NOLOCK)",
  5113. "F_WorkOrderId",
  5114. cols,
  5115. sql,
  5116. sort ,
  5117. pagesize,
  5118. pageindex,
  5119. true,
  5120. out recordCount);
  5121. #region 声音文件
  5122. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5123. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5124. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5125. dt.Columns.Add("IsReturnMedia", typeof(string));
  5126. dt.Columns.Add("Buttons", typeof(object));
  5127. int IsReturnMedia = 0;
  5128. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5129. {
  5130. IsReturnMedia = 1;
  5131. }
  5132. foreach (DataRow dr in dt.Rows)
  5133. {
  5134. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5135. if (state > 1)
  5136. {
  5137. //获取最新交办信息
  5138. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  5139. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5140. if (dtjb.Rows.Count > 0)
  5141. {
  5142. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5143. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5144. {
  5145. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5146. }
  5147. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5148. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5149. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5150. //if (deptinfo != null)
  5151. //{
  5152. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5153. //}
  5154. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5155. //{
  5156. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5157. // string dns = string.Empty;
  5158. // foreach (string strid in strids)
  5159. // {
  5160. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5161. // if (dinfo != null)
  5162. // {
  5163. // if (string.IsNullOrEmpty(dns))
  5164. // {
  5165. // dns = dinfo.F_DeptName;//交办单位
  5166. // }
  5167. // else
  5168. // {
  5169. // dns += "," + dinfo.F_DeptName;//交办单位
  5170. // }
  5171. // }
  5172. // }
  5173. // dr["OtherDeptName"] = dns;
  5174. //}
  5175. }
  5176. }
  5177. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5178. btns.Add(ButtonGroup.query());
  5179. dr["Buttons"] = btns;
  5180. dr["IsReturnMedia"] = IsReturnMedia;
  5181. }
  5182. #endregion
  5183. var obj = new
  5184. {
  5185. state = "success",
  5186. message = "成功",
  5187. rows = dt,
  5188. total = recordCount
  5189. };
  5190. return Content(obj.ToJson());
  5191. }
  5192. ///// <summary>
  5193. ///// 获取通报工单列表
  5194. ///// </summary>
  5195. ///// <returns></returns>
  5196. //[Authority]
  5197. //public ActionResult GetNoticeList(int isdc = 0)
  5198. //{
  5199. // DataTable dt = new DataTable();
  5200. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5201. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5202. // string sql = " and F_IsDelete=0 and isnull(F_IsNotice,0) =1";
  5203. // string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5204. // string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5205. // string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5206. // string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5207. // string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5208. // string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5209. // string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5210. // int source = RequestString.GetInt("source", 0);
  5211. // int keyid = RequestString.GetInt("keyid", 0);
  5212. // int type = RequestString.GetInt("type", 0);
  5213. // int bigtype = RequestString.GetInt("bigtype", 0);
  5214. // int smalltype = RequestString.GetInt("smalltype", 0);
  5215. // int sourcearea = RequestString.GetInt("sourcearea", 0);
  5216. // int deptid = RequestString.GetInt("deptid", 0);
  5217. // string strpageindex = RequestString.GetQueryString("page");
  5218. // int pageindex = 1;
  5219. // string strpagesize = RequestString.GetQueryString("pagesize");
  5220. // int pagesize = 10;
  5221. // if (strworkid.Trim() != "" && strworkid != "undefined")
  5222. // {
  5223. // sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5224. // }
  5225. // if (strname.Trim() != "" && strname != "undefined")
  5226. // {
  5227. // sql += " and F_CusName like '%" + strname + "%' ";
  5228. // }
  5229. // if (strtel.Trim() != "" && strtel != "undefined")
  5230. // {
  5231. // sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5232. // }
  5233. // if (strkey.Trim() != "" && strkey != "undefined")
  5234. // {
  5235. // sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5236. // }
  5237. // if (strusercode.Trim() != "" && strusercode != "undefined")
  5238. // {
  5239. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5240. // }
  5241. // if (source != 0)
  5242. // {
  5243. // sql += " and F_InfoSource = '" + source + "' ";
  5244. // }
  5245. // if (keyid != 0)
  5246. // {
  5247. // sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5248. // }
  5249. // if (type != 0)
  5250. // {
  5251. // sql += " and F_InfoType = '" + type + "' ";
  5252. // }
  5253. // if (bigtype != 0)
  5254. // {
  5255. // sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5256. // }
  5257. // if (smalltype != 0)
  5258. // {
  5259. // sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5260. // }
  5261. // if (sourcearea != 0)
  5262. // {
  5263. // sql += " and F_SourceArea = '" + sourcearea + "' ";
  5264. // }
  5265. // if (deptid != 0)
  5266. // {
  5267. // 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 ";
  5268. // sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5269. // }
  5270. // if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5271. // {
  5272. // sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5273. // }
  5274. // if (strendtime.Trim() != "" && strendtime != "undefined")
  5275. // {
  5276. // sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5277. // }
  5278. // if (strpageindex.Trim() != "")
  5279. // {
  5280. // pageindex = Convert.ToInt32(strpageindex);
  5281. // }
  5282. // if (strpagesize.Trim() != "")
  5283. // {
  5284. // pagesize = Convert.ToInt32(strpagesize);
  5285. // }
  5286. // string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5287. // if (isdc > 0)
  5288. // {
  5289. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder where 1=1 " + sql).Tables[0];
  5290. // var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5291. // if (msg == "")
  5292. // {
  5293. // return Success("导出成功");
  5294. // }
  5295. // else
  5296. // {
  5297. // return Error("导出失败");
  5298. // }
  5299. // }
  5300. // int recordCount = 0;
  5301. // dt = BLL.PagerBLL.GetListPager(
  5302. // "T_Bus_WorkOrder",
  5303. // "F_WorkOrderId",
  5304. // cols,
  5305. // sql,
  5306. // "ORDER BY F_CreateTime DESC",
  5307. // pagesize,
  5308. // pageindex,
  5309. // true,
  5310. // out recordCount);
  5311. // #region 声音文件
  5312. // dt.Columns.Add("DeptName", typeof(string));//交办单位
  5313. // dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5314. // dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5315. // dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5316. // dt.Columns.Add("IsReturnNotice", typeof(string));
  5317. // dt.Columns.Add("FilePath", typeof(string));
  5318. // dt.Columns.Add("Buttons", typeof(object));
  5319. // var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5320. // var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5321. // int IsReturnNotice = 0;
  5322. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  5323. // {
  5324. // IsReturnNotice = 1;
  5325. // }
  5326. // foreach (DataRow dr in dt.Rows)
  5327. // {
  5328. // //获取最新交办信息
  5329. // //string iszbdw = "0";
  5330. // 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";
  5331. // var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5332. // if (dtjb.Rows.Count > 0)
  5333. // {
  5334. // //if (dtjb.Rows[0]["F_MainDeptId"].ToString() == userModel.F_DeptId.ToString()) { iszbdw = "1"; }
  5335. // dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5336. // if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5337. // {
  5338. // dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5339. // }
  5340. // //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  5341. // //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  5342. // //if (deptinfo != null)
  5343. // //{
  5344. // // //if (did == userModel.F_DeptId) { iszbdw = "1"; }
  5345. // // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  5346. // //}
  5347. // //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5348. // //{
  5349. // // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  5350. // // string dns = string.Empty;
  5351. // // foreach (string strid in strids)
  5352. // // {
  5353. // // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  5354. // // if (dinfo != null)
  5355. // // {
  5356. // // if (string.IsNullOrEmpty(dns))
  5357. // // {
  5358. // // dns = dinfo.F_DeptName;//交办单位
  5359. // // }
  5360. // // else
  5361. // // {
  5362. // // dns += "," + dinfo.F_DeptName;//交办单位
  5363. // // }
  5364. // // }
  5365. // // }
  5366. // // dr["OtherDeptName"] = dns;
  5367. // //}
  5368. // }
  5369. // //获取最新通报信息
  5370. // 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";
  5371. // var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5372. // if (dttb.Rows.Count > 0)
  5373. // {
  5374. // if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5375. // {
  5376. // dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5377. // }
  5378. // dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null? dttb.Rows[0]["F_Content"].ToString():"";
  5379. // }
  5380. // if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5381. // {
  5382. // dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5383. // }
  5384. // else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5385. // {
  5386. // dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5387. // }
  5388. // List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5389. // btns.Add(ButtonGroup.query());
  5390. // dr["Buttons"] = btns;
  5391. // dr["IsReturnNotice"] = IsReturnNotice;
  5392. // }
  5393. // #endregion
  5394. // var obj = new
  5395. // {
  5396. // state = "success",
  5397. // message = "成功",
  5398. // rows = dt,
  5399. // total = recordCount
  5400. // };
  5401. // return Content(obj.ToJson());
  5402. //}
  5403. /// <summary>
  5404. /// 获取通报工单列表
  5405. /// </summary>
  5406. /// <returns></returns>
  5407. [Authority]
  5408. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  5409. {
  5410. DataTable dt = new DataTable();
  5411. //int userId = 8000;
  5412. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5413. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5414. string sql = " and F_IsDelete=0 ";
  5415. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5416. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5417. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5418. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5419. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5420. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5421. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5422. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5423. int source = RequestString.GetInt("source", 0);
  5424. int keyid = RequestString.GetInt("keyid", 0);
  5425. int type = RequestString.GetInt("type", 0);
  5426. int bigtype = RequestString.GetInt("bigtype", 0);
  5427. int smalltype = RequestString.GetInt("smalltype", 0);
  5428. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5429. int deptid = RequestString.GetInt("deptid", 0);
  5430. int timesort = RequestString.GetInt("timesort", -1);
  5431. string sort = "ORDER BY F_CreateTime ASC";
  5432. if (timesort == 0)
  5433. sort = "ORDER BY LimitTime ASC";
  5434. else if (timesort == 1)
  5435. sort = "ORDER BY F_CreateTime DESC";
  5436. string strpageindex = RequestString.GetQueryString("page");
  5437. int pageindex = 1;
  5438. string strpagesize = RequestString.GetQueryString("pagesize");
  5439. int pagesize = 10;
  5440. if (strworkid.Trim() != "" && strworkid != "undefined")
  5441. {
  5442. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5443. }
  5444. if (strname.Trim() != "" && strname != "undefined")
  5445. {
  5446. sql += " and F_CusName like '%" + strname + "%' ";
  5447. }
  5448. if (strtel.Trim() != "" && strtel != "undefined")
  5449. {
  5450. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5451. }
  5452. if (strkey.Trim() != "" && strkey != "undefined")
  5453. {
  5454. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5455. }
  5456. #region 坐席&调度员
  5457. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  5458. {//坐席
  5459. var usercode = strusercode.Trim().Split(',');
  5460. var newusercode = "";
  5461. foreach (var item in usercode)
  5462. {
  5463. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5464. newusercode += "'" + item + "',";
  5465. }
  5466. newusercode = newusercode.Trim(',');
  5467. if (newusercode.Trim() != "" && newusercode != "undefined")
  5468. {
  5469. sql += " and F_CreateUser in (" + newusercode + ") ";
  5470. }
  5471. }*/
  5472. #region
  5473. if (usercode != null && usercode.Length > 0)
  5474. {
  5475. var newusercode = "";
  5476. //string codes = "";
  5477. for (int i = 0; i < usercode.Length; i++)
  5478. {
  5479. if (usercode[i] != "")
  5480. {
  5481. newusercode += "'" + usercode[i] + "',";
  5482. }
  5483. }
  5484. newusercode = newusercode.Trim(',');
  5485. if (newusercode.Trim() != "" && newusercode != "undefined")
  5486. {
  5487. sql += " and F_CreateUser in (" + newusercode + ") ";
  5488. }
  5489. }
  5490. if (ddusercode != null && ddusercode.Length > 0)
  5491. {
  5492. var newusercode = "";
  5493. //string codes = "";
  5494. for (int i = 0; i < ddusercode.Length; i++)
  5495. {
  5496. if (ddusercode[i] != "")
  5497. {
  5498. newusercode += "'" + ddusercode[i] + "',";
  5499. }
  5500. }
  5501. newusercode = newusercode.Trim(',');
  5502. if (newusercode.Trim() != "" && newusercode != "undefined")
  5503. {
  5504. sql += " and F_AssignUser in (" + newusercode + ") ";
  5505. }
  5506. }
  5507. #endregion
  5508. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5509. {//调度员
  5510. var ddusercode = strddusercode.Trim().Split(',');
  5511. var newusercode = "";
  5512. foreach (var item in ddusercode)
  5513. {
  5514. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5515. newusercode += "'" + item + "',";
  5516. }
  5517. newusercode = newusercode.Trim(',');
  5518. if (newusercode.Trim() != "" && newusercode != "undefined")
  5519. {
  5520. sql += " and F_AssignUser in(" + newusercode + ") ";
  5521. }
  5522. }*/
  5523. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5524. //{
  5525. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5526. //}
  5527. #endregion
  5528. if (source != 0)
  5529. {
  5530. sql += " and F_InfoSource = '" + source + "' ";
  5531. }
  5532. if (keyid != 0)
  5533. {
  5534. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5535. }
  5536. if (type != 0)
  5537. {
  5538. sql += " and F_InfoType = '" + type + "' ";
  5539. }
  5540. if (bigtype != 0)
  5541. {
  5542. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5543. }
  5544. if (smalltype != 0)
  5545. {
  5546. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5547. }
  5548. if (sourcearea != 0)
  5549. {
  5550. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5551. }
  5552. if (deptid != 0)
  5553. {
  5554. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  5555. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5556. }
  5557. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5558. {
  5559. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5560. }
  5561. if (strendtime.Trim() != "" && strendtime != "undefined")
  5562. {
  5563. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5564. }
  5565. if (userModel.F_RoleCode == "WLDW")
  5566. {
  5567. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  5568. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5569. }
  5570. else
  5571. {
  5572. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5573. }
  5574. if (strpageindex.Trim() != "")
  5575. {
  5576. pageindex = Convert.ToInt32(strpageindex);
  5577. }
  5578. if (strpagesize.Trim() != "")
  5579. {
  5580. pagesize = Convert.ToInt32(strpagesize);
  5581. }
  5582. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5583. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  5584. if (isdc > 0)
  5585. {
  5586. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5587. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5588. if (msg == "")
  5589. {
  5590. return Success("导出成功");
  5591. }
  5592. else
  5593. {
  5594. return Error("导出失败");
  5595. }
  5596. }
  5597. int recordCount = 0;
  5598. dt = BLL.PagerBLL.GetListPager(
  5599. "T_Bus_WorkOrder WITH(NOLOCK)",
  5600. "F_WorkOrderId",
  5601. cols,
  5602. sql,
  5603. sort ,
  5604. pagesize,
  5605. pageindex,
  5606. true,
  5607. out recordCount);
  5608. #region 声音文件
  5609. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5610. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5611. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5612. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5613. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5614. dt.Columns.Add("IsReturnNotice", typeof(string));
  5615. dt.Columns.Add("FilePath", typeof(string));
  5616. dt.Columns.Add("Buttons", typeof(object));
  5617. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5618. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5619. int IsReturnNotice = 0;
  5620. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5621. {
  5622. IsReturnNotice = 1;
  5623. }
  5624. foreach (DataRow dr in dt.Rows)
  5625. {
  5626. //获取最新交办信息
  5627. //string iszbdw = "0";
  5628. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5629. if (state > 1)
  5630. {
  5631. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  5632. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5633. if (dtjb.Rows.Count > 0)
  5634. {
  5635. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5636. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5637. {
  5638. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5639. }
  5640. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5641. }
  5642. }
  5643. //获取最新通报信息
  5644. string sqltb = "SELECT TOP 1 * FROM T_Bus_NoticeCriticism WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  5645. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5646. if (dttb.Rows.Count > 0)
  5647. {
  5648. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5649. {
  5650. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5651. }
  5652. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5653. }
  5654. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5655. {
  5656. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5657. }
  5658. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5659. {
  5660. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5661. }
  5662. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5663. btns.Add(ButtonGroup.query());
  5664. dr["Buttons"] = btns;
  5665. dr["IsReturnNotice"] = IsReturnNotice;
  5666. }
  5667. #endregion
  5668. var obj = new
  5669. {
  5670. state = "success",
  5671. message = "成功",
  5672. rows = dt,
  5673. total = recordCount
  5674. };
  5675. return Content(obj.ToJson());
  5676. }
  5677. public ActionResult GetNoticeListOLD(int isdc = 0)
  5678. {
  5679. DataTable dt = new DataTable();
  5680. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5681. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5682. string sql = " and F_IsDelete=0 ";
  5683. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5684. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5685. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5686. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5687. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5688. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5689. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5690. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5691. int source = RequestString.GetInt("source", 0);
  5692. int keyid = RequestString.GetInt("keyid", 0);
  5693. int type = RequestString.GetInt("type", 0);
  5694. int bigtype = RequestString.GetInt("bigtype", 0);
  5695. int smalltype = RequestString.GetInt("smalltype", 0);
  5696. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5697. int deptid = RequestString.GetInt("deptid", 0);
  5698. int timesort = RequestString.GetInt("timesort", -1);
  5699. string sort = "ORDER BY F_CreateTime ASC";
  5700. if (timesort == 0)
  5701. sort = "ORDER BY LimitTime ASC";
  5702. else if (timesort == 1)
  5703. sort = "ORDER BY F_CreateTime DESC";
  5704. string strpageindex = RequestString.GetQueryString("page");
  5705. int pageindex = 1;
  5706. string strpagesize = RequestString.GetQueryString("pagesize");
  5707. int pagesize = 10;
  5708. if (strworkid.Trim() != "" && strworkid != "undefined")
  5709. {
  5710. sql += " and (F_WorkOrderId like '%" + strworkid + "%'or F_OldWorkOrderId like '%" + strworkid + "%')";
  5711. }
  5712. if (strname.Trim() != "" && strname != "undefined")
  5713. {
  5714. sql += " and F_CusName like '%" + strname + "%' ";
  5715. }
  5716. if (strtel.Trim() != "" && strtel != "undefined")
  5717. {
  5718. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5719. }
  5720. if (strkey.Trim() != "" && strkey != "undefined")
  5721. {
  5722. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%') ";
  5723. }
  5724. #region 坐席&调度员
  5725. if (strusercode.Trim() != "" && strusercode != "undefined")
  5726. {//坐席
  5727. var usercode = strusercode.Trim().Split(',');
  5728. var newusercode = "";
  5729. foreach (var item in usercode)
  5730. {
  5731. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5732. newusercode += "'" + item + "',";
  5733. }
  5734. newusercode = newusercode.Trim(',');
  5735. if (newusercode.Trim() != "" && newusercode != "undefined")
  5736. {
  5737. sql += " and F_CreateUser in (" + newusercode + ") ";
  5738. }
  5739. }
  5740. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5741. {//调度员
  5742. var ddusercode = strddusercode.Trim().Split(',');
  5743. var newusercode = "";
  5744. foreach (var item in ddusercode)
  5745. {
  5746. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5747. newusercode += "'" + item + "',";
  5748. }
  5749. newusercode = newusercode.Trim(',');
  5750. if (newusercode.Trim() != "" && newusercode != "undefined")
  5751. {
  5752. sql += " and F_AssignUser in(" + newusercode + ") ";
  5753. }
  5754. }
  5755. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5756. //{
  5757. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5758. //}
  5759. #endregion
  5760. if (source != 0)
  5761. {
  5762. sql += " and F_InfoSource = '" + source + "' ";
  5763. }
  5764. if (keyid != 0)
  5765. {
  5766. sql += " and ','+F_Key+',' like '%," + keyid + ",%' ";
  5767. }
  5768. if (type != 0)
  5769. {
  5770. sql += " and F_InfoType = '" + type + "' ";
  5771. }
  5772. if (bigtype != 0)
  5773. {
  5774. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5775. }
  5776. if (smalltype != 0)
  5777. {
  5778. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5779. }
  5780. if (sourcearea != 0)
  5781. {
  5782. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5783. }
  5784. if (deptid != 0)
  5785. {
  5786. string sqlwhere = "select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId = '" + deptid + "' and F_IsSure in (0,1) and F_State=1 and F_IsDelete=0 ";
  5787. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5788. }
  5789. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5790. {
  5791. sql += " and datediff(day,F_CreateTime,'" + strstarttime + "')<=0 ";
  5792. }
  5793. if (strendtime.Trim() != "" && strendtime != "undefined")
  5794. {
  5795. sql += " and datediff(day,F_CreateTime,'" + strendtime + "')>=0 ";
  5796. }
  5797. if (userModel.F_RoleCode == "WLDW")
  5798. {
  5799. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + userModel.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  5800. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5801. }
  5802. else
  5803. {
  5804. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  5805. }
  5806. if (strpageindex.Trim() != "")
  5807. {
  5808. pageindex = Convert.ToInt32(strpageindex);
  5809. }
  5810. if (strpagesize.Trim() != "")
  5811. {
  5812. pagesize = Convert.ToInt32(strpagesize);
  5813. }
  5814. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  5815. string cols = "F_OldWorkOrderId,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Files,F_WorkRemarks";
  5816. if (isdc > 0)
  5817. {
  5818. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5819. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5820. if (msg == "")
  5821. {
  5822. return Success("导出成功");
  5823. }
  5824. else
  5825. {
  5826. return Error("导出失败");
  5827. }
  5828. }
  5829. int recordCount = 0;
  5830. dt = BLL.PagerBLL.GetListPager(
  5831. "T_Bus_WorkOrder WITH(NOLOCK)",
  5832. "F_WorkOrderId",
  5833. cols,
  5834. sql,
  5835. sort ,
  5836. pagesize,
  5837. pageindex,
  5838. true,
  5839. out recordCount);
  5840. #region 声音文件
  5841. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5842. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5843. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5844. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  5845. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  5846. dt.Columns.Add("IsReturnNotice", typeof(string));
  5847. dt.Columns.Add("FilePath", typeof(string));
  5848. dt.Columns.Add("Buttons", typeof(object));
  5849. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5850. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5851. int IsReturnNotice = 0;
  5852. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  5853. {
  5854. IsReturnNotice = 1;
  5855. }
  5856. foreach (DataRow dr in dt.Rows)
  5857. {
  5858. //获取最新交办信息
  5859. //string iszbdw = "0";
  5860. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5861. if (state > 1)
  5862. {
  5863. string sqljb = "SELECT TOP 1 * FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 and F_IsSure<>3 ORDER BY F_Id DESC";
  5864. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5865. if (dtjb.Rows.Count > 0)
  5866. {
  5867. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5868. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5869. {
  5870. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5871. }
  5872. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5873. }
  5874. }
  5875. //获取最新通报信息
  5876. string sqltb = "SELECT TOP 1 * FROM T_Bus_NoticeCriticism WITH(NOLOCK) WHERE F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' and F_State=1 and F_IsDelete=0 ORDER BY F_Id DESC";
  5877. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  5878. if (dttb.Rows.Count > 0)
  5879. {
  5880. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  5881. {
  5882. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  5883. }
  5884. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  5885. }
  5886. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5887. {
  5888. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  5889. }
  5890. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5891. {
  5892. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5893. }
  5894. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5895. btns.Add(ButtonGroup.query());
  5896. dr["Buttons"] = btns;
  5897. dr["IsReturnNotice"] = IsReturnNotice;
  5898. }
  5899. #endregion
  5900. var obj = new
  5901. {
  5902. state = "success",
  5903. message = "成功",
  5904. rows = dt,
  5905. total = recordCount
  5906. };
  5907. return Content(obj.ToJson());
  5908. }
  5909. public ActionResult GetWorkorderSimp()
  5910. {
  5911. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5912. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5913. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  5914. if (!string.IsNullOrEmpty(strworkorderid))
  5915. {
  5916. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  5917. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  5918. var dt = DbHelperSQL.Query(sql).Tables[0];
  5919. if (dt.Rows.Count > 0)
  5920. {
  5921. return Success("成功", dt);
  5922. }
  5923. return Error("获取失败");
  5924. }
  5925. return Error("参数错误");
  5926. }
  5927. /// <summary>
  5928. /// 获取工单信息
  5929. /// </summary>
  5930. /// <returns></returns>
  5931. [Authority]
  5932. public ActionResult GetWorkOrder()
  5933. {
  5934. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  5935. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  5936. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  5937. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  5938. if (!string.IsNullOrEmpty(strworkorderid))
  5939. {
  5940. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  5941. //+ "dbo.GetDictionaryName(F_InfoConBigType) as TypeName2,dbo.GetDictionaryName(F_InfoConSmallType) as TypeName3,"
  5942. //+ "dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName,dbo.GetDictionaryName(F_InfoSource) as SourceName ,"
  5943. + "dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) as KeyName,dbo.GetDeptName(F_MainDeptId) deptname ," + "F_DeptIdIsSms = (select F_IsSms from T_Sys_Department where F_DeptId =a.F_MainDeptId)"
  5944. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'"
  5945. ;
  5946. var dt = DbHelperSQL.Query(sql).Tables[0];
  5947. if (dt.Rows.Count > 0)
  5948. {
  5949. #region 结果汇总
  5950. //if (dt.Rows[0]["F_IsResult"] != null && dt.Rows[0]["F_IsResult"].ToString() == "0"){
  5951. // string result = "";
  5952. // string createtime = DateTime.Parse(dt.Rows[0]["F_CreateTime"].ToString()).ToString("yyyy年MM月dd日");
  5953. // string deptname = dt.Rows[0]["deptname"].ToString();
  5954. // string sourcename = dt.Rows[0]["SourceName"].ToString();
  5955. // string title = dt.Rows[0]["F_ComTitle"].ToString();
  5956. // string conresult= dt.Rows[0]["F_Result"].ToString();
  5957. // var blmodel = new BLL.T_Bus_Feedback().GetModelList("F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc").FirstOrDefault();
  5958. // if (blmodel != null)
  5959. // {
  5960. // string bljg = blmodel.F_IsProResult != null && blmodel.F_IsProResult == 1 ? "已办理" : "未办理";
  5961. // string hfcont = "";
  5962. // if (blmodel.F_IsProResult == 1)
  5963. // {
  5964. // hfcont = "";
  5965. // if (blmodel.F_IsProtect == 0)
  5966. // {
  5967. // string blmy = "未回访";
  5968. // switch (blmodel.F_IsSatisfied)
  5969. // {
  5970. // case 1:
  5971. // blmy = "满意";
  5972. // break;
  5973. // case 2:
  5974. // blmy = "基本满意";
  5975. // break;
  5976. // case 3:
  5977. // blmy = "不满意";
  5978. // break;
  5979. // }
  5980. // string connttime = "";
  5981. // if (blmodel.F_ConnectTime != null)
  5982. // connttime = "在" + blmodel.F_ConnectTime.Value.ToString("yyyy年MM月dd日HH时mm分");
  5983. // hfcont = " 回访:承办人 用" + blmodel.F_ConnectMode + connttime + "对反应人进行了回复,反应人对结果表示" + blmy + "。";
  5984. // }
  5985. // }
  5986. // else if (blmodel.F_IsProResult == 2)
  5987. // {
  5988. // hfcont = " 处理方案/进程:" + blmodel.F_ProSituation;
  5989. // }
  5990. // result = createtime + "," + deptname + "接到" + sourcename + "工单(编号:" + strworkorderid + ")反映" + title + ",经落实,具体情况回复如下:" + conresult + " 办理结果:" + bljg + " 承办人:" + blmodel.F_DealUser + " 职务:" + blmodel.F_Duties + " 联系电话:" + blmodel.F_DealUserContact + hfcont;
  5991. // dt.Rows[0]["F_Result"] = result;
  5992. // }
  5993. //}
  5994. #endregion
  5995. if (dt.Rows[0]["F_IsProtect"] != null && (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "EJWLDW"))
  5996. {
  5997. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  5998. if (isp == "1")
  5999. {
  6000. dt.Rows[0]["F_CusName"] = "";
  6001. dt.Rows[0]["F_CusPhone"] = "";
  6002. dt.Rows[0]["F_ConPhone"] = "";
  6003. }
  6004. }
  6005. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6006. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6007. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6008. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6009. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  6010. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6011. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6012. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  6013. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6014. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6015. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6016. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6017. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=2 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6018. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6019. + "from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6020. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryNames(F_StandardIDS) as StandardNames "
  6021. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6022. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  6023. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6024. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6025. + "from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6026. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6027. + "from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6028. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6029. + "from T_Bus_Feedback WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6030. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  6031. + "from T_Bus_Feedback_Next WITH(NOLOCK) where F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6032. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6033. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6034. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6035. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  6036. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  6037. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  6038. #region 声音文件
  6039. dt.Columns.Add("FilePath", typeof(string));
  6040. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  6041. {
  6042. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6043. }
  6044. else if (dt.Rows[0]["F_CallRecordId"] != null)
  6045. {
  6046. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  6047. }
  6048. #endregion
  6049. #region 附件
  6050. if (configfj != null)
  6051. {
  6052. dt = BindFileData(dt, configfj.F_ParamValue);
  6053. dt = BindFileDataFiles(dt, configfj.F_ParamValue);
  6054. }
  6055. #endregion
  6056. #region 监察信息
  6057. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  6058. if (configfj != null)
  6059. {
  6060. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  6061. }
  6062. #endregion
  6063. #region 批示信息
  6064. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  6065. if (configfj != null)
  6066. {
  6067. psdt = BindFileData(psdt, configfj.F_ParamValue);
  6068. }
  6069. #endregion
  6070. #region 指示信息
  6071. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  6072. if (configfj != null)
  6073. {
  6074. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  6075. }
  6076. #endregion
  6077. #region 回退信息
  6078. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  6079. #endregion
  6080. #region 督办信息
  6081. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  6082. if (configfj != null)
  6083. {
  6084. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  6085. }
  6086. #endregion
  6087. #region 交办信息
  6088. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  6089. if (configfj != null)
  6090. {
  6091. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  6092. }
  6093. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  6094. if (configfj != null)
  6095. {
  6096. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  6097. }
  6098. #endregion
  6099. #region 退回信息
  6100. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  6101. #endregion
  6102. #region 延时信息
  6103. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  6104. if (configfj != null)
  6105. {
  6106. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  6107. }
  6108. #endregion
  6109. #region 办理情况
  6110. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  6111. if (configfj != null)
  6112. {
  6113. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6114. }
  6115. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  6116. if (configfj != null)
  6117. {
  6118. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  6119. }
  6120. #endregion
  6121. #region 回访信息
  6122. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  6123. hfdt.Columns.Add("FilePath", typeof(string));
  6124. foreach (DataRow bldr in hfdt.Rows)
  6125. {
  6126. if (bldr["F_CallRecordId"] != null && config != null)
  6127. {
  6128. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6129. }
  6130. }
  6131. #endregion
  6132. #region 市民催单
  6133. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  6134. cbdt.Columns.Add("FilePath", typeof(string));
  6135. foreach (DataRow bldr in cbdt.Rows)
  6136. {
  6137. if (bldr["F_CallRecordId"] != null && config != null)
  6138. {
  6139. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6140. }
  6141. }
  6142. #endregion
  6143. #region 办理过程
  6144. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  6145. gcdt.Columns.Add("File", typeof(object));
  6146. gcdt.Columns.Add("FilePath", typeof(string));
  6147. gcdt.Columns.Add("czusername", typeof(string));
  6148. gcdt.Columns.Add("msginfos", typeof(string));
  6149. if (configfj != null || configly != null || config != null)
  6150. {
  6151. foreach (DataRow bldr in gcdt.Rows)
  6152. {
  6153. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  6154. {
  6155. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  6156. }
  6157. if (bldr["F_LeaveRecordId"] != null && configly != null)
  6158. {
  6159. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), config.F_ParamValue);
  6160. }
  6161. else if (bldr["F_CallRecordId"] != null && config != null)
  6162. {
  6163. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6164. }
  6165. if (bldr["F_Message"] != null)
  6166. {
  6167. var F_Message = bldr["F_Message"].ToString().Split(')');
  6168. var a = F_Message.Count();
  6169. if (F_Message[0] != "" && bldr["F_Message"].ToString().Contains(')'))
  6170. {
  6171. string str = bldr["F_Message"].ToString().Substring(0, F_Message[0].Length + 1);
  6172. bldr["czusername"] = str;
  6173. bldr["msginfos"] = F_Message[1].ToString();
  6174. }
  6175. else {
  6176. bldr["czusername"] = "";
  6177. bldr["msginfos"] = F_Message[0].ToString();
  6178. }
  6179. }
  6180. }
  6181. }
  6182. #endregion
  6183. #region 操作按钮
  6184. var btns = new List<ButtonGroup.button>();
  6185. if (jbdt.Rows.Count > 0)
  6186. {
  6187. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  6188. string ispd = jbzx["F_IsNext"].ToString();
  6189. string iszbdw = "0";
  6190. string fmd = jbzx["F_MainDeptId"].ToString();
  6191. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  6192. if (fmd == userModel.F_DeptId.ToString())
  6193. { iszbdw = "1"; }
  6194. else if (fod != "" && fod.Split(',').Contains(userModel.F_DeptId.ToString()))
  6195. {
  6196. iszbdw = "2";
  6197. }
  6198. if (!(userModel.F_RoleCode == "WLDW" && iszbdw == "0"))
  6199. {
  6200. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  6201. }
  6202. }
  6203. else
  6204. {
  6205. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), userModel.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  6206. }
  6207. #region 判断是否存在待督办
  6208. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  6209. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  6210. if (recount > 0)
  6211. {
  6212. if (butt != null)
  6213. btns.Remove(butt);
  6214. if(userModel.F_RoleCode == "DBZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6215. {
  6216. btns.Add(ButtonGroup.oversee());
  6217. btns.Add(ButtonGroup.turnnosee());
  6218. }
  6219. }
  6220. if (btns == null)
  6221. {
  6222. btns.Add(ButtonGroup.query());
  6223. }
  6224. else
  6225. {
  6226. if (btns.Count == 0)
  6227. btns.Add(ButtonGroup.query());
  6228. }
  6229. #endregion
  6230. #endregion
  6231. #region 其他权限
  6232. int issend = 0;
  6233. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6234. {
  6235. if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  6236. {
  6237. issend = 1;
  6238. }
  6239. }
  6240. int isnotice = 0;
  6241. if (dt.Rows[0]["F_IsNotice"] != null && (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6242. {
  6243. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  6244. {
  6245. isnotice = 1;
  6246. }
  6247. }
  6248. int isedit = 0;
  6249. if (dt.Rows[0]["F_IsRelease"] != null && (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  6250. {
  6251. isedit = 1;
  6252. }
  6253. #endregion
  6254. #region 获取所有工单部门名称
  6255. var olderworkerid = dt.Rows[0]["F_OldWorkOrderId"].ToString();
  6256. string alldeptname = "";
  6257. if (olderworkerid != "")
  6258. {
  6259. //var olderallworker = dt.Select(" F_OldWorkOrderId='" + olderworkerid + "'");
  6260. string sqlallwo = "select *,b.F_DeptName from T_Bus_WorkOrder a left join T_Sys_Department b on a.F_MainDeptId=b.F_DeptId where F_IsDelete=0 and F_OldWorkOrderId='" + olderworkerid + "'";
  6261. var aaa = DbHelperSQL.Query(sqlallwo).Tables[0];
  6262. var bbb = aaa.Rows;
  6263. foreach (DataRow oldtrs in aaa.Rows)
  6264. {
  6265. alldeptname += oldtrs["F_DeptName"].ToString();
  6266. alldeptname += ",";
  6267. }
  6268. }
  6269. //else
  6270. //{
  6271. // alldeptname = dt.Rows[0]["DeptName"].ToString();
  6272. //}
  6273. #endregion
  6274. var obj = new
  6275. {
  6276. data = dt,
  6277. jcdata = jcdt,
  6278. psdata = psdt,
  6279. zsdata = zsdt,
  6280. htdata = htdt,
  6281. dbdata = dbdt,
  6282. jbdata = jbdt,
  6283. ejjbdata = ejjbdt,
  6284. thdata = thdt,
  6285. ysdata = ysdt,
  6286. bldata = bldt,
  6287. ejbldata = ejbldt,
  6288. hfdata = hfdt,
  6289. cbdata = cbdt,
  6290. gcdata = gcdt,
  6291. issend = issend,
  6292. isedit = isedit,
  6293. isnotice = isnotice,
  6294. btndata = btns,
  6295. alldeptname = alldeptname
  6296. };
  6297. return Success("获取成功", obj);
  6298. }
  6299. else
  6300. {
  6301. return Error("获取失败");
  6302. }
  6303. }
  6304. else
  6305. {
  6306. return Error("参数传输失败");
  6307. }
  6308. }
  6309. /// <summary>
  6310. /// 获取草稿信息
  6311. /// </summary>
  6312. /// <returns></returns>
  6313. [Authority]
  6314. public ActionResult GetDraftInfo()
  6315. {
  6316. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6317. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6318. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6319. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  6320. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6321. {
  6322. string sql = string.Empty;
  6323. switch (type)
  6324. {
  6325. case 1:
  6326. sql = "select top 1 *,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryName(F_StandardIDS) as StandardNames from T_Bus_AssignedInfo WITH(NOLOCK)"; break;
  6327. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  6328. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  6329. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  6330. }
  6331. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + userModel.F_UserCode + " order by F_CreateTime desc";
  6332. var dt = DbHelperSQL.Query(sql).Tables[0];
  6333. if (dt.Rows.Count > 0)
  6334. {
  6335. #region 附件
  6336. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6337. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6338. {
  6339. BindFileData(dt, configfj.F_ParamValue);
  6340. }
  6341. #endregion
  6342. }
  6343. return Success("获取成功", dt);
  6344. }
  6345. else
  6346. {
  6347. return Error("参数传输失败");
  6348. }
  6349. }
  6350. /// <summary>
  6351. /// 获取审核信息
  6352. /// </summary>
  6353. /// <returns></returns>
  6354. [Authority]
  6355. public ActionResult GetAuditInfo()
  6356. {
  6357. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6358. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6359. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6360. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  6361. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  6362. {
  6363. string sql = string.Empty;
  6364. switch (type)
  6365. {
  6366. case 1: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and "; break;
  6367. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  6368. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where "; break;
  6369. }
  6370. if (type ==2)
  6371. {
  6372. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6373. }
  6374. else
  6375. {
  6376. sql += " F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  6377. }
  6378. var dt = DbHelperSQL.Query(sql).Tables[0];
  6379. if (dt.Rows.Count > 0)
  6380. {
  6381. #region 附件
  6382. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6383. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  6384. {
  6385. BindFileData(dt, configfj.F_ParamValue);
  6386. }
  6387. #endregion
  6388. }
  6389. return Success("获取成功", dt);
  6390. }
  6391. else
  6392. {
  6393. return Error("参数传输失败");
  6394. }
  6395. }
  6396. /// <summary>
  6397. /// 获取所有交办单位
  6398. /// </summary>
  6399. /// <returns></returns>
  6400. [Authority]
  6401. public ActionResult GetAllAssignDept()
  6402. {
  6403. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6404. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6405. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6406. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  6407. if (modelT_Bus_WorkOrder != null)
  6408. {
  6409. string ids = string.Empty;
  6410. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  6411. foreach (var assign in Assigns)
  6412. {
  6413. if (string.IsNullOrEmpty(ids))
  6414. {
  6415. ids = assign.F_MainDeptId.Value.ToString();
  6416. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6417. {
  6418. ids += "," + assign.F_OtherDeptIds;
  6419. }
  6420. }
  6421. else
  6422. {
  6423. ids += "," + assign.F_MainDeptId.Value.ToString();
  6424. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  6425. {
  6426. ids += "," + assign.F_OtherDeptIds;
  6427. }
  6428. }
  6429. }
  6430. if (string.IsNullOrEmpty(ids))
  6431. {
  6432. ids = "0";
  6433. }
  6434. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  6435. return Success("获取成功", dt);
  6436. }
  6437. else
  6438. {
  6439. return Error("操作失败");
  6440. }
  6441. }
  6442. /// <summary>
  6443. /// 获取二级单位处理信息
  6444. /// </summary>
  6445. /// <returns></returns>
  6446. [Authority]
  6447. public ActionResult GetSecondDealInfo()
  6448. {
  6449. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6450. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6451. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6452. if (!string.IsNullOrEmpty(strworkorderid))
  6453. {
  6454. //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, ";
  6455. //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, ";
  6456. //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, ";
  6457. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  6458. //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";
  6459. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  6460. //var dt = DbHelperSQL.Query(sql).Tables[0];
  6461. string sql = "select top 1 * from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  6462. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  6463. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  6464. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6465. if (configfj != null)
  6466. {
  6467. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6468. }
  6469. var obj = new {
  6470. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  6471. fkinfo = bldt
  6472. };
  6473. return Success("获取成功", obj);
  6474. }
  6475. else
  6476. {
  6477. return Error("参数传输失败");
  6478. }
  6479. }
  6480. /// <summary>
  6481. /// 获取二级单位最新处理信息
  6482. /// </summary>
  6483. /// <returns></returns>
  6484. [Authority]
  6485. public ActionResult GetNewSecondDealInfo()
  6486. {
  6487. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6488. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6489. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6490. if (!string.IsNullOrEmpty(strworkorderid))
  6491. {
  6492. string sql = "select top 1 * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 order by F_CreateTime desc";
  6493. var bldt = DbHelperSQL.Query(sql).Tables[0];
  6494. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  6495. if (configfj != null)
  6496. {
  6497. bldt = BindFileData(bldt, configfj.F_ParamValue);
  6498. }
  6499. return Success("获取成功", bldt);
  6500. }
  6501. else
  6502. {
  6503. return Error("参数传输失败");
  6504. }
  6505. }
  6506. /// <summary>
  6507. /// 查看回访信息
  6508. /// </summary>
  6509. /// <returns></returns>
  6510. [Authority]
  6511. public ActionResult GetVisitInfo()
  6512. {
  6513. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6514. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6515. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  6516. if (!string.IsNullOrEmpty(strworkorderid))
  6517. {
  6518. string sqlvisit = "select * from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 and F_IsSatisfie=0 order by F_CreateTime";
  6519. string sqlassgin = "select * from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "' and F_State=1 and F_IsDelete=0 order by F_CreateTime";
  6520. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  6521. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  6522. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6523. dtvisit.Columns.Add("FilePath", typeof(string));
  6524. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  6525. if (dtvisit.Rows.Count > 0)
  6526. {
  6527. foreach (DataRow bldr in dtvisit.Rows)
  6528. {
  6529. #region 是否可勾选
  6530. var IsShowCheck = 0;
  6531. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  6532. if (drass.Length > 0)
  6533. {
  6534. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  6535. if(ass>0)
  6536. {
  6537. if (ass == userModel.F_DeptId)
  6538. IsShowCheck = 1;
  6539. }
  6540. }
  6541. bldr["IsShowCheck"] = IsShowCheck;
  6542. #endregion
  6543. #region 录音
  6544. if (bldr["F_CallRecordId"] != null && config != null)
  6545. {
  6546. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6547. }
  6548. #endregion
  6549. }
  6550. }
  6551. return Success("获取成功", dtvisit);
  6552. }
  6553. else
  6554. {
  6555. return Error("参数传输失败");
  6556. }
  6557. }
  6558. #endregion
  6559. #region 新增工单
  6560. /// <summary>
  6561. /// 上传附件
  6562. /// </summary>
  6563. /// <returns></returns>
  6564. [Authority]
  6565. public ActionResult UploadFile()
  6566. {
  6567. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6568. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6569. #region 单个上传 no use
  6570. //string path = string.Empty;
  6571. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  6572. //if (_upfile != null)
  6573. //{
  6574. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  6575. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  6576. // string name = string.Empty;
  6577. // FileUp fu = new FileUp();
  6578. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  6579. // if (model != null)
  6580. // {
  6581. // name = fu.Upload(_upfile, model.F_ParamValue);
  6582. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6583. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6584. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  6585. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  6586. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  6587. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  6588. // model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6589. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6590. // return Success("成功", model_T_Sys_Accessories);
  6591. // }
  6592. // else
  6593. // {
  6594. // return Error("上传失败");
  6595. // }
  6596. //}
  6597. //else
  6598. //{
  6599. // return Error("请选择要上传的文件");
  6600. //}
  6601. #endregion
  6602. #region 多个上传
  6603. HttpFileCollection files = RequestString.GetFiles();
  6604. if (files.Count > 0)
  6605. {
  6606. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  6607. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  6608. for (int i = 0; i < files.Count; i++)
  6609. {
  6610. HttpPostedFile file = files[i];
  6611. FileUp fu = new FileUp();
  6612. string name = fu.Upload(file, path);
  6613. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  6614. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  6615. model_T_Sys_Accessories.F_FileName = name;//附件名称
  6616. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  6617. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  6618. model_T_Sys_Accessories.F_Size = file.ContentLength;
  6619. model_T_Sys_Accessories.F_UserCode = userModel.F_UserCode;//上传人
  6620. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  6621. model_T_Sys_Accessories.F_FileId = id;
  6622. acs.Add(model_T_Sys_Accessories);
  6623. }
  6624. return Success("成功", acs);
  6625. }
  6626. else
  6627. {
  6628. return Error("请选择要上传的文件");
  6629. }
  6630. #endregion
  6631. }
  6632. private BLL.T_Sys_SystemConfig sysConfigBLL = new BLL.T_Sys_SystemConfig();
  6633. /// <summary>
  6634. /// 添加工单模板
  6635. /// </summary>
  6636. /// <param name="input"></param>
  6637. /// <returns></returns>
  6638. /// [Authority]
  6639. public ActionResult AddConfig(string id)
  6640. {
  6641. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6642. if (model !=null )
  6643. {
  6644. var sysConfig = model.FirstOrDefault();
  6645. sysConfig.F_ParamValue = id;
  6646. if (sysConfigBLL.Update (sysConfig))
  6647. return Success("修改成功");
  6648. else
  6649. return Error("修改失败");
  6650. }
  6651. else
  6652. {
  6653. var sysConfig = new Model.T_Sys_SystemConfig();
  6654. sysConfig.F_ParamCode = "GDMB";
  6655. sysConfig.F_ParamValue = id;
  6656. sysConfig.F_ParamDes = "工单模板";
  6657. sysConfig.F_State = 1;
  6658. if (sysConfigBLL.Add(sysConfig) > 0)
  6659. return Success("添加成功");
  6660. else
  6661. return Error("添加失败");
  6662. }
  6663. }
  6664. /// <summary>
  6665. /// 添加基础数据
  6666. /// </summary>
  6667. /// <param name="input"></param>
  6668. /// <returns></returns>
  6669. /// [Authority]
  6670. public ActionResult GetConfig()
  6671. {
  6672. var model = sysConfigBLL.GetModelList("F_ParamCode='GDMB'");
  6673. if (model!=null )
  6674. {
  6675. DataTable dt = new DataTable();
  6676. var sysConfig = model.FirstOrDefault();
  6677. dt = BindFileConfig(dt, sysConfig.F_ParamValue);
  6678. return Success("获取成功");
  6679. }
  6680. else
  6681. {
  6682. return Error("附件不存在");
  6683. }
  6684. }
  6685. /// <summary>
  6686. /// 绑定附件信息
  6687. /// </summary>
  6688. /// <param name="dt"></param>
  6689. /// <param name="prefix"></param>
  6690. /// <returns></returns>
  6691. public DataTable BindFileConfig(DataTable dt, string prefix)
  6692. {
  6693. dt.Columns.Add("Files", typeof(object));
  6694. foreach (DataRow dr in dt.Rows)
  6695. {
  6696. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  6697. {
  6698. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  6699. }
  6700. }
  6701. return dt;
  6702. }
  6703. /// <summary>
  6704. /// 添加工单信息
  6705. /// </summary>
  6706. /// <returns></returns>
  6707. [Authority]
  6708. public ActionResult AddWorkOrder()
  6709. {
  6710. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6711. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6712. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ"
  6713. || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY"
  6714. || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "DBZY"
  6715. || userModel.F_RoleCode == "11" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"
  6716. || userModel.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  6717. {
  6718. int source = RequestString.GetInt("source", 0);
  6719. string cusname = RequestString.GetFormString("cusname");
  6720. string cussex = RequestString.GetFormString("cussex");
  6721. string cusphone = RequestString.GetFormString("cusphone");
  6722. string cusaddress = RequestString.GetFormString("cusaddress");
  6723. string email = RequestString.GetFormString("email");
  6724. string zipcode = RequestString.GetFormString("zipcode");
  6725. string conname = RequestString.GetFormString("conname");
  6726. string conphone = RequestString.GetFormString("conphone");
  6727. string title = RequestString.GetFormString("title");
  6728. string content = RequestString.GetFormString("content");
  6729. string files = RequestString.GetFormString("files");
  6730. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6731. string sourceaddress = RequestString.GetFormString("sourceaddress");
  6732. int isresult = RequestString.GetInt("isresult", 0);
  6733. string result = RequestString.GetFormString("result");
  6734. string keys = RequestString.GetFormString("keys");
  6735. string splituser = RequestString.GetFormString("splituser");
  6736. int type = RequestString.GetInt("type", 0);
  6737. int bigtype = RequestString.GetInt("bigtype", 0);
  6738. int smalltype = RequestString.GetInt("smalltype", 0);
  6739. int isprotect = RequestString.GetInt("isprotect", 0);
  6740. int level = RequestString.GetInt("level", 0);
  6741. int issubmit = RequestString.GetInt("issubmit", 0);
  6742. string callid = RequestString.GetFormString("callid");
  6743. string longitude = RequestString.GetFormString("longitude");//经度
  6744. string latitude = RequestString.GetFormString("latitude");//纬度
  6745. using (TransactionScope trans = new TransactionScope())
  6746. {
  6747. #region 保存工单信息
  6748. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6749. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  6750. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6751. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6752. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6753. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  6754. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  6755. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  6756. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  6757. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  6758. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  6759. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  6760. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  6761. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  6762. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  6763. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  6764. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  6765. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  6766. modelT_Bus_WorkOrder.F_File = files;//附件
  6767. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  6768. modelT_Bus_WorkOrder.F_Key = keys;
  6769. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  6770. modelT_Bus_WorkOrder.F_Level = level;
  6771. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  6772. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  6773. //是否直办(即时答复)0:,否1: 是
  6774. modelT_Bus_WorkOrder.F_IsResult = isresult;
  6775. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  6776. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  6777. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  6778. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  6779. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  6780. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  6781. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  6782. //如果选择即刻答复:是,即为直办,工单结束
  6783. if (isresult == 1)
  6784. {
  6785. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  6786. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  6787. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  6788. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  6789. modelT_Bus_WorkOrder.F_IsClosed = 1;
  6790. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  6791. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  6792. }
  6793. else if (issubmit == 1)
  6794. {
  6795. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  6796. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  6797. }
  6798. #region
  6799. //20190715需求变动,去掉审核环节 提交后直接调度指派 zhengbingbing
  6800. //else
  6801. //{
  6802. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  6803. //}
  6804. #region
  6805. //20190315需求变动,保存并提交按钮取消,保存后提交待审核 20190329 zhengbingbing
  6806. //else if (issubmit == 1)
  6807. //{
  6808. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  6809. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  6810. //}
  6811. #endregion
  6812. #endregion
  6813. if (!string.IsNullOrEmpty(callid))
  6814. {
  6815. modelT_Bus_WorkOrder.F_CallId = callid;
  6816. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  6817. if (rd != null)
  6818. {
  6819. rd.IsExitWorkOrder = true;
  6820. new BLL.T_Call_CallRecords().Update(rd);
  6821. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  6822. }
  6823. }
  6824. workorderBLL.Add(modelT_Bus_WorkOrder);
  6825. #endregion
  6826. #region 插入操作记录
  6827. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6828. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6829. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6830. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  6831. oper.F_File = modelT_Bus_WorkOrder.F_File;
  6832. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  6833. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  6834. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  6835. {
  6836. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6837. }
  6838. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  6839. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  6840. {
  6841. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6842. }
  6843. //if (modelT_Bus_WorkOrder.F_WorkState == 9)
  6844. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  6845. {
  6846. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6847. }
  6848. oper.F_CreateUser = userModel.F_UserCode;
  6849. oper.F_CreateTime = DateTime.Now;
  6850. oper.F_IsDelete = 0;
  6851. operBLL.Add(oper);
  6852. //推送消息表
  6853. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit) //0)
  6854. {
  6855. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  6856. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  6857. foreach (var u in users)
  6858. {
  6859. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  6860. }
  6861. }
  6862. #endregion
  6863. trans.Complete();
  6864. }
  6865. return Success("操作成功");
  6866. }
  6867. else
  6868. {
  6869. return Error("权限不足");
  6870. }
  6871. }
  6872. /// <summary>
  6873. /// 添加工单信息
  6874. /// </summary>
  6875. /// <returns></returns>
  6876. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  6877. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  6878. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  6879. {
  6880. string workorderid = string.Empty;
  6881. using (TransactionScope trans = new TransactionScope())
  6882. {
  6883. #region 保存工单信息
  6884. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6885. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source.ToString().PadLeft(4, '0'));
  6886. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6887. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6888. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6889. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  6890. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  6891. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  6892. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  6893. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  6894. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  6895. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  6896. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  6897. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  6898. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  6899. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  6900. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  6901. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  6902. modelT_Bus_WorkOrder.F_File = files;//附件
  6903. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  6904. modelT_Bus_WorkOrder.F_Key = keys;
  6905. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  6906. modelT_Bus_WorkOrder.F_Level = level;
  6907. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  6908. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  6909. //modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  6910. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  6911. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  6912. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  6913. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  6914. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  6915. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  6916. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  6917. workorderBLL.Add(modelT_Bus_WorkOrder);
  6918. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  6919. #endregion
  6920. #region 插入操作记录
  6921. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  6922. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  6923. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  6924. string userinfo = "";
  6925. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  6926. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  6927. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  6928. {
  6929. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  6930. }
  6931. //oper.F_CreateUser = userModel.F_UserCode;
  6932. oper.F_CreateTime = DateTime.Now;
  6933. oper.F_IsDelete = 0;
  6934. operBLL.Add(oper);
  6935. #endregion
  6936. trans.Complete();
  6937. }
  6938. return workorderid;
  6939. }
  6940. /// <summary>
  6941. /// 添加工单信息留言
  6942. /// </summary>
  6943. /// <returns></returns>
  6944. [Authority]
  6945. public ActionResult AddWorkOrderByLY()
  6946. {
  6947. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  6948. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  6949. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  6950. {
  6951. int source = RequestString.GetInt("source", 0);
  6952. string cusname = RequestString.GetFormString("cusname");
  6953. string cussex = RequestString.GetFormString("cussex");
  6954. string cusphone = RequestString.GetFormString("cusphone");
  6955. string cusaddress = RequestString.GetFormString("cusaddress");
  6956. string email = RequestString.GetFormString("email");
  6957. string zipcode = RequestString.GetFormString("zipcode");
  6958. string conname = RequestString.GetFormString("conname");
  6959. string conphone = RequestString.GetFormString("conphone");
  6960. string title = RequestString.GetFormString("title");
  6961. string content = RequestString.GetFormString("content");
  6962. string files = RequestString.GetFormString("files");
  6963. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6964. string sourceaddress = RequestString.GetFormString("sourceaddress");
  6965. int isresult = RequestString.GetInt("isresult", 0);
  6966. string result = RequestString.GetFormString("result");
  6967. string keys = RequestString.GetFormString("keys");
  6968. string splituser = RequestString.GetFormString("splituser");
  6969. int type = RequestString.GetInt("type", 0);
  6970. int bigtype = RequestString.GetInt("bigtype", 0);
  6971. int smalltype = RequestString.GetInt("smalltype", 0);
  6972. int isprotect = RequestString.GetInt("isprotect", 0);
  6973. int level = RequestString.GetInt("level", 0);
  6974. int issubmit = RequestString.GetInt("issubmit", 0);
  6975. int lyid = RequestString.GetInt("lyid", 0);
  6976. using (TransactionScope trans = new TransactionScope())
  6977. {
  6978. #region 保存工单信息
  6979. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  6980. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(userModel.F_UserCode);
  6981. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  6982. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  6983. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  6984. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  6985. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  6986. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  6987. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  6988. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  6989. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  6990. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  6991. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  6992. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  6993. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  6994. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  6995. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  6996. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  6997. modelT_Bus_WorkOrder.F_File = files;//附件
  6998. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  6999. modelT_Bus_WorkOrder.F_Key = keys;
  7000. modelT_Bus_WorkOrder.F_Level = level;
  7001. //是否直办(即时答复)0:,否1: 是
  7002. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7003. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7004. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;//登记人工号
  7005. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  7006. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  7007. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  7008. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  7009. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  7010. //如果选择即刻答复:是,即为直办,工单结束
  7011. if (isresult == 1)
  7012. {
  7013. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7014. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7015. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7016. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7017. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7018. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7019. }
  7020. else if (issubmit == 1)
  7021. {
  7022. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7023. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7024. }
  7025. #region
  7026. //20190715去掉审核环节
  7027. //else
  7028. //{
  7029. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  7030. //}
  7031. //else if (issubmit == 1)
  7032. //{
  7033. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7034. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7035. //}
  7036. #endregion
  7037. if (lyid != 0)
  7038. {
  7039. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  7040. if (rd != null)
  7041. {
  7042. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  7043. }
  7044. }
  7045. workorderBLL.Add(modelT_Bus_WorkOrder);
  7046. #endregion
  7047. #region 插入操作记录
  7048. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7049. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7050. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7051. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7052. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7053. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7054. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7055. {
  7056. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7057. }
  7058. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7059. {
  7060. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7061. }
  7062. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7063. {
  7064. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  7065. }
  7066. oper.F_CreateUser = userModel.F_UserCode;
  7067. oper.F_CreateTime = DateTime.Now;
  7068. oper.F_IsDelete = 0;
  7069. operBLL.Add(oper);
  7070. //推送消息表
  7071. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  7072. {
  7073. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7074. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7075. foreach (var u in users)
  7076. {
  7077. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7078. }
  7079. }
  7080. #endregion
  7081. trans.Complete();
  7082. }
  7083. return Success("操作成功");
  7084. }
  7085. else
  7086. {
  7087. return Error("权限不足");
  7088. }
  7089. }
  7090. /// <summary>
  7091. /// 添加工单信息
  7092. /// </summary>
  7093. /// <returns></returns>
  7094. [Authority]
  7095. public ActionResult AddWorkOrderByAPP()
  7096. {
  7097. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7098. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7099. int source = RequestString.GetInt("source", 6);
  7100. string cusname = RequestString.GetFormString("cusname");
  7101. string cussex = RequestString.GetFormString("cussex");
  7102. string cusphone = RequestString.GetFormString("cusphone");
  7103. string cusaddress = RequestString.GetFormString("cusaddress");
  7104. string email = RequestString.GetFormString("email");
  7105. string zipcode = RequestString.GetFormString("zipcode");
  7106. string conname = RequestString.GetFormString("conname");
  7107. string conphone = RequestString.GetFormString("conphone");
  7108. string title = RequestString.GetFormString("title");
  7109. string content = RequestString.GetFormString("content");
  7110. string files = RequestString.GetFormString("files");
  7111. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7112. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7113. int isresult = RequestString.GetInt("isresult", 0);
  7114. string result = RequestString.GetFormString("result");
  7115. string keys = RequestString.GetFormString("keys");
  7116. string splituser = RequestString.GetFormString("splituser");
  7117. int type = RequestString.GetInt("type", 0);
  7118. int bigtype = RequestString.GetInt("bigtype", 0);
  7119. int smalltype = RequestString.GetInt("smalltype", 0);
  7120. int isprotect = RequestString.GetInt("isprotect", 0);
  7121. int level = RequestString.GetInt("level", 0);
  7122. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  7123. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  7124. if (!string.IsNullOrEmpty(workorderid))
  7125. {
  7126. using (TransactionScope trans = new TransactionScope())
  7127. {
  7128. #region 保存用户工单信息
  7129. var model = new BLL.T_Sys_Users().GetModel(userModel.F_UserCode);
  7130. if (model == null)
  7131. {
  7132. model = new Model.T_Sys_Users();
  7133. model.F_OpenId = userModel.F_UserCode;
  7134. model.F_Type = (int)EnumUserType.app;//3;
  7135. model.F_CreateTime = DateTime.Now;
  7136. model.F_Id = new BLL.T_Sys_Users().Add(model);
  7137. }
  7138. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  7139. tbu.F_UserId = model.F_Id;
  7140. tbu.F_WorkOrderId = workorderid;
  7141. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  7142. #endregion
  7143. trans.Complete();
  7144. }
  7145. return Success("操作成功");
  7146. }
  7147. else
  7148. {
  7149. return Error("操作失败");
  7150. }
  7151. }
  7152. #endregion
  7153. #region 操作工单
  7154. /// <summary>
  7155. /// 修改工单信息
  7156. /// </summary>
  7157. /// <returns></returns>
  7158. [Authority]
  7159. public ActionResult EditWorkOrder()
  7160. {
  7161. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7162. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7163. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7164. {
  7165. string workorderid = RequestString.GetFormString("workorderid");
  7166. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7167. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7168. 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))
  7169. {
  7170. int source = RequestString.GetInt("source", 0);
  7171. string cusname = RequestString.GetFormString("cusname");
  7172. string cussex = RequestString.GetFormString("cussex");
  7173. string cusphone = RequestString.GetFormString("cusphone");
  7174. string cusaddress = RequestString.GetFormString("cusaddress");
  7175. string email = RequestString.GetFormString("email");
  7176. string zipcode = RequestString.GetFormString("zipcode");
  7177. string conname = RequestString.GetFormString("conname");
  7178. string conphone = RequestString.GetFormString("conphone");
  7179. string title = RequestString.GetFormString("title");
  7180. string content = RequestString.GetFormString("content");
  7181. string files = RequestString.GetFormString("files");
  7182. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7183. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7184. int isresult = RequestString.GetInt("isresult", 0);
  7185. string result = RequestString.GetFormString("result");
  7186. string keys = RequestString.GetFormString("keys");
  7187. string splituser = RequestString.GetFormString("splituser");
  7188. int type = RequestString.GetInt("type", 0);
  7189. int bigtype = RequestString.GetInt("bigtype", 0);
  7190. int smalltype = RequestString.GetInt("smalltype", 0);
  7191. int isprotect = RequestString.GetInt("isprotect", 0);
  7192. int level = RequestString.GetInt("level", 0);
  7193. int issubmit = RequestString.GetInt("issubmit", 0);
  7194. using (TransactionScope trans = new TransactionScope())
  7195. {
  7196. #region 保存工单信息
  7197. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7198. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7199. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7200. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7201. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7202. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7203. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7204. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7205. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7206. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7207. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7208. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7209. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7210. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7211. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7212. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7213. modelT_Bus_WorkOrder.F_File = files;//附件
  7214. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7215. modelT_Bus_WorkOrder.F_Key = keys;
  7216. modelT_Bus_WorkOrder.F_Level = level;
  7217. //是否直办(即时答复)0:,否1: 是
  7218. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7219. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7220. //如果选择即刻答复:是,即为直办,工单结束
  7221. if (isresult == 1)
  7222. {
  7223. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7224. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7225. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7226. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7227. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7228. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7229. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7230. }
  7231. else if (issubmit == 1)
  7232. {
  7233. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7234. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7235. }
  7236. #region
  7237. //20190715 审核环节去掉 zhengbingbing
  7238. //else
  7239. //{
  7240. // if(modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7241. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7242. //}
  7243. //else if (issubmit == 1)
  7244. //{
  7245. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7246. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7247. //}
  7248. #endregion
  7249. workorderBLL.Update(modelT_Bus_WorkOrder);
  7250. #endregion
  7251. #region 插入操作记录
  7252. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7253. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7254. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7255. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7256. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7257. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7258. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7259. {
  7260. oper.F_Message = userinfo + " 修改了工单";
  7261. }
  7262. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7263. {
  7264. oper.F_Message = userinfo + " 修改并提交了工单";
  7265. }
  7266. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7267. {
  7268. oper.F_Message = userinfo + " 修改并结案了工单";
  7269. }
  7270. oper.F_CreateUser = userModel.F_UserCode;
  7271. oper.F_CreateTime = DateTime.Now;
  7272. oper.F_IsDelete = 0;
  7273. operBLL.Add(oper);
  7274. //推送消息表
  7275. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7276. {
  7277. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7278. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7279. foreach (var u in users)
  7280. {
  7281. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7282. }
  7283. }
  7284. //调用科大讯飞
  7285. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7286. {
  7287. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7288. 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());
  7289. if (bl)
  7290. {
  7291. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7292. }
  7293. else
  7294. {
  7295. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7296. }
  7297. }
  7298. #endregion
  7299. trans.Complete();
  7300. }
  7301. return Success("操作成功");
  7302. }
  7303. else
  7304. {
  7305. return Error("操作失败");
  7306. }
  7307. }
  7308. else
  7309. {
  7310. return Success("权限不足");
  7311. }
  7312. }
  7313. /// <summary>
  7314. /// 修改工单信息
  7315. /// </summary>
  7316. /// <returns></returns>
  7317. [Authority]
  7318. public ActionResult UpdateWorkOrder()
  7319. {
  7320. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7321. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7322. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7323. {
  7324. string workorderid = RequestString.GetFormString("workorderid");
  7325. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7326. int isover = RequestString.GetInt("isover", 0);
  7327. //if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 0))
  7328. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish))
  7329. {
  7330. string newresult = RequestString.GetFormString("newresult");
  7331. using (TransactionScope trans = new TransactionScope())
  7332. {
  7333. #region 保存工单信息
  7334. modelT_Bus_WorkOrder.F_NewResult = newresult;//
  7335. workorderBLL.Update(modelT_Bus_WorkOrder);
  7336. #endregion
  7337. #region 插入操作记录
  7338. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7339. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7340. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7341. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7342. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7343. #region 修改工单记录
  7344. if (isover==1&& modelT_Bus_WorkOrder.F_WorkState!=9)
  7345. {
  7346. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  7347. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7348. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7349. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7350. modelT_Bus_WorkOrder.F_FinalOpinion = newresult;
  7351. workorderBLL.Update(modelT_Bus_WorkOrder);
  7352. }
  7353. #endregion
  7354. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7355. if (isover==1)
  7356. {
  7357. oper.F_Message = userinfo + " 修改办理内容并结案了工单";
  7358. }
  7359. else
  7360. {
  7361. oper.F_Message = userinfo + " 修改了办理内容";
  7362. }
  7363. oper.F_CreateUser = userModel.F_UserCode;
  7364. oper.F_CreateTime = DateTime.Now;
  7365. oper.F_IsDelete = 0;
  7366. operBLL.Add(oper);
  7367. #endregion
  7368. trans.Complete();
  7369. }
  7370. return Success("操作成功");
  7371. }
  7372. else
  7373. {
  7374. return Error("操作失败");
  7375. }
  7376. }
  7377. else
  7378. {
  7379. return Success("权限不足");
  7380. }
  7381. }
  7382. /// <summary>
  7383. /// 修改工单信息
  7384. /// </summary>
  7385. /// <returns></returns>
  7386. [Authority]
  7387. public ActionResult UpdateRemarks()
  7388. {
  7389. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7390. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7391. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7392. {
  7393. string workorderid = RequestString.GetFormString("workorderid");
  7394. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7395. string workRemarks = RequestString.GetFormString("workRemarks");
  7396. using (TransactionScope trans = new TransactionScope())
  7397. {
  7398. #region 保存工单信息
  7399. modelT_Bus_WorkOrder.F_WorkRemarks = workRemarks;//
  7400. workorderBLL.Update(modelT_Bus_WorkOrder);
  7401. #endregion
  7402. #region 插入操作记录
  7403. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7404. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7405. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7406. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7407. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7408. #region 修改工单记录
  7409. #endregion
  7410. oper.F_Message = " 修改了备注信息:" + workRemarks;
  7411. oper.F_CreateUser = userModel.F_UserCode;
  7412. oper.F_CreateTime = DateTime.Now;
  7413. oper.F_IsDelete = 0;
  7414. operBLL.Add(oper);
  7415. #endregion
  7416. trans.Complete();
  7417. }
  7418. return Success("操作成功");
  7419. }
  7420. else
  7421. {
  7422. return Success("权限不足");
  7423. }
  7424. }
  7425. /// <summary>
  7426. /// 修改工单信息
  7427. /// </summary>
  7428. /// <returns></returns>
  7429. [Authority]
  7430. public ActionResult EditWorkOrderBySource()
  7431. {
  7432. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7433. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7434. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7435. {
  7436. string workorderid = RequestString.GetFormString("workorderid");
  7437. int source = RequestString.GetInt("source", 0);
  7438. string cusname = RequestString.GetFormString("cusname");
  7439. string cussex = RequestString.GetFormString("cussex");
  7440. string cusphone = RequestString.GetFormString("cusphone");
  7441. string cusaddress = RequestString.GetFormString("cusaddress");
  7442. string email = RequestString.GetFormString("email");
  7443. string zipcode = RequestString.GetFormString("zipcode");
  7444. string conname = RequestString.GetFormString("conname");
  7445. string conphone = RequestString.GetFormString("conphone");
  7446. string title = RequestString.GetFormString("title");
  7447. string content = RequestString.GetFormString("content");
  7448. string files = RequestString.GetFormString("files");
  7449. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7450. string sourceaddress = RequestString.GetFormString("sourceaddress");
  7451. int isresult = RequestString.GetInt("isresult", 0);
  7452. string result = RequestString.GetFormString("result");
  7453. string resultremarks = RequestString.GetFormString("resultremarks");
  7454. string keys = RequestString.GetFormString("keys");
  7455. string splituser = RequestString.GetFormString("splituser");
  7456. int type = RequestString.GetInt("type", 0);
  7457. int bigtype = RequestString.GetInt("bigtype", 0);
  7458. int smalltype = RequestString.GetInt("smalltype", 0);
  7459. int isprotect = RequestString.GetInt("isprotect", 0);
  7460. int level = RequestString.GetInt("level", 0);
  7461. int issubmit = RequestString.GetInt("issubmit", 0);
  7462. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7463. if (modelT_Bus_WorkOrder != null)
  7464. {
  7465. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  7466. {
  7467. using (TransactionScope trans = new TransactionScope())
  7468. {
  7469. #region 保存工单信息
  7470. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  7471. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  7472. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  7473. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  7474. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  7475. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  7476. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  7477. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  7478. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  7479. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  7480. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  7481. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  7482. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  7483. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  7484. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  7485. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  7486. modelT_Bus_WorkOrder.F_File = files;//附件
  7487. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  7488. modelT_Bus_WorkOrder.F_Key = keys;
  7489. modelT_Bus_WorkOrder.F_Level = level;
  7490. //是否直办(即时答复)0:,否1: 是
  7491. modelT_Bus_WorkOrder.F_IsResult = isresult;
  7492. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  7493. modelT_Bus_WorkOrder.F_ResultRemarks = resultremarks;
  7494. //如果选择即刻答复:是,即为直办,工单结束
  7495. if (isresult == 1)
  7496. {
  7497. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  7498. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  7499. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  7500. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  7501. modelT_Bus_WorkOrder.F_IsClosed = 1;
  7502. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  7503. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  7504. }
  7505. else if (issubmit == 1)
  7506. {
  7507. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7508. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7509. }
  7510. #region
  7511. //20190715 去掉审核环节 zhengbingbing
  7512. //else
  7513. //{
  7514. // if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7515. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;
  7516. //}
  7517. //20190329
  7518. //else if (issubmit == 1)
  7519. //{
  7520. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7521. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  7522. //}
  7523. #endregion
  7524. modelT_Bus_WorkOrder.F_CreateUser = userModel.F_UserCode;
  7525. modelT_Bus_WorkOrder.F_IsEnabled = 1;
  7526. modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now;
  7527. modelT_Bus_WorkOrder.F_IsDelete = 0;
  7528. workorderBLL.Update(modelT_Bus_WorkOrder);
  7529. #endregion
  7530. #region 插入操作记录
  7531. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7532. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7533. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7534. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  7535. oper.F_File = modelT_Bus_WorkOrder.F_File;
  7536. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7537. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  7538. {
  7539. oper.F_Message = userinfo + " 处理了工单";
  7540. }
  7541. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7542. {
  7543. oper.F_Message = userinfo + " 处理并提交了工单";
  7544. }
  7545. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7546. {
  7547. oper.F_Message = userinfo + " 处理并结案了工单";
  7548. }
  7549. oper.F_CreateUser = userModel.F_UserCode;
  7550. oper.F_CreateTime = DateTime.Now;
  7551. oper.F_IsDelete = 0;
  7552. operBLL.Add(oper);
  7553. //推送消息表
  7554. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  7555. {
  7556. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7557. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7558. foreach (var u in users)
  7559. {
  7560. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7561. }
  7562. }
  7563. //调用科大讯飞
  7564. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  7565. {
  7566. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  7567. 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());
  7568. if (bl)
  7569. {
  7570. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  7571. }
  7572. else
  7573. {
  7574. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  7575. }
  7576. }
  7577. #endregion
  7578. trans.Complete();
  7579. }
  7580. return Success("操作成功");
  7581. }
  7582. else
  7583. {
  7584. return Error("已经处理过了");
  7585. }
  7586. }
  7587. else
  7588. {
  7589. return Error("操作失败");
  7590. }
  7591. }
  7592. else
  7593. {
  7594. return Success("权限不足");
  7595. }
  7596. }
  7597. #region 新增审核工单流程
  7598. /// <summary>
  7599. /// 20190315需求变动,新增审核工单,由组长审核
  7600. /// </summary>
  7601. /// <param name="ids"></param>
  7602. /// <returns></returns>
  7603. [Authority]
  7604. public ActionResult AuditWorkOrder()
  7605. {
  7606. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7607. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7608. if (userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7609. {
  7610. string workorderid = RequestString.GetFormString("workorderid");
  7611. int state = RequestString.GetInt("state", 0);
  7612. string reason = RequestString.GetFormString("reason");
  7613. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7614. if (modelT_Bus_WorkOrder != null)
  7615. {
  7616. using (TransactionScope trans = new TransactionScope())
  7617. {
  7618. if (modelT_Bus_WorkOrder != null)
  7619. {
  7620. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7621. {
  7622. var opt = "审核并提交"; var re = "";
  7623. #region 保存工单信息
  7624. if (state == 1)
  7625. {
  7626. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7627. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  7628. }
  7629. else
  7630. {
  7631. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  7632. opt = "审核并退回";
  7633. re = ",退回原因:" + reason;
  7634. }
  7635. workorderBLL.Update(modelT_Bus_WorkOrder);
  7636. #endregion
  7637. #region 插入操作记录
  7638. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7639. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7640. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7641. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7642. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  7643. oper.F_CreateUser = userModel.F_UserCode;
  7644. oper.F_CreateTime = DateTime.Now;
  7645. oper.F_IsDelete = 0;
  7646. operBLL.Add(oper);
  7647. //推送消息表
  7648. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7649. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7650. {
  7651. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7652. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7653. foreach (var u in users)
  7654. {
  7655. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7656. }
  7657. }
  7658. #endregion
  7659. }
  7660. }
  7661. trans.Complete();
  7662. }
  7663. return Success("操作成功");
  7664. }
  7665. else
  7666. {
  7667. return Error("操作失败");
  7668. }
  7669. }
  7670. else
  7671. {
  7672. return Error("权限不足");
  7673. }
  7674. }
  7675. #endregion
  7676. // var dtex = DbHelperSQL.Query("update T_Bus_WorkOrder set IsExport=1 where 1=1 " + sql).Tables[0];
  7677. /// <summary>
  7678. /// 回传工单
  7679. /// </summary>
  7680. /// <param name="ids"></param>
  7681. /// <returns></returns>
  7682. [Authority]
  7683. public ActionResult Sendback(string[] ids)
  7684. {
  7685. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7686. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7687. if (ids != null && ids.Length > 0)
  7688. {
  7689. foreach (string str in ids)
  7690. {
  7691. using (TransactionScope trans = new TransactionScope())
  7692. {
  7693. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7694. if (modelT_Bus_WorkOrder != null)
  7695. {
  7696. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7697. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  7698. {
  7699. #region 保存工单信息
  7700. modelT_Bus_WorkOrder.IsExport = 1;
  7701. if (!string .IsNullOrEmpty (modelT_Bus_WorkOrder.F_Files))
  7702. {
  7703. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed ;
  7704. }
  7705. modelT_Bus_WorkOrder.F_Hcdatetime = DateTime.Now;//回传时间
  7706. workorderBLL.Update(modelT_Bus_WorkOrder);
  7707. #endregion
  7708. #region 插入操作记录
  7709. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7710. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7711. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7712. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7713. oper.F_Message = userinfo + " 回传了工单";
  7714. oper.F_CreateUser = userModel.F_UserCode;
  7715. oper.F_CreateTime = DateTime.Now;
  7716. oper.F_IsDelete = 0;
  7717. operBLL.Add(oper);
  7718. //推送消息表
  7719. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7720. #endregion
  7721. }
  7722. }
  7723. trans.Complete();
  7724. }
  7725. }
  7726. return Success("操作成功");
  7727. }
  7728. else
  7729. {
  7730. return Error("操作失败");
  7731. }
  7732. }
  7733. /// <summary>
  7734. /// 提交工单
  7735. /// </summary>
  7736. /// <param name="ids"></param>
  7737. /// <returns></returns>
  7738. [Authority]
  7739. public ActionResult SubmitWorkOrder(string[] ids)
  7740. {
  7741. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7742. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7743. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7744. {
  7745. if (ids != null && ids.Length > 0)
  7746. {
  7747. foreach (string str in ids)
  7748. {
  7749. using (TransactionScope trans = new TransactionScope())
  7750. {
  7751. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  7752. if (modelT_Bus_WorkOrder != null)
  7753. {
  7754. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  7755. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  7756. {
  7757. #region 保存工单信息
  7758. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  7759. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  7760. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  7761. workorderBLL.Update(modelT_Bus_WorkOrder);
  7762. #endregion
  7763. #region 插入操作记录
  7764. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7765. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7766. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7767. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7768. oper.F_Message = userinfo + " 提交了工单";
  7769. oper.F_CreateUser = userModel.F_UserCode;
  7770. oper.F_CreateTime = DateTime.Now;
  7771. oper.F_IsDelete = 0;
  7772. operBLL.Add(oper);
  7773. //推送消息表
  7774. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7775. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7776. {
  7777. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY') ").Select(p => p.F_RoleId);
  7778. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  7779. foreach (var u in users)
  7780. {
  7781. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  7782. }
  7783. }
  7784. #endregion
  7785. }
  7786. }
  7787. trans.Complete();
  7788. }
  7789. }
  7790. return Success("操作成功");
  7791. }
  7792. else
  7793. {
  7794. return Error("操作失败");
  7795. }
  7796. }
  7797. else
  7798. {
  7799. return Error("权限不足");
  7800. }
  7801. }
  7802. /// <summary>
  7803. /// 回退工单
  7804. /// </summary>
  7805. /// <returns></returns>
  7806. [Authority]
  7807. public ActionResult ReturnWorkOrder()
  7808. {
  7809. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7810. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  7811. string workorderid = RequestString.GetFormString("workorderid");
  7812. string backuser = RequestString.GetFormString("backuser");
  7813. string backreason = RequestString.GetFormString("backreason");
  7814. string files = RequestString.GetFormString("files");
  7815. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  7816. if (modelT_Bus_WorkOrder != null)
  7817. {
  7818. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  7819. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  7820. {
  7821. using (TransactionScope trans = new TransactionScope())
  7822. {
  7823. #region 保存工单信息
  7824. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  7825. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  7826. modelT_Bus_WorkOrder.F_IsResult = 0;
  7827. modelT_Bus_WorkOrder.F_IsReturn = 1;
  7828. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  7829. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  7830. workorderBLL.Update(modelT_Bus_WorkOrder);
  7831. #endregion
  7832. #region 插入批示记录
  7833. //批示记录
  7834. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  7835. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  7836. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  7837. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  7838. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  7839. model_T_Bus_SubmitSuper.F_File = files;//附件
  7840. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  7841. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  7842. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  7843. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  7844. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  7845. #endregion
  7846. #region 插入操作记录
  7847. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7848. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7849. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7850. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7851. oper.F_Message = userinfo + " 回退了工单";
  7852. oper.F_CreateUser = userModel.F_UserCode;
  7853. oper.F_CreateTime = DateTime.Now;
  7854. oper.F_IsDelete = 0;
  7855. operBLL.Add(oper);
  7856. #endregion
  7857. trans.Complete();
  7858. }
  7859. return Success("操作成功");
  7860. }
  7861. else
  7862. {
  7863. return Error("已经处理过了");
  7864. }
  7865. }
  7866. else
  7867. {
  7868. return Error("操作失败");
  7869. }
  7870. }
  7871. /// <summary>
  7872. /// 领导批示/市长指示
  7873. /// </summary>
  7874. /// <param name="ids"></param>
  7875. /// <returns></returns>
  7876. [Authority]
  7877. public ActionResult SuperWorkOrder()
  7878. {
  7879. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7880. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7881. string workorderid = RequestString.GetFormString("workorderid");
  7882. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  7883. string superuser = RequestString.GetFormString("superuser");
  7884. string superopinion = RequestString.GetFormString("superopinion");
  7885. string files = RequestString.GetFormString("files");
  7886. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7887. if (modelT_Bus_WorkOrder != null)
  7888. {
  7889. using (TransactionScope trans = new TransactionScope())
  7890. {
  7891. #region 保存工单信息 no use
  7892. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  7893. //workorderBLL.Update(modelT_Bus_WorkOrder);
  7894. #endregion
  7895. #region 插入批示记录
  7896. //批示记录
  7897. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  7898. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  7899. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  7900. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  7901. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  7902. model_T_Bus_SubmitSuper.F_File = files;//附件
  7903. model_T_Bus_SubmitSuper.F_CreateUser = userModel.F_UserCode;//呈批人
  7904. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  7905. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  7906. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  7907. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  7908. #endregion
  7909. #region 插入操作记录
  7910. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  7911. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7912. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  7913. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  7914. oper.F_Message = userinfo+ " 批示了工单";
  7915. oper.F_CreateUser = userModel.F_UserCode;
  7916. oper.F_CreateTime = DateTime.Now;
  7917. oper.F_IsDelete = 0;
  7918. operBLL.Add(oper);
  7919. #endregion
  7920. trans.Complete();
  7921. }
  7922. return Success("操作成功");
  7923. }
  7924. else
  7925. {
  7926. return Error("操作失败");
  7927. }
  7928. }
  7929. /// <summary>
  7930. /// 交办工单
  7931. /// </summary>
  7932. /// <returns></returns>
  7933. [Authority]
  7934. public ActionResult AssignWorkOrder()
  7935. {
  7936. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  7937. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  7938. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  7939. {
  7940. string workorderid = RequestString.GetFormString("workorderid");
  7941. int state = RequestString.GetInt("state", 0);
  7942. int assignid = RequestString.GetInt("assignid", 0);
  7943. int maindeptid = RequestString.GetInt("maindeptid", 0);
  7944. //string maindeptid = RequestString.GetFormString("maindeptid");
  7945. string otherdeptids = RequestString.GetFormString("otherdeptids");
  7946. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  7947. string assignedopinion = RequestString.GetFormString("assignedopinion");
  7948. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  7949. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  7950. {
  7951. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  7952. {
  7953. return Error("操作失败");
  7954. }
  7955. }
  7956. if (!string.IsNullOrEmpty(otherdeptids))
  7957. {
  7958. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  7959. {
  7960. return Error("主办单位不能出现在协办单位");
  7961. }
  7962. }
  7963. if (limittime < DateTime.Now)
  7964. {
  7965. return Error("办理时限不能小于当前时间");
  7966. }
  7967. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  7968. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  7969. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  7970. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  7971. {
  7972. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  7973. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7974. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  7975. {
  7976. int aid = 0;
  7977. using (TransactionScope trans = new TransactionScope())
  7978. {
  7979. if (assignid == 0)
  7980. {
  7981. #region 插入交办记录
  7982. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  7983. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  7984. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  7985. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  7986. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  7987. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  7988. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  7989. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  7990. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  7991. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  7992. modelT_Bus_AssignedInfo.F_IsSure = 0;
  7993. modelT_Bus_AssignedInfo.F_IsReload = 0;
  7994. modelT_Bus_AssignedInfo.F_IsNext = 0;
  7995. modelT_Bus_AssignedInfo.F_TimeResp= assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  7996. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  7997. #endregion
  7998. }
  7999. else
  8000. {
  8001. #region 修改交办记录
  8002. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8003. if (modelT_Bus_AssignedInfo != null)
  8004. {
  8005. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8006. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  8007. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8008. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8009. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8010. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8011. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8012. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8013. assignBLL.Update(modelT_Bus_AssignedInfo);
  8014. aid = modelT_Bus_AssignedInfo.F_Id;
  8015. }
  8016. #endregion
  8017. }
  8018. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8019. {
  8020. #region 保存工单信息
  8021. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  8022. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8023. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8024. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays (3);
  8025. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  8026. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8027. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8028. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8029. workorderBLL.Update(modelT_Bus_WorkOrder);
  8030. #endregion
  8031. #region 删除草稿信息
  8032. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8033. foreach (var cg in cglist)
  8034. {
  8035. cg.F_IsDelete = 1;
  8036. cg.F_DeleteUser = userModel.F_UserCode;
  8037. cg.F_DeleteTime = DateTime.Now;
  8038. assignBLL.Update(cg);
  8039. }
  8040. #endregion
  8041. #region 插入操作记录
  8042. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8043. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8044. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  8045. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8046. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8047. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8048. if (!string.IsNullOrEmpty(otherdeptids))
  8049. {
  8050. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8051. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8052. }
  8053. oper.F_CreateUser = userModel.F_UserCode;
  8054. oper.F_CreateTime = DateTime.Now;
  8055. oper.F_IsDelete = 0;
  8056. operBLL.Add(oper);
  8057. //推送消息表
  8058. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8059. foreach (var u in users)
  8060. {
  8061. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8062. if (!string .IsNullOrEmpty (u.F_Mobile))
  8063. {
  8064. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8065. string[] mag = { oper.F_WorkOrderId };
  8066. bool n =new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8067. }
  8068. if (!string.IsNullOrEmpty(u.F_Telephone ))
  8069. {
  8070. var userlist = u.F_Telephone.Split(',');
  8071. if (userlist !=null )
  8072. {
  8073. string count = "你有新的工单,工单号" + oper.F_WorkOrderId + ",请及时查收。";
  8074. string[] mag = { oper.F_WorkOrderId };
  8075. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8076. }
  8077. }
  8078. }
  8079. #endregion
  8080. }
  8081. trans.Complete();
  8082. }
  8083. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  8084. }
  8085. else
  8086. {
  8087. return Error("已经交办过了");
  8088. }
  8089. }
  8090. else
  8091. {
  8092. return Error("操作失败");
  8093. }
  8094. }
  8095. else
  8096. {
  8097. return Error("权限不足");
  8098. }
  8099. }
  8100. [Authority]
  8101. public ActionResult AssignWorkOrderNew()
  8102. {
  8103. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8104. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8105. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8106. {
  8107. string workorderid = RequestString.GetFormString("workorderid");
  8108. int state = RequestString.GetInt("state", 0);
  8109. int assignid = RequestString.GetInt("assignid", 0);
  8110. string maindeptid = RequestString.GetFormString("maindeptid");
  8111. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8112. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") );
  8113. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8114. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  8115. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  8116. {
  8117. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != userModel.F_UserCode)
  8118. {
  8119. return Error("操作失败");
  8120. }
  8121. }
  8122. if (!string.IsNullOrEmpty(otherdeptids))
  8123. {
  8124. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8125. if (both.Count()>0)
  8126. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8127. {
  8128. return Error("主办单位不能出现在协办单位");
  8129. }
  8130. }
  8131. if (limittime < DateTime.Now)
  8132. {
  8133. return Error("办理时限不能小于当前时间");
  8134. }
  8135. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8136. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8137. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8138. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8139. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid+")");
  8140. if (modelT_Bus_WorkOrder != null && deptlist != null&& deptlist.Count>0)
  8141. {
  8142. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8143. {
  8144. int aid = 0; var rre = "";
  8145. using (TransactionScope trans = new TransactionScope())
  8146. {
  8147. if (deptlist.Count == 1)
  8148. {
  8149. var deptinfo = deptlist.FirstOrDefault();
  8150. if (assignid == 0)
  8151. {
  8152. #region 插入交办记录
  8153. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8154. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8155. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8156. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8157. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8158. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8159. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8160. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8161. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8162. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8163. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8164. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8165. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8166. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8167. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8168. #endregion
  8169. }
  8170. else
  8171. {
  8172. #region 修改交办记录
  8173. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  8174. if (modelT_Bus_AssignedInfo != null)
  8175. {
  8176. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8177. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8178. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8179. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8180. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8181. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8182. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8183. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8184. assignBLL.Update(modelT_Bus_AssignedInfo);
  8185. aid = modelT_Bus_AssignedInfo.F_Id;
  8186. }
  8187. #endregion
  8188. }
  8189. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8190. {
  8191. #region 保存工单信息
  8192. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  8193. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  8194. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  8195. modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  8196. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  8197. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  8198. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  8199. workorderBLL.Update(modelT_Bus_WorkOrder);
  8200. #endregion
  8201. #region 删除草稿信息
  8202. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  8203. foreach (var cg in cglist)
  8204. {
  8205. cg.F_IsDelete = 1;
  8206. cg.F_DeleteUser = userModel.F_UserCode;
  8207. cg.F_DeleteTime = DateTime.Now;
  8208. assignBLL.Update(cg);
  8209. }
  8210. #endregion
  8211. #region 插入操作记录
  8212. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  8213. if (!string.IsNullOrEmpty(otherdeptids))
  8214. {
  8215. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8216. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8217. }
  8218. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8219. //推送消息表
  8220. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8221. foreach (var u in users)
  8222. {
  8223. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8224. if (!string.IsNullOrEmpty(u.F_Mobile))
  8225. {
  8226. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8227. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8228. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8229. }
  8230. if (!string.IsNullOrEmpty(u.F_Telephone))
  8231. {
  8232. var userlist = u.F_Telephone.Split(',');
  8233. if (userlist != null)
  8234. {
  8235. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8236. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8237. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8238. }
  8239. }
  8240. }
  8241. #endregion
  8242. }
  8243. }
  8244. else
  8245. {
  8246. string newids = ""; string errdeptid = ""; string deptname = "";
  8247. foreach (var deptmasinfo in deptlist)
  8248. {
  8249. deptname += deptmasinfo.F_DeptName + ",";
  8250. }
  8251. foreach (var deptinfo in deptlist)
  8252. {
  8253. #region 新增工单
  8254. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8255. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8256. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8257. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8258. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8259. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8260. {
  8261. errdeptid += deptinfo.F_DeptName + ",";
  8262. continue;
  8263. }
  8264. #endregion
  8265. #region 交办
  8266. #region 插入交办记录
  8267. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8268. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8269. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8270. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8271. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8272. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8273. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8274. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8275. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8276. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8277. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8278. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8279. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8280. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8281. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8282. #endregion
  8283. #endregion
  8284. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8285. {
  8286. #region 保存工单信息
  8287. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8288. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8289. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8290. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8291. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8292. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8293. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8294. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8295. #endregion
  8296. #region 删除草稿信息
  8297. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  8298. foreach (var cg in cglist)
  8299. {
  8300. cg.F_IsDelete = 1;
  8301. cg.F_DeleteUser = userModel.F_UserCode;
  8302. cg.F_DeleteTime = DateTime.Now;
  8303. assignBLL.Update(cg);
  8304. }
  8305. #endregion
  8306. #region 插入操作记录
  8307. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8308. if (!string.IsNullOrEmpty(otherdeptids))
  8309. {
  8310. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8311. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8312. }
  8313. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8314. //推送消息表
  8315. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8316. foreach (var u in users)
  8317. {
  8318. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8319. if (!string.IsNullOrEmpty(u.F_Mobile))
  8320. {
  8321. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8322. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8323. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8324. }
  8325. if (!string.IsNullOrEmpty(u.F_Telephone))
  8326. {
  8327. var userlist = u.F_Telephone.Split(',');
  8328. if (userlist != null)
  8329. {
  8330. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  8331. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  8332. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8333. }
  8334. }
  8335. }
  8336. #endregion
  8337. }
  8338. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8339. //deptname += deptinfo.F_DeptName + ",";
  8340. }
  8341. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8342. var msgs = "";
  8343. if (errdeptid == "")
  8344. {
  8345. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8346. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8347. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8348. modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8349. workorderBLL.Update(modelT_Bus_WorkOrder);
  8350. msgs = userinfo + " 交办多单位,工单编号为:" + newids;
  8351. }
  8352. else
  8353. {
  8354. errdeptid = errdeptid.Trim(',');
  8355. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8356. }
  8357. #region 插入操作记录
  8358. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8359. var WorkOrder = newids.Split(',');
  8360. if (WorkOrder!=null && WorkOrder.Length >0)
  8361. {
  8362. foreach (var it in WorkOrder)
  8363. {
  8364. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8365. }
  8366. }
  8367. #endregion
  8368. }
  8369. trans.Complete();
  8370. #region
  8371. if (("," + maindeptid + ",").Contains(",304,"))
  8372. {
  8373. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8374. if(modelT_Bus_WorkOrder.F_IsProtect==1)
  8375. {
  8376. conphone = "保密";
  8377. conname= "保密";
  8378. }
  8379. rre = new ShangQiuWorkOrderController().SendToGrdding(modelT_Bus_AssignedInfo.F_Id, workorderid, modelT_Bus_WorkOrder.F_ComTitle, modelT_Bus_WorkOrder.F_ComContent, modelT_Bus_WorkOrder.F_SourceAddress, conphone, conname, modelT_Bus_WorkOrder.F_File, userModel.F_UserCode, modelT_Bus_WorkOrder.F_InfoType.Value,modelT_Bus_WorkOrder.F_Latitude.ToString(),modelT_Bus_WorkOrder.F_Longitude.ToString()).ToString();
  8380. }
  8381. #endregion
  8382. }
  8383. return Success("操作成功"+ rre, modelT_Bus_AssignedInfo.F_Id);
  8384. }
  8385. else
  8386. {
  8387. return Error("已经交办过了");
  8388. }
  8389. }
  8390. else
  8391. {
  8392. return Error("操作失败");
  8393. }
  8394. }
  8395. else
  8396. {
  8397. return Error("权限不足");
  8398. }
  8399. }
  8400. /// <summary>
  8401. /// 二次转派工单
  8402. /// </summary>
  8403. /// <returns></returns>
  8404. [Authority]
  8405. public ActionResult TurnSendWorkOrder()
  8406. {
  8407. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8408. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8409. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8410. {
  8411. string workorderid = RequestString.GetFormString("workorderid");
  8412. int state = RequestString.GetInt("state", 0);
  8413. int assignid = RequestString.GetInt("assignid", 0);
  8414. string maindeptid = RequestString.GetFormString("maindeptid");
  8415. string otherdeptids = RequestString.GetFormString("otherdeptids");
  8416. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  8417. string assignedopinion = RequestString.GetFormString("assignedopinion");
  8418. if (!string.IsNullOrEmpty(otherdeptids))
  8419. {
  8420. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  8421. if (both.Count() > 0)
  8422. //if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  8423. {
  8424. return Error("主办单位不能出现在协办单位");
  8425. }
  8426. }
  8427. if (limittime < DateTime.Now)
  8428. {
  8429. return Error("办理时限不能小于当前时间");
  8430. }
  8431. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  8432. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8433. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8434. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8435. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  8436. string newids = ""; string errdeptid = ""; string deptname = "";
  8437. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  8438. {
  8439. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  8440. {
  8441. int aid = 0; var rre = ""; deptname = "";
  8442. using (TransactionScope trans = new TransactionScope())
  8443. {
  8444. if (deptlist.Count == 1)
  8445. {
  8446. var deptinfo = deptlist.FirstOrDefault();
  8447. deptname = deptinfo.F_DeptName;
  8448. #region 新增工单
  8449. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8450. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8451. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8452. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8453. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8454. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8455. #endregion
  8456. #region 插入交办记录
  8457. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8458. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8459. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8460. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8461. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8462. //modelT_Bus_AssignedInfo.F_LimitTime = null;//办理时间
  8463. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8464. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8465. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8466. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8467. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8468. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8469. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8470. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8471. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8472. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8473. #endregion
  8474. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8475. {
  8476. #region 保存工单信息
  8477. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8478. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8479. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8480. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8481. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8482. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8483. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8484. modelT_Bus_WorkOrder1.F_DealTime = null;
  8485. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8486. newids += ',' + modelT_Bus_WorkOrder1.F_WorkOrderId;
  8487. #endregion
  8488. #region 删除草稿信息
  8489. #endregion
  8490. #region 插入操作记录
  8491. var msgss = userinfo + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8492. if (!string.IsNullOrEmpty(otherdeptids))
  8493. {
  8494. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8495. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8496. }
  8497. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8498. //推送消息表
  8499. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8500. foreach (var u in users)
  8501. {
  8502. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8503. if (!string.IsNullOrEmpty(u.F_Mobile))
  8504. {
  8505. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8506. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8507. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8508. }
  8509. if (!string.IsNullOrEmpty(u.F_Telephone))
  8510. {
  8511. var userlist = u.F_Telephone.Split(',');
  8512. if (userlist != null)
  8513. {
  8514. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8515. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8516. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8517. }
  8518. }
  8519. }
  8520. #endregion
  8521. }
  8522. var msgss1 = userinfo + " 二次转派交办了工单,主办单位:" + deptinfo.F_DeptName;
  8523. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8524. }
  8525. else
  8526. {
  8527. foreach (var deptmasinfo in deptlist)
  8528. {
  8529. deptname += deptmasinfo.F_DeptName + ",";
  8530. }
  8531. foreach (var deptinfo in deptlist)
  8532. {
  8533. //deptname += deptinfo.F_DeptName + ",";
  8534. #region 新增工单
  8535. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  8536. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  8537. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  8538. modelT_Bus_WorkOrder1.F_MainWorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8539. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  8540. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  8541. {
  8542. errdeptid += deptinfo.F_DeptName + ",";
  8543. continue;
  8544. }
  8545. #endregion
  8546. #region 交办
  8547. #region 插入交办记录
  8548. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  8549. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  8550. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  8551. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  8552. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  8553. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8554. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  8555. modelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  8556. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8557. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8558. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8559. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8560. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8561. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8562. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  8563. #endregion
  8564. #endregion
  8565. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  8566. {
  8567. #region 保存工单信息
  8568. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  8569. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  8570. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  8571. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  8572. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  8573. modelT_Bus_WorkOrder1.F_AssignUser = userModel.F_UserCode;
  8574. modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  8575. workorderBLL.Update(modelT_Bus_WorkOrder1);
  8576. #endregion
  8577. #region 删除草稿信息
  8578. #endregion
  8579. #region 插入操作记录
  8580. var msgss = userinfo + " 交办了工单,主办单位:" + deptname;
  8581. if (!string.IsNullOrEmpty(otherdeptids))
  8582. {
  8583. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  8584. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  8585. }
  8586. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, userModel.F_UserCode);
  8587. //推送消息表
  8588. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  8589. foreach (var u in users)
  8590. {
  8591. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  8592. if (!string.IsNullOrEmpty(u.F_Mobile))
  8593. {
  8594. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8595. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8596. bool n = new SMSController().AddSmS(833958, userId, count, mag, u.F_Mobile);
  8597. }
  8598. if (!string.IsNullOrEmpty(u.F_Telephone))
  8599. {
  8600. var userlist = u.F_Telephone.Split(',');
  8601. if (userlist != null)
  8602. {
  8603. string count = "你有新的工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  8604. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  8605. bool n = new SMSController().AddSmSGroup(833958, userId, count, mag, userlist, u.F_Telephone);
  8606. }
  8607. }
  8608. }
  8609. #endregion
  8610. }
  8611. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  8612. }
  8613. newids = newids.Trim(','); deptname = deptname.Trim(',');
  8614. var msgs = "";
  8615. if (errdeptid == "")
  8616. {
  8617. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//待查收
  8618. //modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8619. //modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  8620. //modelT_Bus_WorkOrder.F_IsDelete = 1;//删除旧工单
  8621. //workorderBLL.Update(modelT_Bus_WorkOrder);
  8622. msgs = userinfo + " 二次转派交办了工单,工单编号为:" + newids;
  8623. }
  8624. else
  8625. {
  8626. errdeptid = errdeptid.Trim(',');
  8627. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  8628. }
  8629. #region 插入操作记录
  8630. var msgss1 = userinfo + " 二次转派交办了工单,主办单位:" + deptname;
  8631. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss1, userModel.F_UserCode);
  8632. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, userModel.F_UserCode);
  8633. var WorkOrder = newids.Split(',');
  8634. if (WorkOrder != null && WorkOrder.Length > 0)
  8635. {
  8636. foreach (var it in WorkOrder)
  8637. {
  8638. addoptlog(it, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, userModel.F_UserCode);
  8639. }
  8640. }
  8641. #endregion
  8642. }
  8643. trans.Complete();
  8644. #region
  8645. if (("," + maindeptid + ",").Contains(",304,"))
  8646. {
  8647. var conname = modelT_Bus_WorkOrder.F_CusName; var conphone = modelT_Bus_WorkOrder.F_ConPhone;
  8648. if (modelT_Bus_WorkOrder.F_IsProtect == 1)
  8649. {
  8650. conphone = "保密";
  8651. conname = "保密";
  8652. }
  8653. rre = new ShangQiuWorkOrderController().SendToGrdding(modelT_Bus_AssignedInfo.F_Id, workorderid, modelT_Bus_WorkOrder.F_ComTitle, modelT_Bus_WorkOrder.F_ComContent, modelT_Bus_WorkOrder.F_SourceAddress, conphone, conname, modelT_Bus_WorkOrder.F_File, userModel.F_UserCode, modelT_Bus_WorkOrder.F_InfoType.Value, modelT_Bus_WorkOrder.F_Latitude.ToString(), modelT_Bus_WorkOrder.F_Longitude.ToString()).ToString();
  8654. }
  8655. #endregion
  8656. }
  8657. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  8658. }
  8659. else
  8660. {
  8661. return Error("已经交办过了");
  8662. }
  8663. }
  8664. else
  8665. {
  8666. return Error("操作失败");
  8667. }
  8668. }
  8669. else
  8670. {
  8671. return Error("权限不足");
  8672. }
  8673. }
  8674. /// <summary>
  8675. /// 工单提醒
  8676. /// </summary>
  8677. /// <param name="workordercode"></param>
  8678. /// <param name="deptid"></param>
  8679. /// <param name="type"></param>
  8680. /// <returns></returns>
  8681. [HttpPost]
  8682. public ActionResult SendSms(string workordercode,string deptid,int type=0,int isfs=0)
  8683. {
  8684. if (string .IsNullOrEmpty (deptid))
  8685. return Error("请选择部门");
  8686. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8687. string msg = "";
  8688. try
  8689. {
  8690. var deptsprit = deptid.Split(',');
  8691. if (deptsprit != null)
  8692. {
  8693. foreach (var iv in deptsprit)
  8694. {
  8695. var dept = new BLL.T_Sys_Department().GetModel(int.Parse(iv));
  8696. if (dept.F_IsSms==1|| isfs==1)
  8697. {
  8698. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + iv + "and F_DeleteFlag=0");
  8699. if (user != null)
  8700. {
  8701. foreach (var it in user)
  8702. {
  8703. if (!string.IsNullOrEmpty(it.F_Mobile))
  8704. {
  8705. string count = "";
  8706. string templetid = "";
  8707. if (type == 0)
  8708. {
  8709. templetid = "43683";
  8710. count = "您有新的工单,请及时查收处理,工单编号"+ workordercode + ",(如通过手机APP登陆,若待查收中无工单,请注意查看重办中列表)" ;
  8711. }
  8712. else if (type == 1)
  8713. {
  8714. templetid = "26155";
  8715. count = "您有工单正在被督办,请及时处理,工单编号" + workordercode;
  8716. }
  8717. else if (type == 2)
  8718. {
  8719. templetid = "26154";
  8720. count = "您有紧急工单,请及时处理,工单编号" + workordercode;
  8721. }
  8722. else
  8723. {
  8724. templetid = "29265";
  8725. count = "您有工单已经超时,请尽快处理,工单编号" + workordercode;
  8726. }
  8727. // bool n = SMSController.AddSmS(userId, count, workordercode, it.F_Mobile, templetid);
  8728. // if (n == false)
  8729. msg += it.F_UserName + "发送短信失败。";
  8730. }
  8731. }
  8732. }
  8733. }
  8734. }
  8735. }
  8736. }
  8737. catch
  8738. {
  8739. return Error("发送失败");
  8740. }
  8741. if (msg != "")
  8742. return Error(msg);
  8743. else
  8744. return Success("发送成功");
  8745. return Error("暂无人员");
  8746. }
  8747. /// <summary>
  8748. /// 办理结果通知
  8749. /// </summary>
  8750. /// <param name="msg1"></param>
  8751. /// <param name="msg2"></param>
  8752. /// <param name="msg3"></param>
  8753. /// <param name="msg4"></param>
  8754. /// <param name="mobile"></param>
  8755. /// <returns></returns>
  8756. public ActionResult SmsHand(string msg1 , string msg2 , string msg3,string msg4,string mobile)
  8757. {
  8758. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8759. string msg = msg1+","+ msg2 + "," + msg3 + "," + msg4;
  8760. string count = "尊敬的市民,您于" + msg1 + "反映的" + msg2 + "问题,工单号:" + msg3 + ",处理结果如下:" + msg4 + "。如有异议,请您再次致电12345,感谢您的支持。";
  8761. // bool n = SMSController.AddSmS(userId, count, msg, mobile, "26213");
  8762. // if (n)
  8763. return Success("发送成功");
  8764. // else
  8765. // return Error ("发送失败");
  8766. }
  8767. public ActionResult SmsOverTime(int Sms=0)
  8768. {
  8769. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  8770. workorder = new BLL.T_Bus_WorkOrder().GetModelList("F_IsDelete=0 and F_WorkState in (2,4) and (F_IsSms<"+ 3 + " or F_IsSms is null)");
  8771. if (workorder != null&& workorder.Count >0)
  8772. {
  8773. foreach (var it in workorder)
  8774. {
  8775. System.TimeSpan time = DateTime.Parse(it.F_LimitTime.ToString()) - DateTime.Now ;
  8776. if (time.TotalHours <= -24)
  8777. {
  8778. int ivn = int.Parse(string.Format("{0:f0}", time.TotalHours / 24));
  8779. if ((ivn + 2) > it.F_IsSms)
  8780. {
  8781. if (it.F_IsSms < 3 )
  8782. {
  8783. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8784. if (user != null)
  8785. {
  8786. foreach (var iv in user)
  8787. {
  8788. msg.AddInternalMessagesInfo("催单消息", "您有工单已超期"+string .Format ("{0:f0}", ivn*24) +"小时,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8789. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8790. {
  8791. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8792. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  8793. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  8794. bool n = new SMSController().AddSmS(833962, 0, count, mag, iv.F_Mobile);
  8795. it.F_IsSms = ivn + 2;
  8796. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8797. }
  8798. if (!string.IsNullOrEmpty(iv.F_Telephone))
  8799. {
  8800. var userlist = iv.F_Telephone.Split(',');
  8801. if (userlist != null)
  8802. {
  8803. foreach (var io in userlist)
  8804. {
  8805. string count = "你有工单" + it.F_WorkOrderId + "已超期" + string.Format("{0:f0}", ivn * 24) + "小时,请及时处理";
  8806. string[] mag = { it.F_WorkOrderId, "" + string.Format("{0:f0}", ivn * 24) + "小时" };
  8807. bool n = new SMSController().AddSmS(833962, 0, count, mag, io);
  8808. it.F_IsSms = ivn + 2;
  8809. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8810. }
  8811. }
  8812. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8813. }
  8814. }
  8815. }
  8816. }
  8817. }
  8818. }
  8819. else if (time.TotalHours <= 1)
  8820. {
  8821. if (it.F_IsSms < 2 )
  8822. {
  8823. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8824. if (user != null)
  8825. {
  8826. foreach (var iv in user)
  8827. {
  8828. msg.AddInternalMessagesInfo("催单消息", "您有工单1小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8829. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8830. {
  8831. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  8832. string[] mag = { it.F_WorkOrderId+ ",1" };
  8833. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  8834. it.F_IsSms = 2;
  8835. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8836. }
  8837. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  8838. {
  8839. var userlist = iv.F_Telephone.Split(',');
  8840. if (userlist != null)
  8841. {
  8842. foreach (var io in userlist)
  8843. {
  8844. string count = "你有工单" + it.F_WorkOrderId + ",1小时后超期,请及时处理";
  8845. string[] mag = { it.F_WorkOrderId + ",1" };
  8846. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  8847. it.F_IsSms = 2;
  8848. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8849. }
  8850. }
  8851. }
  8852. }
  8853. }
  8854. }
  8855. }
  8856. else if (time.TotalHours <= 4)
  8857. {
  8858. if (it.F_IsSms < 1 )
  8859. {
  8860. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + it.F_MainDeptId + "and F_DeleteFlag=0");
  8861. if (user != null)
  8862. {
  8863. foreach (var iv in user)
  8864. {
  8865. msg.AddInternalMessagesInfo("催单消息", "您有工单4小时后超期,请及时处理,工单号" + it.F_WorkOrderId, iv.F_UserCode, "8000", (int)EnumSmsType.additional);
  8866. if (!string.IsNullOrEmpty(iv.F_Mobile))
  8867. {
  8868. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  8869. string[] mag = { it.F_WorkOrderId + ",4" };
  8870. bool n = new SMSController().AddSmS(833961, 0, count, mag, iv.F_Mobile);
  8871. it.F_IsSms = 1;
  8872. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8873. }
  8874. if (!string.IsNullOrEmpty(iv.F_Telephone ))
  8875. {
  8876. var userlist = iv.F_Telephone.Split(',');
  8877. if (userlist != null)
  8878. {
  8879. foreach (var io in userlist)
  8880. {
  8881. string count = "你有工单" + it.F_WorkOrderId + ",4小时后超期,请及时处理";
  8882. string[] mag = { it.F_WorkOrderId + ",4" };
  8883. bool n = new SMSController().AddSmS(833961, 0, count, mag, io );
  8884. it.F_IsSms = 1;
  8885. bool t = new BLL.T_Bus_WorkOrder().Update(it);
  8886. }
  8887. }
  8888. // string count = " 您有工单已超期24小时,请及时处理,工单号" + it.F_WorkOrderId;
  8889. }
  8890. }
  8891. }
  8892. }
  8893. }
  8894. }
  8895. }
  8896. return Success("发送成功");
  8897. }
  8898. /// <summary>
  8899. /// 市长办使用人员可以对需要催办的转办件进行短信催办或系统催办系统 20220315
  8900. /// </summary>
  8901. /// <param name="woid"></param>
  8902. /// <returns></returns>
  8903. public ActionResult Reminders(string workorderid)
  8904. {
  8905. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8906. //int userId = 133;
  8907. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8908. if (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "ZXLD")
  8909. {
  8910. //string workorderid = RequestString.GetFormString("workorderid");
  8911. var womodel = workorderBLL.GetModel(workorderid);
  8912. var assignmodel = assignBLL.GetNewModelByWorkOrderID(workorderid);
  8913. if (womodel != null && assignmodel != null)
  8914. {
  8915. if (assignmodel.F_IsNext == 1 || assignmodel.F_IsNext == 2)
  8916. {
  8917. Model.T_Bus_AssignedInfo_Next assign_next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  8918. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + (assign_next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  8919. if (user != null)
  8920. {
  8921. foreach (var item in user)
  8922. {
  8923. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  8924. if (!string.IsNullOrEmpty(item.F_Mobile))
  8925. {
  8926. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8927. string[] mag = { womodel.F_WorkOrderId };
  8928. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  8929. }
  8930. if (!string.IsNullOrEmpty(item.F_Telephone))
  8931. {
  8932. var phonlist = item.F_Telephone.Split(',');
  8933. if (phonlist.Count() > 0)
  8934. {
  8935. foreach (var phon in phonlist)
  8936. {
  8937. string count = "你有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8938. string[] mag = { womodel.F_WorkOrderId };
  8939. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  8940. }
  8941. }
  8942. }
  8943. }
  8944. womodel.ReminderNum += 1;
  8945. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  8946. }
  8947. }
  8948. else
  8949. {
  8950. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + womodel.F_MainDeptId ?? 0 + " and F_DeleteFlag=0");
  8951. if (user != null)
  8952. {
  8953. foreach (var item in user)
  8954. {
  8955. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", item.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  8956. if (!string.IsNullOrEmpty(item.F_Mobile))
  8957. {
  8958. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8959. string[] mag = { womodel.F_WorkOrderId };
  8960. bool n = new SMSController().AddSmS(1335323, 0, count, mag, item.F_Mobile);
  8961. }
  8962. if (!string.IsNullOrEmpty(item.F_Telephone))
  8963. {
  8964. var phonlist = item.F_Telephone.Split(',');
  8965. if (phonlist.Count() > 0)
  8966. {
  8967. foreach (var phon in phonlist)
  8968. {
  8969. string count = "您有工单" + womodel.F_WorkOrderId + "收到催办,请及时处理";
  8970. string[] mag = { womodel.F_WorkOrderId };
  8971. bool n = new SMSController().AddSmS(1335323, 0, count, mag, phon);
  8972. }
  8973. }
  8974. }
  8975. }
  8976. womodel.ReminderNum += 1;
  8977. bool t = new BLL.T_Bus_WorkOrder().Update(womodel);
  8978. }
  8979. }
  8980. return Success("催单成功!");
  8981. }
  8982. else return Error("操作失败");
  8983. }
  8984. else
  8985. return Error("权限不足!");
  8986. }
  8987. /// <summary>
  8988. /// 收回工单
  8989. /// </summary>
  8990. /// <returns></returns>
  8991. [Authority]
  8992. public ActionResult TakeBackWorkOrder()
  8993. {
  8994. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  8995. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  8996. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  8997. {
  8998. string workorderid = RequestString.GetFormString("workorderid");
  8999. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9000. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9001. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  9002. {
  9003. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9004. {
  9005. return Error("操作失败");
  9006. }
  9007. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  9008. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  9009. {
  9010. using (TransactionScope trans = new TransactionScope())
  9011. {
  9012. #region 插入交办记录
  9013. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9014. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9015. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9016. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9017. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9018. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9019. AssignedInfo.F_State = 0;//0草稿 1正式
  9020. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9021. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9022. AssignedInfo.F_IsDelete = 0;
  9023. AssignedInfo.F_IsOverdue = 0;
  9024. AssignedInfo.F_IsSure = 0;
  9025. AssignedInfo.F_IsReload = 0;
  9026. AssignedInfo.F_IsNext = 0;
  9027. assignBLL.Add(AssignedInfo);
  9028. #endregion
  9029. #region 保存工单信息
  9030. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9031. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9032. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9033. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  9034. workorderBLL.Update(modelT_Bus_WorkOrder);
  9035. #endregion
  9036. #region 删除交办信息
  9037. modelT_Bus_AssignedInfo.F_State = 0;
  9038. assignBLL.Update(modelT_Bus_AssignedInfo);
  9039. #endregion
  9040. #region 删除派单信息
  9041. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9042. foreach (var cg in pdlist)
  9043. {
  9044. //cg.F_IsDelete = 1;
  9045. //cg.F_DeleteUser = userModel.F_UserCode;
  9046. //cg.F_DeleteTime = DateTime.Now;
  9047. cg.F_State = 0;
  9048. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  9049. }
  9050. #endregion
  9051. #region 删除二级单位处理信息
  9052. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  9053. foreach (var cg in cglist)
  9054. {
  9055. // cg.F_IsDelete = 1;
  9056. // cg.F_DeleteUser = userModel.F_UserCode;
  9057. // cg.F_DeleteTime = DateTime.Now;
  9058. cg.F_State = 0;
  9059. new BLL.T_Bus_Feedback_Next().Update(cg);
  9060. }
  9061. #endregion
  9062. #region 插入操作记录
  9063. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9064. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9065. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9066. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9067. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9068. oper.F_Message = userinfo + " 收回了工单";
  9069. oper.F_CreateUser = userModel.F_UserCode;
  9070. oper.F_CreateTime = DateTime.Now;
  9071. oper.F_IsDelete = 0;
  9072. operBLL.Add(oper);
  9073. #endregion
  9074. trans.Complete();
  9075. }
  9076. return Success("操作成功");
  9077. }
  9078. else
  9079. {
  9080. return Error("单位已查收,不能收回");
  9081. }
  9082. }
  9083. else
  9084. {
  9085. return Error("操作失败");
  9086. }
  9087. }
  9088. else
  9089. {
  9090. return Error("权限不足");
  9091. }
  9092. }
  9093. /// <summary>
  9094. /// 查收工单
  9095. /// </summary>
  9096. /// <returns></returns>
  9097. [Authority]
  9098. public ActionResult ReceiveWorkOrder()
  9099. {
  9100. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9101. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9102. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9103. {
  9104. string workorderid = RequestString.GetFormString("workorderid");
  9105. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9106. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9107. //操作前新增判断状态
  9108. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9109. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState==(int)EnumWorkState.receive|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && (modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId || userModel.F_RoleCode == "GLY"))
  9110. {
  9111. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  9112. {
  9113. using (TransactionScope trans = new TransactionScope())
  9114. {
  9115. #region 保存工单信息
  9116. modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9117. workorderBLL.Update(modelT_Bus_WorkOrder);
  9118. #endregion
  9119. #region 保存查收信息
  9120. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  9121. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9122. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9123. assignBLL.Update(modelT_Bus_AssignedInfo);
  9124. #endregion
  9125. #region 保存明细信息
  9126. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  9127. {
  9128. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  9129. foreach (string strid in strids)
  9130. {
  9131. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  9132. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9133. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  9134. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  9135. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9136. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  9137. modelT_Bus_AssignedItemInfo.F_State = 1;
  9138. modelT_Bus_AssignedItemInfo.F_Type = 2;
  9139. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  9140. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  9141. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  9142. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  9143. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  9144. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  9145. }
  9146. }
  9147. #endregion
  9148. #region 插入操作记录
  9149. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9150. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9151. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9152. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9153. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9154. oper.F_Message = userinfo + " 查收了工单";
  9155. oper.F_CreateUser = userModel.F_UserCode;
  9156. oper.F_CreateTime = DateTime.Now;
  9157. oper.F_IsDelete = 0;
  9158. operBLL.Add(oper);
  9159. #endregion
  9160. trans.Complete();
  9161. }
  9162. return Success("操作成功");
  9163. }
  9164. else
  9165. {
  9166. return Error("单位已查收,不能再次查收");
  9167. }
  9168. }
  9169. else
  9170. {
  9171. return Error("操作失败");
  9172. }
  9173. }
  9174. else
  9175. {
  9176. return Error("权限不足");
  9177. }
  9178. }
  9179. /// <summary>
  9180. /// 退回工单
  9181. /// </summary>
  9182. /// <returns></returns>
  9183. [Authority]
  9184. public ActionResult RebackWorkOrder()
  9185. {
  9186. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9187. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9188. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9189. {
  9190. string workorderid = RequestString.GetFormString("workorderid");
  9191. string backreason = RequestString.GetFormString("backreason");
  9192. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9193. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9194. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9195. {
  9196. if (modelT_Bus_AssignedInfo.F_IsSure == 0|| modelT_Bus_AssignedInfo.F_IsSure == 1)
  9197. {
  9198. using (TransactionScope trans = new TransactionScope())
  9199. {
  9200. #region 保存工单信息
  9201. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  9202. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  9203. workorderBLL.Update(modelT_Bus_WorkOrder);
  9204. #endregion
  9205. #region 插入退回申请信息
  9206. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  9207. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9208. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9209. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  9210. model_T_Bus_Feedback.F_IsAudit = 0;
  9211. model_T_Bus_Feedback.F_IsDelete = 0;
  9212. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  9213. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  9214. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  9215. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  9216. model_T_Bus_Feedback.F_State = 1;
  9217. model_T_Bus_Feedback.F_Type = 3;
  9218. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  9219. #endregion
  9220. #region 保存交办信息
  9221. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  9222. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9223. //{
  9224. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  9225. //}
  9226. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  9227. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  9228. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  9229. assignBLL.Update(modelT_Bus_AssignedInfo);
  9230. #endregion
  9231. #region 插入操作记录
  9232. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9233. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9234. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9235. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9236. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9237. oper.F_Message = userinfo + " 申请退回了工单";
  9238. oper.F_CreateUser = userModel.F_UserCode;
  9239. oper.F_CreateTime = DateTime.Now;
  9240. oper.F_IsDelete = 0;
  9241. operBLL.Add(oper);
  9242. //推送消息表
  9243. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9244. #endregion
  9245. trans.Complete();
  9246. }
  9247. return Success("操作成功");
  9248. }
  9249. else
  9250. {
  9251. return Error("单位已查收,不能退回");
  9252. }
  9253. }
  9254. else
  9255. {
  9256. return Error("操作失败");
  9257. }
  9258. }
  9259. else
  9260. {
  9261. return Error("权限不足");
  9262. }
  9263. }
  9264. /// <summary>
  9265. /// 审核退回工单
  9266. /// </summary>
  9267. /// <returns></returns>
  9268. [Authority]
  9269. public ActionResult AuditRebackWorkOrder()
  9270. {
  9271. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9272. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9273. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9274. {
  9275. string workorderid = RequestString.GetFormString("workorderid");
  9276. int state = RequestString.GetInt("state", 0);
  9277. string reason = RequestString.GetFormString("reason");
  9278. int rebackid = RequestString.GetInt("rebackid", 0);
  9279. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9280. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  9281. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9282. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  9283. {
  9284. if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9285. {
  9286. return Error("操作失败");
  9287. }
  9288. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  9289. {
  9290. using (TransactionScope trans = new TransactionScope())
  9291. {
  9292. var rre = "";
  9293. #region 保存查收信息
  9294. modelT_Bus_Feedback.F_IsAudit = state;//审核
  9295. modelT_Bus_Feedback.F_AuditUser = userModel.F_UserCode;
  9296. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  9297. modelT_Bus_Feedback.F_AuditReason = reason;
  9298. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  9299. #endregion
  9300. string strmsg = "同意";
  9301. if (modelT_Bus_Feedback.F_IsAudit == 1)
  9302. {
  9303. #region 插入交办记录
  9304. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  9305. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9306. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  9307. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  9308. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  9309. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  9310. AssignedInfo.F_State = 0;//0草稿 1正式
  9311. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  9312. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  9313. AssignedInfo.F_IsDelete = 0;
  9314. AssignedInfo.F_IsOverdue = 0;
  9315. AssignedInfo.F_IsSure = 0;
  9316. AssignedInfo.F_IsNext = 0;
  9317. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  9318. assignBLL.Add(AssignedInfo);
  9319. #endregion
  9320. #region 保存交办信息
  9321. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  9322. assignBLL.Update(modelT_Bus_AssignedInfo);
  9323. #endregion
  9324. #region 保存工单信息
  9325. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  9326. modelT_Bus_WorkOrder.F_MainDeptId = null;
  9327. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9328. workorderBLL.Update(modelT_Bus_WorkOrder);
  9329. #endregion
  9330. }
  9331. else
  9332. {
  9333. #region 保存工单信息
  9334. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9335. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9336. workorderBLL.Update(modelT_Bus_WorkOrder);
  9337. #endregion
  9338. #region 保存交办信息
  9339. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  9340. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9341. modelT_Bus_AssignedInfo.F_SureUser = "";
  9342. modelT_Bus_AssignedInfo.F_SureTime = null;
  9343. assignBLL.Update(modelT_Bus_AssignedInfo);
  9344. #endregion
  9345. strmsg = "拒绝";
  9346. }
  9347. #region 插入操作记录
  9348. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9349. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9350. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9351. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9352. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9353. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  9354. oper.F_CreateUser = userModel.F_UserCode;
  9355. oper.F_CreateTime = DateTime.Now;
  9356. oper.F_IsDelete = 0;
  9357. operBLL.Add(oper);
  9358. //推送消息表
  9359. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9360. #endregion
  9361. if (modelT_Bus_AssignedInfo.F_MainDeptId==304)
  9362. {
  9363. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(),reason,userModel.F_UserCode).ToString();
  9364. }
  9365. trans.Complete();
  9366. }
  9367. return Success("操作成功");
  9368. }
  9369. else
  9370. {
  9371. return Error("此审核已经处理");
  9372. }
  9373. }
  9374. else
  9375. {
  9376. return Error("操作失败");
  9377. }
  9378. }
  9379. else
  9380. {
  9381. return Error("权限不足");
  9382. }
  9383. }
  9384. /// <summary>
  9385. /// 申请延时
  9386. /// </summary>
  9387. /// <returns></returns>
  9388. [Authority]
  9389. public ActionResult DelayWorkOrder()
  9390. {
  9391. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9392. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9393. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9394. {
  9395. string workorderid = RequestString.GetFormString("workorderid");
  9396. //int state = RequestString.GetInt("state", 0);
  9397. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9398. string reason = RequestString.GetFormString("reason");
  9399. string files = RequestString.GetFormString("files");
  9400. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9401. #region 获取办理时间的时分秒
  9402. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9403. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9404. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9405. string newhms = " ";
  9406. newhms += h + ":";
  9407. newhms += m + ":";
  9408. newhms += s;
  9409. #endregion
  9410. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9411. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9412. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  9413. {
  9414. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  9415. {
  9416. using (TransactionScope trans = new TransactionScope())
  9417. {
  9418. if (userModel.F_RoleCode == "WLDW")
  9419. {
  9420. if (userModel.F_DeptId > 0)
  9421. {
  9422. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  9423. if (dept != null)
  9424. {
  9425. if (dept.F_ExtensionTime!=null )
  9426. {
  9427. if (((DateTime)dept.F_ExtensionTime).Month == DateTime.Now.Month
  9428. && ((DateTime)dept.F_ExtensionTime).Year == DateTime.Now.Year)
  9429. {
  9430. if (dept.F_DelayTimes < 3)
  9431. {
  9432. dept.F_DelayTimes += 1;
  9433. dept.F_ExtensionTime = DateTime.Now;
  9434. bool n = new BLL.T_Sys_Department().Update(dept);
  9435. }
  9436. else
  9437. return Error("本单位本月申请延时已达三次");
  9438. }
  9439. else
  9440. {
  9441. dept.F_DelayTimes = 1;
  9442. dept.F_ExtensionTime = DateTime.Now;
  9443. bool n = new BLL.T_Sys_Department().Update(dept);
  9444. }
  9445. }
  9446. else
  9447. {
  9448. dept.F_DelayTimes = 1;
  9449. dept.F_ExtensionTime = DateTime.Now;
  9450. bool n = new BLL.T_Sys_Department().Update(dept);
  9451. }
  9452. }
  9453. }
  9454. }
  9455. #region 保存工单信息
  9456. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  9457. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  9458. workorderBLL.Update(modelT_Bus_WorkOrder);
  9459. #endregion
  9460. #region 插入申请延时信息
  9461. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  9462. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9463. //delay.F_State = state;
  9464. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  9465. delay.F_NewTime = newlimittime;
  9466. delay.F_Reason = reason;
  9467. delay.F_State = 1;
  9468. delay.F_IsAudit = 0;
  9469. delay.F_IsDelete = 0;
  9470. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9471. delay.F_CreateUser = userModel.F_UserCode;
  9472. delay.F_CreateTime = DateTime.Now;
  9473. delay.F_File = files;
  9474. new BLL.T_Bus_DelayTime().Add(delay);
  9475. #endregion
  9476. #region 插入操作记录
  9477. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9478. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9479. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9480. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9481. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9482. oper.F_Message = userinfo + " 申请了延时处理";
  9483. oper.F_CreateUser = userModel.F_UserCode;
  9484. oper.F_CreateTime = DateTime.Now;
  9485. oper.F_IsDelete = 0;
  9486. operBLL.Add(oper);
  9487. //推送消息表
  9488. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9489. #endregion
  9490. trans.Complete();
  9491. }
  9492. return Success("操作成功");
  9493. }
  9494. else
  9495. {
  9496. return Error("操作失敗,已查收");
  9497. }
  9498. }
  9499. else
  9500. {
  9501. return Error("操作失败");
  9502. }
  9503. }
  9504. else
  9505. {
  9506. return Error("权限不足");
  9507. }
  9508. }
  9509. /// <summary>
  9510. /// 审核延时工单
  9511. /// </summary>
  9512. /// <returns></returns>
  9513. [Authority]
  9514. public ActionResult AuditDelayWorkOrder()
  9515. {
  9516. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9517. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9518. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9519. {
  9520. string workorderid = RequestString.GetFormString("workorderid");
  9521. int state = RequestString.GetInt("state", 0);
  9522. string reason = RequestString.GetFormString("reason");
  9523. int delayid = RequestString.GetInt("delayid", 0);
  9524. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9525. #region 获取办理时间的时分秒
  9526. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9527. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9528. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9529. string newhms = " ";
  9530. newhms += h + ":";
  9531. newhms += m + ":";
  9532. newhms += s;
  9533. #endregion
  9534. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9535. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  9536. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9537. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9538. {
  9539. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9540. //{
  9541. // return Error("操作失败");
  9542. //}
  9543. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9544. {
  9545. using (TransactionScope trans = new TransactionScope())
  9546. {
  9547. #region 保存工单信息
  9548. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  9549. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9550. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9551. if (modelT_Bus_WorkOrder.F_Scanning!=null )
  9552. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9553. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9554. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9555. workorderBLL.Update(modelT_Bus_WorkOrder);
  9556. #endregion
  9557. #region 保存审核信息
  9558. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  9559. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  9560. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  9561. modelT_Bus_DelayTime.F_RefuseReason = reason;
  9562. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  9563. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  9564. #endregion
  9565. string type = "同意"; string des = "";
  9566. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9567. {
  9568. #region 修改交办记录
  9569. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9570. assignBLL.Update(modelT_Bus_AssignedInfo);
  9571. #endregion
  9572. #region 处理协办单位
  9573. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9574. foreach (var xb in xblist)
  9575. {
  9576. //xb.F_LimitTime = DateTime.Now;
  9577. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9578. assignItemBLL.Update(xb);
  9579. }
  9580. #endregion
  9581. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  9582. }
  9583. else
  9584. {
  9585. type = "拒绝";
  9586. }
  9587. #region 插入操作记录
  9588. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9589. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9590. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9591. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9592. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9593. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  9594. oper.F_CreateUser = userModel.F_UserCode;
  9595. oper.F_CreateTime = DateTime.Now;
  9596. oper.F_IsDelete = 0;
  9597. operBLL.Add(oper);
  9598. //推送消息表
  9599. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9600. #endregion
  9601. trans.Complete();
  9602. }
  9603. return Success("操作成功");
  9604. }
  9605. else
  9606. {
  9607. return Error("此审核已经处理");
  9608. }
  9609. }
  9610. else
  9611. {
  9612. return Error("操作失败");
  9613. }
  9614. }
  9615. else
  9616. {
  9617. return Error("权限不足");
  9618. }
  9619. }
  9620. /// <summary>
  9621. /// 批量审核延时
  9622. /// </summary>
  9623. /// <param name="ids"></param>
  9624. /// <returns></returns>
  9625. [Authority]
  9626. public ActionResult AuditDelayWorkOrderBatch(string ids)
  9627. {
  9628. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9629. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9630. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9631. {
  9632. int state = RequestString.GetInt("state", 0);
  9633. string reason = RequestString.GetFormString("reason");
  9634. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 12:00:00");
  9635. string errids = "";string errids1 = "";
  9636. if (!string.IsNullOrEmpty(ids))
  9637. {
  9638. string[] strids = ids.Split(',');
  9639. foreach (string str in strids)
  9640. {
  9641. using (TransactionScope trans = new TransactionScope())
  9642. {
  9643. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  9644. #region 获取办理时间的时分秒
  9645. int h = modelT_Bus_WorkOrder.F_LimitTime.Value.Hour; //获取当前时间的小时部分
  9646. int m = modelT_Bus_WorkOrder.F_LimitTime.Value.Minute; //获取当前时间的分钟部分
  9647. int s = modelT_Bus_WorkOrder.F_LimitTime.Value.Second; //获取当前时间的秒部分
  9648. string newhms = " ";
  9649. newhms += h + ":";
  9650. newhms += m + ":";
  9651. newhms += s;
  9652. #endregion
  9653. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + newhms);
  9654. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModelList(" F_WorkOrderId = '" + str + "' and F_State = 1 and F_IsDelete = 0 and F_IsAudit = 0 order by F_CreateTime desc").FirstOrDefault();
  9655. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  9656. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  9657. {
  9658. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  9659. //{
  9660. // errids += str + ",";
  9661. // continue;
  9662. //}
  9663. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  9664. {
  9665. #region 保存工单信息
  9666. TimeSpan ts = newlimittime.Subtract(modelT_Bus_WorkOrder.F_LimitTime.Value);
  9667. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  9668. if (modelT_Bus_WorkOrder.F_Scanning != null)
  9669. modelT_Bus_WorkOrder.F_Scanning = modelT_Bus_WorkOrder.F_Scanning.Value.AddHours(tss);
  9670. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  9671. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  9672. workorderBLL.Update(modelT_Bus_WorkOrder);
  9673. #endregion
  9674. #region 保存审核信息
  9675. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  9676. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  9677. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  9678. modelT_Bus_DelayTime.F_RefuseReason = reason;
  9679. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  9680. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  9681. #endregion
  9682. string type = "同意"; string des = "";
  9683. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  9684. {
  9685. #region 修改交办记录
  9686. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9687. assignBLL.Update(modelT_Bus_AssignedInfo);
  9688. #endregion
  9689. #region 处理协办单位
  9690. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9691. foreach (var xb in xblist)
  9692. {
  9693. //xb.F_LimitTime = DateTime.Now;
  9694. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  9695. assignItemBLL.Update(xb);
  9696. }
  9697. #endregion
  9698. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  9699. }
  9700. else
  9701. {
  9702. type = "拒绝";
  9703. }
  9704. #region 插入操作记录
  9705. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9706. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9707. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9708. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9709. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9710. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  9711. oper.F_CreateUser = userModel.F_UserCode;
  9712. oper.F_CreateTime = DateTime.Now;
  9713. oper.F_IsDelete = 0;
  9714. operBLL.Add(oper);
  9715. //推送消息表
  9716. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  9717. #endregion
  9718. }
  9719. else
  9720. errids1 += str + ",";
  9721. }
  9722. trans.Complete();
  9723. }
  9724. }
  9725. if (errids1 != "" && errids != "")
  9726. return Success("操作成功");
  9727. else
  9728. {
  9729. string msg = "";
  9730. if (errids1 != "")
  9731. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  9732. if(errids!="")
  9733. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  9734. return Error("部分工单操作失败"+ msg);
  9735. }
  9736. }
  9737. else
  9738. {
  9739. return Error("参数获取失败");
  9740. }
  9741. }
  9742. else
  9743. {
  9744. return Error("权限不足");
  9745. }
  9746. }
  9747. /// <summary>
  9748. /// 修改扫描件
  9749. /// </summary>
  9750. /// <returns></returns>
  9751. [Authority]
  9752. public ActionResult UpdateFiles()
  9753. {
  9754. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9755. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9756. string workorderid = RequestString.GetFormString("workorderid");
  9757. string files = RequestString.GetFormString("files");
  9758. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9759. if (modelT_Bus_WorkOrder != null)
  9760. {
  9761. modelT_Bus_WorkOrder.F_Files = files;
  9762. if (modelT_Bus_WorkOrder.IsExport == 1)
  9763. {
  9764. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  9765. }
  9766. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9767. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9768. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9769. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9770. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9771. oper.F_Message = userinfo + "修改了扫描件 ";
  9772. oper.F_CreateUser = userModel.F_UserCode;
  9773. oper.F_CreateTime = DateTime.Now;
  9774. oper.F_IsDelete = 0;
  9775. operBLL.Add(oper);
  9776. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  9777. {
  9778. return Success("修改成功");
  9779. }
  9780. else
  9781. return Error("修改失败");
  9782. }
  9783. else
  9784. return Error("工单不存在");
  9785. }
  9786. /// <summary>
  9787. /// 批量上传附件
  9788. /// </summary>
  9789. /// <param name="ids"></param>
  9790. /// <returns></returns>
  9791. [Authority]
  9792. public ActionResult AddFiles()
  9793. {
  9794. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9795. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9796. string workorderid = RequestString.GetFormString("workorderid");
  9797. string files = RequestString.GetFormString("files");
  9798. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9799. if (modelT_Bus_WorkOrder != null)
  9800. {
  9801. if (string .IsNullOrEmpty (files))
  9802. return Error("请上传附件");
  9803. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Files))
  9804. modelT_Bus_WorkOrder.F_Files = files;
  9805. else
  9806. modelT_Bus_WorkOrder.F_Files = modelT_Bus_WorkOrder.F_Files + "," + files;
  9807. if(modelT_Bus_WorkOrder .IsExport ==1)
  9808. {
  9809. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;
  9810. }
  9811. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9812. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9813. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9814. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9815. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  9816. oper.F_Message = userinfo + "上传了扫描件 ";
  9817. oper.F_CreateUser = userModel.F_UserCode;
  9818. oper.F_CreateTime = DateTime.Now;
  9819. oper.F_IsDelete = 0;
  9820. operBLL.Add(oper);
  9821. if (workorderBLL.Update(modelT_Bus_WorkOrder))
  9822. {
  9823. return Success ("上传成功");
  9824. }
  9825. else
  9826. return Error("上传失败");
  9827. }
  9828. else
  9829. return Error("工单不存在");
  9830. }
  9831. /// <summary>
  9832. /// 办理工单
  9833. /// </summary>
  9834. /// <returns></returns>
  9835. [Authority]
  9836. public ActionResult FeedBackWorkOrder()
  9837. {
  9838. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  9839. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  9840. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  9841. {
  9842. string workorderid = RequestString.GetFormString("workorderid");
  9843. string dealman = RequestString.GetFormString("dealman");
  9844. string result = RequestString.GetFormString("result");
  9845. string files = RequestString.GetFormString("files");
  9846. int state = RequestString.GetInt("state", 0);
  9847. int feedbackid = RequestString.GetInt("feedbackid", 0);
  9848. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  9849. string prosituation = RequestString.GetFormString("prosituation");
  9850. string dealcontact = RequestString.GetFormString("dealcontact");
  9851. string connecttime=RequestString.GetFormString("connecttime");
  9852. string connectmode = RequestString.GetFormString("connectmode");
  9853. string replycontent = RequestString.GetFormString("replycontent");
  9854. int isstaisfied= RequestString.GetInt("isstaisfied", 0);
  9855. string duties= RequestString.GetFormString("duties");
  9856. string situation = RequestString.GetFormString("situation");
  9857. string post = RequestString.GetFormString("post");
  9858. string contact = RequestString.GetFormString("contact");
  9859. string liable = RequestString.GetFormString("liable");
  9860. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9861. string visituser = RequestString.GetFormString("visituser");//回访人
  9862. int types = RequestString.GetInt("type", 0);//回访方式
  9863. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意2基本满意
  9864. int states = RequestString.GetInt("states", 0);//0保存 1保存并下一步
  9865. int visitid = RequestString.GetInt("visitid", 0);
  9866. string results = RequestString.GetFormString("results");//回访情况
  9867. int nexttype = RequestString.GetInt("nexttype", 2);//1重办 2结案
  9868. int ishf = RequestString.GetInt("ishf", 0);//是否回访0否1是
  9869. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  9870. // string callid = RequestString.GetFormString("callid");
  9871. string guid = RequestString.GetFormString("guid");
  9872. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY")
  9873. {
  9874. if (maindeptid<=0)
  9875. {
  9876. return Error("请输入办理单位");
  9877. }
  9878. }
  9879. else
  9880. {
  9881. maindeptid = userModel.F_DeptId;
  9882. }
  9883. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9884. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  9885. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  9886. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  9887. int type = 1;
  9888. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  9889. {
  9890. // type = AssignDeptType(modelT_Bus_AssignedInfo, maindeptid);
  9891. if (type > 0)
  9892. {
  9893. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  9894. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  9895. {
  9896. using (TransactionScope trans = new TransactionScope())
  9897. {
  9898. if (feedbackid == 0)
  9899. {
  9900. #region 插入反馈记录
  9901. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9902. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9903. modelT_Bus_Feedback.F_DealUser = dealman;
  9904. modelT_Bus_Feedback.F_Result = result;//反馈内容
  9905. #region 20200114新增字段 zhengbingbing
  9906. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  9907. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  9908. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  9909. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  9910. DateTime contime = DateTime.Now;
  9911. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  9912. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  9913. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  9914. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  9915. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  9916. modelT_Bus_Feedback.F_Duties = duties;//职务
  9917. modelT_Bus_Feedback.F_Situation = situation;
  9918. #endregion
  9919. modelT_Bus_Feedback.F_File = files;
  9920. modelT_Bus_Feedback.F_IsAudit = 0;
  9921. modelT_Bus_Feedback.F_IsDelete = 0;
  9922. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  9923. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  9924. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  9925. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  9926. modelT_Bus_Feedback.F_State = state;
  9927. modelT_Bus_Feedback.F_Type = type;
  9928. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  9929. #endregion
  9930. }
  9931. else
  9932. {
  9933. #region 修改反馈记录
  9934. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  9935. if (modelT_Bus_Feedback != null)
  9936. {
  9937. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9938. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  9939. modelT_Bus_Feedback.F_DealUser = dealman;
  9940. modelT_Bus_Feedback.F_Result = result;//反馈内容
  9941. modelT_Bus_Feedback.F_File = files;
  9942. #region 20200114新增字段 zhengbingbing
  9943. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  9944. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  9945. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  9946. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  9947. DateTime contime = DateTime.Now;
  9948. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  9949. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  9950. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  9951. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  9952. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  9953. modelT_Bus_Feedback.F_Duties = duties;//职务
  9954. modelT_Bus_Feedback.F_Situation = situation;
  9955. #endregion
  9956. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  9957. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  9958. modelT_Bus_Feedback.F_CreateDeptId = maindeptid;//办理部门
  9959. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  9960. modelT_Bus_Feedback.F_State = state;
  9961. if (modelT_Bus_AssignedInfo.F_MainDeptId == maindeptid)
  9962. {
  9963. modelT_Bus_Feedback.F_Type = 1;
  9964. }
  9965. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(maindeptid.ToString()))
  9966. {
  9967. modelT_Bus_Feedback.F_Type = 2;
  9968. }
  9969. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  9970. }
  9971. #endregion
  9972. }
  9973. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  9974. {
  9975. string typemsg = "办理";
  9976. if (type == 1)
  9977. {
  9978. int iscs = 0;
  9979. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9980. {
  9981. iscs = 1;
  9982. }
  9983. #region 保存工单信息
  9984. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  9985. modelT_Bus_WorkOrder.F_WorkState =7;//待回访
  9986. modelT_Bus_WorkOrder.F_Result = result;
  9987. modelT_Bus_WorkOrder.F_DealDeptId = maindeptid;
  9988. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  9989. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9990. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  9991. modelT_Bus_WorkOrder.F_Post = post;//职务
  9992. modelT_Bus_WorkOrder.F_Contact = contact ;//联系方式
  9993. modelT_Bus_WorkOrder.F_Liable =liable ;
  9994. workorderBLL.Update(modelT_Bus_WorkOrder);
  9995. #endregion
  9996. #region 保存交办信息
  9997. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  9998. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  9999. {
  10000. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10001. }
  10002. assignBLL.Update(modelT_Bus_AssignedInfo);
  10003. #endregion
  10004. #region 删除草稿信息
  10005. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + maindeptid + "'");
  10006. foreach (var cg in cglist)
  10007. {
  10008. cg.F_IsDelete = 1;
  10009. cg.F_DeleteUser = userModel.F_UserCode;
  10010. cg.F_DeleteTime = DateTime.Now;
  10011. new BLL.T_Bus_Feedback().Update(cg);
  10012. }
  10013. #endregion
  10014. #region 删除二级单位未办理信息
  10015. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10016. foreach (var ej in ejlist)
  10017. {
  10018. ej.F_IsDelete = 1;
  10019. ej.F_DeleteUser = userModel.F_UserCode;
  10020. ej.F_DeleteTime = DateTime.Now;
  10021. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  10022. }
  10023. #endregion
  10024. #region 处理协办单位
  10025. 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 + "'");
  10026. foreach (var xb in xblist)
  10027. {
  10028. xb.F_State = 2;
  10029. xb.F_SureUser = userModel.F_UserCode;
  10030. xb.F_SureTime = DateTime.Now;
  10031. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  10032. }
  10033. #endregion
  10034. typemsg = "主办";
  10035. }
  10036. else if (type == 2)
  10037. {
  10038. #region 保存明细信息
  10039. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_DeptId='" + maindeptid + "'").FirstOrDefault();
  10040. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  10041. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  10042. {
  10043. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  10044. }
  10045. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  10046. #endregion
  10047. #region 删除草稿信息
  10048. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + maindeptid + "'");
  10049. foreach (var cg in cglist)
  10050. {
  10051. cg.F_IsDelete = 1;
  10052. cg.F_DeleteUser = userModel.F_UserCode;
  10053. cg.F_DeleteTime = DateTime.Now;
  10054. new BLL.T_Bus_Feedback().Update(cg);
  10055. }
  10056. #endregion
  10057. typemsg = "协办";
  10058. }
  10059. #region 插入操作记录
  10060. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10061. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10062. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10063. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10064. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10065. oper.F_Message = userinfo + " " + typemsg + "了工单";
  10066. oper.F_CreateUser = userModel.F_UserCode;
  10067. oper.F_CreateTime = DateTime.Now;
  10068. oper.F_IsDelete = 0;
  10069. operBLL.Add(oper);
  10070. //推送消息表
  10071. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10072. #endregion
  10073. }
  10074. trans.Complete();
  10075. }
  10076. if (ishf==1)
  10077. {
  10078. using (TransactionScope trans = new TransactionScope())
  10079. {
  10080. #region 回访
  10081. if (visitid == 0)
  10082. {
  10083. #region 新增回访结果记录
  10084. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10085. modelT_Bus_VisitResult.F_AssignedId = 0;
  10086. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10087. modelT_Bus_VisitResult.F_Type = types;
  10088. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10089. modelT_Bus_VisitResult.F_Result = results;
  10090. modelT_Bus_VisitResult.F_State = states;
  10091. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10092. modelT_Bus_VisitResult.F_IsDelete = 0;
  10093. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10094. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10095. if (modelT_Bus_AssignedInfo != null)
  10096. {
  10097. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10098. }
  10099. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10100. modelT_Bus_VisitResult.F_Id = id;
  10101. //保存回访记录
  10102. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10103. #endregion
  10104. }
  10105. else
  10106. {
  10107. #region 修改回访结果记录
  10108. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  10109. if (modelT_Bus_VisitResult != null)
  10110. {
  10111. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10112. modelT_Bus_VisitResult.F_AssignedId = 0;
  10113. modelT_Bus_VisitResult.F_VisitUser = visituser;
  10114. modelT_Bus_VisitResult.F_Type = types;
  10115. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  10116. modelT_Bus_VisitResult.F_Result = results;
  10117. modelT_Bus_VisitResult.F_State = states;
  10118. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  10119. modelT_Bus_VisitResult.F_IsDelete = 0;
  10120. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  10121. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  10122. if (modelT_Bus_AssignedInfo != null)
  10123. {
  10124. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10125. }
  10126. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  10127. modelT_Bus_VisitResult.F_Id = id;
  10128. //保存回访记录
  10129. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10130. }
  10131. #endregion
  10132. }
  10133. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  10134. {
  10135. #region 保存交办信息
  10136. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  10137. assignBLL.Update(modelT_Bus_AssignedInfo);
  10138. #endregion
  10139. #region 保存工单信息
  10140. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  10141. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  10142. workorderBLL.Update(modelT_Bus_WorkOrder);
  10143. #endregion
  10144. #region 删除草稿信息
  10145. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10146. foreach (var cg in cglist)
  10147. {
  10148. cg.F_IsDelete = 1;
  10149. cg.F_DeleteUser = userModel.F_UserCode;
  10150. cg.F_DeleteTime = DateTime.Now;
  10151. new BLL.T_Bus_VisitResult().Update(cg);
  10152. //保存回访记录
  10153. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  10154. }
  10155. #endregion
  10156. var opt = "回访"; var cbreasons = "";
  10157. #region 重办
  10158. if (nexttype == 1)
  10159. {
  10160. #region 保存工单信息
  10161. #region 保存工单信息
  10162. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10163. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  10164. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10165. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10166. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  10167. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  10168. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  10169. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  10170. newmodelT_Bus_AssignedInfo.F_State = 1;
  10171. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  10172. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10173. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  10174. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10175. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  10176. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  10177. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  10178. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  10179. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  10180. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  10181. #region 保存工单信息
  10182. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  10183. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  10184. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  10185. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10186. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  10187. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  10188. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  10189. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  10190. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  10191. modelT_Bus_WorkOrder.F_Result = "";
  10192. modelT_Bus_WorkOrder.F_DealDeptId = null;
  10193. modelT_Bus_WorkOrder.F_DealUser = "";
  10194. modelT_Bus_WorkOrder.F_DealTime = null;
  10195. workorderBLL.Update(modelT_Bus_WorkOrder);
  10196. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  10197. // workorderBLL.Update(modelT_Bus_WorkOrder);
  10198. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  10199. if (users != null && users.Count > 0)
  10200. {
  10201. foreach (var u in users)
  10202. {
  10203. if (!string.IsNullOrEmpty(u.F_Mobile))
  10204. {
  10205. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10206. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10207. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  10208. }
  10209. if (!string.IsNullOrEmpty(u.F_Telephone))
  10210. {
  10211. var userlist = u.F_Telephone.Split(',');
  10212. if (userlist != null)
  10213. {
  10214. foreach (var it in userlist)
  10215. {
  10216. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  10217. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  10218. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  10219. }
  10220. }
  10221. }
  10222. }
  10223. }
  10224. #endregion
  10225. #endregion
  10226. opt = "回访并提交重办";
  10227. cbreasons = ",重办原因:" + cbreason;
  10228. }
  10229. #endregion
  10230. #endregion
  10231. #region 插入操作记录
  10232. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10233. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10234. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  10235. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10236. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10237. string satisfie = "不满意";
  10238. if (issatisfie == 1)
  10239. satisfie = "满意";
  10240. else if (issatisfie == 2)
  10241. satisfie = "基本满意";
  10242. oper.F_Message = userinfo + " " + opt + "了工单,结果:" + satisfie + cbreasons;
  10243. oper.F_CreateUser = userModel.F_UserCode;
  10244. oper.F_CreateTime = DateTime.Now;
  10245. oper.F_IsDelete = 0;
  10246. operBLL.Add(oper);
  10247. //推送消息表
  10248. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10249. #endregion
  10250. #region 自动语音回访
  10251. if (issatisfie == 1)//如果满意就进行自动语音回访
  10252. {
  10253. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  10254. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  10255. {
  10256. string AutoCallMsg = string.Empty;
  10257. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  10258. }
  10259. }
  10260. #endregion
  10261. }
  10262. #endregion
  10263. trans.Complete();
  10264. }
  10265. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  10266. }
  10267. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  10268. }
  10269. else
  10270. {
  10271. return Error("已经办理过了");
  10272. }
  10273. }
  10274. else
  10275. {
  10276. return Error("权限不足");
  10277. }
  10278. }
  10279. else
  10280. {
  10281. return Error("操作失败");
  10282. }
  10283. }
  10284. else
  10285. {
  10286. return Error("权限不足");
  10287. }
  10288. }
  10289. #region 网格化对接
  10290. /// <summary>
  10291. /// 对接网格化
  10292. /// 工单查收操作
  10293. /// </summary>
  10294. /// <param name="usercode"></param>
  10295. /// <param name="workorderid"></param>
  10296. /// <returns></returns>
  10297. public string ReceiveWorkOrderByDock(string usercode, string workorderid,string content)
  10298. {
  10299. var returns = "";
  10300. using (TransactionScope trans = new TransactionScope())
  10301. {
  10302. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  10303. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10304. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10305. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10306. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10307. if (userModel != null)
  10308. {
  10309. if (modelT_Bus_WorkOrder == null)
  10310. msgss = "要办理的工单已不存在";
  10311. else if (modelT_Bus_AssignedInfo == null)
  10312. {
  10313. msgss = "工单无法处理或已被处理";
  10314. }
  10315. else
  10316. {
  10317. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10318. {
  10319. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10320. {
  10321. #region 保存工单信息
  10322. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  10323. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  10324. workorderBLL.Update(modelT_Bus_WorkOrder);
  10325. #endregion
  10326. #region 保存查收信息
  10327. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  10328. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10329. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10330. assignBLL.Update(modelT_Bus_AssignedInfo);
  10331. #endregion
  10332. #region 保存明细信息
  10333. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  10334. {
  10335. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  10336. foreach (string strid in strids)
  10337. {
  10338. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  10339. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10340. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  10341. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  10342. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  10343. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  10344. modelT_Bus_AssignedItemInfo.F_State = 1;
  10345. modelT_Bus_AssignedItemInfo.F_Type = 2;
  10346. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  10347. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  10348. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  10349. modelT_Bus_AssignedItemInfo.F_CreateUser = userModel.F_UserCode;
  10350. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  10351. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  10352. }
  10353. }
  10354. #endregion
  10355. retbool = "true";
  10356. optmsg = " 查收了工单";
  10357. msgss = optmsg;
  10358. }
  10359. else
  10360. msgss = "工单已被查收";
  10361. assid = modelT_Bus_AssignedInfo.F_Id;
  10362. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10363. }
  10364. else
  10365. msgss = "工单已办理或已被重新指派";
  10366. }
  10367. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10368. }
  10369. else
  10370. {
  10371. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10372. msgss = "无法获取工号信息";
  10373. }
  10374. #region 插入操作记录
  10375. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10376. oper.F_WorkOrderId = workorderid;
  10377. oper.F_AssignedId = assid;
  10378. oper.F_State = state;
  10379. oper.F_Message = userinfo + " " + msgss + msgend;
  10380. oper.F_CreateUser = usercode;
  10381. oper.F_CreateTime = DateTime.Now;
  10382. oper.F_IsDelete = 0;
  10383. oper.F_Type = 1;
  10384. optid = operBLL.Add(oper).ToString();
  10385. #endregion
  10386. trans.Complete();
  10387. returns = retbool + "|" + optid + "|" + msgss;
  10388. }
  10389. return returns;
  10390. }
  10391. /// <summary>
  10392. /// 对接网格化 工单退回操作
  10393. /// </summary>
  10394. /// <returns></returns>
  10395. public string RebackWorkOrderByDock(string usercode,string workorderid,string backreason,string content)
  10396. {
  10397. var returns = "";
  10398. using (TransactionScope trans = new TransactionScope())
  10399. {
  10400. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  10401. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  10402. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10403. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10404. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10405. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  10406. if (userModel != null)
  10407. {
  10408. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10409. if (modelT_Bus_WorkOrder == null)
  10410. msgss = "要办理的工单已不存在";
  10411. else if (modelT_Bus_AssignedInfo == null)
  10412. {
  10413. msgss = "工单无法处理或已被处理";
  10414. }
  10415. else
  10416. {
  10417. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10418. {
  10419. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  10420. {
  10421. #region 保存工单信息
  10422. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  10423. workorderBLL.Update(modelT_Bus_WorkOrder);
  10424. #endregion
  10425. #region 插入退回申请信息
  10426. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  10427. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10428. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10429. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  10430. model_T_Bus_Feedback.F_IsAudit = 0;
  10431. model_T_Bus_Feedback.F_IsDelete = 0;
  10432. model_T_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//退回人
  10433. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  10434. model_T_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//退回部门
  10435. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  10436. model_T_Bus_Feedback.F_State = 1;
  10437. model_T_Bus_Feedback.F_Type = 3;
  10438. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  10439. #endregion
  10440. #region 保存交办信息
  10441. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  10442. modelT_Bus_AssignedInfo.F_SureUser = userModel.F_UserCode;
  10443. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  10444. assignBLL.Update(modelT_Bus_AssignedInfo);
  10445. #endregion
  10446. #region 推送消息
  10447. retbool = "true";
  10448. optmsg = " 申请退回了工单";
  10449. //推送消息表
  10450. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10451. #endregion
  10452. msgss = optmsg;
  10453. }
  10454. else
  10455. msgss = "工单已被查收,不能退回";
  10456. assid = modelT_Bus_AssignedInfo.F_Id;
  10457. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10458. }
  10459. else
  10460. msgss = "工单已办理或已被重新指派";
  10461. }
  10462. }
  10463. else
  10464. {
  10465. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10466. msgss = "无法获取工号信息";
  10467. }
  10468. #region 插入操作记录
  10469. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10470. oper.F_WorkOrderId = workorderid;
  10471. oper.F_AssignedId = assid;
  10472. oper.F_State = state;
  10473. oper.F_Message = userinfo+" " + msgss + msgend;
  10474. oper.F_CreateUser = usercode;
  10475. oper.F_CreateTime = DateTime.Now;
  10476. oper.F_IsDelete = 0;
  10477. oper.F_Type = 1;
  10478. optid = operBLL.Add(oper).ToString();
  10479. #endregion
  10480. trans.Complete();
  10481. returns = retbool + "|" + optid + "|" + msgss;
  10482. }
  10483. return returns;
  10484. }
  10485. /// <summary>
  10486. /// 对接网格化办理
  10487. /// </summary>
  10488. /// <param name="usercode">工号</param>
  10489. /// <param name="workorderid">工单编号</param>
  10490. /// <param name="dealman">承办人人</param>
  10491. /// <param name="result">反馈内容</param>
  10492. /// <param name="files">附件</param>
  10493. /// <param name="prosituation">处理情况/方案/进程</param>
  10494. /// <param name="dealcontact">承办人联系方式</param>
  10495. /// <param name="connecttime">沟通时间</param>
  10496. /// <param name="connectmode">沟通方式</param>
  10497. /// <param name="replycontent">答复内容</param>
  10498. /// <param name="duties">职务</param>
  10499. /// <param name="situation">处理情况</param>
  10500. /// <param name="state">0保存,1保存并办理</param>
  10501. /// <param name="feedbackid"></param>
  10502. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  10503. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  10504. /// <returns></returns>
  10505. public string FeedBackWorkOrderBYDock(string usercode,string workorderid,string dealman,string result,string files,string prosituation, string dealcontact, string connecttime, string connectmode, string replycontent, string duties, string situation,int state=0, int feedbackid=0, int isproresult=0, int isstaisfied=0)
  10506. {
  10507. var returns = "";
  10508. using (TransactionScope trans = new TransactionScope())
  10509. {
  10510. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  10511. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10512. if (userModel != null)
  10513. {
  10514. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10515. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10516. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10517. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  10518. msgend = ",工单编号:" + workorderid;
  10519. int type = 0; var resmsg = ""; string typemsg = "办理";
  10520. if (modelT_Bus_WorkOrder == null)
  10521. msgss = "要办理的工单已不存在";
  10522. else if (modelT_Bus_AssignedInfo == null)
  10523. {
  10524. msgss = "工单无法处理";
  10525. }
  10526. else
  10527. {
  10528. type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  10529. if (type > 0)
  10530. {
  10531. #region 办理结果合成
  10532. result = "";
  10533. #region 获取部门
  10534. var deptname = "";
  10535. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  10536. {
  10537. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  10538. if (deptmodel != null)
  10539. deptname = deptmodel.F_DeptName;
  10540. }
  10541. #endregion
  10542. #region 获取来源
  10543. var sourcename = "";
  10544. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  10545. {
  10546. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  10547. if (dicmodel != null)
  10548. sourcename = dicmodel.F_Value;
  10549. }
  10550. #endregion
  10551. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  10552. var bljg = ""; var endstr = "";
  10553. if (isproresult == 1)
  10554. {
  10555. bljg = "已办理";
  10556. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  10557. {
  10558. var isStaisfiedRadioData = "未评价";
  10559. if (isstaisfied == 1)
  10560. {
  10561. isStaisfiedRadioData = "满意";
  10562. }
  10563. else if (isstaisfied == 2)
  10564. {
  10565. isStaisfiedRadioData = "基本满意";
  10566. }
  10567. else if (isstaisfied == 3)
  10568. {
  10569. isStaisfiedRadioData = "不满意";
  10570. }
  10571. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  10572. }
  10573. }
  10574. else if (isproresult == 2)
  10575. {
  10576. bljg = "未办理";
  10577. endstr = "; 处理方案/进程:" + prosituation;
  10578. }
  10579. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  10580. #endregion
  10581. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  10582. {
  10583. #region 处理办理
  10584. if (feedbackid == 0)
  10585. {
  10586. #region 插入反馈记录
  10587. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10588. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10589. modelT_Bus_Feedback.F_DealUser = dealman;
  10590. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10591. #region 20200114新增字段 zhengbingbing
  10592. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10593. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10594. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10595. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10596. DateTime contime = DateTime.Now;
  10597. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10598. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10599. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10600. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10601. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10602. modelT_Bus_Feedback.F_Duties = duties;//职务
  10603. modelT_Bus_Feedback.F_Situation = situation;
  10604. #endregion
  10605. modelT_Bus_Feedback.F_File = files;
  10606. modelT_Bus_Feedback.F_IsAudit = 0;
  10607. modelT_Bus_Feedback.F_IsDelete = 0;
  10608. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10609. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10610. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  10611. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10612. modelT_Bus_Feedback.F_State = state;
  10613. modelT_Bus_Feedback.F_Type = type;
  10614. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  10615. #endregion
  10616. }
  10617. else
  10618. {
  10619. #region 修改反馈记录
  10620. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  10621. if (modelT_Bus_Feedback != null)
  10622. {
  10623. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  10624. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  10625. modelT_Bus_Feedback.F_DealUser = dealman;
  10626. modelT_Bus_Feedback.F_Result = result;//反馈内容
  10627. modelT_Bus_Feedback.F_File = files;
  10628. #region 20200114新增字段 zhengbingbing
  10629. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  10630. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  10631. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  10632. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  10633. DateTime contime = DateTime.Now;
  10634. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  10635. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  10636. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  10637. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  10638. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  10639. modelT_Bus_Feedback.F_Duties = duties;//职务
  10640. modelT_Bus_Feedback.F_Situation = situation;
  10641. #endregion
  10642. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  10643. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  10644. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  10645. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  10646. modelT_Bus_Feedback.F_State = state;
  10647. if (modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10648. {
  10649. modelT_Bus_Feedback.F_Type = 1;
  10650. }
  10651. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(userModel.F_DeptId.ToString()))
  10652. {
  10653. modelT_Bus_Feedback.F_Type = 2;
  10654. }
  10655. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  10656. }
  10657. #endregion
  10658. }
  10659. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  10660. {
  10661. if (type == 1)
  10662. {
  10663. int iscs = 0;
  10664. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10665. {
  10666. iscs = 1;
  10667. }
  10668. #region 保存工单信息
  10669. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  10670. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  10671. modelT_Bus_WorkOrder.F_Result = result;
  10672. modelT_Bus_WorkOrder.F_DealDeptId = userModel.F_DeptId;
  10673. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  10674. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  10675. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  10676. workorderBLL.Update(modelT_Bus_WorkOrder);
  10677. #endregion
  10678. #region 保存交办信息
  10679. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  10680. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  10681. {
  10682. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  10683. }
  10684. assignBLL.Update(modelT_Bus_AssignedInfo);
  10685. #endregion
  10686. #region 删除草稿信息
  10687. 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 + "'");
  10688. foreach (var cg in cglist)
  10689. {
  10690. cg.F_IsDelete = 1;
  10691. cg.F_DeleteUser = userModel.F_UserCode;
  10692. cg.F_DeleteTime = DateTime.Now;
  10693. new BLL.T_Bus_Feedback().Update(cg);
  10694. }
  10695. #endregion
  10696. #region 删除二级单位未办理信息
  10697. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  10698. foreach (var ej in ejlist)
  10699. {
  10700. ej.F_IsDelete = 1;
  10701. ej.F_DeleteUser = userModel.F_UserCode;
  10702. ej.F_DeleteTime = DateTime.Now;
  10703. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  10704. }
  10705. #endregion
  10706. #region 处理协办单位
  10707. 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 + "'");
  10708. foreach (var xb in xblist)
  10709. {
  10710. xb.F_State = 2;
  10711. xb.F_SureUser = userModel.F_UserCode;
  10712. xb.F_SureTime = DateTime.Now;
  10713. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  10714. }
  10715. #endregion
  10716. typemsg = "主办";
  10717. }
  10718. else if (type == 2)
  10719. {
  10720. #region 保存明细信息
  10721. 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();
  10722. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  10723. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  10724. {
  10725. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  10726. }
  10727. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  10728. #endregion
  10729. #region 删除草稿信息
  10730. 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 + "'");
  10731. foreach (var cg in cglist)
  10732. {
  10733. cg.F_IsDelete = 1;
  10734. cg.F_DeleteUser = userModel.F_UserCode;
  10735. cg.F_DeleteTime = DateTime.Now;
  10736. new BLL.T_Bus_Feedback().Update(cg);
  10737. }
  10738. #endregion
  10739. typemsg = "协办";
  10740. }
  10741. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  10742. //推送消息表
  10743. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10744. }
  10745. #endregion
  10746. retbool = "true";
  10747. }
  10748. else
  10749. msgss = "工单已办理";
  10750. backid = modelT_Bus_Feedback.F_Id.ToString();
  10751. }
  10752. else
  10753. msgss = "工单已办理或已被重新指派";
  10754. assid = modelT_Bus_AssignedInfo.F_Id;
  10755. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  10756. }
  10757. msgend = resmsg + " " + typemsg + "了工单";
  10758. }
  10759. else
  10760. {
  10761. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10762. msgss = "无法获取工号信息";
  10763. }
  10764. #region 插入操作记录
  10765. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10766. oper.F_WorkOrderId = workorderid;
  10767. oper.F_AssignedId = assid;
  10768. oper.F_State = wostate;
  10769. oper.F_Message = userinfo + msgend;
  10770. oper.F_CreateUser = usercode;
  10771. oper.F_CreateTime = DateTime.Now;
  10772. oper.F_IsDelete = 0;
  10773. oper.F_Type = 1;
  10774. oper.F_File = files;
  10775. operBLL.Add(oper);
  10776. #endregion
  10777. trans.Complete();
  10778. returns = retbool + "|" + backid + "|" + msgss;
  10779. }
  10780. return returns;
  10781. }
  10782. /// <summary>
  10783. /// 对接网格化,记录办理过程
  10784. /// </summary>
  10785. /// <param name="usercode"></param>
  10786. /// <param name="workorderid"></param>
  10787. /// <param name="content"></param>
  10788. /// <returns></returns>
  10789. public string DealProcessWorkOrderByDock(string usercode,string workorderid,string content)
  10790. {
  10791. var returns = "";
  10792. using (TransactionScope trans = new TransactionScope())
  10793. {
  10794. var assid = 0; var msgend = ""; var state = 0;var userinfo = "";var msgss = ""; var optid = string.Empty; var retbool = "false";
  10795. Model.T_Sys_UserAccount userModel = userBLL.GetModel(usercode);
  10796. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10797. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10798. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  10799. if (userModel != null)
  10800. {
  10801. if (modelT_Bus_WorkOrder == null)
  10802. msgss = "要办理的工单已不存在";
  10803. else if (modelT_Bus_AssignedInfo == null)
  10804. {
  10805. msgss = "工单无法处理或已被处理";
  10806. }
  10807. else
  10808. {
  10809. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10810. {
  10811. msgss = "办理工单";
  10812. retbool = "true";
  10813. assid = modelT_Bus_AssignedInfo.F_Id;
  10814. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  10815. }
  10816. else
  10817. {
  10818. msgss = "工单无法处理";
  10819. }
  10820. }
  10821. userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10822. }
  10823. else
  10824. {
  10825. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  10826. msgss = "无法获取工号信息";
  10827. }
  10828. #region 插入操作记录
  10829. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10830. oper.F_WorkOrderId = workorderid;
  10831. oper.F_AssignedId = assid;
  10832. oper.F_State = state;
  10833. oper.F_Message = userinfo + msgend;
  10834. oper.F_CreateUser = usercode;
  10835. oper.F_CreateTime = DateTime.Now;
  10836. oper.F_IsDelete = 0;
  10837. oper.F_Type = 1;
  10838. optid = operBLL.Add(oper).ToString();
  10839. #endregion
  10840. trans.Complete();
  10841. returns = retbool + "|" + optid + "|" + msgss;
  10842. }
  10843. return returns;
  10844. }
  10845. #endregion
  10846. /// <summary>
  10847. /// 派工单
  10848. /// </summary>
  10849. /// <returns></returns>
  10850. [Authority]
  10851. public ActionResult SplitWorkOrder()
  10852. {
  10853. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10854. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10855. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  10856. {
  10857. string workorderid = RequestString.GetFormString("workorderid");
  10858. int maindeptid = RequestString.GetInt("maindeptid", 0);
  10859. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10860. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  10861. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10862. string files = RequestString.GetFormString("files");
  10863. int state = RequestString.GetInt("state", 0);
  10864. int nextid = RequestString.GetInt("nextid", 0);
  10865. if (limittime < DateTime.Now)
  10866. {
  10867. return Error("办理时限不能小于当前时间");
  10868. }
  10869. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10870. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10871. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  10872. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  10873. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  10874. {
  10875. int type = AssignDeptType(modelT_Bus_AssignedInfo, userModel.F_DeptId);
  10876. //if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == 4) || userModel.F_RoleCode == "GLY")
  10877. if ((type == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing) || (userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"))
  10878. {
  10879. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0)
  10880. {
  10881. using (TransactionScope trans = new TransactionScope())
  10882. {
  10883. if (nextid == 0)
  10884. {
  10885. #region 插入派单记录
  10886. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10887. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  10888. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  10889. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  10890. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  10891. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  10892. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  10893. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  10894. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  10895. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  10896. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  10897. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  10898. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  10899. #endregion
  10900. }
  10901. else
  10902. {
  10903. #region 修改派单记录
  10904. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  10905. if (modelT_Bus_AssignedInfo_Next != null)
  10906. {
  10907. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  10908. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  10909. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  10910. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  10911. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  10912. modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  10913. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  10914. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  10915. }
  10916. #endregion
  10917. }
  10918. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  10919. {
  10920. #region 保存交办信息
  10921. modelT_Bus_AssignedInfo.F_IsNext = 1;
  10922. modelT_Bus_AssignedInfo.F_NextUser = userModel.F_UserCode;
  10923. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  10924. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  10925. #endregion
  10926. #region 保存工单信息
  10927. modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  10928. workorderBLL.Update(modelT_Bus_WorkOrder);
  10929. #endregion
  10930. #region 插入操作记录
  10931. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10932. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10933. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  10934. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10935. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  10936. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  10937. oper.F_CreateUser = userModel.F_UserCode;
  10938. oper.F_CreateTime = DateTime.Now;
  10939. oper.F_IsDelete = 0;
  10940. operBLL.Add(oper);
  10941. //推送消息表
  10942. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  10943. #endregion
  10944. }
  10945. trans.Complete();
  10946. }
  10947. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  10948. }
  10949. else
  10950. {
  10951. return Error("已经派过单了");
  10952. }
  10953. }
  10954. else
  10955. {
  10956. return Error("操作失败");
  10957. }
  10958. }
  10959. else
  10960. {
  10961. return Error("操作失败");
  10962. }
  10963. }
  10964. else
  10965. {
  10966. return Error("权限不足");
  10967. }
  10968. }
  10969. /// <summary>
  10970. /// 撤回工单
  10971. /// </summary>
  10972. /// <returns></returns>
  10973. [Authority]
  10974. public ActionResult WithdrawWorkOrder()
  10975. {
  10976. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  10977. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  10978. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  10979. {
  10980. string workorderid = RequestString.GetFormString("workorderid");
  10981. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10982. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  10983. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  10984. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  10985. {
  10986. using (TransactionScope trans = new TransactionScope())
  10987. {
  10988. #region 保存撤单信息
  10989. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  10990. modelT_Bus_AssignedInfo_Next.F_DeleteUser = userModel.F_UserCode;
  10991. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  10992. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  10993. #endregion
  10994. #region 删除处理信息
  10995. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  10996. foreach (var cg in cglist)
  10997. {
  10998. cg.F_IsDelete = 1;
  10999. cg.F_DeleteUser = userModel.F_UserCode;
  11000. cg.F_DeleteTime = DateTime.Now;
  11001. new BLL.T_Bus_Feedback_Next().Update(cg);
  11002. }
  11003. #endregion
  11004. #region 保存交办信息
  11005. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11006. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11007. #endregion
  11008. #region 保存工单信息
  11009. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11010. workorderBLL.Update(modelT_Bus_WorkOrder);
  11011. #endregion
  11012. #region 插入操作记录
  11013. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11014. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11015. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11016. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11017. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11018. oper.F_Message = userinfo + " 撤回了工单";
  11019. oper.F_CreateUser = userModel.F_UserCode;
  11020. oper.F_CreateTime = DateTime.Now;
  11021. oper.F_IsDelete = 0;
  11022. operBLL.Add(oper);
  11023. #endregion
  11024. trans.Complete();
  11025. }
  11026. return Success("操作成功");
  11027. }
  11028. else
  11029. {
  11030. return Error("操作失败");
  11031. }
  11032. }
  11033. else
  11034. {
  11035. return Error("权限不足");
  11036. }
  11037. }
  11038. /// <summary>
  11039. /// 签收工单
  11040. /// </summary>
  11041. /// <returns></returns>
  11042. [Authority]
  11043. public ActionResult SignWorkOrder()
  11044. {
  11045. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11046. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11047. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11048. {
  11049. string workorderid = RequestString.GetFormString("workorderid");
  11050. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11051. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11052. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11053. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11054. {
  11055. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11056. {
  11057. using (TransactionScope trans = new TransactionScope())
  11058. {
  11059. #region 保存签收信息
  11060. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  11061. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11062. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11063. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11064. #endregion
  11065. #region 保存交办信息
  11066. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11067. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11068. #endregion
  11069. #region 插入操作记录
  11070. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11071. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11072. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11073. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11074. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11075. oper.F_Message = userinfo + " 签收了工单";
  11076. oper.F_CreateUser = userModel.F_UserCode;
  11077. oper.F_CreateTime = DateTime.Now;
  11078. oper.F_IsDelete = 0;
  11079. operBLL.Add(oper);
  11080. #endregion
  11081. trans.Complete();
  11082. }
  11083. return Success("操作成功");
  11084. }
  11085. else
  11086. {
  11087. return Error("单位已签收,不能再次签收");
  11088. }
  11089. }
  11090. else
  11091. {
  11092. return Error("操作失败");
  11093. }
  11094. }
  11095. else
  11096. {
  11097. return Error("权限不足");
  11098. }
  11099. }
  11100. /// <summary>
  11101. /// 拒收工单
  11102. /// </summary>
  11103. /// <returns></returns>
  11104. [Authority]
  11105. public ActionResult RefuseWorkOrder()
  11106. {
  11107. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11108. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11109. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11110. {
  11111. string workorderid = RequestString.GetFormString("workorderid");
  11112. string reason = RequestString.GetFormString("reason");
  11113. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11114. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11115. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11116. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId)
  11117. {
  11118. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  11119. {
  11120. using (TransactionScope trans = new TransactionScope())
  11121. {
  11122. #region 保存签收信息
  11123. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  11124. modelT_Bus_AssignedInfo_Next.F_SureUser = userModel.F_UserCode;
  11125. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  11126. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11127. #endregion
  11128. #region 保存交办信息
  11129. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11130. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11131. #endregion
  11132. #region 保存工单信息
  11133. modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  11134. workorderBLL.Update(modelT_Bus_WorkOrder);
  11135. #endregion
  11136. #region 插入操作记录
  11137. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11138. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11139. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11140. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11141. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11142. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  11143. oper.F_CreateUser = userModel.F_UserCode;
  11144. oper.F_CreateTime = DateTime.Now;
  11145. oper.F_IsDelete = 0;
  11146. operBLL.Add(oper);
  11147. #endregion
  11148. trans.Complete();
  11149. }
  11150. return Success("操作成功");
  11151. }
  11152. else
  11153. {
  11154. return Error("单位已签收,不能再次签收");
  11155. }
  11156. }
  11157. else
  11158. {
  11159. return Error("操作失败");
  11160. }
  11161. }
  11162. else
  11163. {
  11164. return Error("权限不足");
  11165. }
  11166. }
  11167. /// <summary>
  11168. /// 处理工单
  11169. /// </summary>
  11170. /// <returns></returns>
  11171. [Authority]
  11172. public ActionResult DealWorkOrder()
  11173. {
  11174. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11175. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11176. if (userModel.F_RoleCode == "EJWLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11177. {
  11178. string workorderid = RequestString.GetFormString("workorderid");
  11179. string dealman = RequestString.GetFormString("dealman");
  11180. string result = RequestString.GetFormString("result");
  11181. string files = RequestString.GetFormString("files");
  11182. int state = RequestString.GetInt("state", 0);
  11183. int dealid = RequestString.GetInt("dealid", 0);
  11184. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  11185. string prosituation = RequestString.GetFormString("prosituation");
  11186. string dealcontact = RequestString.GetFormString("dealcontact");
  11187. string connecttime = RequestString.GetFormString("connecttime");
  11188. string connectmode = RequestString.GetFormString("connectmode");
  11189. string replycontent = RequestString.GetFormString("replycontent");
  11190. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  11191. string duties = RequestString.GetFormString("duties");//职务
  11192. string situation = RequestString.GetFormString("situation");
  11193. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11194. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11195. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11196. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  11197. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == userModel.F_DeptId
  11198. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  11199. {
  11200. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  11201. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  11202. {
  11203. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  11204. {
  11205. using (TransactionScope trans = new TransactionScope())
  11206. {
  11207. if (dealid == 0)
  11208. {
  11209. #region 插入反馈记录
  11210. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11211. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11212. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11213. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11214. #region 20200114新增字段 zhengbingbing
  11215. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11216. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11217. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11218. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11219. DateTime contime = DateTime.Now;
  11220. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11221. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11222. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11223. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11224. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11225. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11226. modelT_Bus_Feedback_Next.F_Situation = situation;
  11227. #endregion
  11228. modelT_Bus_Feedback_Next.F_File = files;
  11229. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  11230. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  11231. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11232. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11233. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11234. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11235. modelT_Bus_Feedback_Next.F_State = state;
  11236. modelT_Bus_Feedback_Next.F_Type = 1;
  11237. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  11238. #endregion
  11239. }
  11240. else
  11241. {
  11242. #region 修改反馈记录
  11243. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  11244. if (modelT_Bus_Feedback_Next != null)
  11245. {
  11246. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11247. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  11248. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  11249. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  11250. modelT_Bus_Feedback_Next.F_File = files;
  11251. #region 20200114新增字段 zhengbingbing
  11252. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  11253. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  11254. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  11255. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  11256. DateTime contime = DateTime.Now;
  11257. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  11258. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  11259. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  11260. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  11261. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11262. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  11263. modelT_Bus_Feedback_Next.F_Situation = situation;
  11264. #endregion
  11265. modelT_Bus_Feedback_Next.F_CreateUser = userModel.F_UserCode;//办理人
  11266. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  11267. modelT_Bus_Feedback_Next.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11268. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  11269. modelT_Bus_Feedback_Next.F_State = state;
  11270. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11271. }
  11272. #endregion
  11273. }
  11274. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  11275. {
  11276. #region 保存交办信息
  11277. modelT_Bus_AssignedInfo.F_IsNext = 3;
  11278. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11279. #endregion
  11280. #region 保存派单信息
  11281. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  11282. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  11283. {
  11284. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  11285. }
  11286. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11287. #endregion
  11288. #region 删除草稿信息
  11289. 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 + "'");
  11290. foreach (var cg in cglist)
  11291. {
  11292. cg.F_IsDelete = 1;
  11293. cg.F_DeleteUser = userModel.F_UserCode;
  11294. cg.F_DeleteTime = DateTime.Now;
  11295. new BLL.T_Bus_Feedback_Next().Update(cg);
  11296. }
  11297. #endregion
  11298. #region 插入操作记录
  11299. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11300. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11301. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  11302. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11303. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11304. oper.F_Message = userinfo + " 办理了工单";
  11305. oper.F_CreateUser = userModel.F_UserCode;
  11306. oper.F_CreateTime = DateTime.Now;
  11307. oper.F_IsDelete = 0;
  11308. operBLL.Add(oper);
  11309. //推送消息表
  11310. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11311. #endregion
  11312. }
  11313. trans.Complete();
  11314. }
  11315. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11316. }
  11317. else
  11318. {
  11319. return Error("已经办理过了");
  11320. }
  11321. }
  11322. else
  11323. {
  11324. return Error("已经办理过了");
  11325. }
  11326. }
  11327. else
  11328. {
  11329. return Error("操作失败");
  11330. }
  11331. }
  11332. else
  11333. {
  11334. return Error("权限不足");
  11335. }
  11336. }
  11337. /// <summary>
  11338. /// 审核派单
  11339. /// </summary>
  11340. /// <returns></returns>
  11341. [Authority]
  11342. public ActionResult AuditSplitWorkOrder()
  11343. {
  11344. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11345. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11346. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11347. {
  11348. string workorderid = RequestString.GetFormString("workorderid");
  11349. int state = RequestString.GetInt("state", 0);
  11350. string reason = RequestString.GetFormString("reason");
  11351. int backid = RequestString.GetInt("backid", 0);
  11352. string files = RequestString.GetFormString("files");
  11353. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11354. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11355. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  11356. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  11357. {
  11358. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  11359. {
  11360. using (TransactionScope trans = new TransactionScope())
  11361. {
  11362. modelT_Bus_Feedback_Next.F_IsAudit = state;
  11363. modelT_Bus_Feedback_Next.F_AuditUser = userModel.F_UserCode;
  11364. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  11365. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  11366. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  11367. string strmsg = "";
  11368. if (state == 1)
  11369. {
  11370. strmsg = "同意";
  11371. #region 插入反馈记录
  11372. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  11373. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  11374. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  11375. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  11376. modelT_Bus_Feedback.F_Result = modelT_Bus_Feedback_Next.F_Result;//反馈内容
  11377. #region 20200114新增字段 zhengbingbing
  11378. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  11379. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  11380. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  11381. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  11382. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  11383. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  11384. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  11385. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  11386. #endregion
  11387. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  11388. modelT_Bus_Feedback.F_IsAudit = 0;
  11389. modelT_Bus_Feedback.F_IsDelete = 0;
  11390. modelT_Bus_Feedback.F_CreateUser = userModel.F_UserCode;//办理人
  11391. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  11392. modelT_Bus_Feedback.F_CreateDeptId = userModel.F_DeptId;//办理部门
  11393. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  11394. modelT_Bus_Feedback.F_State = state;
  11395. modelT_Bus_Feedback.F_Type = 1;
  11396. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  11397. #endregion
  11398. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  11399. {
  11400. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  11401. modelT_Bus_WorkOrder.F_IsOverdue = 1;
  11402. }
  11403. #region 保存工单信息
  11404. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  11405. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  11406. modelT_Bus_WorkOrder.F_Result = modelT_Bus_Feedback_Next.F_Result;
  11407. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  11408. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  11409. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  11410. workorderBLL.Update(modelT_Bus_WorkOrder);
  11411. #endregion
  11412. #region 保存交办信息
  11413. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  11414. assignBLL.Update(modelT_Bus_AssignedInfo);
  11415. #endregion
  11416. #region 删除草稿信息
  11417. 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 + "'");
  11418. foreach (var cg in cglist)
  11419. {
  11420. cg.F_IsDelete = 1;
  11421. cg.F_DeleteUser = userModel.F_UserCode;
  11422. cg.F_DeleteTime = DateTime.Now;
  11423. new BLL.T_Bus_Feedback().Update(cg);
  11424. }
  11425. #endregion
  11426. #region 处理协办单位
  11427. 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 + "'");
  11428. foreach (var xb in xblist)
  11429. {
  11430. xb.F_State = 2;
  11431. xb.F_SureUser = userModel.F_UserCode;
  11432. xb.F_SureTime = DateTime.Now;
  11433. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  11434. }
  11435. #endregion
  11436. }
  11437. else if (state == 2)
  11438. {
  11439. strmsg = "拒绝";
  11440. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11441. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  11442. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  11443. modelT_Bus_AssignedInfo.F_IsNext = 2;
  11444. assignBLL.Update(modelT_Bus_AssignedInfo);
  11445. //#region 插入派单记录
  11446. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  11447. //Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11448. //modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11449. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo_Next1.F_LimitTime;//办理时限
  11450. //modelT_Bus_AssignedInfo_Next.F_MainDeptId = modelT_Bus_AssignedInfo_Next1.F_MainDeptId;//主办单位id
  11451. //modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = modelT_Bus_AssignedInfo_Next1.F_OtherDeptIds;//协办单位id
  11452. //modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = reason;//交办意见
  11453. //modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11454. //modelT_Bus_AssignedInfo_Next.F_CreateUser = userModel.F_UserCode;
  11455. //modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11456. //modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11457. //modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11458. //modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11459. //modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11460. //modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11461. //#endregion
  11462. }
  11463. #region 插入操作记录
  11464. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11465. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11466. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11467. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11468. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11469. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  11470. oper.F_CreateUser = userModel.F_UserCode;
  11471. oper.F_CreateTime = DateTime.Now;
  11472. oper.F_IsDelete = 0;
  11473. operBLL.Add(oper);
  11474. //推送消息表
  11475. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11476. #endregion
  11477. trans.Complete();
  11478. }
  11479. return Success("操作成功");
  11480. }
  11481. else
  11482. {
  11483. return Error("已经审核过了");
  11484. }
  11485. }
  11486. else
  11487. {
  11488. return Error("操作失败");
  11489. }
  11490. }
  11491. else
  11492. {
  11493. return Error("权限不足");
  11494. }
  11495. }
  11496. /// <summary>
  11497. /// 回访工单
  11498. /// </summary>
  11499. /// <returns></returns>
  11500. [Authority]
  11501. public ActionResult VisitWorkOrder()
  11502. {
  11503. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11504. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11505. //if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY")
  11506. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11507. {
  11508. string workorderid = RequestString.GetFormString("workorderid");
  11509. string visituser = RequestString.GetFormString("visituser");//回访人
  11510. int type = RequestString.GetInt("type", 0);//回访方式
  11511. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  11512. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));//不满意,重办的办理时限
  11513. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  11514. int visitid = RequestString.GetInt("visitid", 0);
  11515. string result = RequestString.GetFormString("result");//回访情况
  11516. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2结案
  11517. //string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  11518. //string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  11519. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  11520. string callid = RequestString.GetFormString("callid");
  11521. string guid = RequestString.GetFormString("guid");
  11522. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11523. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11524. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  11525. if (modelT_Bus_WorkOrder != null)
  11526. {
  11527. //if (modelT_Bus_WorkOrder.F_WorkState == 6)
  11528. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  11529. {
  11530. using (TransactionScope trans = new TransactionScope())
  11531. {
  11532. #region 回访
  11533. if (visitid == 0)
  11534. {
  11535. #region 新增回访结果记录
  11536. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11537. modelT_Bus_VisitResult.F_AssignedId = 0;
  11538. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11539. modelT_Bus_VisitResult.F_Type = type;
  11540. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11541. modelT_Bus_VisitResult.F_Result = result;
  11542. modelT_Bus_VisitResult.F_State = state;
  11543. if (!string.IsNullOrEmpty(callid))
  11544. {
  11545. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11546. if (rd != null)
  11547. {
  11548. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11549. }
  11550. }
  11551. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11552. modelT_Bus_VisitResult.F_IsDelete = 0;
  11553. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11554. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11555. if (modelT_Bus_AssignedInfo != null)
  11556. {
  11557. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11558. }
  11559. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11560. modelT_Bus_VisitResult.F_Id = id;
  11561. //保存回访记录
  11562. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11563. #endregion
  11564. }
  11565. else
  11566. {
  11567. #region 修改回访结果记录
  11568. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  11569. if (modelT_Bus_VisitResult != null)
  11570. {
  11571. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11572. modelT_Bus_VisitResult.F_AssignedId = 0;
  11573. modelT_Bus_VisitResult.F_VisitUser = visituser;
  11574. modelT_Bus_VisitResult.F_Type = type;
  11575. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  11576. modelT_Bus_VisitResult.F_Result = result;
  11577. modelT_Bus_VisitResult.F_State = state;
  11578. if (!string.IsNullOrEmpty(callid))
  11579. {
  11580. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  11581. if (rd != null)
  11582. {
  11583. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  11584. }
  11585. }
  11586. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  11587. modelT_Bus_VisitResult.F_IsDelete = 0;
  11588. modelT_Bus_VisitResult.F_CreateUser = userModel.F_UserCode;
  11589. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  11590. if (modelT_Bus_AssignedInfo != null)
  11591. {
  11592. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11593. }
  11594. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  11595. modelT_Bus_VisitResult.F_Id = id;
  11596. //保存回访记录
  11597. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11598. }
  11599. #endregion
  11600. }
  11601. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  11602. {
  11603. #region 保存交办信息
  11604. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  11605. assignBLL.Update(modelT_Bus_AssignedInfo);
  11606. #endregion
  11607. #region 保存工单信息
  11608. //modelT_Bus_WorkOrder.F_WorkState = 7;//已回访
  11609. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  11610. workorderBLL.Update(modelT_Bus_WorkOrder);
  11611. #endregion
  11612. #region 删除草稿信息
  11613. var cglist = new BLL.T_Bus_VisitResult().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11614. foreach (var cg in cglist)
  11615. {
  11616. cg.F_IsDelete = 1;
  11617. cg.F_DeleteUser = userModel.F_UserCode;
  11618. cg.F_DeleteTime = DateTime.Now;
  11619. new BLL.T_Bus_VisitResult().Update(cg);
  11620. //保存回访记录
  11621. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  11622. }
  11623. #endregion
  11624. var opt = "回访"; var cbreasons = "";
  11625. #region 重办
  11626. if (nexttype == 1)
  11627. {
  11628. #region 保存工单信息
  11629. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  11630. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11631. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11632. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;//办理时限
  11633. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId ;//主办单位id
  11634. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds ;//协办单位id
  11635. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  11636. newmodelT_Bus_AssignedInfo.F_State = 1;
  11637. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  11638. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11639. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  11640. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11641. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  11642. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  11643. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  11644. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  11645. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  11646. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  11647. #region 保存工单信息
  11648. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  11649. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  11650. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  11651. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11652. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  11653. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  11654. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  11655. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  11656. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  11657. modelT_Bus_WorkOrder.F_Result = "";
  11658. modelT_Bus_WorkOrder.F_DealDeptId = null;
  11659. modelT_Bus_WorkOrder.F_DealUser = "";
  11660. modelT_Bus_WorkOrder.F_DealTime = null;
  11661. workorderBLL.Update(modelT_Bus_WorkOrder);
  11662. #endregion
  11663. #region 插入操作记录
  11664. #region 20191021调整为多个主办单位时调整
  11665. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  11666. #endregion
  11667. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  11668. if (users != null && users.Count > 0)
  11669. {
  11670. foreach (var u in users)
  11671. {
  11672. if (!string.IsNullOrEmpty(u.F_Mobile))
  11673. {
  11674. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  11675. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  11676. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  11677. }
  11678. if (!string.IsNullOrEmpty(u.F_Telephone))
  11679. {
  11680. var userlist = u.F_Telephone.Split(',');
  11681. if (userlist != null)
  11682. {
  11683. foreach (var it in userlist)
  11684. {
  11685. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  11686. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  11687. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  11688. }
  11689. }
  11690. }
  11691. }
  11692. }
  11693. #endregion
  11694. workorderBLL.Update(modelT_Bus_WorkOrder);
  11695. #endregion
  11696. opt = "回访并提交重办";
  11697. cbreasons = ",重办原因:"+ cbreason;
  11698. }
  11699. #endregion
  11700. #region 插入操作记录
  11701. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11702. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11703. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  11704. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11705. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11706. string satisfie = "不满意";
  11707. if (issatisfie == 1)
  11708. satisfie = "满意";
  11709. else if (issatisfie == 2)
  11710. satisfie = "基本满意";
  11711. oper.F_Message = userinfo+" " + opt + "了工单,结果:" + satisfie + cbreasons;
  11712. oper.F_CreateUser = userModel.F_UserCode;
  11713. oper.F_CreateTime = DateTime.Now;
  11714. oper.F_IsDelete = 0;
  11715. operBLL.Add(oper);
  11716. //推送消息表
  11717. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11718. #endregion
  11719. #region 自动语音回访
  11720. if (issatisfie == 1)//如果满意就进行自动语音回访
  11721. {
  11722. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  11723. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  11724. {
  11725. string AutoCallMsg = string.Empty;
  11726. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  11727. }
  11728. }
  11729. #endregion
  11730. }
  11731. #endregion
  11732. trans.Complete();
  11733. }
  11734. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  11735. }
  11736. else
  11737. {
  11738. return Error("已经回访过了");
  11739. }
  11740. }
  11741. else
  11742. {
  11743. return Error("操作失败");
  11744. }
  11745. }
  11746. else
  11747. {
  11748. return Error("权限不足");
  11749. }
  11750. }
  11751. #region 20200311 zhengbingbing 增加履职界定操作
  11752. /// <summary>
  11753. /// 履职
  11754. /// </summary>
  11755. /// <returns></returns>
  11756. [Authority]
  11757. public ActionResult PerformWorkOrder()
  11758. {
  11759. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11760. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11761. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11762. {//承办单位和管理员
  11763. string workorderid = RequestString.GetFormString("workorderid");
  11764. int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  11765. int perid = RequestString.GetInt("perid", 0);
  11766. string file = RequestString.GetFormString("file");
  11767. string result = RequestString.GetFormString("result");
  11768. string guid = RequestString.GetFormString("guid");
  11769. string visitids = RequestString.GetFormString("visitids");
  11770. if (string.IsNullOrWhiteSpace(visitids))
  11771. return Error("请选择你要履职的回访记录");
  11772. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11773. List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in ("+ visitids + ")");
  11774. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  11775. if (modelT_Bus_WorkOrder != null)
  11776. {
  11777. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit|| modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  11778. {//已回访,重办待交办,重办中,重办驳回,已结案
  11779. using (TransactionScope trans = new TransactionScope())
  11780. {
  11781. var assids = ""; //读取对应的交办记录
  11782. #region 读取对应的交办id
  11783. foreach (var item in listT_Bus_VisitResult)
  11784. {
  11785. if (item.F_AssignedId != null && item.F_AssignedId != 0)
  11786. assids = item.F_AssignedId + ",";
  11787. }
  11788. assids = assids.Trim(',');
  11789. #endregion
  11790. #region 履职
  11791. if (perid == 0)
  11792. {
  11793. #region 新增履职记录
  11794. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11795. modelT_Bus_PerformDuties.F_AssignedId = assids;
  11796. modelT_Bus_PerformDuties.F_VisitId = visitids;
  11797. modelT_Bus_PerformDuties.F_File = file;
  11798. modelT_Bus_PerformDuties.F_State = state;
  11799. modelT_Bus_PerformDuties.F_Result = result;
  11800. modelT_Bus_PerformDuties.F_IsAudit = 0;
  11801. modelT_Bus_PerformDuties.F_IsDelete = 0;
  11802. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  11803. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  11804. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  11805. int id=new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  11806. modelT_Bus_PerformDuties.F_Id = id;
  11807. //保存回访记录
  11808. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  11809. #endregion
  11810. }
  11811. else
  11812. {
  11813. #region 修改履职记录
  11814. modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  11815. if (modelT_Bus_PerformDuties != null)
  11816. {
  11817. modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11818. modelT_Bus_PerformDuties.F_AssignedId = assids;
  11819. modelT_Bus_PerformDuties.F_VisitId = visitids;
  11820. modelT_Bus_PerformDuties.F_File = file;
  11821. modelT_Bus_PerformDuties.F_State = state;
  11822. modelT_Bus_PerformDuties.F_Result = result;
  11823. modelT_Bus_PerformDuties.F_IsAudit = 0;
  11824. modelT_Bus_PerformDuties.F_IsDelete = 0;
  11825. modelT_Bus_PerformDuties.F_CreateDeptId = userModel.F_DeptId;
  11826. modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  11827. modelT_Bus_PerformDuties.F_CreateUser = userModel.F_UserCode;
  11828. int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  11829. modelT_Bus_PerformDuties.F_Id = id;
  11830. //保存回访记录
  11831. new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, userModel.F_UserCode, guid);
  11832. }
  11833. #endregion
  11834. }
  11835. if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  11836. {
  11837. #region 保存交办信息
  11838. foreach (var item in assids.Split(','))
  11839. {
  11840. var model = assignBLL.GetModel(int.Parse(item));
  11841. if (model != null)
  11842. {
  11843. model.F_IsPerform = 1;
  11844. assignBLL.Update(model);
  11845. }
  11846. }
  11847. #endregion
  11848. #region
  11849. foreach (var item in listT_Bus_VisitResult)
  11850. {
  11851. item.F_IsPerform = 1;
  11852. new BLL.T_Bus_VisitResult().Update(item);
  11853. }
  11854. #endregion
  11855. #region 删除草稿信息
  11856. var cglist = new BLL.T_Bus_PerformDuties().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateUser='" + userModel.F_UserCode + "' ");
  11857. foreach (var cg in cglist)
  11858. {
  11859. cg.F_IsDelete = 1;
  11860. cg.F_DeleteUser = userModel.F_UserCode;
  11861. cg.F_DeleteTime = DateTime.Now;
  11862. new BLL.T_Bus_PerformDuties().Update(cg);
  11863. new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, userModel.F_UserCode, guid);
  11864. }
  11865. #endregion
  11866. var opt = "履职界定";
  11867. #region 插入操作记录
  11868. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11869. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11870. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11871. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11872. oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  11873. oper.F_File = modelT_Bus_PerformDuties.F_File;
  11874. oper.F_CreateUser = userModel.F_UserCode;
  11875. oper.F_CreateTime = DateTime.Now;
  11876. oper.F_IsDelete = 0;
  11877. foreach (var item in assids.Split(','))
  11878. {
  11879. oper.F_AssignedId = int.Parse(item);
  11880. operBLL.Add(oper);
  11881. //推送消息表 履职界定消息目前推送给工号8666
  11882. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", userModel.F_UserCode, (int)EnumSmsType.workorder);
  11883. }
  11884. #endregion
  11885. }
  11886. #endregion
  11887. trans.Complete();
  11888. }
  11889. return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  11890. }
  11891. else
  11892. {
  11893. return Error("此状态下不能进行履职操作");
  11894. }
  11895. }
  11896. else
  11897. {
  11898. return Error("操作失败");
  11899. }
  11900. }
  11901. else
  11902. {
  11903. return Error("权限不足");
  11904. }
  11905. }
  11906. /// <summary>
  11907. /// 履职界定审核
  11908. /// </summary>
  11909. /// <returns></returns>
  11910. [Authority]
  11911. public ActionResult DefinitionWorkOrder() {
  11912. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  11913. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  11914. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  11915. {
  11916. string workorderid = RequestString.GetFormString("workorderid");
  11917. int state = RequestString.GetInt("state", 0);
  11918. string reason = RequestString.GetFormString("reason");
  11919. int perid = RequestString.GetInt("perid", 0);
  11920. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11921. Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  11922. if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  11923. {
  11924. if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  11925. {
  11926. using (TransactionScope trans = new TransactionScope())
  11927. {
  11928. #region 保存履职界定信息
  11929. modelT_Bus_PerformDuties.F_IsAudit = state;
  11930. modelT_Bus_PerformDuties.F_AuditUser = userModel.F_UserCode;
  11931. modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  11932. modelT_Bus_PerformDuties.F_AuditReason = reason;
  11933. new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  11934. #endregion
  11935. string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  11936. #region
  11937. if (state == 1)
  11938. {
  11939. strmsg = "同意";
  11940. isperform = 2;
  11941. IsSatisfie = 1;
  11942. }
  11943. else if (state == 2)
  11944. {
  11945. strmsg = "拒绝";
  11946. isperform = 3;
  11947. }
  11948. #endregion
  11949. #region 交办记录处理
  11950. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  11951. {
  11952. var model = assignBLL.GetModel(int.Parse(item));
  11953. if (model != null)
  11954. {
  11955. model.F_IsPerform = isperform;
  11956. if (state == 1)//同意此履职界定则修改回访结果为满意
  11957. model.F_IsSatisfie = IsSatisfie;
  11958. assignBLL.Update(model);
  11959. }
  11960. }
  11961. #endregion
  11962. #region 回访记录处理
  11963. foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  11964. {
  11965. var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  11966. if (model != null)
  11967. {
  11968. model.F_IsPerform = isperform;
  11969. if (state == 1)//同意此履职界定则修改回访结果为满意
  11970. model.F_IsSatisfie = IsSatisfie;
  11971. new BLL.T_Bus_VisitResult().Update(model);
  11972. }
  11973. }
  11974. #endregion
  11975. #region 插入操作记录
  11976. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11977. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11978. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11979. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  11980. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  11981. if (!string.IsNullOrWhiteSpace(reason))
  11982. oper.F_Message = oper.F_Message + ",理由为:"+ reason;
  11983. oper.F_CreateUser = userModel.F_UserCode;
  11984. oper.F_CreateTime = DateTime.Now;
  11985. oper.F_IsDelete = 0;
  11986. foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  11987. {
  11988. oper.F_AssignedId = int.Parse(item);
  11989. operBLL.Add(oper);
  11990. //推送消息表
  11991. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  11992. }
  11993. #endregion
  11994. trans.Complete();
  11995. }
  11996. return Success("操作成功");
  11997. }
  11998. else
  11999. return Error("已经审核过了");
  12000. }
  12001. else
  12002. return Error("操作失败");
  12003. }
  12004. else
  12005. return Error("权限不足");
  12006. }
  12007. #endregion
  12008. /// <summary>
  12009. /// 督办或监察工单
  12010. /// </summary>
  12011. /// <returns></returns>
  12012. [Authority]
  12013. public ActionResult RemindWorkOrder()
  12014. {
  12015. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12016. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12017. string workorderid = RequestString.GetFormString("workorderid");
  12018. int type = RequestString.GetInt("type", 0);//1督办 2监察
  12019. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  12020. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12021. string files = RequestString.GetFormString("files");
  12022. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12023. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12024. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  12025. {
  12026. using (TransactionScope trans = new TransactionScope())
  12027. {
  12028. #region 插入督办记录
  12029. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12030. if (type == 1 && state > 0)
  12031. {
  12032. 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();
  12033. if(modelT_Bus_RemindRecord!=null)
  12034. {
  12035. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12036. modelT_Bus_RemindRecord.F_State = state;
  12037. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  12038. }
  12039. }
  12040. else
  12041. {
  12042. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12043. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12044. modelT_Bus_RemindRecord.F_Type = type;
  12045. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12046. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12047. modelT_Bus_RemindRecord.F_File = files;
  12048. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  12049. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12050. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12051. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12052. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12053. }
  12054. #endregion
  12055. #region 插入操作记录
  12056. string typename = "督办";
  12057. if (type == 2) { typename = "监察"; }
  12058. if (type == 1 && state==0) { typename = "提交督办"; }
  12059. if (type == 1 && state == 1) { typename = "督办"; }
  12060. if (type == 1 && state == 2) { typename = "退回督办"; }
  12061. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12062. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12063. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12064. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12065. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12066. oper.F_Message = userinfo + " " + typename + "了工单";
  12067. oper.F_CreateUser = userModel.F_UserCode;
  12068. oper.F_CreateTime = DateTime.Now;
  12069. oper.F_IsDelete = 0;
  12070. operBLL.Add(oper);
  12071. #endregion
  12072. trans.Complete();
  12073. }
  12074. return Success("操作成功");
  12075. }
  12076. else
  12077. {
  12078. return Error("操作失败");
  12079. }
  12080. }
  12081. /// <summary>
  12082. /// 重办工单
  12083. /// </summary>
  12084. /// <returns></returns>
  12085. [Authority]
  12086. public ActionResult ReloadWorkOrder()
  12087. {
  12088. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12089. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12090. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12091. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12092. {
  12093. string workorderid = RequestString.GetFormString("workorderid");
  12094. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  12095. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  12096. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12097. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12098. if (modelT_Bus_WorkOrder != null)
  12099. {
  12100. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12101. {
  12102. return Error("操作失败");
  12103. }
  12104. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12105. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12106. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12107. {
  12108. using (TransactionScope trans = new TransactionScope())
  12109. {
  12110. #region 插入督办记录
  12111. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  12112. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12113. modelT_Bus_RemindRecord.F_AssignedId = 0;
  12114. modelT_Bus_RemindRecord.F_Type = 1;
  12115. if (modelT_Bus_AssignedInfo != null)//转办后重办
  12116. {
  12117. #region 插入交办记录
  12118. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12119. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12120. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  12121. modelT_Bus_WorkOrder.F_Scanning = newlimittime.AddDays(3);
  12122. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12123. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12124. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12125. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  12126. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12127. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12128. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12129. AssignedInfo.F_State = 1;//0草稿 1正式
  12130. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12131. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12132. AssignedInfo.F_IsDelete = 0;
  12133. AssignedInfo.F_IsOverdue = 0;
  12134. AssignedInfo.F_IsSure = 0;
  12135. AssignedInfo.F_IsReload = n + 1;
  12136. AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12137. AssignedInfo.F_ReloadTime = DateTime.Now;
  12138. assignBLL.Add(AssignedInfo);
  12139. #endregion
  12140. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  12141. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  12142. }
  12143. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  12144. {
  12145. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  12146. if (cruser != null)
  12147. {
  12148. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  12149. }
  12150. }
  12151. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  12152. modelT_Bus_RemindRecord.F_State = 1;
  12153. modelT_Bus_RemindRecord.F_IsDelete = 0;
  12154. modelT_Bus_RemindRecord.F_CreateUser = userModel.F_UserCode;
  12155. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  12156. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  12157. #endregion
  12158. #region 保存工单信息
  12159. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12160. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12161. modelT_Bus_WorkOrder.F_Result = "";
  12162. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12163. modelT_Bus_WorkOrder.F_DealUser = "";
  12164. modelT_Bus_WorkOrder.F_DealTime = null;
  12165. workorderBLL.Update(modelT_Bus_WorkOrder);
  12166. #endregion
  12167. #region 插入操作记录
  12168. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12169. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12170. if (modelT_Bus_AssignedInfo != null)
  12171. {
  12172. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12173. }
  12174. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12175. string deptname = "";
  12176. #region 20191021调整为多个主办单位时调整
  12177. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12178. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12179. #endregion
  12180. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12181. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  12182. oper.F_CreateUser = userModel.F_UserCode;
  12183. oper.F_CreateTime = DateTime.Now;
  12184. oper.F_IsDelete = 0;
  12185. operBLL.Add(oper);
  12186. //推送消息表
  12187. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12188. foreach (var u in users)
  12189. {
  12190. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.workorder);
  12191. }
  12192. #endregion
  12193. trans.Complete();
  12194. }
  12195. return Success("操作成功");
  12196. }
  12197. else
  12198. {
  12199. return Error("已经处理过了");
  12200. }
  12201. }
  12202. else
  12203. {
  12204. return Error("操作失败");
  12205. }
  12206. }
  12207. else
  12208. {
  12209. return Error("权限不足");
  12210. }
  12211. }
  12212. /// <summary>
  12213. /// 退回原单位重办
  12214. /// </summary>
  12215. /// <returns></returns>
  12216. [Authority]
  12217. public ActionResult SubReloadWorkOrder(string[] ids, string reason)
  12218. {
  12219. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12220. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12221. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12222. {
  12223. if (ids != null && ids.Length > 0)
  12224. {
  12225. foreach (string str in ids)
  12226. {
  12227. using (TransactionScope trans = new TransactionScope())
  12228. {
  12229. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12230. if (modelT_Bus_WorkOrder != null)
  12231. {
  12232. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12233. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12234. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12235. {
  12236. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId );
  12237. #region 保存工单信息
  12238. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12239. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12240. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12241. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12242. newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12243. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12244. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12245. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12246. newmodelT_Bus_AssignedInfo.F_State = 1;
  12247. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12248. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12249. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12250. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12251. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12252. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12253. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12254. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12255. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12256. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12257. #region 保存工单信息
  12258. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12259. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12260. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12261. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12262. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12263. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12264. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12265. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12266. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12267. modelT_Bus_WorkOrder.F_Result = "";
  12268. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12269. modelT_Bus_WorkOrder.F_DealUser = "";
  12270. modelT_Bus_WorkOrder.F_DealTime = null;
  12271. workorderBLL.Update(modelT_Bus_WorkOrder);
  12272. #region 改为未查收
  12273. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12274. assignBLL.Update(modelT_Bus_AssignedInfo);
  12275. #endregion
  12276. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  12277. if (users != null && users.Count > 0)
  12278. {
  12279. foreach (var u in users)
  12280. {
  12281. if (!string.IsNullOrEmpty(u.F_Mobile))
  12282. {
  12283. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12284. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12285. bool v = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12286. }
  12287. if (!string.IsNullOrEmpty(u.F_Telephone))
  12288. {
  12289. var userlist = u.F_Telephone.Split(',');
  12290. if (userlist != null)
  12291. {
  12292. foreach (var it in userlist)
  12293. {
  12294. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12295. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12296. bool v = new SMSController().AddSmS(876415, userId, count, mag, it);
  12297. }
  12298. }
  12299. }
  12300. }
  12301. }
  12302. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12303. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  12304. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12305. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  12306. #endregion
  12307. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12308. #endregion
  12309. #endregion
  12310. #region 插入操作记录
  12311. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12312. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12313. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12314. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12315. oper.F_Message = userinfo + " 退回重办了工单,重办原因:" + reason;
  12316. oper.F_CreateUser = userModel.F_UserCode;
  12317. oper.F_CreateTime = DateTime.Now;
  12318. oper.F_IsDelete = 0;
  12319. operBLL.Add(oper);
  12320. #endregion
  12321. }
  12322. }
  12323. trans.Complete();
  12324. }
  12325. }
  12326. return Success("操作成功");
  12327. }
  12328. else
  12329. {
  12330. return Error("操作失败");
  12331. }
  12332. }
  12333. else
  12334. {
  12335. return Error("权限不足");
  12336. }
  12337. }
  12338. /// <summary>
  12339. /// 重办提交工单 提交后为重办待交办
  12340. /// </summary>
  12341. /// <returns></returns>
  12342. [Authority]
  12343. public ActionResult SubReloadWorkOrder1(string[] ids, string reason)
  12344. {
  12345. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12346. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12347. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12348. {
  12349. if (ids != null && ids.Length > 0)
  12350. {
  12351. foreach (string str in ids)
  12352. {
  12353. using (TransactionScope trans = new TransactionScope())
  12354. {
  12355. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12356. if (modelT_Bus_WorkOrder != null)
  12357. {
  12358. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  12359. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.closed
  12360. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12361. {
  12362. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  12363. #region 保存工单信息
  12364. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  12365. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  12366. //Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12367. //newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12368. //newmodelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12369. //newmodelT_Bus_AssignedInfo.F_MainDeptId = null;// modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12370. //newmodelT_Bus_AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12371. //newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  12372. //newmodelT_Bus_AssignedInfo.F_State = 1;
  12373. //newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12374. //newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12375. //newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12376. //newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12377. //newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12378. //newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12379. //newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12380. //newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12381. //newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12382. //newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12383. #region 保存工单信息
  12384. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12385. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12386. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12387. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12388. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12389. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12390. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12391. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12392. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办待交办
  12393. modelT_Bus_WorkOrder.F_Result = "";
  12394. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12395. modelT_Bus_WorkOrder.F_DealUser = "";
  12396. modelT_Bus_WorkOrder.F_DealTime = null;
  12397. modelT_Bus_WorkOrder.F_MainDeptId = null;
  12398. modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12399. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12400. workorderBLL.Update(modelT_Bus_WorkOrder);
  12401. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  12402. //modelT_Bus_WorkOrder.F_MainDeptId = null;
  12403. //modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  12404. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  12405. #endregion
  12406. // workorderBLL.Update(modelT_Bus_WorkOrder);
  12407. #endregion
  12408. #endregion
  12409. #region 插入操作记录
  12410. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12411. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12412. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12413. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12414. oper.F_Message = userinfo + " 提交了重办待交办工单,重办待交办原因:" + reason;
  12415. oper.F_CreateUser = userModel.F_UserCode;
  12416. oper.F_CreateTime = DateTime.Now;
  12417. oper.F_IsDelete = 0;
  12418. operBLL.Add(oper);
  12419. #endregion
  12420. }
  12421. }
  12422. trans.Complete();
  12423. }
  12424. }
  12425. return Success("操作成功");
  12426. }
  12427. else
  12428. {
  12429. return Error("操作失败");
  12430. }
  12431. }
  12432. else
  12433. {
  12434. return Error("权限不足");
  12435. }
  12436. }
  12437. /// <summary>
  12438. /// 驳回重办,驳回后状态为重办驳回状态
  12439. /// 调度员可驳回
  12440. /// </summary>
  12441. /// <param name="ids"></param>
  12442. /// <returns></returns>
  12443. [Authority]
  12444. public ActionResult RejReloadWorkOrder(string id,string reason)
  12445. {
  12446. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12447. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12448. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12449. {
  12450. if (!string.IsNullOrEmpty(id))
  12451. {
  12452. using (TransactionScope trans = new TransactionScope())
  12453. {
  12454. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  12455. if (modelT_Bus_WorkOrder != null)
  12456. {
  12457. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='"+modelT_Bus_WorkOrder.F_WorkOrderId+ "' order by F_CreateTime desc ").FirstOrDefault();
  12458. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12459. {
  12460. #region 保存工单信息
  12461. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  12462. if (modelT_Bus_AssignedInfo != null)
  12463. {
  12464. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL.GetModelList(" F_AssignedId=" + modelT_Bus_AssignedInfo.F_Id + " and F_IsFeedEnd=1 and F_State=1 order by F_CreateTime desc").FirstOrDefault();
  12465. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  12466. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  12467. modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  12468. modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  12469. modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  12470. modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  12471. #endregion
  12472. }
  12473. workorderBLL.Update(modelT_Bus_WorkOrder);
  12474. #endregion
  12475. #region 插入操作记录
  12476. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12477. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12478. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12479. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12480. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  12481. oper.F_CreateUser = userModel.F_UserCode;
  12482. oper.F_CreateTime = DateTime.Now;
  12483. oper.F_IsDelete = 0;
  12484. operBLL.Add(oper);
  12485. #endregion
  12486. }
  12487. }
  12488. trans.Complete();
  12489. }
  12490. return Success("操作成功");
  12491. }
  12492. else
  12493. {
  12494. return Error("参数异常");
  12495. }
  12496. }
  12497. else
  12498. {
  12499. return Error("权限不足");
  12500. }
  12501. }
  12502. /// <summary>
  12503. /// 重办工单
  12504. /// </summary>
  12505. /// <returns></returns>
  12506. [Authority]
  12507. public ActionResult NewReloadWorkOrder()
  12508. {
  12509. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12510. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12511. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  12512. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12513. {
  12514. string workorderid = RequestString.GetFormString("workorderid");
  12515. string maindeptid = RequestString.GetFormString("maindeptid");
  12516. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12517. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  12518. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12519. Model.T_Bus_WorkOrder modeT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12520. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12521. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12522. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12523. if (modelT_Bus_WorkOrder != null)
  12524. {
  12525. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12526. //{
  12527. // return Error("操作失败");
  12528. //}
  12529. if (!string.IsNullOrEmpty(otherdeptids))
  12530. {
  12531. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  12532. {
  12533. return Error("主办单位不能出现在协办单位");
  12534. }
  12535. }
  12536. if (limittime < DateTime.Now)
  12537. {
  12538. return Error("办理时限不能小于当前时间");
  12539. }
  12540. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12541. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  12542. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  12543. {
  12544. using (TransactionScope trans = new TransactionScope())
  12545. {
  12546. if (deptlist.Count == 1)
  12547. {
  12548. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12549. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12550. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12551. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptlist[0].F_DeptId ;//主办单位id
  12552. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12553. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12554. newmodelT_Bus_AssignedInfo.F_State = 1;
  12555. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12556. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12557. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12558. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12559. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12560. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12561. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12562. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12563. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12564. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12565. #region 保存工单信息
  12566. modelT_Bus_WorkOrder.F_MainDeptId = deptlist[0].F_DeptId;
  12567. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12568. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12569. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12570. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12571. modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12572. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  12573. modelT_Bus_WorkOrder.F_Scanning = limittime.AddDays(3);
  12574. modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12575. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12576. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12577. modelT_Bus_WorkOrder.F_Result = "";
  12578. modelT_Bus_WorkOrder.F_DealDeptId = null;
  12579. modelT_Bus_WorkOrder.F_DealUser = "";
  12580. modelT_Bus_WorkOrder.F_DealTime = null;
  12581. workorderBLL.Update(modelT_Bus_WorkOrder);
  12582. #endregion
  12583. #region 插入操作记录
  12584. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12585. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12586. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  12587. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12588. string deptname = "";
  12589. #region 20191021调整为多个主办单位时调整
  12590. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  12591. var deptinfo = new BLL.T_Sys_Department().GetModel(deptlist[0].F_DeptId);
  12592. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12593. #endregion
  12594. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12595. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  12596. if (!string.IsNullOrEmpty(otherdeptids))
  12597. {
  12598. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12599. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12600. }
  12601. oper.F_CreateUser = userModel.F_UserCode;
  12602. oper.F_CreateTime = DateTime.Now;
  12603. oper.F_IsDelete = 0;
  12604. operBLL.Add(oper);
  12605. //推送消息表
  12606. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12607. foreach (var u in users)
  12608. {
  12609. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  12610. if (!string.IsNullOrEmpty(u.F_Mobile))
  12611. {
  12612. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12613. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12614. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12615. }
  12616. if (!string.IsNullOrEmpty(u.F_Telephone))
  12617. {
  12618. var userlist = u.F_Telephone.Split(',');
  12619. if (userlist != null)
  12620. {
  12621. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收。";
  12622. string[] mag = { modelT_Bus_WorkOrder.F_WorkOrderId };
  12623. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  12624. }
  12625. }
  12626. }
  12627. #endregion
  12628. }
  12629. else
  12630. {
  12631. #region 多单位
  12632. string newids = ""; string errdeptid = ""; string deptname = "";
  12633. foreach (var deptmasinfo in deptlist)
  12634. {
  12635. deptname += deptmasinfo.F_DeptName + ",";
  12636. }
  12637. foreach (var deptinfo in deptlist)
  12638. {
  12639. //deptname += deptinfo.F_DeptName + ",";
  12640. #region 新增工单
  12641. var modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  12642. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(modelT_Bus_WorkOrder.F_CreateUser);
  12643. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12644. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12645. newmodelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  12646. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12647. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12648. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12649. newmodelT_Bus_AssignedInfo.F_State = 1;
  12650. newmodelT_Bus_AssignedInfo.F_CreateUser = userModel.F_UserCode;
  12651. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12652. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12653. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12654. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12655. newmodelT_Bus_AssignedInfo.F_IsReload = 1;
  12656. newmodelT_Bus_AssignedInfo.F_ReloadUser = userModel.F_UserCode;
  12657. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12658. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12659. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12660. #endregion
  12661. #region 保存工单信息
  12662. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12663. modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12664. // modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  12665. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12666. int n = Int32.Parse(DbHelperSQL.GetSingle("select count(1) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 and isnull(F_IsReload,0)>0").ToString());
  12667. modelT_Bus_WorkOrder1.F_IsReload = n + 1;
  12668. modelT_Bus_WorkOrder1.F_LimitTime = limittime;
  12669. modelT_Bus_WorkOrder1.F_Scanning = limittime.AddDays(3);
  12670. modelT_Bus_WorkOrder1.F_IsOverdue = 0;
  12671. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  12672. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.reload;//重办中
  12673. modelT_Bus_WorkOrder1.F_Result = "";
  12674. modelT_Bus_WorkOrder1.F_DealDeptId = null;
  12675. modelT_Bus_WorkOrder1.F_DealUser = "";
  12676. modelT_Bus_WorkOrder1.F_DealTime = null;
  12677. workorderBLL.Add (modelT_Bus_WorkOrder1);
  12678. #endregion
  12679. #region 插入操作记录
  12680. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12681. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12682. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  12683. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  12684. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12685. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  12686. if (!string.IsNullOrEmpty(otherdeptids))
  12687. {
  12688. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12689. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12690. }
  12691. oper.F_CreateUser = userModel.F_UserCode;
  12692. oper.F_CreateTime = DateTime.Now;
  12693. oper.F_IsDelete = 0;
  12694. newids += "," + modelT_Bus_WorkOrder1.F_WorkOrderId;
  12695. operBLL.Add(oper);
  12696. //推送消息表
  12697. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12698. foreach (var u in users)
  12699. {
  12700. //【巩义市市长热线办公室】发送:编号为:******的重办工单,请及时处理。
  12701. if (!string.IsNullOrEmpty(u.F_Mobile))
  12702. {
  12703. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  12704. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  12705. bool m = new SMSController().AddSmS(876415, userId, count, mag, u.F_Mobile);
  12706. }
  12707. if (!string.IsNullOrEmpty(u.F_Telephone))
  12708. {
  12709. var userlist = u.F_Telephone.Split(',');
  12710. if (userlist != null)
  12711. {
  12712. string count = "你有重办工单,工单号" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收。";
  12713. string[] mag = { modelT_Bus_WorkOrder1.F_WorkOrderId };
  12714. bool m = new SMSController().AddSmSGroup(876415, userId, count, mag, userlist, u.F_Telephone);
  12715. }
  12716. }
  12717. }
  12718. #endregion
  12719. }
  12720. newids = newids.TrimStart(',');
  12721. var ids = newids.Split(',');
  12722. if (ids!=null && ids.Length >0)
  12723. {
  12724. foreach (var it in ids)
  12725. {
  12726. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12727. oper.F_WorkOrderId = it;
  12728. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12729. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12730. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  12731. oper.F_CreateUser = userModel.F_UserCode;
  12732. oper.F_CreateTime = DateTime.Now;
  12733. oper.F_IsDelete = 0;
  12734. operBLL.Add(oper);
  12735. }
  12736. }
  12737. if (ids != null && ids.Length > 0)
  12738. {
  12739. #region 主工单新增部门记录
  12740. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12741. oper.F_WorkOrderId = workorderid;
  12742. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  12743. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12744. oper.F_Message = userinfo + " 重办交办了工单,主办单位:" + deptname;
  12745. oper.F_CreateUser = userModel.F_UserCode;
  12746. oper.F_CreateTime = DateTime.Now;
  12747. oper.F_IsDelete = 0;
  12748. operBLL.Add(oper);
  12749. #endregion
  12750. #region 新增工单记录
  12751. oper.F_WorkOrderId = workorderid;
  12752. oper.F_State = modeT_Bus_WorkOrder.F_WorkState;
  12753. oper.F_Message = userinfo + " 重办交办多单位,生成新工单:" + newids;
  12754. oper.F_CreateUser = userModel.F_UserCode;
  12755. oper.F_CreateTime = DateTime.Now;
  12756. oper.F_IsDelete = 0;
  12757. operBLL.Add(oper);
  12758. #endregion
  12759. }
  12760. modeT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.closed;// 14;
  12761. modeT_Bus_WorkOrder.IsExport = 1;
  12762. workorderBLL.Update(modeT_Bus_WorkOrder);
  12763. #endregion
  12764. }
  12765. trans.Complete();
  12766. }
  12767. return Success("操作成功");
  12768. }
  12769. else
  12770. {
  12771. return Error("已经处理过了");
  12772. }
  12773. }
  12774. else
  12775. {
  12776. return Error("操作失败");
  12777. }
  12778. }
  12779. else
  12780. {
  12781. return Error("权限不足");
  12782. }
  12783. }
  12784. /// <summary>
  12785. /// 结案工单
  12786. /// </summary>
  12787. /// <returns></returns>
  12788. [Authority]
  12789. public ActionResult FinishWorkOrder()
  12790. {
  12791. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12792. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12793. //if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY")
  12794. if (userModel.F_RoleCode == "ZJZY"|| userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"|| userModel.F_RoleCode == "ZXHWY")
  12795. {
  12796. string workorderid = RequestString.GetFormString("workorderid");
  12797. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  12798. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  12799. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  12800. string deptids = RequestString.GetFormString("deptids");//通告单位
  12801. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  12802. //2020-3-4添加通告选项
  12803. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  12804. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  12805. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  12806. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  12807. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12808. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12809. if (modelT_Bus_WorkOrder != null)
  12810. {
  12811. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12812. //{
  12813. // return Error("操作失败");
  12814. //}
  12815. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  12816. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState==(int)EnumWorkState.rejload)
  12817. {
  12818. using (TransactionScope trans = new TransactionScope())
  12819. {
  12820. #region 修改工单记录
  12821. //modelT_Bus_WorkOrder.F_WorkState = 9;
  12822. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  12823. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  12824. modelT_Bus_WorkOrder.F_IsClosed = 1;
  12825. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  12826. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12827. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  12828. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  12829. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  12830. if (isnotice == 1)
  12831. {
  12832. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  12833. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  12834. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12835. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  12836. modelT_Bus_NoticeCriticism.F_State = 1;
  12837. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  12838. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  12839. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  12840. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  12841. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  12842. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  12843. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  12844. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  12845. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  12846. modelT_Bus_WorkOrder.F_IsNotice = 1;
  12847. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  12848. }
  12849. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  12850. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  12851. assignBLL.Update(modelT_Bus_AssignedInfo);
  12852. workorderBLL.Update(modelT_Bus_WorkOrder);
  12853. #endregion
  12854. #region 插入操作记录
  12855. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12856. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12857. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12858. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  12859. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  12860. if (isnotice == 1)
  12861. {
  12862. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  12863. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  12864. }
  12865. if (isstandard == 1)
  12866. {
  12867. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  12868. var sts= DbHelperSQL.GetSingle(sqlstand);
  12869. oper.F_Message = oper.F_Message + ";办理结果出现不规范"+ sts + "情况,请及时查看";
  12870. }
  12871. oper.F_CreateUser = userModel.F_UserCode;
  12872. oper.F_CreateTime = DateTime.Now;
  12873. oper.F_IsDelete = 0;
  12874. operBLL.Add(oper);
  12875. //调用科大讯飞
  12876. if (modelT_Bus_WorkOrder.F_InfoSource == 7)
  12877. {
  12878. Model.T_Bus_Feedback tbf = new BLL.T_Bus_Feedback().GetNewModelByWorkOrderID(oper.F_WorkOrderId);
  12879. if (tbf != null)
  12880. {
  12881. string deptname = string.Empty;
  12882. var deptinfo = new BLL.T_Sys_Department().GetModel(tbf.F_CreateDeptId.Value);
  12883. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  12884. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  12885. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, tbf.F_DealUser, deptname, tbf.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  12886. if (bl)
  12887. {
  12888. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  12889. }
  12890. else
  12891. {
  12892. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  12893. }
  12894. }
  12895. }
  12896. #endregion
  12897. trans.Complete();
  12898. }
  12899. return Success("操作成功");
  12900. }
  12901. else
  12902. {
  12903. return Error("已经处理过了");
  12904. }
  12905. }
  12906. else
  12907. {
  12908. return Error("操作失败");
  12909. }
  12910. }
  12911. else
  12912. {
  12913. return Error("权限不足");
  12914. }
  12915. }
  12916. /// <summary>
  12917. /// 结案工单
  12918. /// </summary>
  12919. /// <returns></returns>
  12920. [Authority]
  12921. public ActionResult ForceFinishWorkOrder()
  12922. {
  12923. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  12924. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  12925. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG" || userModel.F_RoleCode == "ZXHWY")
  12926. //if (userModel.F_RoleCode == "ZJZY" || userModel.F_RoleCode == "GLY")
  12927. {
  12928. string workorderid = RequestString.GetFormString("workorderid");
  12929. string result = RequestString.GetFormString("result");//处理结果
  12930. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  12931. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  12932. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  12933. string deptids = RequestString.GetFormString("deptids");//通告单位
  12934. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  12935. //2020-3-4添加通告选项
  12936. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  12937. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  12938. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  12939. string standardids= RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  12940. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12941. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12942. if (modelT_Bus_WorkOrder != null)
  12943. {
  12944. if (userModel.F_RoleCode != "GLY" && userModel.F_RoleCode != "DDZG"
  12945. && userModel.F_RoleCode != "ZXLD")
  12946. {
  12947. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  12948. {
  12949. return Error("操作失败");
  12950. }
  12951. }
  12952. using (TransactionScope trans = new TransactionScope())
  12953. {
  12954. #region 修改工单记录
  12955. modelT_Bus_WorkOrder.F_Result = result;
  12956. //modelT_Bus_WorkOrder.F_WorkState = 9;
  12957. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  12958. modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  12959. modelT_Bus_WorkOrder.F_IsClosed = 1;
  12960. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  12961. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12962. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  12963. modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  12964. modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  12965. if (isnotice == 1)
  12966. {
  12967. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  12968. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  12969. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12970. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  12971. modelT_Bus_NoticeCriticism.F_State = 1;
  12972. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  12973. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  12974. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  12975. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  12976. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  12977. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  12978. modelT_Bus_WorkOrder.F_IsNotice = 1;
  12979. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  12980. if (modelT_Bus_AssignedInfo != null)
  12981. {
  12982. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  12983. modelT_Bus_AssignedInfo.F_NoticeUser = userModel.F_UserCode;
  12984. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  12985. }
  12986. }
  12987. if (modelT_Bus_AssignedInfo!=null )
  12988. {
  12989. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  12990. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  12991. assignBLL.Update(modelT_Bus_AssignedInfo);
  12992. }
  12993. workorderBLL.Update(modelT_Bus_WorkOrder);
  12994. #endregion
  12995. #region 插入操作记录
  12996. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12997. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12998. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12999. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13000. oper.F_Message = userinfo + " 强制结案了工单" ;
  13001. if (isnotice == 1)
  13002. {
  13003. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13004. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  13005. }
  13006. if(isstandard==1)
  13007. {
  13008. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  13009. }
  13010. oper.F_CreateUser = userModel.F_UserCode;
  13011. oper.F_CreateTime = DateTime.Now;
  13012. oper.F_IsDelete = 0;
  13013. operBLL.Add(oper);
  13014. //调用科大讯飞
  13015. //if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == 9)
  13016. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  13017. {
  13018. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  13019. 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());
  13020. if (bl)
  13021. {
  13022. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  13023. }
  13024. else
  13025. {
  13026. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  13027. }
  13028. }
  13029. #endregion
  13030. trans.Complete();
  13031. }
  13032. return Success("操作成功");
  13033. }
  13034. else
  13035. {
  13036. return Error("操作失败");
  13037. }
  13038. }
  13039. else
  13040. {
  13041. return Error("权限不足");
  13042. }
  13043. }
  13044. /// <summary>
  13045. /// 删除工单
  13046. /// </summary>
  13047. /// <returns></returns>
  13048. public ActionResult DelWorkOrder(string[] ids)
  13049. {
  13050. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13051. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13052. if (userModel.F_RoleCode == "ZXHWY" || userModel.F_RoleCode == "ZXBZ" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG"||
  13053. userModel.F_UserCode =="001")
  13054. {
  13055. //StringBuilder sb = new StringBuilder();
  13056. foreach (var item in ids)
  13057. {
  13058. //sb.Append("'" + item + "',");
  13059. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  13060. if (modelT_Bus_WorkOrder != null)//0)
  13061. {
  13062. using (TransactionScope trans = new TransactionScope())
  13063. {
  13064. #region 修改工单记录
  13065. modelT_Bus_WorkOrder.F_IsDelete = 1;
  13066. modelT_Bus_WorkOrder.F_DeleteUser= userModel.F_UserCode;
  13067. modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  13068. workorderBLL.Update(modelT_Bus_WorkOrder);
  13069. #endregion
  13070. #region 插入操作记录
  13071. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13072. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13073. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13074. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13075. oper.F_Message = userinfo + " 删除了工单";
  13076. oper.F_CreateUser = userModel.F_UserCode;
  13077. oper.F_CreateTime = DateTime.Now;
  13078. oper.F_IsDelete = 0;
  13079. operBLL.Add(oper);
  13080. #endregion
  13081. trans.Complete();
  13082. }
  13083. }
  13084. }
  13085. return Success("删除成功");
  13086. }
  13087. else
  13088. {
  13089. return Error("权限不足");
  13090. }
  13091. }
  13092. /// <summary>
  13093. /// 转媒体工单
  13094. /// </summary>
  13095. /// <returns></returns>
  13096. [Authority]
  13097. public ActionResult ReleaseWorkOrder()
  13098. {
  13099. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13100. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13101. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13102. {
  13103. string workorderid = RequestString.GetFormString("workorderid");
  13104. int isrelease = RequestString.GetInt("isrelease", -1);
  13105. if (isrelease != -1)
  13106. {
  13107. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13108. if (modelT_Bus_WorkOrder != null)
  13109. {
  13110. using (TransactionScope trans = new TransactionScope())
  13111. {
  13112. #region 修改工单记录
  13113. modelT_Bus_WorkOrder.F_IsRelease = isrelease;
  13114. workorderBLL.Update(modelT_Bus_WorkOrder);
  13115. #endregion
  13116. #region 插入操作记录
  13117. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13118. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13119. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13120. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13121. oper.F_Message = userinfo + " " + (isrelease == 1 ? "转媒体了" : "收回了转媒体") + "工单";
  13122. oper.F_CreateUser = userModel.F_UserCode;
  13123. oper.F_CreateTime = DateTime.Now;
  13124. oper.F_IsDelete = 0;
  13125. operBLL.Add(oper);
  13126. #endregion
  13127. trans.Complete();
  13128. }
  13129. return Success("操作成功");
  13130. }
  13131. else
  13132. {
  13133. return Error("操作失败");
  13134. }
  13135. }
  13136. else
  13137. {
  13138. return Error("操作失败");
  13139. }
  13140. }
  13141. else
  13142. {
  13143. return Error("权限不足");
  13144. }
  13145. }
  13146. /// <summary>
  13147. /// 申请扫描件延时
  13148. /// </summary>
  13149. /// <returns></returns>
  13150. [Authority]
  13151. public ActionResult DelayScanning()
  13152. {
  13153. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13154. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13155. if (userModel.F_RoleCode == "WLDW" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13156. {
  13157. string workorderid = RequestString.GetFormString("workorderid");
  13158. //int state = RequestString.GetInt("state", 0);
  13159. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13160. string reason = RequestString.GetFormString("reason");
  13161. string files = RequestString.GetFormString("files");
  13162. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13163. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13164. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == userModel.F_DeptId)
  13165. {
  13166. if (modelT_Bus_AssignedInfo.F_IsSure == 1)
  13167. {
  13168. using (TransactionScope trans = new TransactionScope())
  13169. {
  13170. if (userModel.F_RoleCode == "WLDW")
  13171. {
  13172. if (userModel.F_DeptId > 0)
  13173. {
  13174. var dept = new BLL.T_Sys_Department().GetModel(userModel.F_DeptId);
  13175. if (dept != null)
  13176. {
  13177. if (dept.F_SMExtensionTime != null)
  13178. {
  13179. if (((DateTime)dept.F_SMExtensionTime).Month == DateTime.Now.Month
  13180. && ((DateTime)dept.F_SMExtensionTime).Year == DateTime.Now.Year)
  13181. {
  13182. if (dept.F_SMDelayTimes < 4)
  13183. {
  13184. dept.F_SMDelayTimes += 1;
  13185. dept.F_SMExtensionTime = DateTime.Now;
  13186. bool n = new BLL.T_Sys_Department().Update(dept);
  13187. }
  13188. else
  13189. return Error("本单位本月扫描件申请延时已达四次");
  13190. }
  13191. else
  13192. {
  13193. dept.F_SMDelayTimes = 1;
  13194. dept.F_SMExtensionTime = DateTime.Now;
  13195. bool n = new BLL.T_Sys_Department().Update(dept);
  13196. }
  13197. }
  13198. else
  13199. {
  13200. dept.F_SMDelayTimes = 1;
  13201. dept.F_SMExtensionTime = DateTime.Now;
  13202. bool n = new BLL.T_Sys_Department().Update(dept);
  13203. }
  13204. }
  13205. }
  13206. }
  13207. #region 保存工单信息
  13208. //modelT_Bus_WorkOrder.F_WorkState = 5;//延时审核中
  13209. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditdelay;//延时审核中
  13210. workorderBLL.Update(modelT_Bus_WorkOrder);
  13211. #endregion
  13212. #region 插入申请延时信息
  13213. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  13214. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13215. //delay.F_State = state;
  13216. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13217. delay.F_NewTime = newlimittime;
  13218. delay.F_Reason = reason;
  13219. delay.F_State = 2;
  13220. delay.F_IsAudit = 0;
  13221. delay.F_IsDelete = 0;
  13222. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13223. delay.F_CreateUser = userModel.F_UserCode;
  13224. delay.F_CreateTime = DateTime.Now;
  13225. delay.F_File = files;
  13226. new BLL.T_Bus_DelayTime().Add(delay);
  13227. #endregion
  13228. #region 插入操作记录
  13229. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13230. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13231. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13232. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13233. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13234. oper.F_Message = userinfo + " 申请了延时处理";
  13235. oper.F_CreateUser = userModel.F_UserCode;
  13236. oper.F_CreateTime = DateTime.Now;
  13237. oper.F_IsDelete = 0;
  13238. operBLL.Add(oper);
  13239. //推送消息表
  13240. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13241. #endregion
  13242. trans.Complete();
  13243. }
  13244. return Success("操作成功");
  13245. }
  13246. else
  13247. {
  13248. return Error("操作失敗,已查收");
  13249. }
  13250. }
  13251. else
  13252. {
  13253. return Error("操作失败");
  13254. }
  13255. }
  13256. else
  13257. {
  13258. return Error("权限不足");
  13259. }
  13260. }
  13261. /// <summary>
  13262. /// 审核延时工单
  13263. /// </summary>
  13264. /// <returns></returns>
  13265. [Authority]
  13266. public ActionResult AuditDelayScanning()
  13267. {
  13268. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13269. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13270. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13271. {
  13272. string workorderid = RequestString.GetFormString("workorderid");
  13273. int state = RequestString.GetInt("state", 0);
  13274. string reason = RequestString.GetFormString("reason");
  13275. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13276. int delayid = RequestString.GetInt("delayid", 0);
  13277. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13278. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  13279. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13280. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13281. {
  13282. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13283. //{
  13284. // return Error("操作失败");
  13285. //}
  13286. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13287. {
  13288. using (TransactionScope trans = new TransactionScope())
  13289. {
  13290. #region 保存工单信息
  13291. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13292. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13293. if (modelT_Bus_DelayTime.F_State ==2)
  13294. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13295. else
  13296. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13297. workorderBLL.Update(modelT_Bus_WorkOrder);
  13298. #endregion
  13299. #region 保存审核信息
  13300. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13301. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13302. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13303. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13304. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13305. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13306. #endregion
  13307. string type = "同意"; string des = "";
  13308. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13309. {
  13310. #region 修改交办记录
  13311. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13312. assignBLL.Update(modelT_Bus_AssignedInfo);
  13313. #endregion
  13314. #region 处理协办单位
  13315. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13316. foreach (var xb in xblist)
  13317. {
  13318. //xb.F_LimitTime = DateTime.Now;
  13319. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13320. assignItemBLL.Update(xb);
  13321. }
  13322. #endregion
  13323. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13324. }
  13325. else
  13326. {
  13327. type = "拒绝";
  13328. }
  13329. #region 插入操作记录
  13330. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13331. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13332. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13333. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13334. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13335. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13336. oper.F_CreateUser = userModel.F_UserCode;
  13337. oper.F_CreateTime = DateTime.Now;
  13338. oper.F_IsDelete = 0;
  13339. operBLL.Add(oper);
  13340. //推送消息表
  13341. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13342. #endregion
  13343. trans.Complete();
  13344. }
  13345. return Success("操作成功");
  13346. }
  13347. else
  13348. {
  13349. return Error("此审核已经处理");
  13350. }
  13351. }
  13352. else
  13353. {
  13354. return Error("操作失败");
  13355. }
  13356. }
  13357. else
  13358. {
  13359. return Error("权限不足");
  13360. }
  13361. }
  13362. /// <summary>
  13363. /// 批量审核延时
  13364. /// </summary>
  13365. /// <param name="ids"></param>
  13366. /// <returns></returns>
  13367. [Authority]
  13368. public ActionResult AuditDelayScanningBatch(string ids)
  13369. {
  13370. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13371. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13372. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13373. {
  13374. int state = RequestString.GetInt("state", 0);
  13375. string reason = RequestString.GetFormString("reason");
  13376. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  13377. string errids = ""; string errids1 = "";
  13378. if (!string.IsNullOrEmpty(ids))
  13379. {
  13380. string[] strids = ids.Split(',');
  13381. foreach (string str in strids)
  13382. {
  13383. using (TransactionScope trans = new TransactionScope())
  13384. {
  13385. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  13386. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModelList(" F_WorkOrderId = '" + str + "' and F_State = 1 and F_IsDelete = 0 and F_IsAudit = 0 order by F_CreateTime desc").FirstOrDefault();
  13387. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  13388. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  13389. {
  13390. //if (modelT_Bus_AssignedInfo.F_CreateUser != userModel.F_UserCode)
  13391. //{
  13392. // errids += str + ",";
  13393. // continue;
  13394. //}
  13395. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  13396. {
  13397. #region 保存工单信息
  13398. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13399. if (modelT_Bus_DelayTime.F_State == 2)
  13400. modelT_Bus_WorkOrder.F_Scanning = newlimittime;
  13401. else
  13402. modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  13403. workorderBLL.Update(modelT_Bus_WorkOrder);
  13404. #endregion
  13405. #region 保存审核信息
  13406. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13407. modelT_Bus_DelayTime.F_AuditUser = userModel.F_UserCode;
  13408. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13409. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13410. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  13411. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13412. #endregion
  13413. string type = "同意"; string des = "";
  13414. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13415. {
  13416. #region 修改交办记录
  13417. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13418. assignBLL.Update(modelT_Bus_AssignedInfo);
  13419. #endregion
  13420. #region 处理协办单位
  13421. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13422. foreach (var xb in xblist)
  13423. {
  13424. //xb.F_LimitTime = DateTime.Now;
  13425. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13426. assignItemBLL.Update(xb);
  13427. }
  13428. #endregion
  13429. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13430. }
  13431. else
  13432. {
  13433. type = "拒绝";
  13434. }
  13435. #region 插入操作记录
  13436. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13437. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13438. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13439. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13440. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13441. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13442. oper.F_CreateUser = userModel.F_UserCode;
  13443. oper.F_CreateTime = DateTime.Now;
  13444. oper.F_IsDelete = 0;
  13445. operBLL.Add(oper);
  13446. //推送消息表
  13447. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, userModel.F_UserCode, (int)EnumSmsType.workorder);
  13448. #endregion
  13449. }
  13450. else
  13451. errids1 += str + ",";
  13452. }
  13453. trans.Complete();
  13454. }
  13455. }
  13456. if (errids1 != "" && errids != "")
  13457. return Success("操作成功");
  13458. else
  13459. {
  13460. string msg = "";
  13461. if (errids1 != "")
  13462. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  13463. if (errids != "")
  13464. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  13465. return Error("部分工单操作失败" + msg);
  13466. }
  13467. }
  13468. else
  13469. {
  13470. return Error("参数获取失败");
  13471. }
  13472. }
  13473. else
  13474. {
  13475. return Error("权限不足");
  13476. }
  13477. }
  13478. ///// <summary>
  13479. ///// 通告和撤销通告
  13480. ///// </summary>
  13481. ///// <returns></returns>
  13482. //[Authority]
  13483. //public ActionResult NoticeWorkOrder()
  13484. //{
  13485. // int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13486. // Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13487. // if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" ||userModel.F_RoleCode == "ZXLDGLY" || userModel.F_RoleCode == "GLY")
  13488. // {
  13489. // int assignid = RequestString.GetInt("id", 0);
  13490. // int isnotice = RequestString.GetInt("isnotice", -1);
  13491. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  13492. // if (modelT_Bus_AssignedInfo != null)
  13493. // {
  13494. // if (isnotice == 0 && modelT_Bus_AssignedInfo.F_IsNotice == 1)
  13495. // {
  13496. // using (TransactionScope trans = new TransactionScope())
  13497. // {
  13498. // #region 修改交办记录
  13499. // modelT_Bus_AssignedInfo.F_IsNotice = 0;
  13500. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13501. // #endregion
  13502. // #region 插入操作记录
  13503. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13504. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13505. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13506. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13507. // oper.F_Message = userinfo + " 撤销了通告交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13508. // oper.F_CreateUser = userModel.F_UserCode;
  13509. // oper.F_CreateTime = DateTime.Now;
  13510. // oper.F_IsDelete = 0;
  13511. // operBLL.Add(oper);
  13512. // #endregion
  13513. // trans.Complete();
  13514. // }
  13515. // return Success("操作成功");
  13516. // }
  13517. // else if (isnotice == 1 && modelT_Bus_AssignedInfo.F_IsNotice == 0)
  13518. // {
  13519. // using (TransactionScope trans = new TransactionScope())
  13520. // {
  13521. // #region 修改交办记录
  13522. // modelT_Bus_AssignedInfo.F_IsNotice = 1;
  13523. // assignBLL.Update(modelT_Bus_AssignedInfo);
  13524. // #endregion
  13525. // #region 插入操作记录
  13526. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13527. // oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13528. // var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  13529. // string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13530. // oper.F_Message = userinfo + " 通告了交办单位:" + (deptinfo != null ? deptinfo.F_DeptName : "");
  13531. // oper.F_CreateUser = userModel.F_UserCode;
  13532. // oper.F_CreateTime = DateTime.Now;
  13533. // oper.F_IsDelete = 0;
  13534. // operBLL.Add(oper);
  13535. // #endregion
  13536. // trans.Complete();
  13537. // }
  13538. // return Success("操作成功");
  13539. // }
  13540. // else
  13541. // {
  13542. // return Error("操作失败");
  13543. // }
  13544. // }
  13545. // else
  13546. // {
  13547. // return Error("操作失败");
  13548. // }
  13549. // }
  13550. // else
  13551. // {
  13552. // return Error("权限不足");
  13553. // }
  13554. //}
  13555. /// <summary>
  13556. /// 通告和撤销通告
  13557. /// </summary>
  13558. /// <returns></returns>
  13559. [Authority]
  13560. public ActionResult NoticeWorkOrder()
  13561. {
  13562. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13563. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13564. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13565. {
  13566. string workorderid = RequestString.GetFormString("workorderid");
  13567. int isnotice = RequestString.GetInt("isnotice", -1);
  13568. string deptids = RequestString.GetFormString("deptids");//通告单位
  13569. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  13570. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13571. if (modelT_Bus_WorkOrder != null)
  13572. {
  13573. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  13574. {
  13575. using (TransactionScope trans = new TransactionScope())
  13576. {
  13577. #region 修改工单记录
  13578. modelT_Bus_WorkOrder.F_IsNotice = 0;
  13579. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  13580. workorderBLL.Update(modelT_Bus_WorkOrder);
  13581. #endregion
  13582. #region 修改通告记录
  13583. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  13584. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  13585. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  13586. modelT_Bus_NoticeCriticism.F_DeleteUser = userModel.F_UserCode;
  13587. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  13588. #endregion
  13589. #region 插入操作记录
  13590. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13591. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13592. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  13593. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13594. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  13595. oper.F_CreateUser = userModel.F_UserCode;
  13596. oper.F_CreateTime = DateTime.Now;
  13597. oper.F_IsDelete = 0;
  13598. operBLL.Add(oper);
  13599. #endregion
  13600. trans.Complete();
  13601. }
  13602. return Success("操作成功");
  13603. }
  13604. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  13605. {
  13606. using (TransactionScope trans = new TransactionScope())
  13607. {
  13608. #region 修改工单记录
  13609. modelT_Bus_WorkOrder.F_IsNotice = 1;
  13610. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  13611. workorderBLL.Update(modelT_Bus_WorkOrder);
  13612. #endregion
  13613. #region 新增通告记录
  13614. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  13615. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  13616. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13617. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  13618. modelT_Bus_NoticeCriticism.F_State = 1;
  13619. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  13620. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  13621. modelT_Bus_NoticeCriticism.F_CreateUser = userModel.F_UserCode;
  13622. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  13623. #endregion
  13624. #region 插入操作记录
  13625. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13626. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13627. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  13628. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13629. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  13630. oper.F_CreateUser = userModel.F_UserCode;
  13631. oper.F_CreateTime = DateTime.Now;
  13632. oper.F_IsDelete = 0;
  13633. operBLL.Add(oper);
  13634. #endregion
  13635. trans.Complete();
  13636. }
  13637. return Success("操作成功");
  13638. }
  13639. else
  13640. {
  13641. return Error("操作失败");
  13642. }
  13643. }
  13644. else
  13645. {
  13646. return Error("操作失败");
  13647. }
  13648. }
  13649. else
  13650. {
  13651. return Error("权限不足");
  13652. }
  13653. }
  13654. /// <summary>
  13655. /// 市民催单
  13656. /// </summary>
  13657. /// <returns></returns>
  13658. [Authority]
  13659. public ActionResult AdditionalWorkOrder()
  13660. {
  13661. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13662. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  13663. string workorderid = RequestString.GetFormString("workorderid");
  13664. string title = RequestString.GetFormString("title");
  13665. string content = RequestString.GetFormString("content");
  13666. string files = RequestString.GetFormString("files");
  13667. string callid = RequestString.GetFormString("callid");
  13668. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  13669. if (modelT_Bus_WorkOrder != null)
  13670. {
  13671. using (TransactionScope trans = new TransactionScope())
  13672. {
  13673. #region 插入附加记录
  13674. //批示记录
  13675. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  13676. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  13677. model_T_Bus_Additional.F_Title = title;
  13678. model_T_Bus_Additional.F_Content = content;
  13679. if (!string.IsNullOrEmpty(callid))
  13680. {
  13681. model_T_Bus_Additional.F_CallId = callid;
  13682. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  13683. if (rd != null)
  13684. {
  13685. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  13686. }
  13687. }
  13688. model_T_Bus_Additional.F_File = files;//附件
  13689. model_T_Bus_Additional.F_CreateUser = userModel.F_UserCode;//呈批人
  13690. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  13691. model_T_Bus_Additional.F_IsDelete = 0;
  13692. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  13693. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  13694. #endregion
  13695. #region 插入操作记录
  13696. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13697. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13698. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13699. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13700. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  13701. oper.F_CreateUser = userModel.F_UserCode;
  13702. oper.F_CreateTime = DateTime.Now;
  13703. oper.F_IsDelete = 0;
  13704. operBLL.Add(oper);
  13705. #endregion
  13706. #region 根据状态不同给出提醒
  13707. var sqlusers = " F_DeleteFlag=0 ";
  13708. #region 获取被提醒人
  13709. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13710. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  13711. sqlusers += " and F_UserCode='"+ modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  13712. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  13713. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  13714. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  13715. {
  13716. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  13717. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  13718. }
  13719. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  13720. {
  13721. if (modelT_Bus_AssignedInfo != null )
  13722. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  13723. }
  13724. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  13725. {
  13726. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  13727. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  13728. }
  13729. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  13730. {
  13731. if (modelT_Bus_AssignedInfo != null)
  13732. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  13733. }
  13734. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  13735. {
  13736. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  13737. }
  13738. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  13739. {
  13740. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  13741. }
  13742. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  13743. {
  13744. if (modelT_Bus_AssignedInfo != null)
  13745. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  13746. }
  13747. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  13748. {
  13749. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  13750. }
  13751. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  13752. {
  13753. if (modelT_Bus_AssignedInfo != null)
  13754. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  13755. }
  13756. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  13757. {
  13758. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  13759. }
  13760. #endregion
  13761. var userlists = userBLL.GetModelList(sqlusers);
  13762. //推送消息表
  13763. foreach (var u in userlists)
  13764. {
  13765. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, userModel.F_UserCode, (int)EnumSmsType.additional);
  13766. }
  13767. #endregion
  13768. trans.Complete();
  13769. }
  13770. return Success("操作成功");
  13771. }
  13772. else
  13773. {
  13774. return Error("操作失败");
  13775. }
  13776. }
  13777. #endregion
  13778. #region 语音附件其他
  13779. /// <summary>
  13780. /// 验证当前单位是否交办单位
  13781. /// </summary>
  13782. /// <param name="modelT_Bus_AssignedInfo"></param>
  13783. /// <param name="deptid"></param>
  13784. /// <returns></returns>
  13785. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  13786. {
  13787. int type = 0;
  13788. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  13789. {
  13790. type = 1;//主办
  13791. }
  13792. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  13793. {
  13794. type = 2;//协办
  13795. }
  13796. return type;
  13797. }
  13798. /// <summary>
  13799. /// 获取留言路径
  13800. /// </summary>
  13801. /// <param name="lid">留言id</param>
  13802. /// <param name="prefix">前缀</param>
  13803. /// <returns></returns>
  13804. public string GetLeavePath(string lid, string prefix)
  13805. {
  13806. string path = string.Empty;
  13807. var liuyan = new BLL.T_Call_LeaveRecord().GetModelList(" F_Id='" + lid + "' ").FirstOrDefault();
  13808. if (liuyan != null)
  13809. {
  13810. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  13811. {
  13812. path = prefix + liuyan.F_RecFileUrl;
  13813. }
  13814. }
  13815. return path;
  13816. }
  13817. /// <summary>
  13818. /// 获取通话录音路径
  13819. /// </summary>
  13820. /// <param name="cid">通话id</param>
  13821. /// <param name="prefix">前缀</param>
  13822. /// <returns></returns>
  13823. public string GetCallPath(string cid, string prefix)
  13824. {
  13825. string path = string.Empty;
  13826. var luyin = new BLL.T_Call_CallRecords().GetModelList(" CallRecordsId='" + cid + "' ").FirstOrDefault();
  13827. if (luyin != null)
  13828. {
  13829. if (!string.IsNullOrEmpty(luyin.FilePath))
  13830. {
  13831. var ym = prefix;
  13832. ym = ym.Substring(0, ym.Length - 1);
  13833. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  13834. path = ym + lujing;
  13835. //if (!CommonHelper.FileIsExist(path))
  13836. //{
  13837. // path = lujing;
  13838. //}
  13839. }
  13840. }
  13841. return path;
  13842. }
  13843. /// <summary>
  13844. /// 获取附件数据
  13845. /// </summary>
  13846. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  13847. /// <param name="prefix">前缀</param>
  13848. /// <returns></returns>
  13849. public DataTable GetFileData(string ids, string prefix)
  13850. {
  13851. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ") order by F_AddTime desc").Tables[0];
  13852. foreach (DataRow dr in dt.Rows)
  13853. {
  13854. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  13855. }
  13856. return dt;
  13857. }
  13858. /// <summary>
  13859. /// 绑定附件信息
  13860. /// </summary>
  13861. /// <param name="dt"></param>
  13862. /// <param name="prefix"></param>
  13863. /// <returns></returns>
  13864. public DataTable BindFileData(DataTable dt, string prefix)
  13865. {
  13866. dt.Columns.Add("File", typeof(object));
  13867. foreach (DataRow dr in dt.Rows)
  13868. {
  13869. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  13870. {
  13871. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  13872. }
  13873. }
  13874. return dt;
  13875. }
  13876. /// <summary>
  13877. /// 绑定附件信息
  13878. /// </summary>
  13879. /// <param name="dt"></param>
  13880. /// <param name="prefix"></param>
  13881. /// <returns></returns>
  13882. public DataTable BindFileDataFiles(DataTable dt, string prefix)
  13883. {
  13884. dt.Columns.Add("Files", typeof(object));
  13885. foreach (DataRow dr in dt.Rows)
  13886. {
  13887. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  13888. {
  13889. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  13890. }
  13891. }
  13892. return dt;
  13893. }
  13894. #endregion
  13895. #region 修改工单 by admin
  13896. /// <summary>
  13897. /// 获取详情
  13898. /// </summary>
  13899. /// <returns></returns>
  13900. [Authority]
  13901. public ActionResult GetInfoByAdmin(int id, int type)
  13902. {
  13903. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13904. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13905. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13906. {
  13907. //string sql = "select * from ";
  13908. string table = string.Empty;
  13909. switch (type)
  13910. {
  13911. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  13912. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  13913. case 3: table = "T_Bus_Feedback"; break;//办理信息
  13914. case 4: table = "T_Bus_RemindRecord"; break;//督办
  13915. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  13916. case 6: table = "T_Bus_VisitResult"; break;//回访
  13917. }
  13918. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  13919. var dt = DbHelperSQL.Query(sql).Tables[0];
  13920. return Success("操作成功", dt);
  13921. }
  13922. else
  13923. {
  13924. return Error("权限不足");
  13925. }
  13926. }
  13927. /// <summary>
  13928. /// 修改工单信息
  13929. /// </summary>
  13930. /// <returns></returns>
  13931. [Authority]
  13932. public ActionResult EditWorkOrderByAdmin()
  13933. {
  13934. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  13935. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  13936. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  13937. {
  13938. string workorderid = RequestString.GetFormString("workorderid");
  13939. int source = RequestString.GetInt("source", 0);
  13940. string cusname = RequestString.GetFormString("cusname");
  13941. string cussex = RequestString.GetFormString("cussex");
  13942. string cusphone = RequestString.GetFormString("cusphone");
  13943. string cusaddress = RequestString.GetFormString("cusaddress");
  13944. string email = RequestString.GetFormString("email");
  13945. string zipcode = RequestString.GetFormString("zipcode");
  13946. string conname = RequestString.GetFormString("conname");
  13947. string conphone = RequestString.GetFormString("conphone");
  13948. string title = RequestString.GetFormString("title");
  13949. string content = RequestString.GetFormString("content");
  13950. string files = RequestString.GetFormString("files");
  13951. int sourcearea = RequestString.GetInt("sourcearea", 0);
  13952. string sourceaddress = RequestString.GetFormString("sourceaddress");
  13953. string keys = RequestString.GetFormString("keys");
  13954. string splituser = RequestString.GetFormString("splituser");
  13955. int type = RequestString.GetInt("type", 0);
  13956. int bigtype = RequestString.GetInt("bigtype", 0);
  13957. int smalltype = RequestString.GetInt("smalltype", 0);
  13958. int isprotect = RequestString.GetInt("isprotect", 0);
  13959. int level = RequestString.GetInt("level", 0);
  13960. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13961. if (modelT_Bus_WorkOrder != null)
  13962. {
  13963. using (TransactionScope trans = new TransactionScope())
  13964. {
  13965. #region 保存工单信息
  13966. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  13967. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  13968. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  13969. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  13970. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  13971. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  13972. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  13973. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  13974. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  13975. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  13976. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  13977. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  13978. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  13979. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  13980. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  13981. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  13982. modelT_Bus_WorkOrder.F_File = files;//附件
  13983. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  13984. modelT_Bus_WorkOrder.F_Key = keys;
  13985. modelT_Bus_WorkOrder.F_Level = level;
  13986. workorderBLL.Update(modelT_Bus_WorkOrder);
  13987. #endregion
  13988. #region 插入操作记录
  13989. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13990. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13991. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13992. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  13993. oper.F_File = modelT_Bus_WorkOrder.F_File;
  13994. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  13995. oper.F_Message = userinfo + " 修改了工单基本信息";
  13996. oper.F_CreateUser = userModel.F_UserCode;
  13997. oper.F_CreateTime = DateTime.Now;
  13998. oper.F_IsDelete = 0;
  13999. operBLL.Add(oper);
  14000. #endregion
  14001. trans.Complete();
  14002. }
  14003. return Success("操作成功");
  14004. }
  14005. else
  14006. {
  14007. return Error("操作失败");
  14008. }
  14009. }
  14010. else
  14011. {
  14012. return Success("权限不足");
  14013. }
  14014. }
  14015. /// <summary>
  14016. /// 修改批示信息
  14017. /// </summary>
  14018. /// <returns></returns>
  14019. [Authority]
  14020. public ActionResult EditSuperInfoByAdmin()
  14021. {
  14022. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14023. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14024. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14025. {
  14026. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  14027. string superuser = RequestString.GetFormString("superuser");
  14028. string superopinion = RequestString.GetFormString("superopinion");
  14029. string files = RequestString.GetFormString("files");
  14030. int id = RequestString.GetInt("id", 0);
  14031. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  14032. if (model_T_Bus_SubmitSuper != null)
  14033. {
  14034. using (TransactionScope trans = new TransactionScope())
  14035. {
  14036. #region 保存批示信息
  14037. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  14038. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  14039. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  14040. if (!string.IsNullOrEmpty(files))
  14041. model_T_Bus_SubmitSuper.F_File = files;//附件
  14042. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  14043. #endregion
  14044. #region 插入操作记录
  14045. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14046. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  14047. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  14048. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14049. oper.F_Message = userinfo + " 修改了工单批示信息";
  14050. oper.F_CreateUser = userModel.F_UserCode;
  14051. oper.F_CreateTime = DateTime.Now;
  14052. oper.F_IsDelete = 0;
  14053. operBLL.Add(oper);
  14054. #endregion
  14055. trans.Complete();
  14056. }
  14057. return Success("操作成功");
  14058. }
  14059. else
  14060. {
  14061. return Error("操作失败");
  14062. }
  14063. }
  14064. else
  14065. {
  14066. return Error("权限不足");
  14067. }
  14068. }
  14069. /// <summary>
  14070. /// 修改交办信息
  14071. /// </summary>
  14072. /// <returns></returns>
  14073. [Authority]
  14074. public ActionResult EditAssignInfoByAdmin()
  14075. {
  14076. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14077. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14078. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14079. {
  14080. int assignid = RequestString.GetInt("id", 0);
  14081. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  14082. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  14083. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  14084. string assignedopinion = RequestString.GetFormString("assignedopinion");
  14085. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  14086. if (modelT_Bus_AssignedInfo != null)
  14087. {
  14088. using (TransactionScope trans = new TransactionScope())
  14089. {
  14090. #region 保存交办信息
  14091. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  14092. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  14093. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  14094. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  14095. assignBLL.Update(modelT_Bus_AssignedInfo);
  14096. #endregion
  14097. #region 插入操作记录
  14098. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14099. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  14100. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  14101. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14102. oper.F_Message = userinfo + " 修改了工单交办信息";
  14103. oper.F_CreateUser = userModel.F_UserCode;
  14104. oper.F_CreateTime = DateTime.Now;
  14105. oper.F_IsDelete = 0;
  14106. operBLL.Add(oper);
  14107. #endregion
  14108. trans.Complete();
  14109. }
  14110. return Success("操作成功");
  14111. }
  14112. else
  14113. {
  14114. return Error("操作失败");
  14115. }
  14116. }
  14117. else
  14118. {
  14119. return Error("权限不足");
  14120. }
  14121. }
  14122. /// <summary>
  14123. /// 修改办理信息
  14124. /// </summary>
  14125. /// <returns></returns>
  14126. [Authority]
  14127. public ActionResult EditFeedBackInfoByAdmin()
  14128. {
  14129. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14130. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14131. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14132. {
  14133. string dealman = RequestString.GetFormString("dealman");
  14134. string result = RequestString.GetFormString("result");
  14135. string files = RequestString.GetFormString("files");
  14136. int feedbackid = RequestString.GetInt("id", 0);
  14137. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  14138. if (model_T_Bus_Feedback != null)
  14139. {
  14140. using (TransactionScope trans = new TransactionScope())
  14141. {
  14142. #region 保存办理信息
  14143. model_T_Bus_Feedback.F_DealUser = dealman;
  14144. model_T_Bus_Feedback.F_Result = result;//反馈内容
  14145. model_T_Bus_Feedback.F_File = files;
  14146. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  14147. #endregion
  14148. #region 保存工单信息
  14149. int maxid = Int32.Parse(DbHelperSQL.GetSingle("select max(F_Id) from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId='" + model_T_Bus_Feedback.F_WorkOrderId + "' and F_State=1 and F_IsSure=1 and F_IsDelete=0 ").ToString());
  14150. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  14151. if (maxid == assign.F_Id)
  14152. {
  14153. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  14154. order.F_Result = result;//反馈内容
  14155. workorderBLL.Update(order);
  14156. }
  14157. #endregion
  14158. #region 插入操作记录
  14159. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14160. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  14161. oper.F_File = model_T_Bus_Feedback.F_File;
  14162. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14163. oper.F_Message = userinfo + " 修改了工单办理信息";
  14164. oper.F_CreateUser = userModel.F_UserCode;
  14165. oper.F_CreateTime = DateTime.Now;
  14166. oper.F_IsDelete = 0;
  14167. operBLL.Add(oper);
  14168. #endregion
  14169. trans.Complete();
  14170. }
  14171. return Success("操作成功");
  14172. }
  14173. else
  14174. {
  14175. return Error("操作失败");
  14176. }
  14177. }
  14178. else
  14179. {
  14180. return Error("权限不足");
  14181. }
  14182. }
  14183. /// <summary>
  14184. /// 修改回访信息
  14185. /// </summary>
  14186. /// <returns></returns>
  14187. [Authority]
  14188. public ActionResult EditVisitInfoByAdmin()
  14189. {
  14190. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14191. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14192. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14193. {
  14194. string visituser = RequestString.GetFormString("visituser");//回访人
  14195. int type = RequestString.GetInt("type", 0);//回访方式
  14196. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  14197. int visitid = RequestString.GetInt("id", 0);
  14198. string result = RequestString.GetFormString("result");//回访情况
  14199. string guid = RequestString.GetFormString("guid");
  14200. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  14201. if (modelT_Bus_VisitResult != null)
  14202. {
  14203. using (TransactionScope trans = new TransactionScope())
  14204. {
  14205. #region 保存回访信息
  14206. modelT_Bus_VisitResult.F_VisitUser = visituser;
  14207. modelT_Bus_VisitResult.F_Type = type;
  14208. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  14209. modelT_Bus_VisitResult.F_Result = result;
  14210. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  14211. //保存回访记录
  14212. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, userModel.F_UserCode, guid);
  14213. #endregion
  14214. #region 插入操作记录
  14215. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14216. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  14217. oper.F_File = modelT_Bus_VisitResult.F_File;
  14218. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14219. oper.F_Message = userinfo + " 修改了工单回访信息";
  14220. oper.F_CreateUser = userModel.F_UserCode;
  14221. oper.F_CreateTime = DateTime.Now;
  14222. oper.F_IsDelete = 0;
  14223. operBLL.Add(oper);
  14224. #endregion
  14225. trans.Complete();
  14226. }
  14227. return Success("操作成功");
  14228. }
  14229. else
  14230. {
  14231. return Error("操作失败");
  14232. }
  14233. }
  14234. else
  14235. {
  14236. return Error("权限不足");
  14237. }
  14238. }
  14239. /// <summary>
  14240. /// 修改退回审核信息
  14241. /// </summary>
  14242. /// <returns></returns>
  14243. [Authority]
  14244. public ActionResult EditAuditRebackByAdmin()
  14245. {
  14246. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14247. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14248. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14249. {
  14250. string reason = RequestString.GetFormString("reason");
  14251. int rebackid = RequestString.GetInt("id", 0);
  14252. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  14253. if (modelT_Bus_Feedback != null)
  14254. {
  14255. using (TransactionScope trans = new TransactionScope())
  14256. {
  14257. #region 保存反馈信息
  14258. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  14259. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  14260. #endregion
  14261. #region 插入操作记录
  14262. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14263. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  14264. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14265. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  14266. oper.F_CreateUser = userModel.F_UserCode;
  14267. oper.F_CreateTime = DateTime.Now;
  14268. oper.F_IsDelete = 0;
  14269. operBLL.Add(oper);
  14270. #endregion
  14271. trans.Complete();
  14272. }
  14273. return Success("操作成功");
  14274. }
  14275. else
  14276. {
  14277. return Error("操作失败");
  14278. }
  14279. }
  14280. else
  14281. {
  14282. return Error("权限不足");
  14283. }
  14284. }
  14285. /// <summary>
  14286. /// 修改延时审核信息
  14287. /// </summary>
  14288. /// <returns></returns>
  14289. [Authority]
  14290. public ActionResult EditAuditDelayByAdmin()
  14291. {
  14292. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14293. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14294. if (userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14295. {
  14296. string reason = RequestString.GetFormString("reason");
  14297. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  14298. int delayid = RequestString.GetInt("id", 0);
  14299. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  14300. if (modelT_Bus_DelayTime != null)
  14301. {
  14302. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  14303. using (TransactionScope trans = new TransactionScope())
  14304. {
  14305. #region 保存延时审核信息
  14306. modelT_Bus_DelayTime.F_RefuseReason = reason;
  14307. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  14308. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  14309. #endregion
  14310. #region 插入操作记录
  14311. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14312. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  14313. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14314. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  14315. oper.F_CreateUser = userModel.F_UserCode;
  14316. oper.F_CreateTime = DateTime.Now;
  14317. oper.F_IsDelete = 0;
  14318. operBLL.Add(oper);
  14319. #endregion
  14320. trans.Complete();
  14321. }
  14322. return Success("操作成功");
  14323. }
  14324. else
  14325. {
  14326. return Error("操作失败");
  14327. }
  14328. }
  14329. else
  14330. {
  14331. return Error("权限不足");
  14332. }
  14333. }
  14334. #endregion
  14335. #region 县级对接
  14336. /// <summary>
  14337. /// 获取网点列表
  14338. /// </summary>
  14339. /// <param name="code"></param>
  14340. /// <param name="name"></param>
  14341. /// <returns></returns>
  14342. [Authority]
  14343. public ActionResult GetCityList(string code, string name)
  14344. {
  14345. string signcode = Configs.GetValue("CityOutSignCode");
  14346. string url = Configs.GetValue("CityOutUrl");
  14347. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  14348. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  14349. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  14350. return Content(result);
  14351. }
  14352. /// <summary>
  14353. /// 获取网点详情
  14354. /// </summary>
  14355. /// <param name="code"></param>
  14356. /// <returns></returns>
  14357. [Authority]
  14358. public ActionResult GetCityDetail(string code)
  14359. {
  14360. string signcode = Configs.GetValue("CityOutSignCode");
  14361. string url = Configs.GetValue("CityOutUrl");
  14362. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14363. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14364. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  14365. return Content(result);
  14366. }
  14367. /// <summary>
  14368. /// 转派工单到县级
  14369. /// </summary>
  14370. /// <returns></returns>
  14371. [Authority]
  14372. public ActionResult TurnWorkOrder()
  14373. {
  14374. int userId = Utils.StrToInt(User.UserData["F_UserID"], 0);
  14375. Model.T_Sys_UserAccount userModel = userBLL.GetModel(userId);
  14376. if (userModel.F_RoleCode == "ZXLD" || userModel.F_RoleCode == "ZXLDGLYGLY" || userModel.F_RoleCode == "GLY" || userModel.F_RoleCode == "DDZG")
  14377. {
  14378. string workorderid = RequestString.GetFormString("workorderid");
  14379. string citycode = RequestString.GetFormString("citycode");
  14380. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14381. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  14382. {
  14383. string code = Configs.GetValue("CityCode");
  14384. var branchmodel = GetCityInfo(code);
  14385. var citymodel = GetCityInfo(citycode);
  14386. if (branchmodel != null && citymodel != null)
  14387. {
  14388. using (TransactionScope trans = new TransactionScope())
  14389. {
  14390. string cityworkorderid = string.Empty;
  14391. #region 转单
  14392. string turnsigncode = citymodel["F_Sign"].ToString();
  14393. string turnurl = citymodel["F_Url"].ToString();
  14394. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  14395. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  14396. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  14397. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  14398. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  14399. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  14400. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  14401. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  14402. var turnresult = turnresultstr.ToJObject();
  14403. if (turnresult["state"].ToString() != "success")
  14404. {
  14405. return Content(turnresultstr);
  14406. }
  14407. else
  14408. {
  14409. cityworkorderid = turnresult["data"].ToString();
  14410. }
  14411. #endregion
  14412. #region 保存工单信息
  14413. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  14414. modelT_Bus_WorkOrder.F_IsClosed = 1;
  14415. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  14416. modelT_Bus_WorkOrder.F_DealUser = userModel.F_UserCode;
  14417. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14418. modelT_Bus_WorkOrder.F_CloseUser = userModel.F_UserCode;
  14419. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  14420. modelT_Bus_WorkOrder.F_AssignUser = userModel.F_UserCode;
  14421. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  14422. workorderBLL.Update(modelT_Bus_WorkOrder);
  14423. #endregion
  14424. #region 删除草稿信息
  14425. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  14426. foreach (var cg in cglist)
  14427. {
  14428. cg.F_IsDelete = 1;
  14429. cg.F_DeleteUser = userModel.F_UserCode;
  14430. cg.F_DeleteTime = DateTime.Now;
  14431. assignBLL.Update(cg);
  14432. }
  14433. #endregion
  14434. #region 新增转单记录
  14435. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  14436. modelT_Bus_CityTurn.F_CityCode = citycode;
  14437. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  14438. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  14439. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14440. modelT_Bus_CityTurn.F_Type = 2;
  14441. modelT_Bus_CityTurn.F_State = 1;
  14442. modelT_Bus_CityTurn.F_IsSure = 0;
  14443. modelT_Bus_CityTurn.F_IsDelete = 0;
  14444. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  14445. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  14446. #endregion
  14447. #region 插入操作记录
  14448. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14449. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14450. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14451. string userinfo = userModel.depname + "-" + userModel.F_UserName + "(" + userModel.F_UserCode + ")";
  14452. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  14453. oper.F_CreateUser = userModel.F_UserCode;
  14454. oper.F_CreateTime = DateTime.Now;
  14455. oper.F_IsDelete = 0;
  14456. operBLL.Add(oper);
  14457. #endregion
  14458. trans.Complete();
  14459. }
  14460. return Success("操作成功");
  14461. }
  14462. else
  14463. {
  14464. return Error("操作失败");
  14465. }
  14466. }
  14467. else
  14468. {
  14469. return Error("操作失败");
  14470. }
  14471. }
  14472. else
  14473. {
  14474. return Success("权限不足");
  14475. }
  14476. }
  14477. /// <summary>
  14478. /// 获取当前网点信息
  14479. /// </summary>
  14480. /// <returns></returns>
  14481. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  14482. {
  14483. string signcode = Configs.GetValue("CityOutSignCode");
  14484. string url = Configs.GetValue("CityOutUrl");
  14485. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  14486. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  14487. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  14488. if (result["state"].ToString() == "success")
  14489. {
  14490. return result["data"].ToString().ToJObject();
  14491. }
  14492. else
  14493. {
  14494. return null;
  14495. }
  14496. }
  14497. #endregion
  14498. #region 私有方法
  14499. /// <summary>
  14500. /// 添加操作日志
  14501. /// </summary>
  14502. /// <param name="workorderid"></param>
  14503. /// <param name="workstate"></param>
  14504. /// <param name="msgs"></param>
  14505. /// <param name="usercode"></param>
  14506. private void addoptlog(string workorderid,int? workstate,int assid,string msgs,string usercode,int type=0)
  14507. {
  14508. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14509. oper.F_WorkOrderId = workorderid;
  14510. oper.F_State = workstate;
  14511. oper.F_AssignedId = assid;
  14512. oper.F_Message = msgs;
  14513. oper.F_CreateUser = usercode;
  14514. oper.F_CreateTime = DateTime.Now;
  14515. oper.F_IsDelete = 0;
  14516. oper.F_Type = type;
  14517. operBLL.Add(oper);
  14518. }
  14519. #endregion
  14520. }
  14521. }