Няма описание

WorkOrderController.cs 1.2MB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435174361743717438174391744017441174421744317444174451744617447174481744917450174511745217453174541745517456174571745817459174601746117462174631746417465174661746717468174691747017471174721747317474174751747617477174781747917480174811748217483174841748517486174871748817489174901749117492174931749417495174961749717498174991750017501175021750317504175051750617507175081750917510175111751217513175141751517516175171751817519175201752117522175231752417525175261752717528175291753017531175321753317534175351753617537175381753917540175411754217543175441754517546175471754817549175501755117552175531755417555175561755717558175591756017561175621756317564175651756617567175681756917570175711757217573175741757517576175771757817579175801758117582175831758417585175861758717588175891759017591175921759317594175951759617597175981759917600176011760217603176041760517606176071760817609176101761117612176131761417615176161761717618176191762017621176221762317624176251762617627176281762917630176311763217633176341763517636176371763817639176401764117642176431764417645176461764717648176491765017651176521765317654176551765617657176581765917660176611766217663176641766517666176671766817669176701767117672176731767417675176761767717678176791768017681176821768317684176851768617687176881768917690176911769217693176941769517696176971769817699177001770117702177031770417705177061770717708177091771017711177121771317714177151771617717177181771917720177211772217723177241772517726177271772817729177301773117732177331773417735177361773717738177391774017741177421774317744177451774617747177481774917750177511775217753177541775517756177571775817759177601776117762177631776417765177661776717768177691777017771177721777317774177751777617777177781777917780177811778217783177841778517786177871778817789177901779117792177931779417795177961779717798177991780017801178021780317804178051780617807178081780917810178111781217813178141781517816178171781817819178201782117822178231782417825178261782717828178291783017831178321783317834178351783617837178381783917840178411784217843178441784517846178471784817849178501785117852178531785417855178561785717858178591786017861178621786317864178651786617867178681786917870178711787217873178741787517876178771787817879178801788117882178831788417885178861788717888178891789017891178921789317894178951789617897178981789917900179011790217903179041790517906179071790817909179101791117912179131791417915179161791717918179191792017921179221792317924179251792617927179281792917930179311793217933179341793517936179371793817939179401794117942179431794417945179461794717948179491795017951179521795317954179551795617957179581795917960179611796217963179641796517966179671796817969179701797117972179731797417975179761797717978179791798017981179821798317984179851798617987179881798917990179911799217993179941799517996179971799817999180001800118002180031800418005180061800718008180091801018011180121801318014180151801618017180181801918020180211802218023180241802518026180271802818029180301803118032180331803418035180361803718038180391804018041180421804318044180451804618047180481804918050180511805218053180541805518056180571805818059180601806118062180631806418065180661806718068180691807018071180721807318074180751807618077180781807918080180811808218083180841808518086180871808818089180901809118092180931809418095180961809718098180991810018101181021810318104181051810618107181081810918110181111811218113181141811518116181171811818119181201812118122181231812418125181261812718128181291813018131181321813318134181351813618137181381813918140181411814218143181441814518146181471814818149181501815118152181531815418155181561815718158181591816018161181621816318164181651816618167181681816918170181711817218173181741817518176181771817818179181801818118182181831818418185181861818718188181891819018191181921819318194181951819618197181981819918200182011820218203182041820518206182071820818209182101821118212182131821418215182161821718218182191822018221182221822318224182251822618227182281822918230182311823218233182341823518236182371823818239182401824118242182431824418245182461824718248182491825018251182521825318254182551825618257182581825918260182611826218263182641826518266182671826818269182701827118272182731827418275182761827718278182791828018281182821828318284182851828618287182881828918290182911829218293182941829518296182971829818299183001830118302183031830418305183061830718308183091831018311183121831318314183151831618317183181831918320183211832218323183241832518326183271832818329183301833118332183331833418335183361833718338183391834018341183421834318344183451834618347183481834918350183511835218353183541835518356183571835818359183601836118362183631836418365183661836718368183691837018371183721837318374183751837618377183781837918380183811838218383183841838518386183871838818389183901839118392183931839418395183961839718398183991840018401184021840318404184051840618407184081840918410184111841218413184141841518416184171841818419184201842118422184231842418425184261842718428184291843018431184321843318434184351843618437184381843918440184411844218443184441844518446184471844818449184501845118452184531845418455184561845718458184591846018461184621846318464184651846618467184681846918470184711847218473184741847518476184771847818479184801848118482184831848418485184861848718488184891849018491184921849318494184951849618497184981849918500185011850218503185041850518506185071850818509185101851118512185131851418515185161851718518185191852018521185221852318524185251852618527185281852918530185311853218533185341853518536185371853818539185401854118542185431854418545185461854718548185491855018551185521855318554185551855618557185581855918560185611856218563185641856518566185671856818569185701857118572185731857418575185761857718578185791858018581185821858318584185851858618587185881858918590185911859218593185941859518596185971859818599186001860118602186031860418605186061860718608186091861018611186121861318614186151861618617186181861918620186211862218623186241862518626186271862818629186301863118632186331863418635186361863718638186391864018641186421864318644186451864618647186481864918650186511865218653186541865518656186571865818659186601866118662186631866418665186661866718668186691867018671186721867318674186751867618677186781867918680186811868218683186841868518686186871868818689186901869118692186931869418695186961869718698186991870018701187021870318704187051870618707187081870918710187111871218713187141871518716187171871818719187201872118722187231872418725187261872718728187291873018731187321873318734187351873618737187381873918740187411874218743187441874518746187471874818749187501875118752187531875418755187561875718758187591876018761187621876318764187651876618767187681876918770187711877218773187741877518776187771877818779187801878118782187831878418785187861878718788187891879018791187921879318794187951879618797187981879918800188011880218803188041880518806188071880818809188101881118812188131881418815188161881718818188191882018821188221882318824188251882618827188281882918830188311883218833188341883518836188371883818839188401884118842188431884418845188461884718848188491885018851188521885318854188551885618857188581885918860188611886218863188641886518866188671886818869188701887118872188731887418875188761887718878188791888018881188821888318884188851888618887188881888918890188911889218893188941889518896188971889818899189001890118902189031890418905189061890718908189091891018911189121891318914189151891618917189181891918920189211892218923189241892518926189271892818929189301893118932189331893418935189361893718938189391894018941189421894318944189451894618947189481894918950189511895218953189541895518956189571895818959189601896118962189631896418965189661896718968189691897018971189721897318974189751897618977189781897918980189811898218983189841898518986189871898818989189901899118992189931899418995189961899718998189991900019001190021900319004190051900619007190081900919010190111901219013190141901519016190171901819019190201902119022190231902419025190261902719028190291903019031190321903319034190351903619037190381903919040190411904219043190441904519046190471904819049190501905119052190531905419055190561905719058190591906019061190621906319064190651906619067190681906919070190711907219073190741907519076190771907819079190801908119082190831908419085190861908719088190891909019091190921909319094190951909619097190981909919100191011910219103191041910519106191071910819109191101911119112191131911419115191161911719118191191912019121191221912319124191251912619127191281912919130191311913219133191341913519136191371913819139191401914119142191431914419145191461914719148191491915019151191521915319154191551915619157191581915919160191611916219163191641916519166191671916819169191701917119172191731917419175191761917719178191791918019181191821918319184191851918619187191881918919190191911919219193191941919519196191971919819199192001920119202192031920419205192061920719208192091921019211192121921319214192151921619217192181921919220192211922219223192241922519226192271922819229192301923119232192331923419235192361923719238192391924019241192421924319244192451924619247192481924919250192511925219253192541925519256192571925819259192601926119262192631926419265192661926719268192691927019271192721927319274192751927619277192781927919280192811928219283192841928519286192871928819289192901929119292192931929419295192961929719298192991930019301193021930319304193051930619307193081930919310193111931219313193141931519316193171931819319193201932119322193231932419325193261932719328193291933019331193321933319334193351933619337193381933919340193411934219343193441934519346193471934819349193501935119352193531935419355193561935719358193591936019361193621936319364193651936619367193681936919370193711937219373193741937519376193771937819379193801938119382193831938419385193861938719388193891939019391193921939319394193951939619397193981939919400194011940219403194041940519406194071940819409194101941119412194131941419415194161941719418194191942019421194221942319424194251942619427194281942919430194311943219433194341943519436194371943819439194401944119442194431944419445194461944719448194491945019451194521945319454194551945619457194581945919460194611946219463194641946519466194671946819469194701947119472194731947419475194761947719478194791948019481194821948319484194851948619487194881948919490194911949219493194941949519496194971949819499195001950119502195031950419505195061950719508195091951019511195121951319514195151951619517195181951919520195211952219523195241952519526195271952819529195301953119532195331953419535195361953719538195391954019541195421954319544195451954619547195481954919550195511955219553195541955519556195571955819559195601956119562195631956419565195661956719568195691957019571195721957319574195751957619577195781957919580195811958219583195841958519586195871958819589195901959119592195931959419595195961959719598195991960019601196021960319604196051960619607196081960919610196111961219613196141961519616196171961819619196201962119622196231962419625196261962719628196291963019631196321963319634196351963619637196381963919640196411964219643196441964519646196471964819649196501965119652196531965419655196561965719658196591966019661196621966319664196651966619667196681966919670196711967219673196741967519676196771967819679196801968119682196831968419685196861968719688196891969019691196921969319694196951969619697196981969919700197011970219703197041970519706197071970819709197101971119712197131971419715197161971719718197191972019721197221972319724197251972619727197281972919730197311973219733197341973519736197371973819739197401974119742197431974419745197461974719748197491975019751197521975319754197551975619757197581975919760197611976219763197641976519766197671976819769197701977119772197731977419775197761977719778197791978019781197821978319784197851978619787197881978919790197911979219793197941979519796197971979819799198001980119802198031980419805198061980719808198091981019811198121981319814198151981619817198181981919820198211982219823198241982519826198271982819829198301983119832198331983419835198361983719838198391984019841198421984319844198451984619847198481984919850198511985219853198541985519856198571985819859198601986119862198631986419865198661986719868198691987019871198721987319874198751987619877198781987919880198811988219883198841988519886198871988819889198901989119892198931989419895198961989719898198991990019901199021990319904199051990619907199081990919910199111991219913199141991519916199171991819919199201992119922199231992419925199261992719928199291993019931199321993319934199351993619937199381993919940199411994219943199441994519946199471994819949199501995119952199531995419955199561995719958199591996019961199621996319964199651996619967199681996919970199711997219973199741997519976199771997819979199801998119982199831998419985199861998719988199891999019991199921999319994199951999619997199981999920000200012000220003200042000520006200072000820009200102001120012200132001420015200162001720018200192002020021200222002320024200252002620027200282002920030200312003220033200342003520036200372003820039200402004120042200432004420045200462004720048200492005020051200522005320054200552005620057200582005920060200612006220063200642006520066200672006820069200702007120072200732007420075200762007720078200792008020081200822008320084200852008620087200882008920090200912009220093200942009520096200972009820099201002010120102201032010420105201062010720108201092011020111201122011320114201152011620117201182011920120201212012220123201242012520126201272012820129201302013120132201332013420135201362013720138201392014020141201422014320144201452014620147201482014920150201512015220153201542015520156201572015820159201602016120162201632016420165201662016720168201692017020171201722017320174201752017620177201782017920180201812018220183201842018520186201872018820189201902019120192201932019420195201962019720198201992020020201202022020320204202052020620207202082020920210202112021220213202142021520216202172021820219202202022120222202232022420225202262022720228202292023020231202322023320234202352023620237202382023920240202412024220243202442024520246202472024820249202502025120252202532025420255202562025720258202592026020261202622026320264202652026620267202682026920270202712027220273202742027520276202772027820279202802028120282202832028420285202862028720288202892029020291202922029320294202952029620297202982029920300203012030220303203042030520306203072030820309203102031120312203132031420315203162031720318203192032020321203222032320324203252032620327203282032920330203312033220333203342033520336203372033820339203402034120342203432034420345203462034720348203492035020351203522035320354203552035620357203582035920360203612036220363203642036520366203672036820369203702037120372203732037420375203762037720378203792038020381203822038320384203852038620387203882038920390203912039220393203942039520396203972039820399204002040120402204032040420405204062040720408204092041020411204122041320414204152041620417204182041920420204212042220423204242042520426204272042820429204302043120432204332043420435204362043720438204392044020441204422044320444204452044620447204482044920450204512045220453204542045520456204572045820459204602046120462204632046420465204662046720468204692047020471204722047320474204752047620477204782047920480204812048220483204842048520486204872048820489204902049120492204932049420495204962049720498204992050020501205022050320504205052050620507205082050920510205112051220513205142051520516205172051820519205202052120522205232052420525205262052720528205292053020531205322053320534205352053620537205382053920540205412054220543205442054520546205472054820549205502055120552205532055420555205562055720558205592056020561205622056320564205652056620567205682056920570205712057220573205742057520576205772057820579205802058120582205832058420585205862058720588205892059020591205922059320594205952059620597205982059920600206012060220603206042060520606206072060820609206102061120612206132061420615206162061720618206192062020621206222062320624206252062620627206282062920630206312063220633206342063520636206372063820639206402064120642206432064420645206462064720648206492065020651206522065320654206552065620657206582065920660206612066220663206642066520666206672066820669206702067120672206732067420675206762067720678206792068020681206822068320684206852068620687206882068920690206912069220693206942069520696206972069820699207002070120702207032070420705207062070720708207092071020711207122071320714207152071620717207182071920720207212072220723207242072520726207272072820729207302073120732207332073420735207362073720738207392074020741207422074320744207452074620747207482074920750207512075220753207542075520756207572075820759207602076120762207632076420765207662076720768207692077020771207722077320774207752077620777207782077920780207812078220783207842078520786207872078820789207902079120792207932079420795207962079720798207992080020801208022080320804208052080620807208082080920810208112081220813208142081520816208172081820819208202082120822208232082420825208262082720828208292083020831208322083320834208352083620837208382083920840208412084220843208442084520846208472084820849208502085120852208532085420855208562085720858208592086020861208622086320864208652086620867208682086920870208712087220873208742087520876208772087820879208802088120882208832088420885208862088720888208892089020891208922089320894208952089620897208982089920900209012090220903209042090520906209072090820909209102091120912209132091420915209162091720918209192092020921209222092320924209252092620927209282092920930209312093220933209342093520936209372093820939209402094120942209432094420945209462094720948209492095020951209522095320954209552095620957209582095920960209612096220963209642096520966209672096820969209702097120972209732097420975209762097720978209792098020981209822098320984209852098620987209882098920990209912099220993209942099520996209972099820999210002100121002210032100421005210062100721008210092101021011210122101321014210152101621017210182101921020210212102221023210242102521026210272102821029210302103121032210332103421035210362103721038210392104021041210422104321044210452104621047210482104921050210512105221053210542105521056210572105821059210602106121062210632106421065210662106721068210692107021071210722107321074210752107621077210782107921080210812108221083210842108521086210872108821089210902109121092210932109421095210962109721098210992110021101211022110321104211052110621107211082110921110211112111221113211142111521116211172111821119211202112121122211232112421125211262112721128211292113021131211322113321134211352113621137211382113921140211412114221143211442114521146211472114821149211502115121152211532115421155211562115721158211592116021161211622116321164211652116621167211682116921170211712117221173211742117521176211772117821179211802118121182211832118421185211862118721188211892119021191211922119321194211952119621197211982119921200212012120221203212042120521206212072120821209212102121121212212132121421215212162121721218212192122021221212222122321224212252122621227212282122921230212312123221233212342123521236212372123821239212402124121242212432124421245212462124721248212492125021251212522125321254212552125621257212582125921260212612126221263212642126521266212672126821269212702127121272212732127421275212762127721278212792128021281212822128321284212852128621287212882128921290212912129221293212942129521296212972129821299213002130121302213032130421305213062130721308213092131021311213122131321314213152131621317213182131921320213212132221323213242132521326213272132821329213302133121332213332133421335213362133721338213392134021341213422134321344213452134621347213482134921350213512135221353213542135521356213572135821359213602136121362213632136421365213662136721368213692137021371213722137321374213752137621377213782137921380213812138221383213842138521386213872138821389213902139121392213932139421395213962139721398213992140021401214022140321404214052140621407214082140921410214112141221413214142141521416214172141821419214202142121422214232142421425214262142721428214292143021431214322143321434214352143621437214382143921440214412144221443214442144521446214472144821449214502145121452214532145421455214562145721458214592146021461214622146321464214652146621467214682146921470214712147221473214742147521476214772147821479214802148121482214832148421485214862148721488214892149021491214922149321494214952149621497214982149921500215012150221503215042150521506215072150821509215102151121512215132151421515215162151721518215192152021521215222152321524215252152621527215282152921530215312153221533215342153521536215372153821539215402154121542215432154421545215462154721548215492155021551215522155321554215552155621557215582155921560215612156221563215642156521566215672156821569215702157121572215732157421575215762157721578215792158021581215822158321584215852158621587215882158921590215912159221593215942159521596215972159821599216002160121602216032160421605216062160721608216092161021611216122161321614216152161621617216182161921620216212162221623216242162521626216272162821629216302163121632216332163421635216362163721638216392164021641216422164321644216452164621647216482164921650216512165221653216542165521656216572165821659216602166121662216632166421665216662166721668216692167021671216722167321674216752167621677216782167921680216812168221683216842168521686216872168821689216902169121692216932169421695216962169721698216992170021701217022170321704217052170621707217082170921710217112171221713217142171521716217172171821719217202172121722217232172421725217262172721728217292173021731217322173321734217352173621737217382173921740217412174221743217442174521746217472174821749217502175121752217532175421755217562175721758217592176021761217622176321764217652176621767217682176921770217712177221773217742177521776217772177821779217802178121782217832178421785217862178721788217892179021791217922179321794217952179621797217982179921800218012180221803218042180521806218072180821809218102181121812218132181421815218162181721818218192182021821218222182321824218252182621827218282182921830218312183221833218342183521836218372183821839218402184121842218432184421845218462184721848218492185021851218522185321854218552185621857218582185921860218612186221863218642186521866218672186821869218702187121872218732187421875218762187721878218792188021881218822188321884
  1. using CallCenter.Utility;
  2. using CallCenterApi.Common;
  3. using CallCenterApi.DB;
  4. using CallCenterApi.Interface.Controllers.Base;
  5. using CallCenterApi.Interface.Controllers.Sms;
  6. using CallCenterApi.Interface.Models.Common;
  7. using CallCenterApi.Model;
  8. using Newtonsoft.Json.Linq;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. using System.IO;
  13. using System.Linq;
  14. using System.Net;
  15. using System.Security.Cryptography;
  16. using System.Text;
  17. using System.Threading.Tasks;
  18. using System.Transactions;
  19. using System.Web;
  20. using System.Web.Mvc;
  21. namespace CallCenterApi.Interface.Controllers.workorder
  22. {
  23. [Authority]
  24. public class WorkOrderController : BaseController
  25. {
  26. // GET: WorkOrder
  27. //工单状态:0新工单 1待交办 2待查收 3退回审核中 4办理中 5延时审核中 6已办理 7已回访 8重办中 9已结案
  28. //操作按钮:1查询 2编辑 3删除 4提交 5交办 6领导批示 7市长指示 8督办 9监察 10收回 11查收 12退回申请
  29. // 13办理 14延时申请 15退回审核 16回访 17延时审核 18重办 19结案 20导出 21回退 22强制结案
  30. private information.InternalMessagesController msg = new information.InternalMessagesController();
  31. private BLL.T_Sys_UserAccount userBLL = new BLL.T_Sys_UserAccount();
  32. private BLL.T_Bus_WorkOrder workorderBLL = new BLL.T_Bus_WorkOrder();
  33. private BLL.T_Bus_AssignedInfo assignBLL = new BLL.T_Bus_AssignedInfo();
  34. private BLL.T_Bus_AssignedItemInfo assignItemBLL = new BLL.T_Bus_AssignedItemInfo();
  35. private BLL.T_Bus_Operation operBLL = new BLL.T_Bus_Operation();
  36. private BLL.T_Sys_SystemConfig configBll = new BLL.T_Sys_SystemConfig();
  37. private BLL.T_Bus_RemindRecord remindBLL = new BLL.T_Bus_RemindRecord();
  38. private BLL.T_Bus_Feedback feedbackBLL = new BLL.T_Bus_Feedback();
  39. private readonly static object _MyLock = new object();
  40. #region 获取工单
  41. /// <summary>
  42. /// 获取工单列表
  43. /// </summary>
  44. /// <returns></returns>
  45. public ActionResult GetList(int isdc = 0)
  46. {
  47. DataTable dt = new DataTable();
  48. string sql = " and F_IsDelete=0 ";
  49. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  50. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  51. int islike = RequestString.GetInt("islike", 1);
  52. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  53. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  54. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  55. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  56. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  57. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  58. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  59. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  60. //调度员
  61. int isproresult = RequestString.GetInt("isproresult", 0);
  62. int source = RequestString.GetInt("source", 0);
  63. int keyid = RequestString.GetInt("keyid", 0);
  64. int type = RequestString.GetInt("type", 0);
  65. int bigtype = RequestString.GetInt("bigtype", 0);
  66. int smalltype = RequestString.GetInt("smalltype", 0);
  67. int sourcearea = RequestString.GetInt("sourcearea", 0);
  68. int deptid = RequestString.GetInt("deptid", 0);
  69. string myd = HttpUtility.UrlDecode(RequestString.GetQueryString("myd"));
  70. int zdpy = RequestString.GetInt("zdpy", 0);
  71. int smpy = RequestString.GetInt("smpy", 0);
  72. int dealtype = RequestString.GetInt("dealtype", -1);
  73. int issend = RequestString.GetInt("issend", -1);
  74. int deptlevel = RequestString.GetInt("deptlevel", 0);
  75. int dbgd = RequestString.GetInt("dbgd", 0);
  76. int dbdata = RequestString.GetInt("dbdata", 0);
  77. int workordertype = RequestString.GetInt("workordertype", -1);
  78. int IsRelease = RequestString.GetInt("IsRelease", 0);
  79. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  80. int issatisfie = RequestString.GetInt("issatisfie", -1);
  81. string assignUser = HttpUtility.UrlDecode(RequestString.GetQueryString("assignUser"));
  82. string strpageindex = RequestString.GetQueryString("page");
  83. int pageindex = 1;
  84. string strpagesize = RequestString.GetQueryString("pagesize");
  85. int pagesize = 10;
  86. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  87. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  88. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  89. int isopen = RequestString.GetInt("isopen", -1);//是否公开
  90. if (isopen > -1)
  91. sql += " and isnull(F_IsOpen,0) =" + isopen;
  92. if (IsRelease > 0)
  93. {
  94. if (IsRelease == 1)
  95. sql += " and F_IsRelease = '2'";
  96. else
  97. sql += " and F_IsRelease = '3'";
  98. }
  99. if (assignUser.Trim() != "" && assignUser != "undefined")
  100. {
  101. sql += "and F_AssignUser='" + assignUser.Trim() + "'";
  102. }
  103. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  104. if (assuser.Trim() != "" && assuser != "undefined")
  105. {
  106. sql += " and F_AssignUser = '" + assuser + "' ";
  107. }
  108. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  109. {
  110. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  111. {
  112. sql += " and F_DealTime between '" + dealstarttime +
  113. "' AND '" + dealstrendtime + "'";
  114. }
  115. else
  116. {
  117. sql += " and F_DealTime>='" + dealstarttime + "' ";
  118. }
  119. }
  120. else
  121. {
  122. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  123. {
  124. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  125. }
  126. }
  127. if (issatisfie != -1)
  128. {
  129. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_IsSatisfie = " + issatisfie + " and F_Id in (select MAX(F_Id) from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) )";
  130. }
  131. if (workordertype > -1)
  132. {
  133. if (workordertype == 0)
  134. {
  135. sql += " and F_CallRecordId is not null ";
  136. }
  137. else
  138. {
  139. sql += " and F_CallRecordId is null ";
  140. }
  141. }
  142. int isbusiness = RequestString.GetInt("isbusiness", -1);
  143. #region sql 语句相关处理
  144. if (strstate.Trim() != "" && strstate != "undefined")
  145. {
  146. if (isproresult > 0)
  147. {
  148. sql += " and F_WorkState in(6,7) ";
  149. }
  150. else
  151. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  152. }
  153. if (strworkid.Trim() != "" && strworkid != "undefined")
  154. {
  155. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  156. }
  157. if (strname.Trim() != "" && strname != "undefined")
  158. {
  159. sql += " and F_CusName = '" + strname + "' ";
  160. }
  161. if (splituser.Trim() != "" && splituser != "undefined")
  162. {
  163. sql += " and F_SplitUser = '" + splituser + "' ";
  164. }
  165. if (islike > 0)
  166. {
  167. if (strtel.Trim() != "" && strtel != "undefined")
  168. {
  169. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  170. }
  171. }
  172. else
  173. {
  174. if (strtel.Trim() != "" && strtel != "undefined")
  175. {
  176. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  177. }
  178. }
  179. int dbtype = RequestString.GetInt("dbtype", 0);
  180. string value1 = "";
  181. if (dbdata > 0)
  182. {
  183. if (deptid == 0)
  184. {
  185. return Error("请选择部门");
  186. }
  187. string sdate = ""; string etime = "";
  188. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  189. {
  190. sdate = DateTime.Now.AddMonths(-1).
  191. ToString("yyyy-MM") + "-21 00:00:01";
  192. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  193. }
  194. else
  195. {
  196. sdate = strstarttime;
  197. if (strendtime.Trim() == "" || strendtime == "undefined")
  198. {
  199. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  200. }
  201. else
  202. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  203. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  204. }
  205. if (dbtype != 6)
  206. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  207. else
  208. sql += "and F_WorkState not in (0, 1, 11)";
  209. if (dbtype == 1)
  210. {
  211. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  212. }
  213. else if (dbtype == 2)
  214. {
  215. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  216. }
  217. else if (dbtype == 3)
  218. {
  219. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  220. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  221. }
  222. else if (dbtype == 6)
  223. {
  224. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid + "') group by F_WorkOrderId having COUNT(1) = 1 )";
  225. }
  226. }
  227. else if (dbdata2 > 0)
  228. {
  229. if (deptid == 0)
  230. {
  231. return Error("请选择部门");
  232. }
  233. int deptid2 = 0;
  234. if (User.F_RoleCode == "WLDW")
  235. deptid2 = User.F_DeptId;
  236. string sdate = ""; string etime = "";
  237. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  238. {
  239. sdate = DateTime.Now.AddMonths(-1).
  240. ToString("yyyy-MM") + "-21 00:00:01";
  241. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  242. }
  243. else
  244. {
  245. sdate = strstarttime;
  246. if (strendtime.Trim() == "" || strendtime == "undefined")
  247. {
  248. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  249. }
  250. else
  251. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  252. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  253. }
  254. if (dbtype != 6)
  255. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  256. "and F_MainDeptID3='" + deptid + "'";
  257. else
  258. sql += "and F_WorkState not in (0, 1, 11)";
  259. if (dbtype == 1)
  260. {
  261. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  262. }
  263. else if (dbtype == 2)
  264. {
  265. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  266. }
  267. else if (dbtype == 3)
  268. {
  269. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  270. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  271. }
  272. else if (dbtype == 6)
  273. {
  274. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  275. "and F_MainDeptID3='" + deptid + "'";
  276. }
  277. }
  278. if (dbgd > 0)
  279. {
  280. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  281. }
  282. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  283. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  284. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  285. {
  286. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  287. }
  288. if (Result.Trim() != "" && Result != "undefined")
  289. {
  290. sql += " and F_Result like '%" + Result + "%' ";
  291. }
  292. if (ComContent.Trim() != "" && ComContent != "undefined")
  293. {
  294. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  295. "or F_Content like '%" + ComContent + "%' )";
  296. }
  297. if (strkey.Trim() != "" && strkey != "undefined")
  298. {
  299. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  300. " or F_Result like '%" + strkey + "%' ) ";
  301. }
  302. if (strusercode.Trim() != "" && strusercode != "undefined")
  303. {//坐席
  304. var usercode = strusercode.Trim().Split(',');
  305. var newusercode = "";
  306. foreach (var item in usercode)
  307. {
  308. if (!string.IsNullOrWhiteSpace(item.Trim()))
  309. newusercode += "'" + item + "',";
  310. }
  311. newusercode = newusercode.Trim(',');
  312. if (usercode.Length > 1)
  313. {
  314. if (newusercode.Trim() != "" && newusercode != "undefined")
  315. {
  316. sql += " and F_CreateUser in (" + newusercode + ") ";
  317. }
  318. }
  319. else
  320. {
  321. if (newusercode.Trim() != "" && newusercode != "undefined")
  322. {
  323. sql += " and F_CreateUser = " + newusercode + " ";
  324. }
  325. }
  326. }
  327. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  328. {//调度员
  329. var ddusercode = strddusercode.Trim().Split(',');
  330. var newusercode = "";
  331. foreach (var item in ddusercode)
  332. {
  333. if (!string.IsNullOrWhiteSpace(item.Trim()))
  334. newusercode += "'" + item + "',";
  335. }
  336. newusercode = newusercode.Trim(',');
  337. if (ddusercode.Length > 1)
  338. {
  339. if (newusercode.Trim() != "" && newusercode != "undefined")
  340. {
  341. sql += " and F_AssignUser in (" + newusercode + ") ";
  342. }
  343. }
  344. else
  345. {
  346. if (newusercode.Trim() != "" && newusercode != "undefined")
  347. {
  348. sql += " and F_AssignUser = " + newusercode + " ";
  349. }
  350. }
  351. }
  352. if (source != 0)
  353. {
  354. sql += " and F_InfoSource = '" + source + "' ";
  355. }
  356. string sqlwhere = ""; string value = "";
  357. if (keyid != 0)
  358. {
  359. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  360. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  361. }
  362. else if (User.F_RoleCode == "DFZF")
  363. {
  364. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  365. }
  366. if (type != 0)
  367. {
  368. sql += " and F_InfoType = '" + type + "' ";
  369. }
  370. if (bigtype != 0)
  371. {
  372. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  373. }
  374. if (smalltype != 0)
  375. {
  376. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  377. }
  378. if (isproresult != 0)
  379. {
  380. sql += "and (F_IsSms =0 or F_IsSms is null )";
  381. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  382. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  383. {
  384. if (isproresult == 2)
  385. {
  386. isproresult = 3;
  387. sql += " and F_IsProResult = '" + 3 + "' ";
  388. }
  389. else
  390. {
  391. isproresult = 2;
  392. sql += " and F_IsProResult = '" + 2 + "' ";
  393. }
  394. }
  395. else
  396. sql += " and F_IsProResult = '" + 2 + "' ";
  397. }
  398. if (sourcearea != 0)
  399. {
  400. sql += " and F_SourceArea = '" + sourcearea + "' ";
  401. }
  402. if (deptid != 0)
  403. {
  404. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  405. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  406. #endregion
  407. }
  408. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  409. {
  410. if (strendtime.Trim() != "" && strendtime != "undefined")
  411. {
  412. sql += " and F_CreateTime between '" + strstarttime +
  413. "' AND '" + strendtime + "'";
  414. }
  415. else
  416. {
  417. sql += " and F_CreateTime>='" + strstarttime + "' ";
  418. }
  419. }
  420. else
  421. {
  422. if (strendtime.Trim() != "" && strendtime != "undefined")
  423. {
  424. sql += " and F_CreateTime<='" + strendtime + "' ";
  425. }
  426. }
  427. if (dealtype != -1)
  428. {
  429. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  430. }
  431. if (issend != -1)
  432. {
  433. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  434. }
  435. #endregion
  436. if (strpageindex.Trim() != "")
  437. {
  438. pageindex = Convert.ToInt32(strpageindex);
  439. }
  440. if (strpagesize.Trim() != "")
  441. {
  442. pagesize = Convert.ToInt32(strpagesize);
  443. }
  444. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  445. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  446. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  447. #region 导出
  448. if (isdc > 0)
  449. {
  450. var top = " "; var orderby = " order by F_CreateTime";
  451. if (sql == " and F_IsDelete=0 ")
  452. {
  453. top = " top 1000 "; orderby += " desc ";
  454. }
  455. //20190715调整导出字段 zhengbingbing
  456. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  457. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_CusName 姓名, dbo.GetUserName(F_CreateUser ) 受话员姓名,F_CusPhone 手机号,F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetKeyName(F_Key,0) 反映类别一, dbo.GetKeyName(F_Key,1) 反映类别二,dbo.GetKeyName(F_Key,2) 反映类别三,dbo.GetKeyName(F_Key,3) 反映类别四,"
  458. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  459. + " F_Result 办理结果, "
  460. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 "
  461. + " from T_Bus_WorkOrder a WITH(NOLOCK)" + value + value1 + " where 1=1 " + sql + orderby).Tables[0];
  462. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  463. if (msg == "")
  464. {
  465. return Success("导出成功");
  466. }
  467. else
  468. {
  469. return Error("导出失败");
  470. }
  471. }
  472. string cols = "";
  473. cols = "F_Result,F_CusName,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,(SELECT TOP 1 F_IsNext FROM T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId=a .F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure != 3 ORDER BY F_Id DESC) as PDState,(SELECT COUNT(1) FROM T_Sys_WorkOFFDays WITH(NOLOCK) WHERE F_OffState =0 AND F_OffDate >GETDATE() AND F_OffDate<a.F_LimitTime) as SYSJ ,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification,F_IsRelease,F_AssignUser";
  474. #endregion
  475. int recordCount = 0;
  476. dt = BLL.PagerBLL.GetListPager(
  477. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere + value1,
  478. "F_Id",
  479. cols,
  480. sql,
  481. "ORDER BY F_CreateTime DESC",
  482. pagesize,
  483. pageindex,
  484. true,
  485. out recordCount);
  486. #region 声音文件和交办超时
  487. dt.Columns.Add("OverState", typeof(string));//超时状态
  488. // dt.Columns.Add("LimitTime", typeof(string));//限制时间
  489. dt.Columns.Add("GapTime", typeof(string));//时间差
  490. // dt.Columns.Add("PDState", typeof(string));//派单状态
  491. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  492. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  493. dt.Columns.Add("Dissatisfied", typeof(object));//不满意
  494. dt.Columns.Add("Supervise", typeof(object));
  495. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  496. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  497. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  498. foreach (DataRow dr in dt.Rows)
  499. {
  500. string iszbdw = "0";
  501. string ispd = "";
  502. int state = Int32.Parse(dr["F_WorkState"].ToString());
  503. if (state > 1)
  504. {
  505. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  506. var lt = dr["LimitTime"].ToString();//限制时间
  507. #region 超时时限
  508. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  509. {
  510. if (!string.IsNullOrWhiteSpace(lt))
  511. {
  512. var ltime = DateTime.Parse(lt);
  513. if (ltime > DateTime.Now)
  514. {
  515. if (dr["SYSJ"] != null && dr["SYSJ"].ToString() != "")
  516. {
  517. try
  518. {
  519. ltime = ltime.AddDays(-int.Parse(dr["SYSJ"].ToString()));
  520. }
  521. catch
  522. {
  523. }
  524. }
  525. }
  526. TimeSpan ts = ltime.Subtract(DateTime.Now);
  527. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  528. if (tss < 0) { tss = -tss; }
  529. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  530. if (ltime > DateTime.Now)
  531. {
  532. if (configcs != null)
  533. {
  534. int cs = Int32.Parse(configcs.F_ParamValue);
  535. if (ts.TotalHours > cs)
  536. {
  537. dr["OverState"] = 1;
  538. }
  539. else
  540. {
  541. dr["OverState"] = 2;
  542. }
  543. }
  544. dr["GapTime"] = "剩余" + gshsj;
  545. }
  546. else
  547. {
  548. dr["OverState"] = 3;
  549. dr["GapTime"] = "超时" + gshsj;
  550. }
  551. }
  552. ispd = dr["PDState"] != null ? dr["PDState"].ToString() : "";
  553. }
  554. if (state == (int)EnumWorkState.finish &&
  555. dr["F_MainDeptId"].ToString() == dr["F_DealDeptId"].ToString())
  556. {
  557. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  558. var dttime = DateTime.Now;
  559. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  560. else
  561. {
  562. var DealTime = dr["F_CloseTime"].ToString();
  563. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  564. }
  565. if (!string.IsNullOrWhiteSpace(lt))
  566. {
  567. var ltime = DateTime.Parse(lt);
  568. TimeSpan ts = ltime.Subtract(dttime);
  569. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  570. if (tss < 0) { tss = -tss; }
  571. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  572. if (ltime < dttime)
  573. {
  574. dr["OverState"] = 3;
  575. dr["GapTime"] = "超时" + gshsj;
  576. }
  577. }
  578. }
  579. #endregion
  580. // }
  581. }
  582. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  583. {
  584. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  585. }
  586. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  587. {
  588. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  589. }
  590. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, isproresult);
  591. if (dbdata > 0 && dbtype == 5)
  592. {
  593. string dbsql = " select top 1 strSsf_Cst_Ass_CntDsc,* from PublicComment WITH(NOLOCK) where WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' and strWrkOrder_Cst_Ssf_Cd like '%不满意%' order by CreateTime desc";
  594. var db = DbHelperSQL.Query(dbsql).Tables[0];
  595. if (db.Rows.Count > 0)
  596. {
  597. dr["Dissatisfied"] = db.Rows[0]["strSsf_Cst_Ass_CntDsc"].ToString();
  598. }
  599. }
  600. #region 判断是否存在待督办
  601. var reminds = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(dr["F_WorkOrderId"].ToString());
  602. if (reminds != null)
  603. {
  604. dr["Supervise"] = 1;
  605. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  606. if (reminds.F_State == 0 && butt != null)
  607. buttons.Remove(butt);
  608. }
  609. else
  610. {
  611. dr["Supervise"] = 0;
  612. }
  613. #endregion
  614. //if (state == 9)
  615. //{
  616. // if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "ZXHWY" || User.F_RoleCode.ToUpper() == "MTDD")
  617. // {
  618. // if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  619. // {
  620. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  621. // TimeSpan ts = DateTime.Now - closedttime;
  622. // if (ts.TotalDays < 20)
  623. // {
  624. // buttons.Add(ButtonGroup.subreload());
  625. // }
  626. // }
  627. // }
  628. //}
  629. // else
  630. if (strstate == "6")
  631. {
  632. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  633. {
  634. if (isproresult == 2 || isproresult == 3)
  635. buttons.Add(ButtonGroup.forceend());
  636. }
  637. }
  638. else if (state == 0 && dr["F_IsReturn"].ToString() == "1")
  639. {
  640. if (User.F_RoleCode.ToUpper() == "MTDD"
  641. )
  642. {
  643. buttons.Add(ButtonGroup.edit());
  644. }
  645. else if (User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode == "YSZY")
  646. {
  647. buttons.Add(ButtonGroup.submit());
  648. buttons.Add(ButtonGroup.delete());
  649. }
  650. }
  651. else
  652. {
  653. if (User.F_RoleCode.ToUpper() == "ZXHWY")
  654. {
  655. buttons.Clear();
  656. buttons.Add(ButtonGroup.query());
  657. }
  658. }
  659. dr["Buttons"] = buttons;
  660. }
  661. #endregion
  662. var obj = new
  663. {
  664. state = "success",
  665. message = "成功",
  666. rows = dt,
  667. total = recordCount
  668. };
  669. return Content(obj.ToJson());
  670. }
  671. /// <summary>
  672. /// 获取工单列表
  673. /// </summary>
  674. /// <returns></returns>
  675. public ActionResult GetModelList(int isdc = 0)
  676. {
  677. DataTable dt = new DataTable();
  678. string sql = " and F_IsDelete=0 ";
  679. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  680. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  681. int source = RequestString.GetInt("source", 0);
  682. int deptid = RequestString.GetInt("deptid", 0);
  683. int dbdata = RequestString.GetInt("dbdata", 0);
  684. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  685. string strpageindex = RequestString.GetQueryString("page");
  686. int pageindex = 1;
  687. string strpagesize = RequestString.GetQueryString("pagesize");
  688. int pagesize = 10;
  689. #region sql 语句相关处理
  690. int dbtype = RequestString.GetInt("dbtype", 0);
  691. if (dbdata > 0)
  692. {
  693. if (deptid == 0)
  694. {
  695. return Error("请选择部门");
  696. }
  697. string sdate = ""; string etime = "";
  698. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  699. {
  700. sdate = DateTime.Now.AddMonths(-1).
  701. ToString("yyyy-MM") + "-21 00:00:01";
  702. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  703. }
  704. else
  705. {
  706. sdate = strstarttime;
  707. if (strendtime.Trim() == "" || strendtime == "undefined")
  708. {
  709. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  710. }
  711. else
  712. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  713. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  714. }
  715. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  716. if (dbtype == 1)
  717. {
  718. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  719. }
  720. else if (dbtype == 2)
  721. {
  722. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  723. }
  724. else if (dbtype == 3)
  725. {
  726. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback WITH(NOLOCK) where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  727. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  728. }
  729. }
  730. else if (dbdata2 > 0)
  731. {
  732. if (deptid == 0)
  733. {
  734. return Error("请选择部门");
  735. }
  736. int deptid2 = 0;
  737. if (User.F_RoleCode == "WLDW")
  738. deptid2 = User.F_DeptId;
  739. string sdate = ""; string etime = "";
  740. if (string.IsNullOrEmpty(strstarttime))
  741. {
  742. sdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-21 00:00:00";
  743. }
  744. else
  745. {
  746. sdate = DateTime.Parse(strstarttime).ToString("yyyy-MM-dd") + " 00:00:00";
  747. }
  748. if (string.IsNullOrEmpty(strendtime))
  749. {
  750. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  751. }
  752. else
  753. {
  754. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  755. }
  756. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  757. if (dbtype != 6)
  758. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  759. "and F_MainDeptID3='" + deptid + "'";
  760. else
  761. sql += "and F_WorkState not in (0, 1, 11)";
  762. if (dbtype == 1)
  763. {
  764. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  765. }
  766. else if (dbtype == 2)
  767. {
  768. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  769. }
  770. else if (dbtype == 3)
  771. {
  772. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  773. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  774. }
  775. else if (dbtype == 6)
  776. {
  777. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  778. "and F_MainDeptID3='" + deptid + "'";
  779. }
  780. }
  781. if (source != 0)
  782. {
  783. sql += " and F_InfoSource = '" + source + "' ";
  784. }
  785. #endregion
  786. if (strpageindex.Trim() != "")
  787. {
  788. pageindex = Convert.ToInt32(strpageindex);
  789. }
  790. if (strpagesize.Trim() != "")
  791. {
  792. pagesize = Convert.ToInt32(strpagesize);
  793. }
  794. string cols = "";
  795. cols = "F_DealTime,F_CusName,F_CloseTime,F_Result,F_Unsuccessful,F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_AssignTime as AssignTime,F_LimitTime as LimitTime,F_IsProResult,F_ComContent,F_DealDeptId,F_Identification," +
  796. "(select top 1 strSsf_Cst_Ass_CntDsc from PublicComment where WorkOrderId =a.F_WorkOrderId order by CreateTime desc) as Oncedissatisfied,F_IsRelease";
  797. #region 导出
  798. if (isdc > 0)
  799. {
  800. var top = " "; var orderby = " order by F_CreateTime";
  801. if (sql == " and F_IsDelete=0 ")
  802. {
  803. top = " top 1000 "; orderby += " desc ";
  804. }
  805. //20190715调整导出字段 zhengbingbing
  806. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  807. var dtdc = DbHelperSQL.Query(" select ROW_NUMBER() OVER(ORDER BY F_CreateTime desc) 序号,F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 反映类别, "
  808. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  809. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =a.F_WorkOrderId order by F_Id desc) 办理结果, "
  810. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  811. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  812. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  813. if (msg == "")
  814. {
  815. return Success("导出成功");
  816. }
  817. else
  818. {
  819. return Error("导出失败");
  820. }
  821. }
  822. #endregion
  823. int recordCount = 0;
  824. dt = BLL.PagerBLL.GetListPager(
  825. "T_Bus_WorkOrder a WITH(NOLOCK)",
  826. "F_Id",
  827. cols,
  828. sql,
  829. "ORDER BY F_CreateTime DESC",
  830. pagesize,
  831. pageindex,
  832. true,
  833. out recordCount);
  834. #region 声音文件和交办超时
  835. #endregion
  836. dt.Columns.Add("GapTime", typeof(object));//
  837. foreach (DataRow dr in dt.Rows)
  838. {
  839. if (dbtype == 1)
  840. {
  841. var lt = dr["LimitTime"].ToString();//限制时间
  842. int state = Int32.Parse(dr["F_WorkState"].ToString()); //
  843. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  844. {
  845. if (!string.IsNullOrWhiteSpace(lt))
  846. {
  847. var ltime = DateTime.Parse(lt);
  848. TimeSpan ts = ltime.Subtract(DateTime.Now);
  849. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  850. if (tss < 0) { tss = -tss; }
  851. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  852. if (ltime > DateTime.Now)
  853. {
  854. dr["GapTime"] = "剩余" + gshsj;
  855. }
  856. else
  857. {
  858. dr["GapTime"] = "超时" + gshsj;
  859. }
  860. }
  861. }
  862. else
  863. {
  864. if (!string.IsNullOrWhiteSpace(lt))
  865. {
  866. var det = dr["F_DealTime"].ToString();
  867. var ct = dr["F_CloseTime"].ToString();
  868. if (!string.IsNullOrEmpty(det))
  869. {
  870. var ltime = DateTime.Parse(lt);
  871. var detime = DateTime.Parse(det);
  872. TimeSpan ts = ltime.Subtract(detime);
  873. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  874. if (tss < 0) { tss = -tss; }
  875. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  876. if (ltime > detime)
  877. {
  878. dr["GapTime"] = "剩余" + gshsj;
  879. }
  880. else
  881. {
  882. dr["GapTime"] = "超时" + gshsj;
  883. }
  884. }
  885. else
  886. {
  887. var ltime = DateTime.Parse(lt);
  888. var ctime = DateTime.Parse(ct);
  889. TimeSpan ts = ltime.Subtract(ctime);
  890. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  891. if (tss < 0) { tss = -tss; }
  892. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  893. if (ltime > ctime)
  894. {
  895. dr["GapTime"] = "剩余" + gshsj;
  896. }
  897. else
  898. {
  899. dr["GapTime"] = "超时" + gshsj;
  900. }
  901. }
  902. }
  903. }
  904. }
  905. }
  906. var obj = new
  907. {
  908. state = "success",
  909. message = "成功",
  910. rows = dt,
  911. total = recordCount
  912. };
  913. return Content(obj.ToJson());
  914. }
  915. /// <summary>
  916. /// 获取回收站工单列表
  917. /// </summary>
  918. /// <returns></returns>
  919. public ActionResult GetDeleteList(int isdc = 0)
  920. {
  921. DataTable dt = new DataTable();
  922. string sql = " and F_IsDelete=1 ";
  923. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  924. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  925. int islike = RequestString.GetInt("islike", 1);
  926. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  927. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  928. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  929. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  930. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  931. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  932. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  933. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  934. int isproresult = RequestString.GetInt("isproresult", 0);
  935. int source = RequestString.GetInt("source", 0);
  936. int keyid = RequestString.GetInt("keyid", 0);
  937. int type = RequestString.GetInt("type", 0);
  938. int bigtype = RequestString.GetInt("bigtype", 0);
  939. int smalltype = RequestString.GetInt("smalltype", 0);
  940. int sourcearea = RequestString.GetInt("sourcearea", 0);
  941. int deptid = RequestString.GetInt("deptid", 0);
  942. int dealtype = RequestString.GetInt("dealtype", -1);
  943. int issend = RequestString.GetInt("issend", -1);
  944. int deptlevel = RequestString.GetInt("deptlevel", 0);
  945. int dbdata = RequestString.GetInt("dbdata", 0);
  946. int dbdata2 = RequestString.GetInt("dbdata2", 0);
  947. string strpageindex = RequestString.GetQueryString("page");
  948. int pageindex = 1;
  949. string strpagesize = RequestString.GetQueryString("pagesize");
  950. int pagesize = 10;
  951. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  952. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  953. int isopen = RequestString.GetInt("isopen", -1);
  954. if (isopen > -1)
  955. sql += " and isnull(F_IsOpen,0) =" + isopen;
  956. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  957. {
  958. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  959. {
  960. sql += " and F_DealTime between '" + dealstarttime +
  961. "' AND '" + dealstrendtime + "'";
  962. }
  963. else
  964. {
  965. sql += " and F_DealTime>='" + dealstarttime + "' ";
  966. }
  967. }
  968. else
  969. {
  970. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  971. {
  972. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  973. }
  974. }
  975. #region sql 语句相关处理
  976. if (strstate.Trim() != "" && strstate != "undefined")
  977. {
  978. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  979. }
  980. if (strworkid.Trim() != "" && strworkid != "undefined")
  981. {
  982. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  983. }
  984. if (strname.Trim() != "" && strname != "undefined")
  985. {
  986. sql += " and F_CusName = '" + strname + "' ";
  987. }
  988. if (splituser.Trim() != "" && splituser != "undefined")
  989. {
  990. sql += " and F_SplitUser = '" + splituser + "' ";
  991. }
  992. if (islike > 0)
  993. {
  994. if (strtel.Trim() != "" && strtel != "undefined")
  995. {
  996. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  997. }
  998. }
  999. else
  1000. {
  1001. if (strtel.Trim() != "" && strtel != "undefined")
  1002. {
  1003. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1004. }
  1005. }
  1006. int dbtype = RequestString.GetInt("dbtype", 0);
  1007. if (dbdata > 0)
  1008. {
  1009. if (deptid == 0)
  1010. {
  1011. return Error("请选择部门");
  1012. }
  1013. string sdate = ""; string etime = "";
  1014. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1015. {
  1016. sdate = DateTime.Now.AddMonths(-1).
  1017. ToString("yyyy-MM") + "-21 00:00:01";
  1018. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1019. }
  1020. else
  1021. {
  1022. sdate = strstarttime;
  1023. if (strendtime.Trim() == "" || strendtime == "undefined")
  1024. {
  1025. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1026. }
  1027. else
  1028. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1029. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1030. }
  1031. if (dbtype != 6)
  1032. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid + "'";
  1033. else
  1034. sql += "and F_WorkState not in (0, 1, 11)";
  1035. if (dbtype == 1)
  1036. {
  1037. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6, 8) ) ) ";
  1038. }
  1039. else if (dbtype == 2)
  1040. {
  1041. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1042. }
  1043. else if (dbtype == 3)
  1044. {
  1045. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1046. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1047. }
  1048. else if (dbtype == 6)
  1049. {
  1050. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid + "') group by F_WorkOrderId having COUNT(1) = 1 )";
  1051. }
  1052. }
  1053. else if (dbdata2 > 0)
  1054. {
  1055. if (deptid == 0)
  1056. {
  1057. return Error("请选择部门");
  1058. }
  1059. int deptid2 = 0;
  1060. if (User.F_RoleCode == "WLDW")
  1061. deptid2 = User.F_DeptId;
  1062. string sdate = ""; string etime = "";
  1063. if (strstarttime.Trim() == "" || strstarttime == "undefined")
  1064. {
  1065. sdate = DateTime.Now.AddMonths(-1).
  1066. ToString("yyyy-MM") + "-21 00:00:01";
  1067. sql += " and F_CreateTime between '" + sdate + "' AND '" + DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59" + "'";
  1068. }
  1069. else
  1070. {
  1071. sdate = strstarttime;
  1072. if (strendtime.Trim() == "" || strendtime == "undefined")
  1073. {
  1074. etime = DateTime.Now.ToString("yyyy-MM") + "-20 23:59:59";
  1075. }
  1076. else
  1077. etime = DateTime.Parse(strendtime).ToString("yyyy-MM-dd") + " 23:59:59";
  1078. sql += " and F_CreateTime between '" + sdate + "' AND '" + etime + "'";
  1079. }
  1080. if (dbtype != 6)
  1081. sql += "and F_WorkState not in (0, 1, 11) and F_MainDeptId='" + deptid2 + "' " +
  1082. "and F_MainDeptID3='" + deptid + "'";
  1083. else
  1084. sql += "and F_WorkState not in (0, 1, 11)";
  1085. if (dbtype == 1)
  1086. {
  1087. sql += "and ((isnull(F_DealTime,F_CloseTime )>(select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK) WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure<>3 ORDER BY F_Id DESC) AND F_WorkState = 9 AND F_CloseTime IS NOT NULL ) OR(isnull(F_DealTime, getdate()) > (select top 1 F_LimitTime from T_Bus_AssignedInfo WITH(NOLOCK)WHERE F_WorkOrderId = a.F_WorkOrderId and F_State = 1 and F_IsDelete = 0 and F_IsSure <> 3 ORDER BY F_Id DESC) AND F_WorkState in(2, 4, 6,7, 8) ) ) ";
  1088. }
  1089. else if (dbtype == 2)
  1090. {
  1091. sql += "and F_IsProResult =2 and F_WorkState =6 ";
  1092. }
  1093. else if (dbtype == 3)
  1094. {
  1095. sql += "and F_WorkOrderId in(select F_WorkOrderId from T_Bus_Feedback where (F_Id in (select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and a.F_WorkState = 9 group by F_WorkOrderId) or F_Id in(select MAX(F_Id) from T_Bus_Feedback where F_Type = 3 and F_CreateDeptId = a.F_DealDeptId and F_WorkState in (2, 4, 5, 6, 8) group by F_WorkOrderId) ) ) and " +
  1096. "F_WorkOrderId not in(select F_WorkOrderId from T_Bus_SubmitSuper where F_Type =3 and F_IsDelete = 0 and F_CreateTime >'" + sdate + "' ) ";
  1097. }
  1098. else if (dbtype == 6)
  1099. {
  1100. sql += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult where F_IsSatisfie=0 and F_AssignedId in (select F_Id from T_Bus_AssignedInfo where F_MainDeptId ='" + deptid2 + "' ) group by F_WorkOrderId having COUNT(1) = 1 ) " +
  1101. "and F_MainDeptID3='" + deptid + "'";
  1102. }
  1103. }
  1104. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1105. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1106. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1107. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1108. {
  1109. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1110. }
  1111. if (Result.Trim() != "" && Result != "undefined")
  1112. {
  1113. sql += " and F_Result like '%" + Result + "%' ";
  1114. }
  1115. if (ComContent.Trim() != "" && ComContent != "undefined")
  1116. {
  1117. sql += " and (F_ComContent like '%" + ComContent + "%' " +
  1118. "or F_Content like '%" + ComContent + "%' )";
  1119. }
  1120. if (strkey.Trim() != "" && strkey != "undefined")
  1121. {
  1122. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1123. " or F_Result like '%" + strkey + "%' ) ";
  1124. }
  1125. if (strusercode.Trim() != "" && strusercode != "undefined")
  1126. {//坐席
  1127. var usercode = strusercode.Trim().Split(',');
  1128. var newusercode = "";
  1129. foreach (var item in usercode)
  1130. {
  1131. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1132. newusercode += "'" + item + "',";
  1133. }
  1134. newusercode = newusercode.Trim(',');
  1135. if (usercode.Length > 1)
  1136. {
  1137. if (newusercode.Trim() != "" && newusercode != "undefined")
  1138. {
  1139. sql += " and F_CreateUser in (" + newusercode + ") ";
  1140. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1141. }
  1142. }
  1143. else
  1144. {
  1145. if (newusercode.Trim() != "" && newusercode != "undefined")
  1146. {
  1147. sql += " and F_CreateUser = " + newusercode + " ";
  1148. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1149. }
  1150. }
  1151. }
  1152. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1153. {//调度员
  1154. var ddusercode = strddusercode.Trim().Split(',');
  1155. var newusercode = "";
  1156. foreach (var item in ddusercode)
  1157. {
  1158. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1159. newusercode += "'" + item + "',";
  1160. }
  1161. newusercode = newusercode.Trim(',');
  1162. if (ddusercode.Length > 1)
  1163. {
  1164. if (newusercode.Trim() != "" && newusercode != "undefined")
  1165. {
  1166. sql += " and F_AssignUser in (" + newusercode + ") ";
  1167. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1168. }
  1169. }
  1170. else
  1171. {
  1172. if (newusercode.Trim() != "" && newusercode != "undefined")
  1173. {
  1174. sql += " and F_AssignUser = " + newusercode + " ";
  1175. //sql += " and F_CreateUser ='" + strusercode + "' ";
  1176. }
  1177. }
  1178. }
  1179. if (source != 0)
  1180. {
  1181. sql += " and F_InfoSource = '" + source + "' ";
  1182. }
  1183. string sqlwhere = ""; string value = "";
  1184. if (keyid != 0)
  1185. {
  1186. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1187. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1188. }
  1189. else if (User.F_RoleCode == "DFZF")
  1190. {
  1191. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  1192. }
  1193. if (type != 0)
  1194. {
  1195. sql += " and F_InfoType = '" + type + "' ";
  1196. }
  1197. if (bigtype != 0)
  1198. {
  1199. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1200. }
  1201. if (smalltype != 0)
  1202. {
  1203. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1204. }
  1205. if (isproresult != 0)
  1206. {
  1207. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD"
  1208. || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  1209. {
  1210. if (isproresult == 2)
  1211. {
  1212. isproresult = 3;
  1213. sql += " and F_IsProResult = '" + 3 + "' ";
  1214. }
  1215. else
  1216. {
  1217. isproresult = 2;
  1218. sql += " and F_IsProResult = '" + 2 + "' ";
  1219. }
  1220. }
  1221. else
  1222. sql += " and F_IsProResult = '" + 2 + "' ";
  1223. }
  1224. if (sourcearea != 0)
  1225. {
  1226. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1227. }
  1228. if (deptid != 0)
  1229. {
  1230. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1231. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1232. #endregion
  1233. }
  1234. else
  1235. {
  1236. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  1237. {
  1238. deptid = User.F_DeptId;
  1239. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1240. }
  1241. }
  1242. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1243. {
  1244. if (strendtime.Trim() != "" && strendtime != "undefined")
  1245. {
  1246. sql += " and F_CreateTime between '" + strstarttime +
  1247. "' AND '" + strendtime + "'";
  1248. }
  1249. else
  1250. {
  1251. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1252. }
  1253. }
  1254. else
  1255. {
  1256. if (strendtime.Trim() != "" && strendtime != "undefined")
  1257. {
  1258. sql += " and F_CreateTime<='" + strendtime + "' ";
  1259. }
  1260. }
  1261. if (dealtype != -1)
  1262. {
  1263. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  1264. }
  1265. if (issend != -1)
  1266. {
  1267. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  1268. }
  1269. #endregion
  1270. if (strpageindex.Trim() != "")
  1271. {
  1272. pageindex = Convert.ToInt32(strpageindex);
  1273. }
  1274. if (strpagesize.Trim() != "")
  1275. {
  1276. pagesize = Convert.ToInt32(strpagesize);
  1277. }
  1278. string cols = " a.F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_IsResult,a.F_CreateTime,dbo.GetUserName(a.F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) KeyName,dbo.GetDeptNames(F_MainDeptId) as DeptName,F_CloseTime,F_LimitTime as LimitTime,F_ComContent,F_CusPhone,F_AssignTime";
  1279. #region 导出
  1280. if (isdc > 0)
  1281. {
  1282. var top = " "; var orderby = " order by F_CreateTime";
  1283. if (sql == " and F_IsDelete=0 ")
  1284. {
  1285. top = " top 1000 "; orderby += " desc ";
  1286. }
  1287. //20190715调整导出字段 zhengbingbing
  1288. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1289. var dtdc = DbHelperSQL.Query(" select ROW_NUMBER() OVER(ORDER BY F_CreateTime desc) 序号,F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 反映类别, "
  1290. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1291. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =a.F_WorkOrderId order by F_Id desc) 办理结果, "
  1292. + " F_CusName 来电人姓名 ,F_CusPhone 来电人手机号 "
  1293. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  1294. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1295. if (msg == "")
  1296. {
  1297. return Success("导出成功");
  1298. }
  1299. else
  1300. {
  1301. return Error("导出失败");
  1302. }
  1303. }
  1304. #endregion
  1305. int recordCount = 0;
  1306. dt = BLL.PagerBLL.GetListPager(
  1307. "T_Bus_WorkOrder a WITH(NOLOCK)",
  1308. "F_Id",
  1309. cols,
  1310. sql,
  1311. "ORDER BY F_CreateTime DESC",
  1312. pagesize,
  1313. pageindex,
  1314. true,
  1315. out recordCount);
  1316. #region 声音文件和交办超时
  1317. #endregion
  1318. var obj = new
  1319. {
  1320. state = "success",
  1321. message = "成功",
  1322. rows = dt,
  1323. total = recordCount
  1324. };
  1325. return Content(obj.ToJson());
  1326. }
  1327. /// <summary>
  1328. /// 获取坐席处理列表
  1329. /// </summary>
  1330. /// <returns></returns>
  1331. //[Authority]
  1332. public ActionResult GetZXDealList(int isdc = 0)
  1333. {
  1334. DataTable dt = new DataTable();
  1335. string sql = " and F_IsDelete=0";
  1336. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1337. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1338. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1339. int islike = RequestString.GetInt("islike", 1);
  1340. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1341. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1342. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1343. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1344. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1345. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1346. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1347. string visituser = HttpUtility.UrlDecode(RequestString.GetQueryString("visituser"));//回访人
  1348. string order = "ORDER BY F_CreateTime DESC";
  1349. int source = RequestString.GetInt("source", 0);
  1350. int keyid = RequestString.GetInt("keyid", 0);
  1351. int type = RequestString.GetInt("type", 0);
  1352. int bigtype = RequestString.GetInt("bigtype", 0);
  1353. int smalltype = RequestString.GetInt("smalltype", 0);
  1354. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1355. int tobereply = RequestString.GetInt("tobereply", 0);
  1356. int deptid = RequestString.GetInt("deptid", 0);
  1357. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1358. int issms = RequestString.GetInt("issms", -1);
  1359. int smspy = RequestString.GetInt("smspy", -1);//0未发送短信1
  1360. int db = RequestString.GetInt("db", 0);
  1361. int visit = RequestString.GetInt("visit", -1);//0满意1一评不满意2二评不满意
  1362. string strpageindex = RequestString.GetQueryString("page");
  1363. int pageindex = 1;
  1364. string strpagesize = RequestString.GetQueryString("pagesize");
  1365. int pagesize = 10;
  1366. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1367. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1368. string visitstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstarttime"));//回访开始时间
  1369. string visitstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("visitstrendtime"));//回访结束时间
  1370. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1371. {
  1372. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1373. {
  1374. sql += " and F_DealTime between '" + dealstarttime +
  1375. "' AND '" + dealstrendtime + "'";
  1376. }
  1377. else
  1378. {
  1379. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1380. }
  1381. }
  1382. else
  1383. {
  1384. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1385. {
  1386. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  1387. }
  1388. }
  1389. switch (strtab)
  1390. {
  1391. case "-1"://待处理工单(其他来源)
  1392. sql = " and F_IsDelete=1 and F_IsEnabled=0 ";
  1393. break;
  1394. case "0"://待处理工单
  1395. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  1396. {
  1397. //话务员,已办待回访菜单中可以看到所有工单并能操作
  1398. if (User.F_RoleCode != "ZJZY" && User.F_RoleCode != "ZXHWY")
  1399. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1400. //话务员,已办待回访菜单中可以看到所有工单并能操作
  1401. }
  1402. if (strstate.Trim() != "" && strstate != "undefined")
  1403. {
  1404. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1405. {
  1406. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1407. sql += "and F_ToBereply=" + tobereply;
  1408. }
  1409. else if (strstate.Trim() == ((int)EnumWorkState.audit).ToString())
  1410. {
  1411. sql += " and F_WorkState in (" + (int)EnumWorkState.audit + "," + (int)EnumWorkState.auditreback + ") ";
  1412. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  1413. }
  1414. else if (strstate.Trim() == "6")
  1415. {
  1416. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1417. }
  1418. else
  1419. {
  1420. if (smspy == -1)
  1421. sql += "and F_ToBereply=" + tobereply;
  1422. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1423. }
  1424. if (strstate.Trim() == "6" || strstate.Trim() == "7")
  1425. {
  1426. // order = "order by F_DealTime desc";
  1427. if (db > -1)
  1428. {
  1429. if (db == 0)
  1430. {
  1431. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  1432. }
  1433. else
  1434. {
  1435. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State not in (0,2) )";
  1436. }
  1437. }
  1438. else
  1439. {
  1440. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  1441. }
  1442. }
  1443. }
  1444. else
  1445. {
  1446. sql += "and F_ToBereply=" + tobereply;
  1447. sql += " and F_WorkState in (0) ";
  1448. if (User.F_RoleCode == "ZXHWY")
  1449. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1450. }
  1451. order = "order by F_Id desc";
  1452. break;
  1453. case "1"://已提交的工单
  1454. sql += " and F_WorkState >0 ";
  1455. if (strstate.Trim() != "" && strstate != "undefined")
  1456. {
  1457. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1458. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1459. else
  1460. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1461. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1462. }
  1463. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" || User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  1464. {
  1465. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1466. }
  1467. break;
  1468. case "2"://已回访的工单
  1469. if (strstate.Trim() != "" && strstate != "undefined")
  1470. {
  1471. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  1472. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  1473. else
  1474. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1475. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  1476. }
  1477. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  1478. if (visitstarttime.Trim() != "" && visitstarttime != "undefined")
  1479. {
  1480. sql += " and F_CreateTime>='" + visitstarttime + "' ";
  1481. }
  1482. if (visitstrendtime.Trim() != "" && visitstrendtime != "undefined")
  1483. {
  1484. sql += " and F_CreateTime<='" + visitstrendtime + "' ";
  1485. }
  1486. if (visituser.Trim() != "" && visituser != "undefined")
  1487. {
  1488. sql += " and F_CreateUser='" + visituser + "'";
  1489. }
  1490. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  1491. {
  1492. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  1493. }
  1494. else
  1495. {
  1496. sql += ")";
  1497. }
  1498. break;
  1499. case "3"://已回退的工单
  1500. //sql += " and F_WorkState=0 and F_IsReturn=1 ";
  1501. sql += " and F_WorkState in (0,10) and F_IsReturn=1";
  1502. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "GNZY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  1503. {
  1504. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1505. }
  1506. break;
  1507. case "4":
  1508. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3)";
  1509. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  1510. {
  1511. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  1512. }
  1513. break;
  1514. case "5":
  1515. sql += " and F_WorkState =0 ";
  1516. sql += " and F_InfoSource = '2580'";
  1517. break;
  1518. }
  1519. if (issms > -1)
  1520. {
  1521. if (issms == 1)
  1522. sql += " and F_IsSms = '" + issms + "'";
  1523. else
  1524. sql += " and (F_IsSms = '0' or F_IsSms is null )";
  1525. }
  1526. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  1527. if (splituser.Trim() != "" && splituser != "undefined")
  1528. {
  1529. sql += " and F_SplitUser = '" + splituser + "' ";
  1530. }
  1531. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  1532. if (assuser.Trim() != "" && assuser != "undefined")
  1533. {
  1534. sql += " and F_AssignUser = '" + assuser + "' ";
  1535. }
  1536. if (User.F_RoleCode == "WLDW")
  1537. {
  1538. if (strtab != "5")
  1539. {
  1540. sql += " and F_InfoSource in (1,3,6) ";
  1541. }
  1542. }
  1543. if (strworkid.Trim() != "" && strworkid != "undefined")
  1544. {
  1545. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  1546. }
  1547. if (strname.Trim() != "" && strname != "undefined")
  1548. {
  1549. sql += " and F_CusName like '%" + strname + "%' ";
  1550. }
  1551. if (islike > 0)
  1552. {
  1553. if (strtel.Trim() != "" && strtel != "undefined")
  1554. {
  1555. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  1556. }
  1557. }
  1558. else
  1559. {
  1560. if (strtel.Trim() != "" && strtel != "undefined")
  1561. {
  1562. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  1563. }
  1564. }
  1565. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  1566. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  1567. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  1568. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  1569. {
  1570. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  1571. }
  1572. if (Result.Trim() != "" && Result != "undefined")
  1573. {
  1574. sql += " and F_Result like '%" + Result + "%' ";
  1575. }
  1576. if (ComContent.Trim() != "" && ComContent != "undefined")
  1577. {
  1578. sql += " and F_ComContent like '%" + ComContent + "%' ";
  1579. }
  1580. if (strkey.Trim() != "" && strkey != "undefined")
  1581. {
  1582. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  1583. " or F_Result like '%" + strkey + "%' ) ";
  1584. }
  1585. #region 坐席&调度员
  1586. if (strusercode.Trim() != "" && strusercode != "undefined")
  1587. {//坐席
  1588. var usercode = strusercode.Trim().Split(',');
  1589. var newusercode = "";
  1590. foreach (var item in usercode)
  1591. {
  1592. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1593. newusercode += "'" + item + "',";
  1594. }
  1595. newusercode = newusercode.Trim(',');
  1596. if (newusercode.Trim() != "" && newusercode != "undefined")
  1597. {
  1598. sql += " and F_CreateUser in (" + newusercode + ") ";
  1599. }
  1600. }
  1601. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  1602. {//调度员
  1603. var ddusercode = strddusercode.Trim().Split(',');
  1604. var newusercode = "";
  1605. foreach (var item in ddusercode)
  1606. {
  1607. if (!string.IsNullOrWhiteSpace(item.Trim()))
  1608. newusercode += "'" + item + "',";
  1609. }
  1610. newusercode = newusercode.Trim(',');
  1611. if (newusercode.Trim() != "" && newusercode != "undefined")
  1612. {
  1613. sql += " and F_AssignUser in(" + newusercode + ") ";
  1614. }
  1615. }
  1616. #endregion
  1617. if (source != 0)
  1618. {
  1619. sql += " and F_InfoSource = '" + source + "' ";
  1620. }
  1621. string sqlwhere = ""; string value = "";
  1622. if (keyid != 0)
  1623. {
  1624. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  1625. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  1626. // " or F_Key='" + keyid + "' )";
  1627. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  1628. }
  1629. if (type != 0)
  1630. {
  1631. sql += " and F_InfoType = '" + type + "' ";
  1632. }
  1633. if (bigtype != 0)
  1634. {
  1635. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  1636. }
  1637. if (smalltype != 0)
  1638. {
  1639. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  1640. }
  1641. if (sourcearea != 0)
  1642. {
  1643. sql += " and F_SourceArea = '" + sourcearea + "' ";
  1644. }
  1645. if (deptid != 0)
  1646. {
  1647. //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  1648. //sql += " and isnull(F_MainDeptId,null)='" + deptid + "'";
  1649. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1650. #region 20190924 zhengbingbing 主办单位查询以最后办理单位为准
  1651. #endregion
  1652. }
  1653. else
  1654. {
  1655. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  1656. {
  1657. deptid = User.F_DeptId;
  1658. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  1659. }
  1660. }
  1661. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  1662. {
  1663. sql += " and F_CreateTime>='" + strstarttime + "' ";
  1664. }
  1665. if (strendtime.Trim() != "" && strendtime != "undefined")
  1666. {
  1667. sql += " and F_CreateTime<='" + strendtime + "' ";
  1668. }
  1669. if (strpageindex.Trim() != "")
  1670. {
  1671. pageindex = Convert.ToInt32(strpageindex);
  1672. }
  1673. if (strpagesize.Trim() != "")
  1674. {
  1675. pagesize = Convert.ToInt32(strpagesize);
  1676. }
  1677. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  1678. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  1679. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  1680. string cols = "";
  1681. cols = "F_WorkOrderId,F_InfoSource,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,(select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  1682. "and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc ) as Backreason ,F_CloseTime,F_Identification,F_IsRelease,F_InfoSource,F_Note";
  1683. if (smspy > -1)
  1684. {
  1685. order = " order by F_Id desc";
  1686. }
  1687. if (isdc > 0)
  1688. {
  1689. var top = " "; var orderby = " order by F_CreateTime";
  1690. if (sql == " and F_IsDelete=0 ")
  1691. {
  1692. top = " top 1000 "; orderby += " desc ";
  1693. }
  1694. //20190715调整导出字段 zhengbingbing
  1695. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  1696. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  1697. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  1698. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  1699. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  1700. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  1701. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  1702. if (msg == "")
  1703. {
  1704. return Success("导出成功");
  1705. }
  1706. else
  1707. {
  1708. return Error("导出失败");
  1709. }
  1710. }
  1711. int recordCount = 0;
  1712. dt = BLL.PagerBLL.GetListPager(
  1713. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  1714. "F_Id",
  1715. cols,
  1716. sql,
  1717. order,
  1718. pagesize,
  1719. pageindex,
  1720. true,
  1721. out recordCount);
  1722. dt.Columns.Add("DeptName", typeof(string));//交办单位
  1723. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  1724. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  1725. dt.Columns.Add("OverState", typeof(string));//超时状态
  1726. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  1727. dt.Columns.Add("GapTime", typeof(string));//时间差
  1728. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  1729. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  1730. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  1731. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  1732. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  1733. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  1734. foreach (DataRow dr in dt.Rows)
  1735. {
  1736. //获取最新交办信息
  1737. string iszbdw = "0";
  1738. int state = Int32.Parse(dr["F_WorkState"].ToString());
  1739. if (state > 1)
  1740. {
  1741. 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";
  1742. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  1743. if (dtjb.Rows.Count > 0)
  1744. {
  1745. //if (dtjb.Rows[0]["F_MainDeptId"].ToString().Split(',').Contains(User.F_DeptId.ToString())) { iszbdw = "1"; }
  1746. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  1747. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  1748. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  1749. {
  1750. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  1751. }
  1752. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  1753. #region
  1754. #endregion
  1755. #region
  1756. //if (state < 6 || state == 8)
  1757. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  1758. {
  1759. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1760. dr["LimitTime"] = lt;
  1761. if (!string.IsNullOrWhiteSpace(lt))
  1762. {
  1763. var ltime = DateTime.Parse(lt);
  1764. if (ltime > DateTime.Now)
  1765. {
  1766. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  1767. var SYSJ = DbHelperSQL.GetSingle(SY);
  1768. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  1769. {
  1770. try
  1771. {
  1772. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  1773. }
  1774. catch
  1775. {
  1776. }
  1777. }
  1778. }
  1779. TimeSpan ts = ltime.Subtract(DateTime.Now);
  1780. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1781. if (tss < 0) { tss = -tss; }
  1782. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1783. if (ltime > DateTime.Now)
  1784. {
  1785. if (configcs != null)
  1786. {
  1787. int cs = Int32.Parse(configcs.F_ParamValue);
  1788. if (ts.TotalHours > cs)
  1789. {
  1790. dr["OverState"] = 1;
  1791. }
  1792. else
  1793. {
  1794. dr["OverState"] = 2;
  1795. }
  1796. }
  1797. dr["GapTime"] = "剩余" + gshsj;
  1798. }
  1799. else
  1800. {
  1801. dr["OverState"] = 3;
  1802. dr["GapTime"] = "超时" + gshsj;
  1803. }
  1804. }
  1805. }
  1806. if (state == (int)EnumWorkState.finish)
  1807. {
  1808. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  1809. var dttime = DateTime.Now;
  1810. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  1811. else
  1812. {
  1813. var DealTime = dr["F_CloseTime"].ToString();
  1814. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  1815. }
  1816. //else
  1817. //{
  1818. // var DealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  1819. // if (!string.IsNullOrWhiteSpace(DealTime))
  1820. // dttime = DateTime.Parse(DealTime);
  1821. //}
  1822. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  1823. dr["LimitTime"] = lt;
  1824. if (!string.IsNullOrWhiteSpace(lt))
  1825. {
  1826. var ltime = DateTime.Parse(lt);
  1827. TimeSpan ts = ltime.Subtract(dttime);
  1828. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  1829. if (tss < 0) { tss = -tss; }
  1830. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  1831. if (ltime < dttime)
  1832. {
  1833. dr["OverState"] = 3;
  1834. dr["GapTime"] = "超时" + gshsj;
  1835. }
  1836. }
  1837. }
  1838. #endregion
  1839. }
  1840. else
  1841. {
  1842. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  1843. }
  1844. }
  1845. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  1846. {
  1847. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  1848. }
  1849. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  1850. {
  1851. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  1852. }
  1853. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  1854. if (Int32.Parse(strtab) == 0 || Int32.Parse(strtab) == 3)
  1855. {
  1856. btns.Clear();
  1857. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString()
  1858. );
  1859. //if (dr["F_InfoSource"].ToString()=="2580"&& dr["F_WorkState"].ToString()=="7")
  1860. //{
  1861. // if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode.ToUpper() == "GNZY" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "YSZY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "MTDD"|| User.F_RoleCode.ToUpper() == "ZXHWY")
  1862. // {
  1863. // var butts = btns.Find(c => c.key == ButtonGroup.visit().key);
  1864. // if (butts != null)
  1865. // {
  1866. // btns.Remove(butts);
  1867. // btns.Add(ButtonGroup.visits());
  1868. // }
  1869. // }
  1870. //}
  1871. #region 判断是否存在待督办
  1872. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  1873. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  1874. if (recount > 0 && butt != null)
  1875. btns.Remove(butt);
  1876. if (Int32.Parse(strtab) == 0 && state == 7)
  1877. {
  1878. // if (User.F_RoleCode.ToUpper() != "ZXHWY")
  1879. btns.Add(ButtonGroup.turnsee());
  1880. }
  1881. if (Int32.Parse(strtab) == 0 && state == 3)
  1882. {
  1883. if (butt != null)
  1884. btns.Remove(butt);
  1885. }
  1886. if (Int32.Parse(strtab) == 0 && state == 6)
  1887. {
  1888. btns.Add(ButtonGroup.modify());
  1889. }
  1890. #endregion
  1891. }
  1892. else if (Int32.Parse(strtab) == 5)
  1893. {
  1894. btns.Clear();
  1895. btns.Add(ButtonGroup.query());
  1896. btns.Add(ButtonGroup.Signfor());
  1897. btns.Add(ButtonGroup.Sendback());
  1898. btns.Add(ButtonGroup.delayback());
  1899. }
  1900. else if (Int32.Parse(strtab) == -1)
  1901. {
  1902. btns.Clear();
  1903. btns.Add(ButtonGroup.query());
  1904. btns.Add(ButtonGroup.edit());
  1905. }
  1906. else
  1907. {
  1908. btns.Clear();
  1909. btns.Add(ButtonGroup.query());
  1910. }
  1911. dr["Buttons"] = btns;
  1912. }
  1913. var obj = new
  1914. {
  1915. state = "success",
  1916. message = "成功",
  1917. rows = dt,
  1918. total = recordCount
  1919. };
  1920. return Content(obj.ToJson());
  1921. }
  1922. /// <summary>
  1923. /// 获取领导处理列表
  1924. /// </summary>发
  1925. /// <returns></returns>
  1926. //[Authority]
  1927. public ActionResult GetLDDealList(int isdc = 0)
  1928. {
  1929. DataTable dt = new DataTable();
  1930. string sql = " and F_IsDelete=0";
  1931. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  1932. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  1933. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  1934. int islike = RequestString.GetInt("islike", 1);
  1935. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  1936. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  1937. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  1938. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  1939. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  1940. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  1941. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  1942. int source = RequestString.GetInt("source", 0);
  1943. int keyid = RequestString.GetInt("keyid", 0);
  1944. int type = RequestString.GetInt("type", 0);
  1945. int bigtype = RequestString.GetInt("bigtype", 0);
  1946. int smalltype = RequestString.GetInt("smalltype", 0);
  1947. int sourcearea = RequestString.GetInt("sourcearea", 0);
  1948. int deptid = RequestString.GetInt("deptid", 0);
  1949. int isdb = RequestString.GetInt("isdb", -1);
  1950. int issh = RequestString.GetInt("issh", -1);
  1951. int deptlevel = RequestString.GetInt("deptlevel", 0);
  1952. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  1953. int dealtype = RequestString.GetInt("dealtype", -1);//1当即办理,0转办办理,2按时办结,3超期办结
  1954. string order = "ORDER BY F_CreateTime DESC";
  1955. string strpageindex = RequestString.GetQueryString("page");
  1956. int pageindex = 1;
  1957. string strpagesize = RequestString.GetQueryString("pagesize");
  1958. int pagesize = 10;
  1959. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  1960. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  1961. int db = RequestString.GetInt("db", 0);
  1962. int isopen = RequestString.GetInt("isopen", -1);
  1963. int identification = RequestString.GetInt("identification", -1);
  1964. if (identification > -1)
  1965. {
  1966. sql += "and F_Identification='" + identification + "'";
  1967. }
  1968. int cshf = RequestString.GetInt("cshf", -1);
  1969. if (cshf > -1)
  1970. {
  1971. if (cshf == 0)
  1972. sql += "and F_DealTime >F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  1973. else
  1974. sql += "and F_DealTime <F_LimitTime and F_DealTime is not null and F_LimitTime is not null and F_MainDeptId > 0 ";
  1975. }
  1976. if (isopen > -1)
  1977. sql += " and isnull(F_IsOpen,0) =" + isopen;
  1978. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  1979. if (splituser.Trim() != "" && splituser != "undefined")
  1980. {
  1981. sql += " and F_SplitUser = '" + splituser + "' ";
  1982. }
  1983. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  1984. if (assuser.Trim() != "" && assuser != "undefined")
  1985. {
  1986. sql += " and F_AssignUser = '" + assuser + "' ";
  1987. }
  1988. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  1989. {
  1990. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  1991. {
  1992. sql += " and F_DealTime between '" + dealstarttime +
  1993. "' AND '" + dealstrendtime + "'";
  1994. }
  1995. else
  1996. {
  1997. sql += " and F_DealTime>='" + dealstarttime + "' ";
  1998. }
  1999. }
  2000. else
  2001. {
  2002. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  2003. {
  2004. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  2005. }
  2006. }
  2007. if (isdb > -1)
  2008. {
  2009. if (isdb == 0)
  2010. {
  2011. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2012. }
  2013. else
  2014. {
  2015. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2016. }
  2017. }
  2018. switch (strtab)
  2019. {
  2020. case "0"://待处理工单
  2021. order = "order by a.F_Level desc, a.F_CreateTime desc";
  2022. sql += " and (F_IsRelease !='" + 3 + "' or " +
  2023. "F_IsRelease is null) ";
  2024. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2025. if (strstate.Trim() != "" && strstate != "undefined")
  2026. {
  2027. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2028. {
  2029. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + "," + (int)EnumWorkState.resubmit + ") ";
  2030. }
  2031. else if (strstate.Trim() == ((int)EnumWorkState.submit).ToString())
  2032. {
  2033. if (User.F_RoleCode == "ZXHWY")
  2034. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2035. else
  2036. sql += " and F_WorkState in (" + (int)EnumWorkState.submit + "," + (int)EnumWorkState.resubmit + ") ";
  2037. }
  2038. else
  2039. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2040. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2041. if (strstate.Trim() != ((int)EnumWorkState.submit).ToString())
  2042. {
  2043. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2044. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  2045. && User.F_RoleCode != "ZXLD " && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ"
  2046. )
  2047. {
  2048. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2049. }
  2050. else
  2051. {
  2052. sql += ")";
  2053. }
  2054. }
  2055. else
  2056. {
  2057. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2058. {
  2059. sql += " and (F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 "
  2060. + "and F_CreateUser = '" + User.F_UserCode + "') or (select top 1 F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where"
  2061. + " F_State = 1 and F_IsDelete = 0 and T_Bus_AssignedInfo.F_WorkOrderId = T_Bus_WorkOrder.F_WorkOrderId) is null)";
  2062. sql += " and F_WorkState != '9' ";
  2063. }
  2064. if (User.F_RoleCode == "ZXHWY")
  2065. {
  2066. sql += " and F_CreateUser='" + User.F_UserCode + "' ";
  2067. }
  2068. }
  2069. }
  2070. else
  2071. {
  2072. int[] sts = new int[] { (int)EnumWorkState.submit, (int)EnumWorkState.resubmit };
  2073. sql += "and F_WorkState in(1,11) ";
  2074. }
  2075. break;
  2076. case "1"://已交办的工单
  2077. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  2078. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  2079. if (strstate.Trim() != "" && strstate != "undefined")
  2080. {
  2081. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2082. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2083. else
  2084. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2085. // sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2086. }
  2087. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 )";
  2088. sql += " and F_WorkState in (2,3,4,5,8)";
  2089. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  2090. {
  2091. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  2092. }
  2093. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  2094. {
  2095. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  2096. }
  2097. //if (deptid != 0)
  2098. //{
  2099. // //sql += " and ',' + F_MainDeptID + ',' like '%," + deptid.ToString() + ",%'";
  2100. // sql += " and F_MainDeptId = '" + deptid + "'";
  2101. //}
  2102. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG"
  2103. && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2104. {
  2105. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2106. }
  2107. break;
  2108. case "2"://已审核退回的工单
  2109. if (strstate.Trim() != "" && strstate != "undefined")
  2110. {
  2111. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2112. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2113. else
  2114. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2115. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2116. }
  2117. 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 ";
  2118. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2119. {
  2120. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  2121. }
  2122. else
  2123. {
  2124. sql += ")";
  2125. }
  2126. break;
  2127. case "3"://已审核延时的工单
  2128. if (strstate.Trim() != "" && strstate != "undefined")
  2129. {
  2130. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2131. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2132. else
  2133. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2134. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2135. }
  2136. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit>0 ";
  2137. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2138. {
  2139. sql += " and F_AuditUser='" + User.F_UserCode + "')";
  2140. }
  2141. else
  2142. {
  2143. sql += ")";
  2144. }
  2145. break;
  2146. case "4"://已重办的工单
  2147. if (strstate.Trim() != "" && strstate != "undefined")
  2148. {
  2149. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2150. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2151. else
  2152. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2153. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2154. }
  2155. 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 ";
  2156. sql += ")";
  2157. break;
  2158. case "5"://已结案的工单
  2159. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  2160. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  2161. if (issatisfie != -1)
  2162. {
  2163. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_VisitResult b WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_IsSatisfie = " + issatisfie + " and F_Id in (select MAX(F_Id) from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId in (select F_WorkOrderId from T_Bus_VisitResult WITH(NOLOCK) where F_WorkOrderId = b.F_WorkOrderId group by F_WorkOrderId ) ) )";
  2164. }
  2165. if (dealtype > -1)
  2166. {
  2167. if (dealtype == 2)
  2168. {//按时
  2169. sql += " and F_IsResult=0 and isnull(F_DealTime,'')<>'' and F_LimitTime>=F_DealTime ";
  2170. }
  2171. else if (dealtype == 3)
  2172. {//超期
  2173. sql += " and isnull(F_DealTime,'')<>'' and F_LimitTime<F_DealTime ";
  2174. }
  2175. else
  2176. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  2177. }
  2178. sql += " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  2179. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "GNZY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2180. {
  2181. sql += " and F_CloseUser='" + User.F_UserCode + "'";
  2182. }
  2183. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  2184. {
  2185. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  2186. }
  2187. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  2188. {
  2189. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  2190. }
  2191. break;
  2192. case "6"://已督办的工单
  2193. if (strstate.Trim() != "" && strstate != "undefined")
  2194. {
  2195. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2196. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2197. else
  2198. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2199. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2200. }
  2201. 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 ";
  2202. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2203. {
  2204. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2205. }
  2206. else
  2207. {
  2208. sql += ")";
  2209. }
  2210. break;
  2211. case "7"://已监察的工单
  2212. if (strstate.Trim() != "" && strstate != "undefined")
  2213. {
  2214. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2215. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2216. else
  2217. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2218. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2219. }
  2220. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2221. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2222. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG")
  2223. {
  2224. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2225. }
  2226. else
  2227. {
  2228. sql += ")";
  2229. }
  2230. break;
  2231. case "8"://待督办列表
  2232. //20190315需求变动,由督办查看督办列表并监管 20190401 zhengbingbing
  2233. if (strstate.Trim() != "" && strstate != "undefined")
  2234. {
  2235. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2236. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2237. else
  2238. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2239. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2240. }
  2241. 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 ";
  2242. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DDZG")
  2243. {
  2244. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2245. }
  2246. else
  2247. {
  2248. sql += ")";
  2249. }
  2250. break;
  2251. case "9"://重办驳回列表
  2252. sql += " and F_WorkState=" + (int)EnumWorkState.rejload;
  2253. 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)";
  2254. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2255. {
  2256. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2257. }
  2258. sql += ")";
  2259. break;
  2260. case "10"://
  2261. sql += " and (F_IsRelease !='" + 3 + "' or " +
  2262. "F_IsRelease is null) ";
  2263. sql += " and F_WorkState in(1,11)";
  2264. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0and (F_Content != '推诿工单' or F_Content is null ) and F_State!=2)";
  2265. // sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback b WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_Type = 3 and F_IsAudit = 1 ) ";
  2266. // sql += "and F_WorkOrderID in( select b.F_WorkOrderID from T_Bus_Feedback b WITH(NOLOCK) inner join T_Bus_Feedback a on a.F_Id = b.F_Id and a .F_Id = (select max(t1.F_Id) from T_Bus_Feedback t1 where t1.F_WorkOrderId = b.F_WorkOrderId) where b.F_State = 1 and b.F_IsDelete = 0 and b.F_Type = 3 and b.F_IsAudit = 1 ) ";
  2267. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLD")
  2268. {
  2269. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2270. }
  2271. break;
  2272. case "11"://
  2273. sql += " and F_WorkState =14";
  2274. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2275. {
  2276. sql += " and F_CreateUser='" + User.F_UserCode + "'";
  2277. }
  2278. if (db > -1)
  2279. {
  2280. if (db == 0)
  2281. {
  2282. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  2283. }
  2284. else
  2285. {
  2286. sql += "and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0 and (F_Content != '推诿工单' or F_Content is null ) and F_State not in (0,2) )";
  2287. }
  2288. }
  2289. break;
  2290. }
  2291. if (strworkid.Trim() != "" && strworkid != "undefined")
  2292. {
  2293. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  2294. }
  2295. if (strname.Trim() != "" && strname != "undefined")
  2296. {
  2297. sql += " and F_CusName like '%" + strname + "%' ";
  2298. }
  2299. if (islike > 0)
  2300. {
  2301. if (strtel.Trim() != "" && strtel != "undefined")
  2302. {
  2303. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  2304. }
  2305. }
  2306. else
  2307. {
  2308. if (strtel.Trim() != "" && strtel != "undefined")
  2309. {
  2310. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  2311. }
  2312. }
  2313. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  2314. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  2315. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  2316. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  2317. {
  2318. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  2319. }
  2320. if (Result.Trim() != "" && Result != "undefined")
  2321. {
  2322. sql += " and F_Result like '%" + Result + "%' ";
  2323. }
  2324. if (ComContent.Trim() != "" && ComContent != "undefined")
  2325. {
  2326. sql += " and F_ComContent like '%" + ComContent + "%' ";
  2327. }
  2328. if (strkey.Trim() != "" && strkey != "undefined")
  2329. {
  2330. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  2331. " or F_Result like '%" + strkey + "%' ) ";
  2332. }
  2333. #region 坐席&调度员
  2334. if (strusercode.Trim() != "" && strusercode != "undefined")
  2335. {//坐席
  2336. var usercode = strusercode.Trim().Split(',');
  2337. var newusercode = "";
  2338. foreach (var item in usercode)
  2339. {
  2340. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2341. newusercode += "'" + item + "',";
  2342. }
  2343. newusercode = newusercode.Trim(',');
  2344. if (newusercode.Trim() != "" && newusercode != "undefined")
  2345. {
  2346. sql += " and F_CreateUser in (" + newusercode + ") ";
  2347. }
  2348. }
  2349. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  2350. {//调度员
  2351. var ddusercode = strddusercode.Trim().Split(',');
  2352. var newusercode = "";
  2353. foreach (var item in ddusercode)
  2354. {
  2355. if (!string.IsNullOrWhiteSpace(item.Trim()))
  2356. newusercode += "'" + item + "',";
  2357. }
  2358. newusercode = newusercode.Trim(',');
  2359. if (newusercode.Trim() != "" && newusercode != "undefined")
  2360. {
  2361. sql += " and F_AssignUser in(" + newusercode + ") ";
  2362. }
  2363. }
  2364. //if (strusercode.Trim() != "" && strusercode != "undefined")
  2365. //{
  2366. // sql += " and F_CreateUser = '" + strusercode + "' ";
  2367. //}
  2368. #endregion
  2369. if (source != 0)
  2370. {
  2371. sql += " and F_InfoSource = '" + source + "' ";
  2372. }
  2373. string sqlwheres = ""; string value = "";
  2374. if (keyid != 0)
  2375. {
  2376. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  2377. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  2378. // " or F_Key='" + keyid + "' )";
  2379. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  2380. }
  2381. if (type != 0)
  2382. {
  2383. sql += " and F_InfoType = '" + type + "' ";
  2384. }
  2385. if (bigtype != 0)
  2386. {
  2387. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  2388. }
  2389. if (smalltype != 0)
  2390. {
  2391. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  2392. }
  2393. if (sourcearea != 0)
  2394. {
  2395. sql += " and F_SourceArea = '" + sourcearea + "' ";
  2396. }
  2397. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  2398. {
  2399. sql += " and F_CreateTime>='" + strstarttime + "' ";
  2400. }
  2401. if (strendtime.Trim() != "" && strendtime != "undefined")
  2402. {
  2403. sql += " and F_CreateTime<='" + strendtime + "' ";
  2404. }
  2405. if (deptid != 0 && strtab != "1")
  2406. {
  2407. if (deptlevel == 0)
  2408. {
  2409. 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 ";
  2410. //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 ";
  2411. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2412. }
  2413. else
  2414. {
  2415. //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 ";
  2416. 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 ";
  2417. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  2418. }
  2419. }
  2420. if (deptid != 0)
  2421. {
  2422. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2423. }
  2424. else
  2425. {
  2426. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  2427. {
  2428. deptid = User.F_DeptId;
  2429. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  2430. }
  2431. }
  2432. if (strpageindex.Trim() != "")
  2433. {
  2434. pageindex = Convert.ToInt32(strpageindex);
  2435. }
  2436. if (strpagesize.Trim() != "")
  2437. {
  2438. pagesize = Convert.ToInt32(strpagesize);
  2439. }
  2440. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  2441. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  2442. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  2443. string cols = "";
  2444. if (strtab == "10")
  2445. {
  2446. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification,F_IsRelease,F_InfoSource";
  2447. }
  2448. else
  2449. {
  2450. cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName, dbo.GetDeptNames(F_MainDeptId)as DeptNames,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_ComContent,F_Identification,F_IsRelease,F_InfoSource";
  2451. }
  2452. if (isdc > 0)
  2453. {
  2454. var top = " "; var orderby = " order by F_CreateTime";
  2455. if (sql == " and F_IsDelete=0 ")
  2456. {
  2457. top = " top 1000 "; orderby += " desc ";
  2458. }
  2459. //20190715调整导出字段 zhengbingbing
  2460. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  2461. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  2462. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  2463. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  2464. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  2465. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  2466. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  2467. if (msg == "")
  2468. {
  2469. return Success("导出成功");
  2470. }
  2471. else
  2472. {
  2473. return Error("导出失败");
  2474. }
  2475. }
  2476. int recordCount = 0;
  2477. dt = BLL.PagerBLL.GetListPager(
  2478. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  2479. "F_Id",
  2480. cols,
  2481. sql,
  2482. order,
  2483. pagesize,
  2484. pageindex,
  2485. true,
  2486. out recordCount);
  2487. #region 声音文件
  2488. dt.Columns.Add("DeptName", typeof(string));//交办单位
  2489. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  2490. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  2491. dt.Columns.Add("OverState", typeof(string));//超时状态
  2492. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  2493. dt.Columns.Add("GapTime", typeof(string));//时间差
  2494. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  2495. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  2496. if (strtab == "10")
  2497. {
  2498. dt.Columns.Add("DeptNames", typeof(string));//退回部门
  2499. dt.Columns.Add("Backreason", typeof(object));//退回原因
  2500. }
  2501. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  2502. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  2503. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  2504. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  2505. foreach (DataRow dr in dt.Rows)
  2506. {
  2507. //获取最新交办信息
  2508. string iszbdw = "0";
  2509. int state = Int32.Parse(dr["F_WorkState"].ToString());
  2510. if (state > 1 && state != 11)
  2511. {
  2512. 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";
  2513. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  2514. if (dtjb.Rows.Count > 0)
  2515. {
  2516. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  2517. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  2518. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  2519. {
  2520. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  2521. }
  2522. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  2523. #region
  2524. #endregion
  2525. #region
  2526. //if (state < 6 || state == 8)
  2527. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  2528. {
  2529. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2530. dr["LimitTime"] = lt;
  2531. if (!string.IsNullOrWhiteSpace(lt))
  2532. {
  2533. var ltime = DateTime.Parse(lt);
  2534. if (ltime > DateTime.Now)
  2535. {
  2536. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  2537. var SYSJ = DbHelperSQL.GetSingle(SY);
  2538. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  2539. {
  2540. try
  2541. {
  2542. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  2543. }
  2544. catch
  2545. {
  2546. }
  2547. }
  2548. }
  2549. TimeSpan ts = ltime.Subtract(DateTime.Now);
  2550. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2551. if (tss < 0) { tss = -tss; }
  2552. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2553. if (ltime > DateTime.Now)
  2554. {
  2555. if (configcs != null)
  2556. {
  2557. int cs = Int32.Parse(configcs.F_ParamValue);
  2558. if (ts.TotalHours > cs)
  2559. {
  2560. dr["OverState"] = 1;
  2561. }
  2562. else
  2563. {
  2564. dr["OverState"] = 2;
  2565. }
  2566. }
  2567. dr["GapTime"] = "剩余" + gshsj;
  2568. }
  2569. else
  2570. {
  2571. dr["OverState"] = 3;
  2572. dr["GapTime"] = "超时" + gshsj;
  2573. }
  2574. }
  2575. }
  2576. if (state == (int)EnumWorkState.finish)
  2577. {
  2578. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  2579. var dttime = DateTime.Now;
  2580. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  2581. else
  2582. {
  2583. var dealTime = dr["F_CloseTime"].ToString();//关闭工单时间
  2584. if (!string.IsNullOrWhiteSpace(dealTime)) { dttime = DateTime.Parse(dealTime); }
  2585. }
  2586. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  2587. dr["LimitTime"] = lt;
  2588. if (!string.IsNullOrWhiteSpace(lt))
  2589. {
  2590. var ltime = DateTime.Parse(lt);
  2591. TimeSpan ts = ltime.Subtract(dttime);
  2592. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  2593. if (tss < 0) { tss = -tss; }
  2594. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  2595. if (ltime < dttime)
  2596. {
  2597. dr["OverState"] = 3;
  2598. dr["GapTime"] = "超时" + gshsj;
  2599. }
  2600. }
  2601. }
  2602. #endregion
  2603. }
  2604. else
  2605. {
  2606. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  2607. }
  2608. }
  2609. if (strtab == "10")
  2610. {
  2611. string strtu = " select top 1 dbo.GetDeptNames(F_CreateDeptId) as DeptNames ,F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type = 3 and F_IsAudit = 1 and F_WorkOrderId = '" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  2612. var tu = DbHelperSQL.Query(strtu).Tables[0];
  2613. if (tu.Rows.Count > 0)
  2614. {
  2615. dr["DeptNames"] = tu.Rows[0]["DeptNames"].ToString();
  2616. dr["Backreason"] = tu.Rows[0]["F_Result"].ToString();
  2617. }
  2618. }
  2619. else
  2620. {
  2621. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  2622. {
  2623. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  2624. }
  2625. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  2626. {
  2627. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  2628. }
  2629. }
  2630. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  2631. if (Int32.Parse(strtab) <= 1 || Int32.Parse(strtab) == 11 || Int32.Parse(strtab) == 10)
  2632. {
  2633. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, "", 0, dr["F_InfoSource"].ToString(), issh);
  2634. #region 判断是否存在待督办
  2635. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  2636. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  2637. if (recount > 0 && butt != null)
  2638. btns.Remove(butt);
  2639. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "DDZG")
  2640. {
  2641. if (Int32.Parse(strtab) != 11)
  2642. btns.Add(ButtonGroup.turnsee());
  2643. }
  2644. if (User.F_RoleCode.ToUpper() == "MTDD" && strtab == "0" && issh == 2)
  2645. {
  2646. btns.Add(ButtonGroup.AuditDispatch());
  2647. btns.Add(ButtonGroup.Failed());
  2648. var butt1 = btns.Find(c => c.key == ButtonGroup.reject().key);
  2649. if (butt1 != null)
  2650. btns.Remove(butt1);
  2651. var butt2 = btns.Find(c => c.key == ButtonGroup.reload().key);
  2652. if (butt2 != null)
  2653. btns.Remove(butt2);
  2654. }
  2655. if (strtab == "0" && issh == 2)
  2656. {
  2657. dr["DeptName"] = DbHelperSQL.GetSingle(" select [dbo].[GetDeptNames]( (select top 1 F_MainDeptId from T_Bus_ToExamine where F_WorkOrderId ='" + dr["F_WorkOrderId"].ToString() + "' and F_IsDelete = 0 and F_MainDeptId is not null and F_State = 0 and F_IsDelete = 0 and F_AssignedId = 0and F_MainDeptId != '' order by F_ID desc))");
  2658. }
  2659. #endregion
  2660. }
  2661. else
  2662. {
  2663. btns.Clear();
  2664. if (Int32.Parse(strtab) == 8)
  2665. btns = ButtonGroup.GetButtons("12", User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw);
  2666. else
  2667. btns.Add(ButtonGroup.query());
  2668. if (Int32.Parse(strtab) != 4)
  2669. {
  2670. if (state == 9)
  2671. {
  2672. if (User.F_RoleCode.ToUpper() == "GNZY")
  2673. {
  2674. btns.Add(ButtonGroup.modify());
  2675. }
  2676. if (User.F_RoleCode.ToUpper() == "ZJZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode.ToUpper() == "GLY" || User.F_RoleCode.ToUpper() == "DDZG" || User.F_RoleCode.ToUpper() == "ZXLD" || User.F_RoleCode.ToUpper() == "ZXHWY")
  2677. {
  2678. //if (dr["F_CloseTime"] != null && dr["F_CloseTime"].ToString() != "")
  2679. //{
  2680. // var closedttime = DateTime.Parse(dr["F_CloseTime"].ToString());
  2681. // TimeSpan ts = DateTime.Now - closedttime;
  2682. // if (ts.TotalDays < 20)
  2683. // {
  2684. // btns.Add(ButtonGroup.subreload());
  2685. // }
  2686. //}
  2687. //btns.Add(ButtonGroup.Unsuccessful ());
  2688. if (User.F_RoleCode.ToUpper() != "ZXHWY")
  2689. btns.Add(ButtonGroup.modify());
  2690. }
  2691. }
  2692. }
  2693. }
  2694. dr["Buttons"] = btns;
  2695. }
  2696. #endregion
  2697. var obj = new
  2698. {
  2699. state = "success",
  2700. message = "成功",
  2701. rows = dt,
  2702. total = recordCount
  2703. };
  2704. return Content(obj.ToJson());
  2705. }
  2706. /// <summary>
  2707. /// 获取单位处理列表
  2708. /// </summary>
  2709. /// <returns></returns>
  2710. //[Authority]
  2711. public ActionResult GetDWDealList(int isdc = 0)
  2712. {
  2713. DataTable dt = new DataTable();
  2714. string sql = " and F_IsDelete=0";
  2715. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  2716. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  2717. int islike = RequestString.GetInt("islike", 1);
  2718. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  2719. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  2720. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  2721. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  2722. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  2723. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  2724. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  2725. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  2726. int source = RequestString.GetInt("source", 0);
  2727. int keyid = RequestString.GetInt("keyid", 0);
  2728. int type = RequestString.GetInt("type", 0);
  2729. int bigtype = RequestString.GetInt("bigtype", 0);
  2730. int smalltype = RequestString.GetInt("smalltype", 0);
  2731. int sourcearea = RequestString.GetInt("sourcearea", 0);
  2732. int deptid = RequestString.GetInt("deptid", 0);
  2733. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  2734. int deptlevel = RequestString.GetInt("deptlevel", 0);
  2735. int distribute = RequestString.GetInt("distribute", -1);//0未派单1已派单
  2736. int blstate = RequestString.GetInt("blstate", 0);//办理状态0办理中1已办理
  2737. int isys = RequestString.GetInt("isys", -1);
  2738. string strpageindex = RequestString.GetQueryString("page");
  2739. int pageindex = 1;
  2740. string strpagesize = RequestString.GetQueryString("pagesize");
  2741. int pagesize = 10;
  2742. string order = "ORDER BY a.F_LimitTime";
  2743. #region 模块
  2744. switch (strtab)
  2745. {
  2746. case "0"://待处理工单
  2747. order = "order by F_Level desc, F_CreateTime desc ";
  2748. int isyq = RequestString.GetInt("isyq", -1);
  2749. if (strstate.Trim() != "" && strstate != "undefined")
  2750. {
  2751. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2752. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2753. else
  2754. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2755. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2756. }
  2757. else
  2758. {
  2759. if (distribute != 0)
  2760. {
  2761. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  2762. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  2763. }
  2764. }
  2765. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  2766. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ")
  2767. {
  2768. if (distribute > -1)
  2769. {
  2770. if (distribute == 0)
  2771. {
  2772. //提交重办也包含在待办列表
  2773. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and (F_IsNext =" + distribute + " or F_IsNext='' )and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )and (F_WorkState in (2,4) or (F_WorkState=8 and F_Identification=0)) ";
  2774. if (isys > -1)
  2775. {
  2776. if (isys == 0)
  2777. {
  2778. sql += "and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  2779. }
  2780. else if (isys == 1)
  2781. {
  2782. sql += "and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)";
  2783. }
  2784. }
  2785. }
  2786. else
  2787. {
  2788. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext != '0' and F_IsNext !='' and F_IsNext <3 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  2789. }
  2790. }
  2791. else
  2792. {
  2793. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2794. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)";
  2795. }
  2796. if (isyq != -1)
  2797. {
  2798. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  2799. }
  2800. else
  2801. {
  2802. sql += ")";
  2803. }
  2804. }
  2805. break;
  2806. case "1"://已查收的工单
  2807. if (strstate.Trim() != "" && strstate != "undefined")
  2808. {
  2809. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2810. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2811. else
  2812. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2813. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2814. }
  2815. 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 ";
  2816. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2817. {
  2818. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2819. }
  2820. else
  2821. {
  2822. sql += ")";
  2823. }
  2824. break;
  2825. case "2"://已申请退回的工单
  2826. if (strstate.Trim() != "" && strstate != "undefined")
  2827. {
  2828. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2829. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2830. else
  2831. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2832. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2833. }
  2834. 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 ";
  2835. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  2836. {
  2837. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2838. }
  2839. else
  2840. {
  2841. sql += ")";
  2842. }
  2843. break;
  2844. case "3"://已申请延时的工单
  2845. if (strstate.Trim() != "" && strstate != "undefined")
  2846. {
  2847. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2848. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2849. else
  2850. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2851. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2852. }
  2853. else
  2854. {
  2855. if (blstate == 0)
  2856. {
  2857. sql += " and F_WorkState in (1,2,3,4,5,8,10,11,13) ";
  2858. }
  2859. else
  2860. {
  2861. sql += " and F_WorkState in (6,7,9) ";
  2862. }
  2863. }
  2864. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 ";
  2865. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  2866. {
  2867. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2868. }
  2869. else
  2870. {
  2871. sql += ")";
  2872. }
  2873. break;
  2874. case "4"://已办理的工单
  2875. if (strstate.Trim() != "" && strstate != "undefined")
  2876. {
  2877. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2878. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2879. else
  2880. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2881. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2882. }
  2883. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) and F_WorkState !='8' ";
  2884. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2885. {
  2886. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2887. }
  2888. else
  2889. {
  2890. sql += ")";
  2891. }
  2892. break;
  2893. case "5"://被督办的工单
  2894. if (strstate.Trim() != "" && strstate != "undefined")
  2895. {
  2896. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2897. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2898. else
  2899. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2900. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2901. }
  2902. 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 ";
  2903. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2904. {
  2905. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2906. }
  2907. else
  2908. {
  2909. sql += ")";
  2910. }
  2911. break;
  2912. case "6"://被监察的工单
  2913. if (strstate.Trim() != "" && strstate != "undefined")
  2914. {
  2915. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  2916. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  2917. else
  2918. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2919. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  2920. }
  2921. //sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord where F_State=1 and F_IsDelete=0 and F_Type =2 ";
  2922. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_IsDelete=0 and F_Type =2 ";
  2923. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2924. {
  2925. sql += " and F_DeptId='" + User.F_DeptId + "')";
  2926. }
  2927. else
  2928. {
  2929. sql += ")";
  2930. }
  2931. break;
  2932. case "7"://延时审核中的工单
  2933. sql += " and F_WorkState = '" + (int)EnumWorkState.auditdelay + "' ";
  2934. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "ZXLDGLY" && User.F_RoleCode != "ZXLDGLYGLY" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXLD")
  2935. {
  2936. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  2937. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  2938. }
  2939. break;
  2940. case "8"://退回审核中的工单
  2941. sql += " and F_WorkState = '" + (int)EnumWorkState.auditreback + "' ";
  2942. 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,'')=''";
  2943. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2944. {
  2945. sql += " and F_SureUser='" + User.F_UserCode + "')";
  2946. }
  2947. else
  2948. {
  2949. sql += ")";
  2950. }
  2951. break;
  2952. case "9"://需履职界定表
  2953. sql += " and F_WorkState in ('" + (int)EnumWorkState.visit + "','" + (int)EnumWorkState.resubmit + "','" + (int)EnumWorkState.reload + "','" + (int)EnumWorkState.rejload + "','" + (int)EnumWorkState.finish + "' )";
  2954. sql += " and F_WorkOrderID not in(select F_WorkOrderID from T_Bus_PerformDuties WITH(NOLOCK) where F_IsDelete=0 and F_State=1 )";
  2955. 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 ";
  2956. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2957. {
  2958. sql += " and F_MainDeptId='" + User.F_DeptId + "' ";
  2959. }
  2960. sql += "))";
  2961. break;
  2962. case "10"://履职界定待审核表
  2963. 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 )";
  2964. break;
  2965. case "11"://履职界定已审核表
  2966. 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 )";
  2967. break;
  2968. case "12"://退回重办(去掉提交重办)
  2969. sql += " and F_WorkState = '" + (int)EnumWorkState.reload + "' and (F_Identification=1 or F_Identification=2)";
  2970. //if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG")
  2971. //{
  2972. // sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2973. // + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))";
  2974. //}
  2975. sql += "and F_WorkOrderID not in (select F_WorkOrderID from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_State !=2)";
  2976. // sql += "and (F_Identification!=0 or F_Identification is null) ";
  2977. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2978. {
  2979. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  2980. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)" +
  2981. "and ISNULL(F_FeedbackTime, '')='' and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) and F_MainDeptId = " + User.F_DeptId;
  2982. }
  2983. break;
  2984. case "13"://下级单位退回
  2985. // int[] st = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing };
  2986. sql += " and F_WorkState in (2,4,8)";
  2987. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2988. {
  2989. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext =4 and F_MainDeptId in (" + User.F_DeptId + ") and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  2990. }
  2991. break;
  2992. case "14"://正在办理
  2993. sql += " and F_WorkState in (2,4,8)";
  2994. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  2995. {
  2996. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext != '0' and F_IsNext !='' and F_IsNext <3 and F_MainDeptId =" + User.F_DeptId + " and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ))";
  2997. }
  2998. break;
  2999. case "15"://已办理提交
  3000. sql += " and F_WorkState in (4,8)";
  3001. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3002. {
  3003. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext = 3 and F_MainDeptId =" + User.F_DeptId + " and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3004. }
  3005. else
  3006. {
  3007. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')=''and F_IsNext = 3 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3008. }
  3009. break;
  3010. case "16"://退回被拒绝
  3011. sql += " and F_WorkState in (4,8)";
  3012. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3013. {
  3014. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsNext =0 and F_IsSure =4 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id )) ";
  3015. }
  3016. break;
  3017. case "17"://延时被拒绝
  3018. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG" && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "DDZG")
  3019. {
  3020. sql += " and F_WorkState in (4,8)";
  3021. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure =5 and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) )";
  3022. }
  3023. else
  3024. {
  3025. sql += "and F_WorkOrderId in( select F_WorkOrderId from T_Bus_AssignedInfo as a WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and ISNULL(F_FeedbackTime, '')='' and F_IsSure =5 and F_IsNext =0 and not exists(select 1 from T_Bus_AssignedInfo WITH(NOLOCK) where F_WorkOrderId = a.F_WorkOrderId and F_Id > a.F_Id ) )";
  3026. }
  3027. break;
  3028. case "18"://已办理未果
  3029. sql += " and F_WorkState in(6,7,9)";
  3030. sql += " and F_IsProResult = '2' ";
  3031. 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) ";
  3032. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3033. {
  3034. sql += " and F_MainDeptId='" + User.F_DeptId + "')";
  3035. }
  3036. else
  3037. {
  3038. sql += ")";
  3039. }
  3040. break;
  3041. }
  3042. #endregion
  3043. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  3044. if (splituser.Trim() != "" && splituser != "undefined")
  3045. {
  3046. sql += " and F_SplitUser = '" + splituser + "' ";
  3047. }
  3048. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  3049. if (assuser.Trim() != "" && assuser != "undefined")
  3050. {
  3051. sql += " and F_AssignUser = '" + assuser + "' ";
  3052. }
  3053. #region 条件
  3054. if (strworkid.Trim() != "" && strworkid != "undefined")
  3055. {
  3056. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3057. }
  3058. if (strname.Trim() != "" && strname != "undefined")
  3059. {
  3060. sql += " and F_CusName like '%" + strname + "%' ";
  3061. }
  3062. if (islike > 0)
  3063. {
  3064. if (strtel.Trim() != "" && strtel != "undefined")
  3065. {
  3066. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3067. }
  3068. }
  3069. else
  3070. {
  3071. if (strtel.Trim() != "" && strtel != "undefined")
  3072. {
  3073. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3074. }
  3075. }
  3076. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3077. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3078. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3079. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3080. {
  3081. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3082. }
  3083. if (Result.Trim() != "" && Result != "undefined")
  3084. {
  3085. sql += " and F_Result like '%" + Result + "%' ";
  3086. }
  3087. if (ComContent.Trim() != "" && ComContent != "undefined")
  3088. {
  3089. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3090. }
  3091. if (strkey.Trim() != "" && strkey != "undefined")
  3092. {
  3093. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3094. " or F_Result like '%" + strkey + "%' ) ";
  3095. }
  3096. #region 坐席&调度员
  3097. if (strusercode.Trim() != "" && strusercode != "undefined")
  3098. {//坐席
  3099. var usercode = strusercode.Trim().Split(',');
  3100. var newusercode = "";
  3101. foreach (var item in usercode)
  3102. {
  3103. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3104. newusercode += "'" + item + "',";
  3105. }
  3106. newusercode = newusercode.Trim(',');
  3107. if (newusercode.Trim() != "" && newusercode != "undefined")
  3108. {
  3109. sql += " and F_CreateUser in (" + newusercode + ") ";
  3110. }
  3111. }
  3112. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3113. {//调度员
  3114. var ddusercode = strddusercode.Trim().Split(',');
  3115. var newusercode = "";
  3116. foreach (var item in ddusercode)
  3117. {
  3118. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3119. newusercode += "'" + item + "',";
  3120. }
  3121. newusercode = newusercode.Trim(',');
  3122. if (newusercode.Trim() != "" && newusercode != "undefined")
  3123. {
  3124. sql += " and F_AssignUser in(" + newusercode + ") ";
  3125. }
  3126. }
  3127. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3128. //{
  3129. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3130. //}
  3131. #endregion
  3132. if (source != 0)
  3133. {
  3134. sql += " and F_InfoSource = '" + source + "' ";
  3135. }
  3136. string sqlwhere = ""; string value = "";
  3137. if (keyid != 0)
  3138. {
  3139. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3140. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3141. // " or F_Key='" + keyid + "' )";
  3142. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  3143. }
  3144. if (type != 0)
  3145. {
  3146. sql += " and F_InfoType = '" + type + "' ";
  3147. }
  3148. if (bigtype != 0)
  3149. {
  3150. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3151. }
  3152. if (smalltype != 0)
  3153. {
  3154. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3155. }
  3156. if (sourcearea != 0)
  3157. {
  3158. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3159. }
  3160. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3161. {
  3162. if (strendtime.Trim() != "" && strendtime != "undefined")
  3163. {
  3164. sql += " and F_CreateTime between '" + strstarttime + "' and '" + strendtime + "'";
  3165. }
  3166. else
  3167. {
  3168. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3169. }
  3170. }
  3171. if (deptid != 0)
  3172. {
  3173. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3174. }
  3175. if (ejdeptid > 0)
  3176. {
  3177. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  3178. }
  3179. if (strpageindex.Trim() != "")
  3180. {
  3181. pageindex = Convert.ToInt32(strpageindex);
  3182. }
  3183. if (strpagesize.Trim() != "")
  3184. {
  3185. pagesize = Convert.ToInt32(strpagesize);
  3186. }
  3187. #endregion
  3188. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3189. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3190. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3191. string cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptNames(F_MainDeptID3) AS EJDeptName,F_CloseTime,F_IsRelease,F_Identification,F_IsRelease,F_InfoSource";
  3192. if (isdc > 0)
  3193. {
  3194. var top = " "; var orderby = " order by F_CreateTime";
  3195. if (sql == " and F_IsDelete=0 ")
  3196. {
  3197. top = " top 1000 "; orderby += " desc ";
  3198. }
  3199. //20190715调整导出字段 zhengbingbing
  3200. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  3201. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  3202. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  3203. + " F_Result 办理结果 "
  3204. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  3205. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3206. if (msg == "")
  3207. {
  3208. return Success("导出成功");
  3209. }
  3210. else
  3211. {
  3212. return Error("导出失败");
  3213. }
  3214. }
  3215. int recordCount = 0;
  3216. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  3217. dt = BLL.PagerBLL.GetListPager(
  3218. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  3219. "F_Id",
  3220. cols,
  3221. sql,
  3222. order,
  3223. pagesize,
  3224. pageindex,
  3225. true,
  3226. out recordCount);
  3227. //二级单位待办事项、正在办理页面中,工单排列按照剩余时长来排序,超期最久的放在最上边,离办理时限最远的放在最后
  3228. #region 声音文件
  3229. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3230. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3231. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3232. dt.Columns.Add("OverState", typeof(string));//超时状态
  3233. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3234. dt.Columns.Add("GapTime", typeof(string));//时间差
  3235. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3236. dt.Columns.Add("PDState", typeof(string));//派单状态
  3237. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3238. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3239. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3240. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3241. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3242. foreach (DataRow dr in dt.Rows)
  3243. {
  3244. //获取最新交办信息
  3245. string iszbdw = "0";
  3246. string ispd = "";
  3247. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3248. if (state > 1)
  3249. {
  3250. 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";
  3251. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3252. if (dtjb.Rows.Count > 0)
  3253. {
  3254. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3255. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3256. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3257. {
  3258. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3259. }
  3260. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3261. #region
  3262. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3263. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3264. //if (deptinfo != null)
  3265. //{
  3266. // if (did == User.F_DeptId) { iszbdw = "1"; }
  3267. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3268. //}
  3269. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3270. //{
  3271. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3272. // string dns = string.Empty;
  3273. // foreach (string strid in strids)
  3274. // {
  3275. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3276. // if (dinfo != null)
  3277. // {
  3278. // if (string.IsNullOrEmpty(dns))
  3279. // {
  3280. // dns = dinfo.F_DeptName;//交办单位
  3281. // }
  3282. // else
  3283. // {
  3284. // dns += "," + dinfo.F_DeptName;//交办单位
  3285. // }
  3286. // }
  3287. // }
  3288. // dr["OtherDeptName"] = dns;
  3289. //}
  3290. #endregion
  3291. #region
  3292. //if (state < 6 || state == 8)
  3293. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3294. {
  3295. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3296. dr["LimitTime"] = lt;
  3297. if (!string.IsNullOrWhiteSpace(lt))
  3298. {
  3299. var ltime = DateTime.Parse(lt);
  3300. if (ltime > DateTime.Now)
  3301. {
  3302. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WITH(NOLOCK) WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  3303. var SYSJ = DbHelperSQL.GetSingle(SY);
  3304. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3305. {
  3306. try
  3307. {
  3308. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3309. }
  3310. catch
  3311. {
  3312. }
  3313. }
  3314. }
  3315. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3316. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3317. if (tss < 0) { tss = -tss; }
  3318. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3319. if (ltime > DateTime.Now)
  3320. {
  3321. if (configcs != null)
  3322. {
  3323. int cs = Int32.Parse(configcs.F_ParamValue);
  3324. if (ts.TotalHours > cs)
  3325. {
  3326. dr["OverState"] = 1;
  3327. }
  3328. else
  3329. {
  3330. dr["OverState"] = 2;
  3331. }
  3332. }
  3333. dr["GapTime"] = "剩余" + gshsj;
  3334. }
  3335. else
  3336. {
  3337. dr["OverState"] = 3;
  3338. dr["GapTime"] = "超时" + gshsj;
  3339. }
  3340. }
  3341. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3342. dr["PDState"] = ispd;
  3343. }
  3344. if (state == (int)EnumWorkState.finish)
  3345. {
  3346. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3347. var dttime = DateTime.Now;
  3348. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3349. else
  3350. {
  3351. var DealTime = dr["F_CloseTime"].ToString();
  3352. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3353. }
  3354. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3355. dr["LimitTime"] = lt;
  3356. if (!string.IsNullOrWhiteSpace(lt))
  3357. {
  3358. var ltime = DateTime.Parse(lt);
  3359. TimeSpan ts = ltime.Subtract(dttime);
  3360. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3361. if (tss < 0) { tss = -tss; }
  3362. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3363. if (ltime < dttime)
  3364. {
  3365. dr["OverState"] = 3;
  3366. dr["GapTime"] = "超时" + gshsj;
  3367. }
  3368. }
  3369. }
  3370. #endregion
  3371. }
  3372. else
  3373. {
  3374. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3375. }
  3376. }
  3377. if (User.F_RoleCode.ToUpper() == "WLDW" || User.F_RoleCode.ToUpper() == "EJWLDW")
  3378. {
  3379. if (dr["EJDeptName"] != null && dr["EJDeptName"].ToString() != "")
  3380. dr["DeptName"] = dr["EJDeptName"].ToString();
  3381. }
  3382. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3383. {
  3384. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  3385. }
  3386. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3387. {
  3388. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3389. }
  3390. //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";
  3391. //var dtpd = DbHelperSQL.Query(sqlpd).Tables[0];
  3392. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3393. if (Int32.Parse(strtab) < 1 || Int32.Parse(strtab) == 16 || Int32.Parse(strtab) == 17)
  3394. {
  3395. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd, -1, dr["F_InfoSource"].ToString());
  3396. #region 判断是否存在待督办
  3397. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3398. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3399. if (recount > 0 && butt != null)
  3400. btns.Remove(butt);
  3401. #endregion
  3402. }
  3403. else
  3404. {
  3405. if (Int32.Parse(strtab) == 9)
  3406. {//需履职界定
  3407. btns.Add(ButtonGroup.query());
  3408. btns.Add(ButtonGroup.perform());
  3409. }
  3410. else if (Int32.Parse(strtab) == 10)
  3411. {//履职界定待审核
  3412. btns.Add(ButtonGroup.query());
  3413. btns.Add(ButtonGroup.performaudit());
  3414. }
  3415. else if (Int32.Parse(strtab) == 7)
  3416. {//履职界定待审核
  3417. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3418. }
  3419. else if (Int32.Parse(strtab) == 12)
  3420. {//退回重办
  3421. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), "", "", 0, dr["F_InfoSource"].ToString());
  3422. var reback = btns.Find(c => c.key == ButtonGroup.reback().key);
  3423. if (reback != null)
  3424. btns.Remove(reback);
  3425. }
  3426. else if (Int32.Parse(strtab) == 14)
  3427. {//正在办理
  3428. btns.Add(ButtonGroup.query());
  3429. btns.Add(ButtonGroup.withdraw());
  3430. }
  3431. else if (Int32.Parse(strtab) == 13)
  3432. {//下级单位退回
  3433. btns.Add(ButtonGroup.query());
  3434. btns.Add(ButtonGroup.split());//转派
  3435. // btns.Add(ButtonGroup.reback());//
  3436. btns.Add(ButtonGroup.turndown());
  3437. }
  3438. else if (Int32.Parse(strtab) == 15)
  3439. {//已办理提交
  3440. if (ispd == "3")
  3441. {
  3442. btns.Add(ButtonGroup.auditdeal());
  3443. }
  3444. btns.Add(ButtonGroup.feedback());//
  3445. btns.Add(ButtonGroup.redo());//
  3446. btns.Add(ButtonGroup.query());
  3447. }
  3448. else
  3449. btns.Add(ButtonGroup.query());
  3450. }
  3451. dr["Buttons"] = btns;
  3452. }
  3453. #endregion
  3454. var obj = new
  3455. {
  3456. state = "success",
  3457. message = "成功",
  3458. rows = dt,
  3459. total = recordCount
  3460. };
  3461. return Content(obj.ToJson());
  3462. }
  3463. /// <summary>
  3464. /// 添加工单信息
  3465. /// </summary>
  3466. /// <returns></returns>
  3467. //[Authority]
  3468. public ActionResult AddWorkOrderOper()
  3469. {
  3470. string workorderid = RequestString.GetFormString("workorderid");
  3471. string remarks = RequestString.GetFormString("remarks");
  3472. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  3473. if (modelT_Bus_WorkOrder != null)
  3474. {
  3475. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  3476. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  3477. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  3478. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  3479. oper.F_File = modelT_Bus_WorkOrder.F_File;
  3480. string userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  3481. oper.F_Message = userinfo + " 办理了工单:" + remarks;
  3482. oper.F_CreateUser = User.F_UserCode;
  3483. oper.F_CreateTime = DateTime.Now;
  3484. oper.F_IsDelete = 0;
  3485. if (operBLL.Add(oper) > 0)
  3486. return Success("操作成功");
  3487. else
  3488. return Error("操作失败");
  3489. }
  3490. else
  3491. {
  3492. return Error("工单不存在");
  3493. }
  3494. }
  3495. /// <summary>
  3496. /// 获取单位处理列表
  3497. /// </summary>
  3498. /// <returns></returns>
  3499. //[Authority]
  3500. public ActionResult GetXBDWDealList(int isdc = 0)
  3501. {
  3502. DataTable dt = new DataTable();
  3503. string sql = " and F_IsDelete=0";
  3504. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  3505. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3506. int islike = RequestString.GetInt("islike", 1);
  3507. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3508. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3509. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3510. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3511. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3512. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3513. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3514. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3515. int source = RequestString.GetInt("source", 0);
  3516. int keyid = RequestString.GetInt("keyid", 0);
  3517. int type = RequestString.GetInt("type", 0);
  3518. int bigtype = RequestString.GetInt("bigtype", 0);
  3519. int smalltype = RequestString.GetInt("smalltype", 0);
  3520. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3521. int deptid = RequestString.GetInt("deptid", 0);
  3522. string strpageindex = RequestString.GetQueryString("page");
  3523. int pageindex = 1;
  3524. string strpagesize = RequestString.GetQueryString("pagesize");
  3525. int pagesize = 10;
  3526. switch (strtab)
  3527. {
  3528. case "0"://待处理工单
  3529. int isyq = RequestString.GetInt("isyq", -1);
  3530. if (strstate.Trim() != "" && strstate != "undefined")
  3531. {
  3532. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3533. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3534. else
  3535. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3536. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  3537. }
  3538. else
  3539. {
  3540. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  3541. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  3542. //sql += " and F_WorkState in (2,4,8)";
  3543. }
  3544. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  3545. + " ISNULL(F_FeedbackTime, '')='' ";
  3546. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3547. {
  3548. sql += " and F_DeptId =" + User.F_DeptId;
  3549. }
  3550. if (isyq != -1)
  3551. {
  3552. sql += " and dbo.GetOverState(F_WorkOrderId)=" + isyq;
  3553. }
  3554. else
  3555. {
  3556. sql += ")";
  3557. }
  3558. break;
  3559. case "1"://已办理的工单
  3560. 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) ";
  3561. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  3562. {
  3563. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  3564. }
  3565. else
  3566. {
  3567. sql += ")";
  3568. }
  3569. break;
  3570. }
  3571. if (deptid != 0)
  3572. {
  3573. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3574. }
  3575. if (strworkid.Trim() != "" && strworkid != "undefined")
  3576. {
  3577. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  3578. }
  3579. if (strname.Trim() != "" && strname != "undefined")
  3580. {
  3581. sql += " and F_CusName like '%" + strname + "%' ";
  3582. }
  3583. if (islike > 0)
  3584. {
  3585. if (strtel.Trim() != "" && strtel != "undefined")
  3586. {
  3587. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  3588. }
  3589. }
  3590. else
  3591. {
  3592. if (strtel.Trim() != "" && strtel != "undefined")
  3593. {
  3594. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  3595. }
  3596. }
  3597. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  3598. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  3599. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  3600. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  3601. {
  3602. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  3603. }
  3604. if (Result.Trim() != "" && Result != "undefined")
  3605. {
  3606. sql += " and F_Result like '%" + Result + "%' ";
  3607. }
  3608. if (ComContent.Trim() != "" && ComContent != "undefined")
  3609. {
  3610. sql += " and F_ComContent like '%" + ComContent + "%' ";
  3611. }
  3612. if (strkey.Trim() != "" && strkey != "undefined")
  3613. {
  3614. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  3615. " or F_Result like '%" + strkey + "%' ) ";
  3616. }
  3617. #region 坐席&调度员
  3618. if (strusercode.Trim() != "" && strusercode != "undefined")
  3619. {//坐席
  3620. var usercode = strusercode.Trim().Split(',');
  3621. var newusercode = "";
  3622. foreach (var item in usercode)
  3623. {
  3624. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3625. newusercode += "'" + item + "',";
  3626. }
  3627. newusercode = newusercode.Trim(',');
  3628. if (newusercode.Trim() != "" && newusercode != "undefined")
  3629. {
  3630. sql += " and F_CreateUser in (" + newusercode + ") ";
  3631. }
  3632. }
  3633. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3634. {//调度员
  3635. var ddusercode = strddusercode.Trim().Split(',');
  3636. var newusercode = "";
  3637. foreach (var item in ddusercode)
  3638. {
  3639. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3640. newusercode += "'" + item + "',";
  3641. }
  3642. newusercode = newusercode.Trim(',');
  3643. if (newusercode.Trim() != "" && newusercode != "undefined")
  3644. {
  3645. sql += " and F_AssignUser in(" + newusercode + ") ";
  3646. }
  3647. }
  3648. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3649. //{
  3650. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3651. //}
  3652. #endregion
  3653. if (source != 0)
  3654. {
  3655. sql += " and F_InfoSource = '" + source + "' ";
  3656. }
  3657. string sqlwhere = "";
  3658. if (keyid != 0)
  3659. {
  3660. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  3661. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  3662. // " or F_Key='" + keyid + "' )";
  3663. }
  3664. if (type != 0)
  3665. {
  3666. sql += " and F_InfoType = '" + type + "' ";
  3667. }
  3668. if (bigtype != 0)
  3669. {
  3670. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  3671. }
  3672. if (smalltype != 0)
  3673. {
  3674. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  3675. }
  3676. if (sourcearea != 0)
  3677. {
  3678. sql += " and F_SourceArea = '" + sourcearea + "' ";
  3679. }
  3680. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  3681. {
  3682. sql += " and F_CreateTime>='" + strstarttime + "' ";
  3683. }
  3684. if (strendtime.Trim() != "" && strendtime != "undefined")
  3685. {
  3686. sql += " and F_CreateTime<='" + strendtime + "' ";
  3687. }
  3688. if (strpageindex.Trim() != "")
  3689. {
  3690. pageindex = Convert.ToInt32(strpageindex);
  3691. }
  3692. if (strpagesize.Trim() != "")
  3693. {
  3694. pagesize = Convert.ToInt32(strpagesize);
  3695. }
  3696. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  3697. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  3698. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  3699. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  3700. if (isdc > 0)
  3701. {
  3702. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  3703. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  3704. if (msg == "")
  3705. {
  3706. return Success("导出成功");
  3707. }
  3708. else
  3709. {
  3710. return Error("导出失败");
  3711. }
  3712. }
  3713. int recordCount = 0;
  3714. dt = BLL.PagerBLL.GetListPager(
  3715. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  3716. "F_Id",
  3717. cols,
  3718. sql,
  3719. "ORDER BY F_CreateTime DESC",
  3720. pagesize,
  3721. pageindex,
  3722. true,
  3723. out recordCount);
  3724. #region 声音文件
  3725. dt.Columns.Add("DeptName", typeof(string));//交办单位
  3726. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  3727. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  3728. dt.Columns.Add("OverState", typeof(string));//超时状态
  3729. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  3730. dt.Columns.Add("GapTime", typeof(string));//时间差
  3731. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  3732. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  3733. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  3734. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  3735. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  3736. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  3737. foreach (DataRow dr in dt.Rows)
  3738. {
  3739. //获取最新交办信息
  3740. string iszbdw = "0";
  3741. string ispd = "";
  3742. int state = Int32.Parse(dr["F_WorkState"].ToString());
  3743. if (state > 1)
  3744. {
  3745. 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";
  3746. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  3747. if (dtjb.Rows.Count > 0)
  3748. {
  3749. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  3750. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  3751. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3752. {
  3753. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  3754. }
  3755. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  3756. #region
  3757. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  3758. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  3759. //if (deptinfo != null)
  3760. //{
  3761. // if (did == User.F_DeptId) { iszbdw = "1"; }
  3762. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  3763. //}
  3764. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  3765. //{
  3766. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  3767. // string dns = string.Empty;
  3768. // foreach (string strid in strids)
  3769. // {
  3770. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  3771. // if (dinfo != null)
  3772. // {
  3773. // if (string.IsNullOrEmpty(dns))
  3774. // {
  3775. // dns = dinfo.F_DeptName;//交办单位
  3776. // }
  3777. // else
  3778. // {
  3779. // dns += "," + dinfo.F_DeptName;//交办单位
  3780. // }
  3781. // }
  3782. // }
  3783. // dr["OtherDeptName"] = dns;
  3784. //}
  3785. #endregion
  3786. #region
  3787. //if (state < 6 || state == 8)
  3788. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  3789. {
  3790. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3791. dr["LimitTime"] = lt;
  3792. if (!string.IsNullOrWhiteSpace(lt))
  3793. {
  3794. var ltime = DateTime.Parse(lt);
  3795. if (ltime > DateTime.Now)
  3796. {
  3797. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  3798. var SYSJ = DbHelperSQL.GetSingle(SY);
  3799. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  3800. {
  3801. try
  3802. {
  3803. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  3804. }
  3805. catch
  3806. {
  3807. }
  3808. }
  3809. }
  3810. TimeSpan ts = ltime.Subtract(DateTime.Now);
  3811. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3812. if (tss < 0) { tss = -tss; }
  3813. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3814. if (ltime > DateTime.Now)
  3815. {
  3816. if (configcs != null)
  3817. {
  3818. int cs = Int32.Parse(configcs.F_ParamValue);
  3819. if (ts.TotalHours > cs)
  3820. {
  3821. dr["OverState"] = 1;
  3822. }
  3823. else
  3824. {
  3825. dr["OverState"] = 2;
  3826. }
  3827. }
  3828. dr["GapTime"] = "剩余" + gshsj;
  3829. }
  3830. else
  3831. {
  3832. dr["OverState"] = 3;
  3833. dr["GapTime"] = "超时" + gshsj;
  3834. }
  3835. }
  3836. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  3837. }
  3838. if (state == (int)EnumWorkState.finish)
  3839. {
  3840. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  3841. var dttime = DateTime.Now;
  3842. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  3843. else
  3844. {
  3845. var DealTime = dr["F_CloseTime"].ToString();
  3846. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  3847. }
  3848. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  3849. dr["LimitTime"] = lt;
  3850. if (!string.IsNullOrWhiteSpace(lt))
  3851. {
  3852. var ltime = DateTime.Parse(lt);
  3853. TimeSpan ts = ltime.Subtract(dttime);
  3854. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  3855. if (tss < 0) { tss = -tss; }
  3856. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  3857. if (ltime < dttime)
  3858. {
  3859. dr["OverState"] = 3;
  3860. dr["GapTime"] = "超时" + gshsj;
  3861. }
  3862. }
  3863. }
  3864. #endregion
  3865. }
  3866. else
  3867. {
  3868. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  3869. }
  3870. }
  3871. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  3872. {
  3873. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  3874. }
  3875. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  3876. {
  3877. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  3878. }
  3879. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  3880. if (Int32.Parse(strtab) < 1)
  3881. {
  3882. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  3883. #region 判断是否存在待督办
  3884. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  3885. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  3886. if (recount > 0 && butt != null)
  3887. btns.Remove(butt);
  3888. #endregion
  3889. }
  3890. else
  3891. {
  3892. btns.Add(ButtonGroup.query());
  3893. }
  3894. dr["Buttons"] = btns;
  3895. }
  3896. #endregion
  3897. var obj = new
  3898. {
  3899. state = "success",
  3900. message = "成功",
  3901. rows = dt,
  3902. total = recordCount
  3903. };
  3904. return Content(obj.ToJson());
  3905. }
  3906. /// <summary>
  3907. /// 获取单位主办协办未处理工单列表
  3908. /// </summary>
  3909. /// <returns></returns>
  3910. //[Authority]
  3911. public ActionResult GetDWNoDealList(int isdc = 0)
  3912. {
  3913. DataTable dt = new DataTable();
  3914. string sql = " and F_IsDelete=0";
  3915. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  3916. int islike = RequestString.GetInt("islike", 1);
  3917. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  3918. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  3919. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  3920. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  3921. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  3922. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  3923. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  3924. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  3925. int source = RequestString.GetInt("source", 0);
  3926. int keyid = RequestString.GetInt("keyid", 0);
  3927. int type = RequestString.GetInt("type", 0);
  3928. int bigtype = RequestString.GetInt("bigtype", 0);
  3929. int smalltype = RequestString.GetInt("smalltype", 0);
  3930. int sourcearea = RequestString.GetInt("sourcearea", 0);
  3931. int deptid = RequestString.GetInt("deptid", 0);
  3932. string strpageindex = RequestString.GetQueryString("page");
  3933. int pageindex = 1;
  3934. string strpagesize = RequestString.GetQueryString("pagesize");
  3935. int pagesize = 10;
  3936. if (User.F_RoleCode == "ZXHWY")
  3937. {
  3938. sql += " and F_CreateUser = '" + User.F_UserCode + "' ";
  3939. }
  3940. #region 坐席&调度员
  3941. if (strusercode.Trim() != "" && strusercode != "undefined")
  3942. {//坐席
  3943. var usercode = strusercode.Trim().Split(',');
  3944. var newusercode = "";
  3945. foreach (var item in usercode)
  3946. {
  3947. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3948. newusercode += "'" + item + "',";
  3949. }
  3950. newusercode = newusercode.Trim(',');
  3951. if (newusercode.Trim() != "" && newusercode != "undefined")
  3952. {
  3953. sql += " and F_CreateUser in (" + newusercode + ") ";
  3954. }
  3955. }
  3956. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  3957. {//调度员
  3958. var ddusercode = strddusercode.Trim().Split(',');
  3959. var newusercode = "";
  3960. foreach (var item in ddusercode)
  3961. {
  3962. if (!string.IsNullOrWhiteSpace(item.Trim()))
  3963. newusercode += "'" + item + "',";
  3964. }
  3965. newusercode = newusercode.Trim(',');
  3966. if (newusercode.Trim() != "" && newusercode != "undefined")
  3967. {
  3968. sql += " and F_AssignUser in(" + newusercode + ") ";
  3969. }
  3970. }
  3971. //if (strusercode.Trim() != "" && strusercode != "undefined")
  3972. //{
  3973. // sql += " and F_CreateUser = '" + strusercode + "' ";
  3974. //}
  3975. #endregion
  3976. 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) ";
  3977. if (User.F_RoleCode == "WLDW")
  3978. {
  3979. sql += " and (F_MainDeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3980. }
  3981. else if (deptid != 0)
  3982. {
  3983. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3984. }
  3985. 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, '')='' ";
  3986. if (User.F_RoleCode == "WLDW")
  3987. {
  3988. sql += " and (F_DeptId = '" + User.F_DeptId + "' or F_MainDeptID3='" + User.F_DeptId + "')";
  3989. }
  3990. else if (deptid != 0)
  3991. {
  3992. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  3993. }
  3994. sql += "))";
  3995. if (strstate.Trim() != "" && strstate != "undefined")
  3996. {
  3997. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  3998. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  3999. else
  4000. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4001. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4002. }
  4003. else
  4004. {
  4005. sql += " and F_WorkState in (2,4,8)";
  4006. }
  4007. if (strworkid.Trim() != "" && strworkid != "undefined")
  4008. {
  4009. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4010. }
  4011. if (strname.Trim() != "" && strname != "undefined")
  4012. {
  4013. sql += " and F_CusName like '%" + strname + "%' ";
  4014. }
  4015. if (islike > 0)
  4016. {
  4017. if (strtel.Trim() != "" && strtel != "undefined")
  4018. {
  4019. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4020. }
  4021. }
  4022. else
  4023. {
  4024. if (strtel.Trim() != "" && strtel != "undefined")
  4025. {
  4026. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4027. }
  4028. }
  4029. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4030. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4031. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4032. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4033. {
  4034. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4035. }
  4036. if (Result.Trim() != "" && Result != "undefined")
  4037. {
  4038. sql += " and F_Result like '%" + Result + "%' ";
  4039. }
  4040. if (ComContent.Trim() != "" && ComContent != "undefined")
  4041. {
  4042. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4043. }
  4044. if (strkey.Trim() != "" && strkey != "undefined")
  4045. {
  4046. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4047. " or F_Result like '%" + strkey + "%' ) ";
  4048. }
  4049. if (source != 0)
  4050. {
  4051. sql += " and F_InfoSource = '" + source + "' ";
  4052. }
  4053. string sqlwhere = "";
  4054. if (keyid != 0)
  4055. {
  4056. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4057. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4058. // " or F_Key='" + keyid + "' )";
  4059. }
  4060. if (type != 0)
  4061. {
  4062. sql += " and F_InfoType = '" + type + "' ";
  4063. }
  4064. if (bigtype != 0)
  4065. {
  4066. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4067. }
  4068. if (smalltype != 0)
  4069. {
  4070. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4071. }
  4072. if (sourcearea != 0)
  4073. {
  4074. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4075. }
  4076. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4077. {
  4078. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4079. }
  4080. if (strendtime.Trim() != "" && strendtime != "undefined")
  4081. {
  4082. sql += " and F_CreateTime<='" + strendtime + "' ";
  4083. }
  4084. if (strpageindex.Trim() != "")
  4085. {
  4086. pageindex = Convert.ToInt32(strpageindex);
  4087. }
  4088. if (strpagesize.Trim() != "")
  4089. {
  4090. pagesize = Convert.ToInt32(strpagesize);
  4091. }
  4092. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  4093. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  4094. if (isdc > 0)
  4095. {
  4096. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4097. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4098. if (msg == "")
  4099. {
  4100. return Success("导出成功");
  4101. }
  4102. else
  4103. {
  4104. return Error("导出失败");
  4105. }
  4106. }
  4107. int recordCount = 0;
  4108. dt = BLL.PagerBLL.GetListPager(
  4109. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4110. "F_Id",
  4111. cols,
  4112. sql,
  4113. "ORDER BY F_CreateTime DESC",
  4114. pagesize,
  4115. pageindex,
  4116. true,
  4117. out recordCount);
  4118. #region 声音文件
  4119. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4120. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4121. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4122. dt.Columns.Add("OverState", typeof(string));//超时状态
  4123. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4124. dt.Columns.Add("GapTime", typeof(string));//时间差
  4125. dt.Columns.Add("FilePath", typeof(string));
  4126. dt.Columns.Add("Buttons", typeof(object));
  4127. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4128. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4129. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4130. foreach (DataRow dr in dt.Rows)
  4131. {
  4132. //获取最新交办信息
  4133. string iszbdw = "0";
  4134. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4135. if (state > 1)
  4136. {
  4137. 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";
  4138. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4139. if (dtjb.Rows.Count > 0)
  4140. {
  4141. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4142. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4143. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4144. {
  4145. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4146. }
  4147. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4148. #region
  4149. //if (state < 6 || state == 8)
  4150. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4151. {
  4152. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4153. dr["LimitTime"] = lt;
  4154. if (!string.IsNullOrWhiteSpace(lt))
  4155. {
  4156. var ltime = DateTime.Parse(lt);
  4157. if (ltime > DateTime.Now)
  4158. {
  4159. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4160. var SYSJ = DbHelperSQL.GetSingle(SY);
  4161. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4162. {
  4163. try
  4164. {
  4165. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4166. }
  4167. catch
  4168. {
  4169. }
  4170. }
  4171. }
  4172. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4173. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4174. if (tss < 0) { tss = -tss; }
  4175. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4176. if (ltime > DateTime.Now)
  4177. {
  4178. if (configcs != null)
  4179. {
  4180. int cs = Int32.Parse(configcs.F_ParamValue);
  4181. if (ts.TotalHours > cs)
  4182. {
  4183. dr["OverState"] = 1;
  4184. }
  4185. else
  4186. {
  4187. dr["OverState"] = 2;
  4188. }
  4189. }
  4190. dr["GapTime"] = "剩余" + gshsj;
  4191. }
  4192. else
  4193. {
  4194. dr["OverState"] = 3;
  4195. dr["GapTime"] = "超时" + gshsj;
  4196. }
  4197. }
  4198. }
  4199. if (state == (int)EnumWorkState.finish)
  4200. {
  4201. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4202. var dttime = DateTime.Now;
  4203. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4204. else
  4205. {
  4206. var DealTime = dr["F_CloseTime"].ToString();
  4207. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4208. }
  4209. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4210. dr["LimitTime"] = lt;
  4211. if (!string.IsNullOrWhiteSpace(lt))
  4212. {
  4213. var ltime = DateTime.Parse(lt);
  4214. TimeSpan ts = ltime.Subtract(dttime);
  4215. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4216. if (tss < 0) { tss = -tss; }
  4217. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4218. if (ltime < dttime)
  4219. {
  4220. dr["OverState"] = 3;
  4221. dr["GapTime"] = "超时" + gshsj;
  4222. }
  4223. }
  4224. }
  4225. #endregion
  4226. }
  4227. else
  4228. {
  4229. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4230. }
  4231. }
  4232. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4233. {
  4234. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  4235. }
  4236. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4237. {
  4238. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4239. }
  4240. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4241. btns.Add(ButtonGroup.query());
  4242. dr["Buttons"] = btns;
  4243. }
  4244. #endregion
  4245. var obj = new
  4246. {
  4247. state = "success",
  4248. message = "成功",
  4249. rows = dt,
  4250. total = recordCount
  4251. };
  4252. return Content(obj.ToJson());
  4253. }
  4254. /// <summary>
  4255. /// 获取二级单位处理列表
  4256. /// </summary>
  4257. /// <returns></returns>
  4258. //[Authority]
  4259. public ActionResult GetEJDWDealList(int isdc = 0)
  4260. {
  4261. DataTable dt = new DataTable();
  4262. string sql = " and F_IsDelete=0";
  4263. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4264. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4265. int islike = RequestString.GetInt("islike", 1);
  4266. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4267. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4268. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4269. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4270. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4271. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4272. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4273. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4274. int source = RequestString.GetInt("source", 0);
  4275. int keyid = RequestString.GetInt("keyid", 0);
  4276. int type = RequestString.GetInt("type", 0);
  4277. int bigtype = RequestString.GetInt("bigtype", 0);
  4278. int smalltype = RequestString.GetInt("smalltype", 0);
  4279. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4280. int deptid = RequestString.GetInt("deptid", 0);
  4281. int isys = RequestString.GetInt("isys", -1);
  4282. string strpageindex = RequestString.GetQueryString("page");
  4283. int pageindex = 1;
  4284. string strpagesize = RequestString.GetQueryString("pagesize");
  4285. int pagesize = 10;
  4286. #region 模块
  4287. switch (strtab)
  4288. {
  4289. case "0"://待处理工单
  4290. if (strstate.Trim() != "" && strstate != "undefined")
  4291. {
  4292. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4293. }
  4294. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay
  4295. , (int)EnumWorkState.reload};
  4296. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4297. //sql += " and F_WorkState in (4,5) ";
  4298. if (isys > -1)
  4299. {
  4300. if (isys == 0) //未延时
  4301. {
  4302. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4303. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and F_WorkOrderId not in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit=1) ) " +
  4304. "and F_MainDeptID3='" + User.F_DeptId + "'";
  4305. }
  4306. else
  4307. {
  4308. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4309. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit=1))"
  4310. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  4311. }
  4312. }
  4313. else
  4314. {
  4315. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4316. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1))"
  4317. + "and F_MainDeptID3='" + User.F_DeptId + "'";
  4318. }
  4319. break;
  4320. case "1"://已办理的工单
  4321. if (strstate.Trim() != "" && strstate != "undefined")
  4322. {
  4323. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4324. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4325. else
  4326. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4327. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4328. }
  4329. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_Feedback_Next c WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type in (1,2) ";
  4330. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4331. {
  4332. sql += " and F_CreateUser='" + User.F_UserCode + "') and F_MainDeptID3 = '" + User.F_DeptId + "'";
  4333. }
  4334. else
  4335. {
  4336. sql += ")";
  4337. }
  4338. break;
  4339. case "3"://已办未果
  4340. sql += " and F_WorkState in(6,7) ";
  4341. sql += " and F_IsProResult = '" + 2 + "' ";
  4342. 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) ";
  4343. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4344. {
  4345. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4346. }
  4347. else
  4348. {
  4349. sql += ")";
  4350. }
  4351. break;
  4352. //三级单位给已签收工单增加一个菜单
  4353. case "4"://已签收
  4354. // sql += " and F_WorkState in (4,5,8)";
  4355. sql += " and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (1))";
  4356. break;
  4357. case "5"://
  4358. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0)" +
  4359. "and F_MainDeptID3 ='" + User.F_DeptId + "'";
  4360. break;
  4361. case "6"://已完结
  4362. sql += " and F_WorkState = '9' ";
  4363. 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) ";
  4364. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4365. {
  4366. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4367. }
  4368. else
  4369. {
  4370. sql += ")";
  4371. }
  4372. break;
  4373. case "7"://二级待审回复
  4374. sql += " and F_WorkOrderID in( F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo where F_IsDelete = 0 and F_CreateTime = a.F_AssignTime and F_IsNext = 3 ) and F_MainDeptID3 = '" + User.F_DeptId + "' and F_WorkState in(4, 8)) ";
  4375. break;
  4376. //
  4377. }
  4378. #endregion
  4379. #region 条件
  4380. if (strworkid.Trim() != "" && strworkid != "undefined")
  4381. {
  4382. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4383. }
  4384. if (strname.Trim() != "" && strname != "undefined")
  4385. {
  4386. sql += " and F_CusName like '%" + strname + "%' ";
  4387. }
  4388. if (islike > 0)
  4389. {
  4390. if (strtel.Trim() != "" && strtel != "undefined")
  4391. {
  4392. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4393. }
  4394. }
  4395. else
  4396. {
  4397. if (strtel.Trim() != "" && strtel != "undefined")
  4398. {
  4399. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4400. }
  4401. }
  4402. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4403. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4404. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4405. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4406. {
  4407. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4408. }
  4409. if (Result.Trim() != "" && Result != "undefined")
  4410. {
  4411. sql += " and F_Result like '%" + Result + "%' ";
  4412. }
  4413. if (ComContent.Trim() != "" && ComContent != "undefined")
  4414. {
  4415. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4416. }
  4417. if (strkey.Trim() != "" && strkey != "undefined")
  4418. {
  4419. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4420. " or F_Result like '%" + strkey + "%' ) ";
  4421. }
  4422. #region 坐席&调度员
  4423. if (strusercode.Trim() != "" && strusercode != "undefined")
  4424. {//坐席
  4425. var usercode = strusercode.Trim().Split(',');
  4426. var newusercode = "";
  4427. foreach (var item in usercode)
  4428. {
  4429. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4430. newusercode += "'" + item + "',";
  4431. }
  4432. newusercode = newusercode.Trim(',');
  4433. if (newusercode.Trim() != "" && newusercode != "undefined")
  4434. {
  4435. sql += " and F_CreateUser in (" + newusercode + ") ";
  4436. }
  4437. }
  4438. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4439. {//调度员
  4440. var ddusercode = strddusercode.Trim().Split(',');
  4441. var newusercode = "";
  4442. foreach (var item in ddusercode)
  4443. {
  4444. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4445. newusercode += "'" + item + "',";
  4446. }
  4447. newusercode = newusercode.Trim(',');
  4448. if (newusercode.Trim() != "" && newusercode != "undefined")
  4449. {
  4450. sql += " and F_AssignUser in(" + newusercode + ") ";
  4451. }
  4452. }
  4453. //if (strusercode.Trim() != "" && strusercode != "undefined")
  4454. //{
  4455. // sql += " and F_CreateUser = '" + strusercode + "' ";
  4456. //}
  4457. #endregion
  4458. if (source != 0)
  4459. {
  4460. sql += " and F_InfoSource = '" + source + "' ";
  4461. }
  4462. string sqlwhere = "";
  4463. if (keyid != 0)
  4464. {
  4465. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4466. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4467. // " or F_Key='" + keyid + "' )";
  4468. }
  4469. if (type != 0)
  4470. {
  4471. sql += " and F_InfoType = '" + type + "' ";
  4472. }
  4473. if (bigtype != 0)
  4474. {
  4475. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4476. }
  4477. if (smalltype != 0)
  4478. {
  4479. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4480. }
  4481. if (sourcearea != 0)
  4482. {
  4483. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4484. }
  4485. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4486. {
  4487. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4488. }
  4489. if (strendtime.Trim() != "" && strendtime != "undefined")
  4490. {
  4491. sql += " and F_CreateTime<='" + strendtime + "' ";
  4492. }
  4493. if (deptid != 0)
  4494. {
  4495. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4496. }
  4497. if (strpageindex.Trim() != "")
  4498. {
  4499. pageindex = Convert.ToInt32(strpageindex);
  4500. }
  4501. if (strpagesize.Trim() != "")
  4502. {
  4503. pagesize = Convert.ToInt32(strpagesize);
  4504. }
  4505. #endregion
  4506. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetOverState(F_WorkOrderId) as OverState,"
  4507. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetWorkOrderAssign(F_WorkOrderId) as DeptName ,dbo.GetLimitTime(F_WorkOrderId) as LimitTime";
  4508. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4509. //,(case when F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_IsAudit=1) then '1'else '0' end) IsYS
  4510. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,(select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId=a.F_WorkOrderId order by F_CreateTime desc) as F_LimitTime,F_IsRelease,F_Identification"
  4511. ;
  4512. //(select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId=a.F_WorkOrderId) as
  4513. if (isdc > 0)
  4514. {
  4515. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  4516. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  4517. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =a.F_WorkOrderId order by F_Id desc) 办理结果, "
  4518. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = a.F_WorkOrderId order by F_Id desc) 是否满意 ,"
  4519. + "(case when F_WorkOrderId in (select F_WorkOrderID from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_IsAudit=1) then '1'else '0' end) 延时状态"
  4520. + " from T_Bus_WorkOrder a WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4521. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4522. if (msg == "")
  4523. {
  4524. return Success("导出成功");
  4525. }
  4526. else
  4527. {
  4528. return Error("导出失败");
  4529. }
  4530. }
  4531. int recordCount = 0;
  4532. dt = BLL.PagerBLL.GetListPager(
  4533. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4534. "F_Id",
  4535. cols,
  4536. sql,
  4537. "ORDER BY F_CreateTime DESC",
  4538. pagesize,
  4539. pageindex,
  4540. true,
  4541. out recordCount);
  4542. #region 声音文件
  4543. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4544. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4545. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4546. dt.Columns.Add("OverState", typeof(string));//超时状态
  4547. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4548. dt.Columns.Add("GapTime", typeof(string));//时间差
  4549. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4550. dt.Columns.Add("PDState", typeof(string));//派单状态
  4551. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4552. dt.Columns.Add("IsYS", typeof(string));//是否延时
  4553. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4554. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4555. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4556. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4557. foreach (DataRow dr in dt.Rows)
  4558. {
  4559. string yssql = "select * from T_Bus_DelayTime WITH(NOLOCK) where F_State= 1 and F_IsDelete = 0 and F_IsAudit = 1 and F_WorkOrderID='" + dr["F_WorkOrderId"].ToString() + "'";
  4560. var dtys = DbHelperSQL.Query(yssql).Tables[0];
  4561. if (dtys.Rows.Count > 0)
  4562. {
  4563. dr["IsYS"] = 1;
  4564. }
  4565. else
  4566. {
  4567. dr["IsYS"] = 0;//未延时
  4568. }
  4569. //获取最新交办信息
  4570. string iszbdw = "0";
  4571. string ispd = "";
  4572. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4573. if (state > 1)
  4574. {
  4575. 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";
  4576. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4577. if (dtjb.Rows.Count > 0)
  4578. {
  4579. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4580. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4581. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4582. {
  4583. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4584. }
  4585. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4586. var lt = dr["F_LimitTime"].ToString();//限制时间
  4587. dr["LimitTime"] = lt;
  4588. #region
  4589. //if (state < 6 || state == 8)
  4590. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4591. {
  4592. if (!string.IsNullOrWhiteSpace(lt))
  4593. {
  4594. var ltime = DateTime.Parse(lt);
  4595. if (ltime > DateTime.Now)
  4596. {
  4597. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4598. var SYSJ = DbHelperSQL.GetSingle(SY);
  4599. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4600. {
  4601. try
  4602. {
  4603. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4604. }
  4605. catch
  4606. {
  4607. }
  4608. }
  4609. }
  4610. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4611. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4612. if (tss < 0) { tss = -tss; }
  4613. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4614. if (ltime > DateTime.Now)
  4615. {
  4616. if (configcs != null)
  4617. {
  4618. int cs = Int32.Parse(configcs.F_ParamValue);
  4619. if (ts.TotalHours > cs)
  4620. {
  4621. dr["OverState"] = 1;
  4622. }
  4623. else
  4624. {
  4625. dr["OverState"] = 2;
  4626. }
  4627. }
  4628. dr["GapTime"] = "剩余" + gshsj;
  4629. }
  4630. else
  4631. {
  4632. dr["OverState"] = 3;
  4633. dr["GapTime"] = "超时" + gshsj;
  4634. }
  4635. }
  4636. }
  4637. if (state == (int)EnumWorkState.finish)
  4638. {
  4639. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  4640. var dttime = DateTime.Now;
  4641. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  4642. else
  4643. {
  4644. var DealTime = dr["F_CloseTime"].ToString();
  4645. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  4646. }
  4647. if (!string.IsNullOrWhiteSpace(lt))
  4648. {
  4649. var ltime = DateTime.Parse(lt);
  4650. TimeSpan ts = ltime.Subtract(dttime);
  4651. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4652. if (tss < 0) { tss = -tss; }
  4653. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  4654. if (ltime < dttime)
  4655. {
  4656. dr["OverState"] = 3;
  4657. dr["GapTime"] = "超时" + gshsj;
  4658. }
  4659. }
  4660. }
  4661. #endregion
  4662. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  4663. dr["PDState"] = ispd;
  4664. }
  4665. else
  4666. {
  4667. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  4668. }
  4669. }
  4670. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  4671. {
  4672. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  4673. }
  4674. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  4675. {
  4676. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  4677. }
  4678. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  4679. if (Int32.Parse(strtab) < 1)
  4680. {
  4681. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  4682. #region 判断是否存在待督办
  4683. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  4684. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  4685. if (recount > 0 && butt != null)
  4686. btns.Remove(butt);
  4687. #endregion
  4688. }
  4689. else
  4690. {
  4691. btns.Add(ButtonGroup.query());
  4692. }
  4693. dr["Buttons"] = btns;
  4694. }
  4695. #endregion
  4696. var obj = new
  4697. {
  4698. state = "success",
  4699. message = "成功",
  4700. rows = dt,
  4701. total = recordCount
  4702. };
  4703. return Content(obj.ToJson());
  4704. }
  4705. /// <summary>
  4706. /// 获取三级单位处理列表
  4707. /// </summary>
  4708. /// <returns></returns>
  4709. //[Authority]
  4710. public ActionResult GetSJDWDealList(int isdc = 0)
  4711. {
  4712. DataTable dt = new DataTable();
  4713. string sql = " and F_IsDelete=0";
  4714. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  4715. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  4716. int islike = RequestString.GetInt("islike", 1);
  4717. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  4718. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  4719. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  4720. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  4721. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  4722. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  4723. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  4724. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  4725. int source = RequestString.GetInt("source", 0);
  4726. int keyid = RequestString.GetInt("keyid", 0);
  4727. int type = RequestString.GetInt("type", 0);
  4728. int bigtype = RequestString.GetInt("bigtype", 0);
  4729. int smalltype = RequestString.GetInt("smalltype", 0);
  4730. int sourcearea = RequestString.GetInt("sourcearea", 0);
  4731. int deptid = RequestString.GetInt("deptid", 0);
  4732. string strpageindex = RequestString.GetQueryString("page");
  4733. int pageindex = 1;
  4734. string strpagesize = RequestString.GetQueryString("pagesize");
  4735. int pagesize = 10;
  4736. #region 模块
  4737. switch (strtab)
  4738. {
  4739. case "0"://待处理工单
  4740. int[] sts = new int[] { (int)EnumWorkState.dealing, (int)EnumWorkState.auditdelay };
  4741. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  4742. //if (User.F_RoleCode == "EJWLDW")
  4743. // {
  4744. // sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4745. // }
  4746. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4747. {
  4748. sql += " and ((F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and "
  4749. + " ISNULL(F_FeedbackTime, '')='' and F_MainDeptID='" + User.F_DeptId + "' and F_IsSure in (0,1)))";
  4750. if (User.F_RoleCode == "WLDW")
  4751. {
  4752. sql += " or (F_MainDeptID3 ='" + User.F_DeptId + "')"
  4753. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + "))";
  4754. }
  4755. sql += ")";
  4756. }
  4757. else
  4758. {
  4759. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4760. }
  4761. break;
  4762. case "1"://已办理的工单
  4763. if (strstate.Trim() != "" && strstate != "undefined")
  4764. {
  4765. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  4766. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  4767. else
  4768. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  4769. }
  4770. 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) ";
  4771. if (User.F_RoleCode == "EJWLDW")
  4772. {
  4773. sql += " and F_MainDeptID3 ='" + User.F_DeptId + "' ";
  4774. }
  4775. else if (User.F_RoleCode == "WLDW")
  4776. {
  4777. sql += " and( (F_MainDeptID3 ='" + User.F_DeptId + "')"
  4778. + " or (F_MainDeptID3 in (SELECT F_DeptId FROM T_Sys_Department WITH(NOLOCK) WHERE F_State=0 AND F_PartentId=" + User.F_DeptId + ")) )";
  4779. }
  4780. else if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  4781. {
  4782. sql += " and F_CreateUser='" + User.F_UserCode + "')";
  4783. }
  4784. else
  4785. {
  4786. sql += ")";
  4787. }
  4788. break;
  4789. }
  4790. #endregion
  4791. #region 条件
  4792. if (strworkid.Trim() != "" && strworkid != "undefined")
  4793. {
  4794. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  4795. }
  4796. if (strname.Trim() != "" && strname != "undefined")
  4797. {
  4798. sql += " and F_CusName like '%" + strname + "%' ";
  4799. }
  4800. if (islike > 0)
  4801. {
  4802. if (strtel.Trim() != "" && strtel != "undefined")
  4803. {
  4804. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  4805. }
  4806. }
  4807. else
  4808. {
  4809. if (strtel.Trim() != "" && strtel != "undefined")
  4810. {
  4811. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  4812. }
  4813. }
  4814. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  4815. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  4816. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  4817. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  4818. {
  4819. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  4820. }
  4821. if (Result.Trim() != "" && Result != "undefined")
  4822. {
  4823. sql += " and F_Result like '%" + Result + "%' ";
  4824. }
  4825. if (ComContent.Trim() != "" && ComContent != "undefined")
  4826. {
  4827. sql += " and F_ComContent like '%" + ComContent + "%' ";
  4828. }
  4829. if (strkey.Trim() != "" && strkey != "undefined")
  4830. {
  4831. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  4832. " or F_Result like '%" + strkey + "%' ) ";
  4833. }
  4834. #region 坐席&调度员
  4835. if (strusercode.Trim() != "" && strusercode != "undefined")
  4836. {//坐席
  4837. var usercode = strusercode.Trim().Split(',');
  4838. var newusercode = "";
  4839. foreach (var item in usercode)
  4840. {
  4841. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4842. newusercode += "'" + item + "',";
  4843. }
  4844. newusercode = newusercode.Trim(',');
  4845. if (newusercode.Trim() != "" && newusercode != "undefined")
  4846. {
  4847. sql += " and F_CreateUser in (" + newusercode + ") ";
  4848. }
  4849. }
  4850. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  4851. {//调度员
  4852. var ddusercode = strddusercode.Trim().Split(',');
  4853. var newusercode = "";
  4854. foreach (var item in ddusercode)
  4855. {
  4856. if (!string.IsNullOrWhiteSpace(item.Trim()))
  4857. newusercode += "'" + item + "',";
  4858. }
  4859. newusercode = newusercode.Trim(',');
  4860. if (newusercode.Trim() != "" && newusercode != "undefined")
  4861. {
  4862. sql += " and F_AssignUser in(" + newusercode + ") ";
  4863. }
  4864. }
  4865. #endregion
  4866. if (source != 0)
  4867. {
  4868. sql += " and F_InfoSource = '" + source + "' ";
  4869. }
  4870. string sqlwhere = "";
  4871. if (keyid != 0)
  4872. {
  4873. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  4874. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  4875. // " or F_Key='" + keyid + "' )";
  4876. }
  4877. if (type != 0)
  4878. {
  4879. sql += " and F_InfoType = '" + type + "' ";
  4880. }
  4881. if (bigtype != 0)
  4882. {
  4883. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  4884. }
  4885. if (smalltype != 0)
  4886. {
  4887. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  4888. }
  4889. if (sourcearea != 0)
  4890. {
  4891. sql += " and F_SourceArea = '" + sourcearea + "' ";
  4892. }
  4893. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  4894. {
  4895. sql += " and F_CreateTime>='" + strstarttime + "' ";
  4896. }
  4897. if (strendtime.Trim() != "" && strendtime != "undefined")
  4898. {
  4899. sql += " and F_CreateTime<='" + strendtime + "' ";
  4900. }
  4901. if (deptid != 0)
  4902. {
  4903. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  4904. }
  4905. if (strpageindex.Trim() != "")
  4906. {
  4907. pageindex = Convert.ToInt32(strpageindex);
  4908. }
  4909. if (strpagesize.Trim() != "")
  4910. {
  4911. pagesize = Convert.ToInt32(strpagesize);
  4912. }
  4913. #endregion
  4914. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  4915. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  4916. if (isdc > 0)
  4917. {
  4918. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  4919. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  4920. if (msg == "")
  4921. {
  4922. return Success("导出成功");
  4923. }
  4924. else
  4925. {
  4926. return Error("导出失败");
  4927. }
  4928. }
  4929. int recordCount = 0;
  4930. dt = BLL.PagerBLL.GetListPager(
  4931. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  4932. "F_Id",
  4933. cols,
  4934. sql,
  4935. "ORDER BY F_CreateTime DESC",
  4936. pagesize,
  4937. pageindex,
  4938. true,
  4939. out recordCount);
  4940. #region 声音文件
  4941. dt.Columns.Add("DeptName", typeof(string));//交办单位
  4942. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  4943. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  4944. dt.Columns.Add("OverState", typeof(string));//超时状态
  4945. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  4946. dt.Columns.Add("GapTime", typeof(string));//时间差
  4947. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  4948. dt.Columns.Add("PDState", typeof(string));//派单状态
  4949. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  4950. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  4951. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  4952. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  4953. var reminds = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  4954. foreach (DataRow dr in dt.Rows)
  4955. {
  4956. //获取最新交办信息
  4957. string iszbdw = "0";
  4958. string ispd = "";
  4959. int state = Int32.Parse(dr["F_WorkState"].ToString());
  4960. if (state > 1)
  4961. {
  4962. 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";
  4963. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  4964. if (dtjb.Rows.Count > 0)
  4965. {
  4966. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  4967. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  4968. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  4969. {
  4970. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  4971. }
  4972. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  4973. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  4974. dr["LimitTime"] = lt;
  4975. #region
  4976. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  4977. {
  4978. if (!string.IsNullOrWhiteSpace(lt))
  4979. {
  4980. var ltime = DateTime.Parse(lt);
  4981. if (ltime > DateTime.Now)
  4982. {
  4983. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  4984. var SYSJ = DbHelperSQL.GetSingle(SY);
  4985. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  4986. {
  4987. try
  4988. {
  4989. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  4990. }
  4991. catch
  4992. {
  4993. }
  4994. }
  4995. }
  4996. TimeSpan ts = ltime.Subtract(DateTime.Now);
  4997. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  4998. if (tss < 0) { tss = -tss; }
  4999. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5000. if (ltime > DateTime.Now)
  5001. {
  5002. if (configcs != null)
  5003. {
  5004. int cs = Int32.Parse(configcs.F_ParamValue);
  5005. if (ts.TotalHours > cs)
  5006. {
  5007. dr["OverState"] = 1;
  5008. }
  5009. else
  5010. {
  5011. dr["OverState"] = 2;
  5012. }
  5013. }
  5014. dr["GapTime"] = "剩余" + gshsj;
  5015. }
  5016. else
  5017. {
  5018. dr["OverState"] = 3;
  5019. dr["GapTime"] = "超时" + gshsj;
  5020. }
  5021. }
  5022. }
  5023. if (state == (int)EnumWorkState.finish)
  5024. {
  5025. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5026. var dttime = DateTime.Now;
  5027. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5028. else
  5029. {
  5030. var DealTime = dr["F_CloseTime"].ToString();
  5031. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5032. }
  5033. if (!string.IsNullOrWhiteSpace(lt))
  5034. {
  5035. var ltime = DateTime.Parse(lt);
  5036. TimeSpan ts = ltime.Subtract(dttime);
  5037. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5038. if (tss < 0) { tss = -tss; }
  5039. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5040. if (ltime < dttime)
  5041. {
  5042. dr["OverState"] = 3;
  5043. dr["GapTime"] = "超时" + gshsj;
  5044. }
  5045. }
  5046. }
  5047. #endregion
  5048. ispd = dtjb.Rows[0]["F_IsNext"].ToString();
  5049. dr["PDState"] = ispd;
  5050. }
  5051. else
  5052. {
  5053. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5054. }
  5055. }
  5056. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5057. {
  5058. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5059. }
  5060. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5061. {
  5062. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5063. }
  5064. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5065. if (Int32.Parse(strtab) < 1)
  5066. {
  5067. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5068. #region 判断是否存在待督办
  5069. var recount = reminds.Where(r => r.F_WorkOrderId == dr["F_WorkOrderId"].ToString()).Count();
  5070. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  5071. if (recount > 0 && butt != null)
  5072. btns.Remove(butt);
  5073. #endregion
  5074. }
  5075. else
  5076. {
  5077. btns.Add(ButtonGroup.query());
  5078. }
  5079. dr["Buttons"] = btns;
  5080. }
  5081. #endregion
  5082. var obj = new
  5083. {
  5084. state = "success",
  5085. message = "成功",
  5086. rows = dt,
  5087. total = recordCount
  5088. };
  5089. return Content(obj.ToJson());
  5090. }
  5091. /// <summary>
  5092. /// 获取自己提交工单
  5093. /// </summary>
  5094. /// <param name="isdc"></param>
  5095. /// <returns></returns>
  5096. //[Authority]
  5097. public ActionResult GetSelfList(int isdc = 0)
  5098. {
  5099. DataTable dt = new DataTable();
  5100. string sql = " and F_IsDelete=0 ";
  5101. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5102. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5103. int islike = RequestString.GetInt("islike", 1);
  5104. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5105. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5106. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5107. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5108. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5109. int source = RequestString.GetInt("source", 0);
  5110. int keyid = RequestString.GetInt("keyid", 0);
  5111. int type = RequestString.GetInt("type", 0);
  5112. int bigtype = RequestString.GetInt("bigtype", 0);
  5113. int smalltype = RequestString.GetInt("smalltype", 0);
  5114. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5115. int deptid = RequestString.GetInt("deptid", 0);
  5116. int dealtype = RequestString.GetInt("dealtype", -1);
  5117. int issend = RequestString.GetInt("issend", -1);
  5118. int deptlevel = RequestString.GetInt("deptlevel", 0);
  5119. string strpageindex = RequestString.GetQueryString("page");
  5120. int pageindex = 1;
  5121. string strpagesize = RequestString.GetQueryString("pagesize");
  5122. int pagesize = 10;
  5123. #region sql 语句相关处理
  5124. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  5125. sql += " and F_CreateUser ='" + User.F_UserCode + "' ";
  5126. if (strstate.Trim() != "" && strstate != "undefined")
  5127. {
  5128. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5129. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5130. else
  5131. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5132. }
  5133. if (strworkid.Trim() != "" && strworkid != "undefined")
  5134. {
  5135. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5136. }
  5137. if (strname.Trim() != "" && strname != "undefined")
  5138. {
  5139. sql += " and F_CusName like '%" + strname + "%' ";
  5140. }
  5141. if (islike > 0)
  5142. {
  5143. if (strtel.Trim() != "" && strtel != "undefined")
  5144. {
  5145. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5146. }
  5147. }
  5148. else
  5149. {
  5150. if (strtel.Trim() != "" && strtel != "undefined")
  5151. {
  5152. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5153. }
  5154. }
  5155. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5156. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5157. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5158. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5159. {
  5160. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5161. }
  5162. if (Result.Trim() != "" && Result != "undefined")
  5163. {
  5164. sql += " and F_Result like '%" + Result + "%' ";
  5165. }
  5166. if (ComContent.Trim() != "" && ComContent != "undefined")
  5167. {
  5168. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5169. }
  5170. if (strkey.Trim() != "" && strkey != "undefined")
  5171. {
  5172. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5173. " or F_Result like '%" + strkey + "%' ) ";
  5174. }
  5175. if (source != 0)
  5176. {
  5177. sql += " and F_InfoSource = '" + source + "' ";
  5178. }
  5179. string sqlwhere = "";
  5180. if (keyid != 0)
  5181. {
  5182. sqlwhere = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5183. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5184. // " or F_Key='" + keyid + "' )";
  5185. }
  5186. if (type != 0)
  5187. {
  5188. sql += " and F_InfoType = '" + type + "' ";
  5189. }
  5190. if (bigtype != 0)
  5191. {
  5192. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5193. }
  5194. if (smalltype != 0)
  5195. {
  5196. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5197. }
  5198. if (sourcearea != 0)
  5199. {
  5200. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5201. }
  5202. if (deptid != 0)
  5203. {
  5204. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  5205. }
  5206. if (dealtype != -1)
  5207. {
  5208. sql += " and isnull(F_IsResult,0) = '" + dealtype + "' ";
  5209. }
  5210. if (issend != -1)
  5211. {
  5212. sql += " and isnull(F_IsRelease,0) = '" + issend + "' ";
  5213. }
  5214. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5215. {
  5216. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5217. }
  5218. if (strendtime.Trim() != "" && strendtime != "undefined")
  5219. {
  5220. sql += " and F_CreateTime<='" + strendtime + "' ";
  5221. }
  5222. #endregion
  5223. if (strpageindex.Trim() != "")
  5224. {
  5225. pageindex = Convert.ToInt32(strpageindex);
  5226. }
  5227. if (strpagesize.Trim() != "")
  5228. {
  5229. pagesize = Convert.ToInt32(strpagesize);
  5230. }
  5231. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  5232. #region 导出
  5233. if (isdc > 0)
  5234. {
  5235. var top = " "; var orderby = " order by F_CreateTime";
  5236. if (sql == " and F_IsDelete=0 ")
  5237. {
  5238. top = " top 1000 "; orderby += " desc ";
  5239. }
  5240. //20190715调整导出字段 zhengbingbing
  5241. //日期,工单号,诉求标题,诉求内容,承办单位,办理结果,是否满意,备注
  5242. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  5243. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  5244. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  5245. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  5246. + " from T_Bus_WorkOrder wo WITH(NOLOCK) where 1=1 " + sql + orderby).Tables[0];
  5247. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5248. if (msg == "")
  5249. {
  5250. return Success("导出成功");
  5251. }
  5252. else
  5253. {
  5254. return Error("导出失败");
  5255. }
  5256. }
  5257. #endregion
  5258. int recordCount = 0;
  5259. dt = BLL.PagerBLL.GetListPager(
  5260. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwhere,
  5261. "F_Id",
  5262. cols,
  5263. sql,
  5264. "ORDER BY F_CreateTime DESC",
  5265. pagesize,
  5266. pageindex,
  5267. true,
  5268. out recordCount);
  5269. #region 声音文件和交办超时
  5270. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5271. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5272. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5273. dt.Columns.Add("OverState", typeof(string));//超时状态
  5274. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5275. dt.Columns.Add("GapTime", typeof(string));//时间差
  5276. dt.Columns.Add("PDState", typeof(string));//派单状态
  5277. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  5278. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  5279. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5280. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5281. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5282. var reminds = remindBLL.GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1").ToList();
  5283. foreach (DataRow dr in dt.Rows)
  5284. {
  5285. string iszbdw = "0";
  5286. string ispd = "";
  5287. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5288. if (state > 1)
  5289. {
  5290. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  5291. //获取最新交办信息
  5292. 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";
  5293. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5294. if (dtjb.Rows.Count > 0)
  5295. {
  5296. if (dr["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5297. if (dr["F_OtherDeptIds"] != null && dr["F_OtherDeptIds"].ToString() != "")
  5298. {
  5299. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_OtherDeptIds"].ToString() + "')");
  5300. }
  5301. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5302. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5303. dr["LimitTime"] = lt;
  5304. #region 超时时限
  5305. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5306. {
  5307. if (!string.IsNullOrWhiteSpace(lt))
  5308. {
  5309. var ltime = DateTime.Parse(lt);
  5310. if (ltime > DateTime.Now)
  5311. {
  5312. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  5313. var SYSJ = DbHelperSQL.GetSingle(SY);
  5314. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  5315. {
  5316. try
  5317. {
  5318. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5319. }
  5320. catch
  5321. {
  5322. }
  5323. }
  5324. }
  5325. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5326. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5327. if (tss < 0) { tss = -tss; }
  5328. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5329. if (ltime > DateTime.Now)
  5330. {
  5331. if (configcs != null)
  5332. {
  5333. int cs = Int32.Parse(configcs.F_ParamValue);
  5334. if (ts.TotalHours > cs)
  5335. {
  5336. dr["OverState"] = 1;
  5337. }
  5338. else
  5339. {
  5340. dr["OverState"] = 2;
  5341. }
  5342. }
  5343. dr["GapTime"] = "剩余" + gshsj;
  5344. }
  5345. else
  5346. {
  5347. dr["OverState"] = 3;
  5348. dr["GapTime"] = "超时" + gshsj;
  5349. }
  5350. }
  5351. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  5352. dr["PDState"] = ispd;
  5353. }
  5354. if (state == (int)EnumWorkState.finish)
  5355. {
  5356. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5357. var dttime = DateTime.Now;
  5358. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5359. else
  5360. {
  5361. var DealTime = dr["F_CloseTime"].ToString();
  5362. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5363. }
  5364. if (!string.IsNullOrWhiteSpace(lt))
  5365. {
  5366. var ltime = DateTime.Parse(lt);
  5367. TimeSpan ts = ltime.Subtract(dttime);
  5368. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5369. if (tss < 0) { tss = -tss; }
  5370. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5371. if (ltime < dttime)
  5372. {
  5373. dr["OverState"] = 3;
  5374. dr["GapTime"] = "超时" + gshsj;
  5375. }
  5376. }
  5377. }
  5378. #endregion
  5379. }
  5380. }
  5381. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5382. {
  5383. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5384. }
  5385. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5386. {
  5387. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5388. }
  5389. var buttons = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5390. #region 判断是否存在待督办
  5391. var recount = reminds.Where(r => r.F_WorkOrderId.Equals(dr["F_WorkOrderId"].ToString())).Count();
  5392. var butt = buttons.Find(c => c.key == ButtonGroup.turnsee().key);
  5393. if (recount > 0 && butt != null)
  5394. buttons.Remove(butt);
  5395. #endregion
  5396. dr["Buttons"] = buttons;
  5397. }
  5398. #endregion
  5399. var obj = new
  5400. {
  5401. state = "success",
  5402. message = "成功",
  5403. rows = dt,
  5404. total = recordCount
  5405. };
  5406. return Content(obj.ToJson());
  5407. }
  5408. /// <summary>
  5409. /// 获取逾期未回复工单列表
  5410. /// </summary>
  5411. /// <returns></returns>
  5412. //[Authority]
  5413. public ActionResult GetTimeOutList(int isdc = 0)
  5414. {
  5415. DataTable dt = new DataTable();
  5416. string sql = " and F_IsDelete=0";
  5417. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5418. int islike = RequestString.GetInt("islike", 1);
  5419. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5420. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5421. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5422. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5423. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5424. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5425. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5426. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  5427. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  5428. int source = RequestString.GetInt("source", 0);
  5429. int keyid = RequestString.GetInt("keyid", 0);
  5430. int type = RequestString.GetInt("type", 0);
  5431. int bigtype = RequestString.GetInt("bigtype", 0);
  5432. int smalltype = RequestString.GetInt("smalltype", 0);
  5433. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5434. int deptid = RequestString.GetInt("deptid", 0);
  5435. int soon = RequestString.GetInt("soon", 0);
  5436. string strpageindex = RequestString.GetQueryString("page");
  5437. int pageindex = 1;
  5438. string strpagesize = RequestString.GetQueryString("pagesize");
  5439. int pagesize = 10;
  5440. #region 坐席&调度员
  5441. string splituser = HttpUtility.UrlDecode(RequestString.GetQueryString("splituser"));
  5442. if (splituser.Trim() != "" && splituser != "undefined")
  5443. {
  5444. sql += " and F_SplitUser = '" + splituser + "' ";
  5445. }
  5446. string assuser = HttpUtility.UrlDecode(RequestString.GetQueryString("assuser"));
  5447. if (assuser.Trim() != "" && assuser != "undefined")
  5448. {
  5449. sql += " and F_AssignUser = '" + assuser + "' ";
  5450. }
  5451. if (strusercode.Trim() != "" && strusercode != "undefined")
  5452. {//坐席
  5453. var usercode = strusercode.Trim().Split(',');
  5454. var newusercode = "";
  5455. foreach (var item in usercode)
  5456. {
  5457. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5458. newusercode += "'" + item + "',";
  5459. }
  5460. newusercode = newusercode.Trim(',');
  5461. if (newusercode.Trim() != "" && newusercode != "undefined")
  5462. {
  5463. sql += " and F_CreateUser in (" + newusercode + ") ";
  5464. }
  5465. }
  5466. if (ejdeptid > 0)
  5467. {
  5468. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  5469. }
  5470. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5471. {//调度员
  5472. var ddusercode = strddusercode.Trim().Split(',');
  5473. var newusercode = "";
  5474. foreach (var item in ddusercode)
  5475. {
  5476. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5477. newusercode += "'" + item + "',";
  5478. }
  5479. newusercode = newusercode.Trim(',');
  5480. if (newusercode.Trim() != "" && newusercode != "undefined")
  5481. {
  5482. sql += " and F_AssignUser in(" + newusercode + ") ";
  5483. }
  5484. }
  5485. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5486. //{
  5487. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5488. //}
  5489. #endregion
  5490. string sqlwhere = ""; string sqlwhere1 = "";
  5491. if (User.F_RoleCode == "WLDW")
  5492. {
  5493. if (soon == 1)
  5494. {
  5495. sqlwhere += " and (F_LimitTime<getdate() or " +
  5496. " F_LimitTime<(dateadd(dd,-1,GETDATE()))) ";
  5497. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  5498. //+ " where F_State=1 and F_IsDelete=0 and and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  5499. }
  5500. else
  5501. {
  5502. // sqlwhere += " and F_MainDeptId = '" + User.F_DeptId + "') or F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedItemInfo WITH(NOLOCK) "
  5503. //+ " where F_State=1 and F_IsDelete=0 and F_LimitTime<getdate() and ISNULL(F_FeedbackTime, '')='' and F_DeptId = '" + User.F_DeptId + "' ";
  5504. sqlwhere += " and F_LimitTime<getdate() ";
  5505. }
  5506. //sqlwhere1 += " and F_MainDeptId = '" + User.F_DeptId + "'";
  5507. sql += " and F_MainDeptId = '" + User.F_DeptId + "' " +
  5508. "and F_WorkState NOT IN (6,7,9)";
  5509. // sqlwhere += "))";
  5510. }
  5511. else if (User.F_RoleCode == "EJWLDW")
  5512. {
  5513. 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) ";
  5514. sqlwhere += "and F_WorkOrderId in (select F_WorkOrderId from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and isnull(F_FeedbackTime,'')='' and F_IsDelete=0 and "
  5515. + " F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1)))";
  5516. }
  5517. else if (deptid != 0)
  5518. {
  5519. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN(6,7,9)";
  5520. sqlwhere += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  5521. sqlwhere1 += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  5522. }
  5523. else
  5524. {
  5525. sqlwhere += " and F_LimitTime<getdate() and F_WorkState NOT IN (6,7,9) ";
  5526. }
  5527. sql += "and F_MainDeptId is not null and F_MainDeptId !='' ";
  5528. //if (User.F_RoleCode == "ZXLD")
  5529. //{
  5530. // sqlwhere += " and F_CreateUser = '" + User.F_UserCode + "' ";
  5531. // sqlwhere1 += " and F_CreateUser = '" + User.F_UserCode + "'";
  5532. //}
  5533. if (strstate.Trim() != "" && strstate != "undefined")
  5534. {
  5535. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  5536. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  5537. else
  5538. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  5539. if (strstate.Trim() == ((int)EnumWorkState.finish).ToString())
  5540. sql += " and F_LimitTime<F_DealTime " + sqlwhere1;
  5541. else
  5542. sql += sqlwhere;
  5543. }
  5544. else
  5545. {
  5546. int[] sts = new int[] { (int)EnumWorkState.receive, (int)EnumWorkState.dealing, (int)EnumWorkState.reload };
  5547. sql += " and F_WorkState in (" + string.Join(",", sts.Select(p => p.ToString())) + ")";
  5548. sql += sqlwhere;
  5549. //sql += " and F_WorkState in (2,4,8)";
  5550. }
  5551. if (strworkid.Trim() != "" && strworkid != "undefined")
  5552. {
  5553. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5554. }
  5555. if (strname.Trim() != "" && strname != "undefined")
  5556. {
  5557. sql += " and F_CusName like '%" + strname + "%' ";
  5558. }
  5559. if (islike > 0)
  5560. {
  5561. if (strtel.Trim() != "" && strtel != "undefined")
  5562. {
  5563. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5564. }
  5565. }
  5566. else
  5567. {
  5568. if (strtel.Trim() != "" && strtel != "undefined")
  5569. {
  5570. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5571. }
  5572. }
  5573. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5574. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5575. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5576. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5577. {
  5578. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5579. }
  5580. if (Result.Trim() != "" && Result != "undefined")
  5581. {
  5582. sql += " and F_Result like '%" + Result + "%' ";
  5583. }
  5584. if (ComContent.Trim() != "" && ComContent != "undefined")
  5585. {
  5586. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5587. }
  5588. if (strkey.Trim() != "" && strkey != "undefined")
  5589. {
  5590. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5591. " or F_Result like '%" + strkey + "%' ) ";
  5592. }
  5593. if (source != 0)
  5594. {
  5595. sql += " and F_InfoSource = '" + source + "' ";
  5596. }
  5597. string sqlwheres = ""; string value = "";
  5598. if (keyid != 0)
  5599. {
  5600. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5601. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5602. // " or F_Key='" + keyid + "' )";
  5603. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  5604. }
  5605. if (type != 0)
  5606. {
  5607. sql += " and F_InfoType = '" + type + "' ";
  5608. }
  5609. if (bigtype != 0)
  5610. {
  5611. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5612. }
  5613. if (smalltype != 0)
  5614. {
  5615. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5616. }
  5617. if (sourcearea != 0)
  5618. {
  5619. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5620. }
  5621. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5622. {
  5623. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5624. }
  5625. if (strendtime.Trim() != "" && strendtime != "undefined")
  5626. {
  5627. sql += " and F_CreateTime<='" + strendtime + "' ";
  5628. }
  5629. if (strpageindex.Trim() != "")
  5630. {
  5631. pageindex = Convert.ToInt32(strpageindex);
  5632. }
  5633. if (strpagesize.Trim() != "")
  5634. {
  5635. pagesize = Convert.ToInt32(strpagesize);
  5636. }
  5637. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5638. string cols = "F_WorkOrderId,F_CusName,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  5639. if (isdc > 0)
  5640. {
  5641. // var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5642. var top = " "; var orderby = " order by F_CreateTime";
  5643. if (sql == " and F_IsDelete=0 ")
  5644. {
  5645. top = " top 1000 "; orderby += " desc ";
  5646. }
  5647. var dtdc = DbHelperSQL.Query(" select F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  5648. + " dbo.GetDeptNames(F_MainDeptId ) 主办单位, "
  5649. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  5650. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意 "
  5651. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  5652. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5653. if (msg == "")
  5654. {
  5655. return Success("导出成功");
  5656. }
  5657. else
  5658. {
  5659. return Error("导出失败");
  5660. }
  5661. }
  5662. int recordCount = 0;
  5663. dt = BLL.PagerBLL.GetListPager(
  5664. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  5665. "F_Id",
  5666. cols,
  5667. sql,
  5668. "ORDER BY F_CreateTime DESC",
  5669. pagesize,
  5670. pageindex,
  5671. true,
  5672. out recordCount);
  5673. #region 声音文件
  5674. dt.Columns.Add("DeptName", typeof(string));//交办单位
  5675. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  5676. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  5677. dt.Columns.Add("OverState", typeof(string));//超时状态
  5678. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  5679. dt.Columns.Add("GapTime", typeof(string));//时间差
  5680. dt.Columns.Add("FilePath", typeof(string));
  5681. dt.Columns.Add("Buttons", typeof(object));
  5682. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  5683. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  5684. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  5685. foreach (DataRow dr in dt.Rows)
  5686. {
  5687. //获取最新交办信息
  5688. string iszbdw = "0";
  5689. int state = Int32.Parse(dr["F_WorkState"].ToString());
  5690. string ispd = "";
  5691. if (state > 1)
  5692. {
  5693. 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";
  5694. string sqlej = "";
  5695. if (User.F_RoleCode == "EJWLDW")
  5696. {
  5697. sqlej = " select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  5698. }
  5699. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  5700. if (dtjb.Rows.Count > 0)
  5701. {
  5702. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  5703. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  5704. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  5705. {
  5706. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  5707. }
  5708. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  5709. #region 时限
  5710. //if (state < 6 || state == 8)
  5711. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  5712. {
  5713. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5714. if (User.F_RoleCode == "EJWLDW")
  5715. {
  5716. sqlej = " select TOP 1 F_LimitTime from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + dr["F_WorkOrderId"].ToString() + "' order by F_CreateTime desc";
  5717. var dtej = DbHelperSQL.Query(sqljb).Tables[0];
  5718. lt = dtej.Rows[0]["F_LimitTime"].ToString();
  5719. }
  5720. dr["LimitTime"] = lt;
  5721. if (!string.IsNullOrWhiteSpace(lt))
  5722. {
  5723. var ltime = DateTime.Parse(lt);
  5724. if (ltime > DateTime.Now)
  5725. {
  5726. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  5727. var SYSJ = DbHelperSQL.GetSingle(SY);
  5728. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  5729. {
  5730. try
  5731. {
  5732. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  5733. }
  5734. catch
  5735. {
  5736. }
  5737. }
  5738. }
  5739. TimeSpan ts = ltime.Subtract(DateTime.Now);
  5740. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5741. if (tss < 0) { tss = -tss; }
  5742. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5743. if (ltime > DateTime.Now)
  5744. {
  5745. if (configcs != null)
  5746. {
  5747. int cs = Int32.Parse(configcs.F_ParamValue);
  5748. if (ts.TotalHours > cs)
  5749. {
  5750. dr["OverState"] = 1;
  5751. }
  5752. else
  5753. {
  5754. dr["OverState"] = 2;
  5755. }
  5756. }
  5757. dr["GapTime"] = "剩余" + gshsj;
  5758. }
  5759. else
  5760. {
  5761. dr["OverState"] = 3;
  5762. dr["GapTime"] = "超时" + gshsj;
  5763. }
  5764. }
  5765. }
  5766. if (state == (int)EnumWorkState.finish)
  5767. {
  5768. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  5769. var dttime = DateTime.Now;
  5770. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  5771. else
  5772. {
  5773. var DealTime = dr["F_CloseTime"].ToString();
  5774. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  5775. }
  5776. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  5777. dr["LimitTime"] = lt;
  5778. if (!string.IsNullOrWhiteSpace(lt))
  5779. {
  5780. var ltime = DateTime.Parse(lt);
  5781. TimeSpan ts = ltime.Subtract(dttime);
  5782. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  5783. if (tss < 0) { tss = -tss; }
  5784. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  5785. if (ltime < dttime)
  5786. {
  5787. dr["OverState"] = 3;
  5788. dr["GapTime"] = "超时" + gshsj;
  5789. }
  5790. }
  5791. }
  5792. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  5793. #endregion
  5794. }
  5795. }
  5796. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  5797. {
  5798. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  5799. }
  5800. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  5801. {
  5802. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  5803. }
  5804. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  5805. if (User.F_RoleCode == "EJWLDW")
  5806. {
  5807. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5808. }
  5809. if (User.F_RoleCode == "WLDW")
  5810. {
  5811. if (ispd == "0" || ispd == "")
  5812. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  5813. }
  5814. else
  5815. {
  5816. btns.Add(ButtonGroup.query());
  5817. }
  5818. dr["Buttons"] = btns;
  5819. }
  5820. #endregion
  5821. var obj = new
  5822. {
  5823. state = "success",
  5824. message = "成功",
  5825. rows = dt,
  5826. total = recordCount
  5827. };
  5828. return Content(obj.ToJson());
  5829. }
  5830. /// <summary>
  5831. /// 获取公开工单列表
  5832. /// </summary>
  5833. /// <returns></returns>
  5834. //[Authority]
  5835. public ActionResult GetMediaList(int isdc = 0)
  5836. {
  5837. DataTable dt = new DataTable();
  5838. string sql = " and F_IsDelete=0";
  5839. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  5840. int islike = RequestString.GetInt("islike", 1);
  5841. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  5842. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  5843. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  5844. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  5845. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  5846. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  5847. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  5848. int source = RequestString.GetInt("source", 0);
  5849. int keyid = RequestString.GetInt("keyid", 0);
  5850. int type = RequestString.GetInt("type", 0);
  5851. int bigtype = RequestString.GetInt("bigtype", 0);
  5852. int smalltype = RequestString.GetInt("smalltype", 0);
  5853. int sourcearea = RequestString.GetInt("sourcearea", 0);
  5854. int deptid = RequestString.GetInt("deptid", 0);
  5855. string strpageindex = RequestString.GetQueryString("page");
  5856. int pageindex = 1;
  5857. string strpagesize = RequestString.GetQueryString("pagesize");
  5858. int pagesize = 10;
  5859. sql += " and isnull(F_IsOpen,0) =1 ";
  5860. if (strworkid.Trim() != "" && strworkid != "undefined")
  5861. {
  5862. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  5863. }
  5864. if (strname.Trim() != "" && strname != "undefined")
  5865. {
  5866. sql += " and F_CusName like '%" + strname + "%' ";
  5867. }
  5868. if (islike > 0)
  5869. {
  5870. if (strtel.Trim() != "" && strtel != "undefined")
  5871. {
  5872. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  5873. }
  5874. }
  5875. else
  5876. {
  5877. if (strtel.Trim() != "" && strtel != "undefined")
  5878. {
  5879. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  5880. }
  5881. }
  5882. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  5883. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  5884. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  5885. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  5886. {
  5887. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  5888. }
  5889. if (Result.Trim() != "" && Result != "undefined")
  5890. {
  5891. sql += " and F_Result like '%" + Result + "%' ";
  5892. }
  5893. if (ComContent.Trim() != "" && ComContent != "undefined")
  5894. {
  5895. sql += " and F_ComContent like '%" + ComContent + "%' ";
  5896. }
  5897. if (strkey.Trim() != "" && strkey != "undefined")
  5898. {
  5899. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  5900. " or F_Result like '%" + strkey + "%' ) ";
  5901. }
  5902. #region 坐席&调度员
  5903. if (strusercode.Trim() != "" && strusercode != "undefined")
  5904. {//坐席
  5905. var usercode = strusercode.Trim().Split(',');
  5906. var newusercode = "";
  5907. foreach (var item in usercode)
  5908. {
  5909. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5910. newusercode += "'" + item + "',";
  5911. }
  5912. newusercode = newusercode.Trim(',');
  5913. if (newusercode.Trim() != "" && newusercode != "undefined")
  5914. {
  5915. sql += " and F_CreateUser in (" + newusercode + ") ";
  5916. }
  5917. }
  5918. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  5919. {//调度员
  5920. var ddusercode = strddusercode.Trim().Split(',');
  5921. var newusercode = "";
  5922. foreach (var item in ddusercode)
  5923. {
  5924. if (!string.IsNullOrWhiteSpace(item.Trim()))
  5925. newusercode += "'" + item + "',";
  5926. }
  5927. newusercode = newusercode.Trim(',');
  5928. if (newusercode.Trim() != "" && newusercode != "undefined")
  5929. {
  5930. sql += " and F_AssignUser in(" + newusercode + ") ";
  5931. }
  5932. }
  5933. //if (strusercode.Trim() != "" && strusercode != "undefined")
  5934. //{
  5935. // sql += " and F_CreateUser = '" + strusercode + "' ";
  5936. //}
  5937. #endregion
  5938. if (source != 0)
  5939. {
  5940. sql += " and F_InfoSource = '" + source + "' ";
  5941. }
  5942. string sqlwheres = "";
  5943. if (keyid != 0)
  5944. {
  5945. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  5946. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  5947. // " or F_Key='" + keyid + "' )";
  5948. }
  5949. if (type != 0)
  5950. {
  5951. sql += " and F_InfoType = '" + type + "' ";
  5952. }
  5953. if (bigtype != 0)
  5954. {
  5955. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  5956. }
  5957. if (smalltype != 0)
  5958. {
  5959. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  5960. }
  5961. if (sourcearea != 0)
  5962. {
  5963. sql += " and F_SourceArea = '" + sourcearea + "' ";
  5964. }
  5965. if (deptid != 0)
  5966. {
  5967. 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 ";
  5968. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  5969. }
  5970. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  5971. {
  5972. sql += " and F_CreateTime>='" + strstarttime + "' ";
  5973. }
  5974. if (strendtime.Trim() != "" && strendtime != "undefined")
  5975. {
  5976. sql += " and F_CreateTime<='" + strendtime + "' ";
  5977. }
  5978. if (strpageindex.Trim() != "")
  5979. {
  5980. pageindex = Convert.ToInt32(strpageindex);
  5981. }
  5982. if (strpagesize.Trim() != "")
  5983. {
  5984. pagesize = Convert.ToInt32(strpagesize);
  5985. }
  5986. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,"
  5987. // + "dbo.GetDictionaryName(F_InfoSource) as SourceName ";
  5988. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  5989. if (isdc > 0)
  5990. {
  5991. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  5992. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  5993. if (msg == "")
  5994. {
  5995. return Success("导出成功");
  5996. }
  5997. else
  5998. {
  5999. return Error("导出失败");
  6000. }
  6001. }
  6002. int recordCount = 0;
  6003. dt = BLL.PagerBLL.GetListPager(
  6004. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6005. "F_Id",
  6006. cols,
  6007. sql,
  6008. "ORDER BY F_CreateTime DESC",
  6009. pagesize,
  6010. pageindex,
  6011. true,
  6012. out recordCount);
  6013. #region 声音文件
  6014. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6015. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6016. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6017. dt.Columns.Add("IsReturnMedia", typeof(string));
  6018. dt.Columns.Add("Buttons", typeof(object));
  6019. int IsReturnMedia = 0;
  6020. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  6021. {
  6022. IsReturnMedia = 1;
  6023. }
  6024. foreach (DataRow dr in dt.Rows)
  6025. {
  6026. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6027. if (state > 1)
  6028. {
  6029. //获取最新交办信息
  6030. 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";
  6031. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6032. if (dtjb.Rows.Count > 0)
  6033. {
  6034. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6035. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6036. {
  6037. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6038. }
  6039. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6040. //int did = Int32.Parse(dtjb.Rows[0]["F_MainDeptId"].ToString());
  6041. //var deptinfo = new BLL.T_Sys_Department().GetModel(did);
  6042. //if (deptinfo != null)
  6043. //{
  6044. // dr["DeptName"] = deptinfo.F_DeptName;//交办单位
  6045. //}
  6046. //if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6047. //{
  6048. // string[] strids = dtjb.Rows[0]["F_OtherDeptIds"].ToString().Split(',');
  6049. // string dns = string.Empty;
  6050. // foreach (string strid in strids)
  6051. // {
  6052. // var dinfo = new BLL.T_Sys_Department().GetModel(Int32.Parse(strid));
  6053. // if (dinfo != null)
  6054. // {
  6055. // if (string.IsNullOrEmpty(dns))
  6056. // {
  6057. // dns = dinfo.F_DeptName;//交办单位
  6058. // }
  6059. // else
  6060. // {
  6061. // dns += "," + dinfo.F_DeptName;//交办单位
  6062. // }
  6063. // }
  6064. // }
  6065. // dr["OtherDeptName"] = dns;
  6066. //}
  6067. }
  6068. }
  6069. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6070. btns.Add(ButtonGroup.query());
  6071. dr["Buttons"] = btns;
  6072. dr["IsReturnMedia"] = IsReturnMedia;
  6073. }
  6074. #endregion
  6075. var obj = new
  6076. {
  6077. state = "success",
  6078. message = "成功",
  6079. rows = dt,
  6080. total = recordCount
  6081. };
  6082. return Content(obj.ToJson());
  6083. }
  6084. /// <summary>
  6085. /// 获取媒体工单列表
  6086. /// </summary>
  6087. /// <returns></returns>
  6088. //[Authority]
  6089. public ActionResult GetMassList(int isdc = 0)
  6090. {
  6091. DataTable dt = new DataTable();
  6092. string sql = " and F_IsDelete=0";
  6093. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6094. int islike = RequestString.GetInt("islike", 1);
  6095. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6096. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6097. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6098. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6099. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6100. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6101. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6102. int source = RequestString.GetInt("source", 0);
  6103. int keyid = RequestString.GetInt("keyid", 0);
  6104. int type = RequestString.GetInt("type", 0);
  6105. int bigtype = RequestString.GetInt("bigtype", 0);
  6106. int smalltype = RequestString.GetInt("smalltype", 0);
  6107. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6108. int deptid = RequestString.GetInt("deptid", 0);
  6109. string strpageindex = RequestString.GetQueryString("page");
  6110. int pageindex = 1;
  6111. string strpagesize = RequestString.GetQueryString("pagesize");
  6112. int pagesize = 10;
  6113. sql += " and isnull(F_IsMedia,0) =1 ";
  6114. if (strworkid.Trim() != "" && strworkid != "undefined")
  6115. {
  6116. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6117. }
  6118. if (strname.Trim() != "" && strname != "undefined")
  6119. {
  6120. sql += " and F_CusName like '%" + strname + "%' ";
  6121. }
  6122. if (islike > 0)
  6123. {
  6124. if (strtel.Trim() != "" && strtel != "undefined")
  6125. {
  6126. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6127. }
  6128. }
  6129. else
  6130. {
  6131. if (strtel.Trim() != "" && strtel != "undefined")
  6132. {
  6133. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6134. }
  6135. }
  6136. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6137. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6138. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6139. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6140. {
  6141. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6142. }
  6143. if (Result.Trim() != "" && Result != "undefined")
  6144. {
  6145. sql += " and F_Result like '%" + Result + "%' ";
  6146. }
  6147. if (ComContent.Trim() != "" && ComContent != "undefined")
  6148. {
  6149. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6150. }
  6151. if (strkey.Trim() != "" && strkey != "undefined")
  6152. {
  6153. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6154. " or F_Result like '%" + strkey + "%' ) ";
  6155. }
  6156. #region 坐席&调度员
  6157. if (strusercode.Trim() != "" && strusercode != "undefined")
  6158. {//坐席
  6159. var usercode = strusercode.Trim().Split(',');
  6160. var newusercode = "";
  6161. foreach (var item in usercode)
  6162. {
  6163. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6164. newusercode += "'" + item + "',";
  6165. }
  6166. newusercode = newusercode.Trim(',');
  6167. if (newusercode.Trim() != "" && newusercode != "undefined")
  6168. {
  6169. sql += " and F_CreateUser in (" + newusercode + ") ";
  6170. }
  6171. }
  6172. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6173. {//调度员
  6174. var ddusercode = strddusercode.Trim().Split(',');
  6175. var newusercode = "";
  6176. foreach (var item in ddusercode)
  6177. {
  6178. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6179. newusercode += "'" + item + "',";
  6180. }
  6181. newusercode = newusercode.Trim(',');
  6182. if (newusercode.Trim() != "" && newusercode != "undefined")
  6183. {
  6184. sql += " and F_AssignUser in(" + newusercode + ") ";
  6185. }
  6186. }
  6187. #endregion
  6188. if (source != 0)
  6189. {
  6190. sql += " and F_InfoSource = '" + source + "' ";
  6191. }
  6192. string sqlwheres = "";
  6193. if (keyid != 0)
  6194. {
  6195. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6196. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6197. // " or F_Key='" + keyid + "' )";
  6198. }
  6199. if (type != 0)
  6200. {
  6201. sql += " and F_InfoType = '" + type + "' ";
  6202. }
  6203. if (bigtype != 0)
  6204. {
  6205. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6206. }
  6207. if (smalltype != 0)
  6208. {
  6209. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6210. }
  6211. if (sourcearea != 0)
  6212. {
  6213. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6214. }
  6215. if (deptid != 0)
  6216. {
  6217. 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 ";
  6218. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6219. }
  6220. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6221. {
  6222. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6223. }
  6224. if (strendtime.Trim() != "" && strendtime != "undefined")
  6225. {
  6226. sql += " and F_CreateTime<='" + strendtime + "' ";
  6227. }
  6228. if (strpageindex.Trim() != "")
  6229. {
  6230. pageindex = Convert.ToInt32(strpageindex);
  6231. }
  6232. if (strpagesize.Trim() != "")
  6233. {
  6234. pagesize = Convert.ToInt32(strpagesize);
  6235. }
  6236. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  6237. if (isdc > 0)
  6238. {
  6239. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6240. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6241. if (msg == "")
  6242. {
  6243. return Success("导出成功");
  6244. }
  6245. else
  6246. {
  6247. return Error("导出失败");
  6248. }
  6249. }
  6250. int recordCount = 0;
  6251. dt = BLL.PagerBLL.GetListPager(
  6252. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6253. "F_Id",
  6254. cols,
  6255. sql,
  6256. "ORDER BY F_CreateTime DESC",
  6257. pagesize,
  6258. pageindex,
  6259. true,
  6260. out recordCount);
  6261. #region 声音文件
  6262. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6263. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6264. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6265. dt.Columns.Add("IsReturnMedia", typeof(string));
  6266. dt.Columns.Add("Buttons", typeof(object));
  6267. int IsReturnMedia = 0;
  6268. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  6269. {
  6270. IsReturnMedia = 1;
  6271. }
  6272. foreach (DataRow dr in dt.Rows)
  6273. {
  6274. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6275. if (state > 1)
  6276. {
  6277. //获取最新交办信息
  6278. 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";
  6279. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6280. if (dtjb.Rows.Count > 0)
  6281. {
  6282. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6283. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6284. {
  6285. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6286. }
  6287. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6288. }
  6289. }
  6290. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6291. btns.Add(ButtonGroup.query());
  6292. dr["Buttons"] = btns;
  6293. dr["IsReturnMedia"] = IsReturnMedia;
  6294. }
  6295. #endregion
  6296. var obj = new
  6297. {
  6298. state = "success",
  6299. message = "成功",
  6300. rows = dt,
  6301. total = recordCount
  6302. };
  6303. return Content(obj.ToJson());
  6304. }
  6305. /// <summary>
  6306. /// 获取通报工单列表
  6307. /// </summary>
  6308. /// <returns></returns>
  6309. //[Authority]
  6310. public ActionResult GetNoticeList(string[] usercode, string[] ddusercode, int isdc = 0)//
  6311. {
  6312. DataTable dt = new DataTable();
  6313. //int userId = 8000;
  6314. string sql = " and F_IsDelete=0 ";
  6315. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6316. int islike = RequestString.GetInt("islike", 1);
  6317. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6318. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6319. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6320. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6321. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6322. //string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6323. //string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6324. int source = RequestString.GetInt("source", 0);
  6325. int keyid = RequestString.GetInt("keyid", 0);
  6326. int type = RequestString.GetInt("type", 0);
  6327. int bigtype = RequestString.GetInt("bigtype", 0);
  6328. int smalltype = RequestString.GetInt("smalltype", 0);
  6329. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6330. int deptid = RequestString.GetInt("deptid", 0);
  6331. string strpageindex = RequestString.GetQueryString("page");
  6332. int pageindex = 1;
  6333. string strpagesize = RequestString.GetQueryString("pagesize");
  6334. int pagesize = 10;
  6335. if (strworkid.Trim() != "" && strworkid != "undefined")
  6336. {
  6337. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6338. }
  6339. if (strname.Trim() != "" && strname != "undefined")
  6340. {
  6341. sql += " and F_CusName like '%" + strname + "%' ";
  6342. }
  6343. if (islike > 0)
  6344. {
  6345. if (strtel.Trim() != "" && strtel != "undefined")
  6346. {
  6347. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6348. }
  6349. }
  6350. else
  6351. {
  6352. if (strtel.Trim() != "" && strtel != "undefined")
  6353. {
  6354. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6355. }
  6356. }
  6357. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6358. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6359. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6360. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6361. {
  6362. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6363. }
  6364. if (Result.Trim() != "" && Result != "undefined")
  6365. {
  6366. sql += " and F_Result like '%" + Result + "%' ";
  6367. }
  6368. if (ComContent.Trim() != "" && ComContent != "undefined")
  6369. {
  6370. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6371. }
  6372. if (strkey.Trim() != "" && strkey != "undefined")
  6373. {
  6374. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6375. " or F_Result like '%" + strkey + "%' ) ";
  6376. }
  6377. #region 坐席&调度员
  6378. /*if (strusercode.Trim() != "" && strusercode != "undefined")
  6379. {//坐席
  6380. var usercode = strusercode.Trim().Split(',');
  6381. var newusercode = "";
  6382. foreach (var item in usercode)
  6383. {
  6384. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6385. newusercode += "'" + item + "',";
  6386. }
  6387. newusercode = newusercode.Trim(',');
  6388. if (newusercode.Trim() != "" && newusercode != "undefined")
  6389. {
  6390. sql += " and F_CreateUser in (" + newusercode + ") ";
  6391. }
  6392. }*/
  6393. #region
  6394. if (usercode != null && usercode.Length > 0)
  6395. {
  6396. var newusercode = "";
  6397. //string codes = "";
  6398. for (int i = 0; i < usercode.Length; i++)
  6399. {
  6400. if (usercode[i] != "")
  6401. {
  6402. newusercode += "'" + usercode[i] + "',";
  6403. }
  6404. }
  6405. newusercode = newusercode.Trim(',');
  6406. if (newusercode.Trim() != "" && newusercode != "undefined")
  6407. {
  6408. sql += " and F_CreateUser in (" + newusercode + ") ";
  6409. }
  6410. }
  6411. if (ddusercode != null && ddusercode.Length > 0)
  6412. {
  6413. var newusercode = "";
  6414. //string codes = "";
  6415. for (int i = 0; i < ddusercode.Length; i++)
  6416. {
  6417. if (ddusercode[i] != "")
  6418. {
  6419. newusercode += "'" + ddusercode[i] + "',";
  6420. }
  6421. }
  6422. newusercode = newusercode.Trim(',');
  6423. if (newusercode.Trim() != "" && newusercode != "undefined")
  6424. {
  6425. sql += " and F_AssignUser in (" + newusercode + ") ";
  6426. }
  6427. }
  6428. #endregion
  6429. /*if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6430. {//调度员
  6431. var ddusercode = strddusercode.Trim().Split(',');
  6432. var newusercode = "";
  6433. foreach (var item in ddusercode)
  6434. {
  6435. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6436. newusercode += "'" + item + "',";
  6437. }
  6438. newusercode = newusercode.Trim(',');
  6439. if (newusercode.Trim() != "" && newusercode != "undefined")
  6440. {
  6441. sql += " and F_AssignUser in(" + newusercode + ") ";
  6442. }
  6443. }*/
  6444. //if (strusercode.Trim() != "" && strusercode != "undefined")
  6445. //{
  6446. // sql += " and F_CreateUser = '" + strusercode + "' ";
  6447. //}
  6448. #endregion
  6449. if (source != 0)
  6450. {
  6451. sql += " and F_InfoSource = '" + source + "' ";
  6452. }
  6453. string sqlwheres = "";
  6454. if (keyid != 0)
  6455. {
  6456. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6457. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6458. // " or F_Key='" + keyid + "' )";
  6459. }
  6460. if (type != 0)
  6461. {
  6462. sql += " and F_InfoType = '" + type + "' ";
  6463. }
  6464. if (bigtype != 0)
  6465. {
  6466. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6467. }
  6468. if (smalltype != 0)
  6469. {
  6470. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6471. }
  6472. if (sourcearea != 0)
  6473. {
  6474. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6475. }
  6476. if (deptid != 0)
  6477. {
  6478. 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 ";
  6479. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6480. }
  6481. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  6482. {
  6483. sql += " and F_CreateTime>='" + strstarttime + "' ";
  6484. }
  6485. if (strendtime.Trim() != "" && strendtime != "undefined")
  6486. {
  6487. sql += " and F_CreateTime<='" + strendtime + "' ";
  6488. }
  6489. if (User.F_RoleCode == "WLDW")
  6490. {
  6491. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + User.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  6492. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  6493. }
  6494. else
  6495. {
  6496. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  6497. }
  6498. if (strpageindex.Trim() != "")
  6499. {
  6500. pageindex = Convert.ToInt32(strpageindex);
  6501. }
  6502. if (strpagesize.Trim() != "")
  6503. {
  6504. pagesize = Convert.ToInt32(strpagesize);
  6505. }
  6506. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  6507. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_CloseTime,F_Identification";
  6508. if (isdc > 0)
  6509. {
  6510. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  6511. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  6512. if (msg == "")
  6513. {
  6514. return Success("导出成功");
  6515. }
  6516. else
  6517. {
  6518. return Error("导出失败");
  6519. }
  6520. }
  6521. int recordCount = 0;
  6522. dt = BLL.PagerBLL.GetListPager(
  6523. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  6524. "F_Id",
  6525. cols,
  6526. sql,
  6527. "ORDER BY F_CreateTime DESC",
  6528. pagesize,
  6529. pageindex,
  6530. true,
  6531. out recordCount);
  6532. #region 声音文件
  6533. dt.Columns.Add("DeptName", typeof(string));//交办单位
  6534. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  6535. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  6536. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  6537. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  6538. dt.Columns.Add("IsReturnNotice", typeof(string));
  6539. dt.Columns.Add("FilePath", typeof(string));
  6540. dt.Columns.Add("Buttons", typeof(object));
  6541. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  6542. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  6543. int IsReturnNotice = 0;
  6544. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  6545. {
  6546. IsReturnNotice = 1;
  6547. }
  6548. foreach (DataRow dr in dt.Rows)
  6549. {
  6550. //获取最新交办信息
  6551. //string iszbdw = "0";
  6552. int state = Int32.Parse(dr["F_WorkState"].ToString());
  6553. if (state > 1)
  6554. {
  6555. 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";
  6556. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  6557. if (dtjb.Rows.Count > 0)
  6558. {
  6559. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  6560. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  6561. {
  6562. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  6563. }
  6564. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  6565. }
  6566. else
  6567. {
  6568. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  6569. }
  6570. }
  6571. //获取最新通报信息
  6572. 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";
  6573. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  6574. if (dttb.Rows.Count > 0)
  6575. {
  6576. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  6577. {
  6578. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  6579. }
  6580. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  6581. }
  6582. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  6583. {
  6584. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  6585. }
  6586. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  6587. {
  6588. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  6589. }
  6590. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  6591. btns.Add(ButtonGroup.query());
  6592. dr["Buttons"] = btns;
  6593. dr["IsReturnNotice"] = IsReturnNotice;
  6594. }
  6595. #endregion
  6596. var obj = new
  6597. {
  6598. state = "success",
  6599. message = "成功",
  6600. rows = dt,
  6601. total = recordCount
  6602. };
  6603. return Content(obj.ToJson());
  6604. }
  6605. /// <summary>
  6606. /// 督办列表
  6607. /// </summary>
  6608. /// <param name="isdc"></param>
  6609. /// <returns></returns>
  6610. //[Authority]
  6611. public ActionResult GetSupervList(int isdc = 0)
  6612. {
  6613. DataTable dt = new DataTable();
  6614. string sql = " and F_IsDelete=0";
  6615. #region 参数
  6616. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  6617. string strtab = HttpUtility.UrlDecode(RequestString.GetQueryString("tab"));
  6618. string strstate = HttpUtility.UrlDecode(RequestString.GetQueryString("state"));
  6619. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  6620. int islike = RequestString.GetInt("islike", 1);
  6621. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  6622. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  6623. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  6624. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  6625. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  6626. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  6627. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  6628. int source = RequestString.GetInt("source", 0);
  6629. int keyid = RequestString.GetInt("keyid", 0);
  6630. int type = RequestString.GetInt("type", 0);
  6631. int bigtype = RequestString.GetInt("bigtype", 0);
  6632. int smalltype = RequestString.GetInt("smalltype", 0);
  6633. int sourcearea = RequestString.GetInt("sourcearea", 0);
  6634. int deptid = RequestString.GetInt("deptid", 0);
  6635. int deptlevel = RequestString.GetInt("deptlevel", 0);
  6636. int issatisfie = RequestString.GetInt("issatisfie", -1);//0不满意 1满意
  6637. int ejdeptid = RequestString.GetInt("ejdeptid", 0);
  6638. int pageindex = RequestString.GetInt("page", 1);
  6639. int pagesize = RequestString.GetInt("pagesize", 10);
  6640. int business = RequestString.GetInt("business", 0);
  6641. int Supervisor = RequestString.GetInt("Supervisor", 0);
  6642. string strSupervisor = HttpUtility.UrlDecode(RequestString.GetQueryString("strSupervisor"));//
  6643. int isExamine = RequestString.GetInt("isExamine", 0);
  6644. int dbdeptid = RequestString.GetInt("dbdeptid", 0);
  6645. string result = HttpUtility.UrlDecode(RequestString.GetQueryString("result"));//办理结果
  6646. string dealstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstarttime"));
  6647. string dealstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dealstrendtime"));
  6648. string dbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstarttime"));
  6649. string dbstrendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("dbstrendtime"));
  6650. string comtitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6651. string comContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6652. int isRelease = RequestString.GetInt("isRelease", 0);
  6653. if (keyid != 0)
  6654. {
  6655. sql += "and a.F_Key in(select F_ValueId from dbo.GetValueId(" + keyid + ")) ";
  6656. }
  6657. if (comtitle.Trim() != "" && comtitle != "undefined")
  6658. {
  6659. sql += " and F_ComTitle like '%" + comtitle + "%' ";
  6660. }
  6661. if (comContent.Trim() != "" && comContent != "undefined")
  6662. {
  6663. sql += " and (F_ComContent like '%" + comContent + "%' " +
  6664. "or F_Content like '%" + comContent + "%' )";
  6665. }
  6666. if (isRelease > 0)
  6667. {
  6668. sql += "and F_IsRelease='" + isRelease + "'";
  6669. }
  6670. if (ejdeptid > 0)
  6671. {
  6672. sql += "and F_MainDeptID3='" + ejdeptid + "'";
  6673. }
  6674. int isbusiness = RequestString.GetInt("isbusiness", -1);
  6675. if (isbusiness > -1)
  6676. {
  6677. if (isbusiness == 0)
  6678. {
  6679. sql += " and (F_IsBusiness =0 or F_IsBusiness is null) ";
  6680. }
  6681. else
  6682. {
  6683. sql += " and F_IsBusiness='1' ";
  6684. }
  6685. }
  6686. if (result.Trim() != "" && result != "undefined")
  6687. {
  6688. sql += " and F_Result like'%" + result + "%' ";
  6689. }
  6690. string Remind = "";
  6691. if (strusercode.Trim() != "" && strusercode != "undefined")
  6692. {
  6693. Remind += " and F_CreateUser ='" + strusercode + "' ";
  6694. }
  6695. if (dbdeptid > 0)
  6696. {
  6697. sql += " and F_WorkOrderId in(select F_WorkOrderId from T_Bus_AssignedInfo WITH(NOLOCK) where F_MainDeptId =" + dbdeptid + " )";
  6698. }
  6699. if (dealstarttime.Trim() != "" && dealstarttime != "undefined")
  6700. {
  6701. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  6702. {
  6703. sql += " and F_DealTime between '" + dealstarttime +
  6704. "' AND '" + dealstrendtime + "'";
  6705. }
  6706. else
  6707. {
  6708. sql += " and F_DealTime>='" + dealstarttime + "' ";
  6709. }
  6710. }
  6711. else
  6712. {
  6713. if (dealstrendtime.Trim() != "" && dealstrendtime != "undefined")
  6714. {
  6715. sql += " and F_DealTime<='" + dealstrendtime + "' ";
  6716. }
  6717. }
  6718. int iscb = RequestString.GetInt("iscb", -1);
  6719. if (strSupervisor.Trim() != "" && strSupervisor != "undefined")
  6720. {
  6721. Remind += " and Supervisor ='" + strSupervisor + "' ";
  6722. }
  6723. //if (User.F_RoleCode == "DBZY")
  6724. //{
  6725. // if (Supervisor == 1)
  6726. // {
  6727. // if (strtab == "0")
  6728. // Remind += "and Supervisor='" + User.F_UserCode + "'";
  6729. // else
  6730. // Remind += "and (Supervisor ='' or Supervisor is null " +
  6731. // "or Supervisor='" + User.F_UserCode + "' )";
  6732. // }
  6733. // else if (Supervisor == 2)
  6734. // {
  6735. // Remind += "and (Supervisor ='' or Supervisor is null )";
  6736. // }
  6737. //}
  6738. //else
  6739. //{
  6740. // if (Supervisor == 1)
  6741. // {
  6742. // if (strtab == "0")
  6743. // Remind += "and Supervisor !='' and Supervisor is not null";
  6744. // }
  6745. // else if (Supervisor == 2)
  6746. // {
  6747. // Remind += "and (Supervisor ='' or Supervisor is null )";
  6748. // }
  6749. //}
  6750. if (dbstarttime.Trim() != "" && dbstarttime != "undefined")
  6751. {
  6752. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  6753. {
  6754. Remind += " and F_CreateTime between '" + dbstarttime +
  6755. "' AND '" + dbstrendtime + "'";
  6756. }
  6757. else
  6758. {
  6759. Remind += " and F_CreateTime>='" + dbstarttime + "' ";
  6760. }
  6761. }
  6762. else
  6763. {
  6764. if (dbstrendtime.Trim() != "" && dbstrendtime != "undefined")
  6765. {
  6766. Remind += " and F_CreateTime<='" + dbstrendtime + "' ";
  6767. }
  6768. }
  6769. if (isExamine == 1)
  6770. {
  6771. Remind += "and F_IsExamine='1'";
  6772. }
  6773. else if (isExamine == 2)
  6774. {
  6775. Remind += "and (F_IsExamine !='1' or F_IsExamine is null) ";
  6776. }
  6777. #endregion
  6778. #region 筛选
  6779. //存在有督办记录的工单
  6780. var sqlsup = "select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0" + Remind;
  6781. // sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_RemindRecord where F_Type=1 and F_IsDelete=0)";
  6782. switch (strtab)
  6783. {
  6784. case "0"://督办-待办
  6785. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =0 )";
  6786. sql += "and F_WorkState !='9'";
  6787. break;
  6788. case "1"://督办-办理中
  6789. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState " +
  6790. "not in (6,9)";
  6791. string strjbstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbstarttime"));
  6792. string strjbendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("jbendtime"));
  6793. if (strstate.Trim() != "" && strstate != "undefined")
  6794. {
  6795. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6796. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6797. else
  6798. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6799. }
  6800. if (iscb > -1)
  6801. {
  6802. if (iscb == 0)
  6803. {
  6804. sql += " and F_WorkState != '8' ";
  6805. }
  6806. else
  6807. {
  6808. sql += " and F_WorkState = '8' ";
  6809. }
  6810. }
  6811. sql += " and F_WorkOrderID in (select F_WorkOrderID from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 ";
  6812. if (strjbstarttime.Trim() != "" && strjbstarttime != "undefined")
  6813. {
  6814. sql += " and datediff(day,F_CreateTime,'" + strjbstarttime + "')<=0 ";
  6815. }
  6816. if (strjbendtime.Trim() != "" && strjbendtime != "undefined")
  6817. {
  6818. sql += " and datediff(day,F_CreateTime,'" + strjbendtime + "')>=0 ";
  6819. }
  6820. sql += ")";
  6821. if (User.F_RoleCode == "WLDW")
  6822. {
  6823. sql += "and F_WorkOrderId in ( select F_WorkOrderId from T_Bus_AssignedInfo as b WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_MainDeptId =" + User.F_DeptId + " and F_IsSure in (0,1) and (F_IsNext =" + 0 + " or F_IsNext='' )and not exists(select 1 from T_Bus_AssignedInfo where F_WorkOrderId = b.F_WorkOrderId and F_Id > b.F_Id ) and F_WorkState in (2,4,8) )";
  6824. }
  6825. break;
  6826. case "2"://督办-超期未完结
  6827. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) and F_WorkState IN (2,4,8) and F_LimitTime<getdate() ";
  6828. if (strstate.Trim() != "" && strstate != "undefined")
  6829. {
  6830. if (strstate.Trim() == ((int)EnumWorkState.neworder).ToString())
  6831. sql += " and F_WorkState in (" + (int)EnumWorkState.neworder + "," + (int)EnumWorkState.audit + ") ";
  6832. else
  6833. sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6834. //sql += " and F_WorkState = '" + strstate.Trim() + "' ";
  6835. }
  6836. break;
  6837. case "3"://督办-已退回
  6838. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =2 ) ";
  6839. break;
  6840. case "4"://督办-已完结的工单
  6841. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State !=2 ) " + " and F_WorkState =9 and F_IsDelete=0 and F_IsClosed=1 ";
  6842. string strwjstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjstarttime"));
  6843. string strwjendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("wjendtime"));
  6844. if (strwjstarttime.Trim() != "" && strwjstarttime != "undefined")
  6845. {
  6846. sql += " and datediff(day,F_CloseTime,'" + strwjstarttime + "')<=0 ";
  6847. }
  6848. if (strwjendtime.Trim() != "" && strwjendtime != "undefined")
  6849. {
  6850. sql += " and datediff(day,F_CloseTime,'" + strwjendtime + "')>=0 ";
  6851. }
  6852. break;
  6853. default:
  6854. sql += " and F_WorkOrderID in(" + sqlsup + " )";
  6855. break;
  6856. case "6"://督办-待审核回复
  6857. sql += " and F_WorkOrderID in(" + sqlsup + " and F_State =1 ) " + " and F_IsDelete=0 ";
  6858. if (isExamine == 1)
  6859. sql += "and F_WorkState =7";
  6860. else
  6861. sql += "and F_WorkState =6";
  6862. break;
  6863. case "7"://督办综合查询
  6864. sql += " and F_WorkOrderID in(" + sqlsup + " ) " + " and F_IsDelete=0 ";
  6865. break;
  6866. }
  6867. //int jianhang = RequestString.GetInt("jianhang", 0);
  6868. //int phoneType = RequestString.GetInt("phoneType", 0);
  6869. //if (jianhang > 0)
  6870. //{
  6871. // if (jianhang == 3)
  6872. // sql += " and F_InfoSource = '2501' ";
  6873. // else
  6874. // sql += " and F_InfoSource != '1' and F_InfoSource != '2501'";
  6875. //}
  6876. //else
  6877. //{
  6878. // sql += " and F_InfoSource = '1' ";
  6879. // if (phoneType == 1)
  6880. // sql += " and F_PhoneType != '12345' ";
  6881. // else if (phoneType == 2)
  6882. // sql += " and (F_PhoneType = '12345' or F_PhoneType ='' " +
  6883. // "or F_PhoneType is null ) ";
  6884. //}
  6885. string incomingcall = RequestString.GetString("incomingcall");//来电电话
  6886. if (incomingcall.Trim() != "" && incomingcall != "undefined")
  6887. {
  6888. sql += " and F_PhoneType = '" + incomingcall + "' ";
  6889. }
  6890. if (strworkid.Trim() != "" && strworkid != "undefined")
  6891. {
  6892. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  6893. }
  6894. if (strname.Trim() != "" && strname != "undefined")
  6895. {
  6896. sql += " and F_CusName like '%" + strname + "%' ";
  6897. }
  6898. if (islike > 0)
  6899. {
  6900. if (strtel.Trim() != "" && strtel != "undefined")
  6901. {
  6902. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  6903. }
  6904. }
  6905. else
  6906. {
  6907. if (strtel.Trim() != "" && strtel != "undefined")
  6908. {
  6909. sql += " and (F_CusPhone = '" + strtel + "' or F_ConPhone like '" + strtel + "') ";
  6910. }
  6911. }
  6912. if (User.F_RoleCode == "WLDW")
  6913. {
  6914. deptid = User.F_DeptId;
  6915. }
  6916. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  6917. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  6918. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  6919. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  6920. {
  6921. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  6922. }
  6923. if (Result.Trim() != "" && Result != "undefined")
  6924. {
  6925. sql += " and F_Result like '%" + Result + "%' ";
  6926. }
  6927. if (ComContent.Trim() != "" && ComContent != "undefined")
  6928. {
  6929. sql += " and F_ComContent like '%" + ComContent + "%' ";
  6930. }
  6931. if (strkey.Trim() != "" && strkey != "undefined")
  6932. {
  6933. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  6934. " or F_Result like '%" + strkey + "%' ) ";
  6935. }
  6936. #region 坐席&调度员
  6937. if (strtab != "0")
  6938. {
  6939. if (strusercode.Trim() != "" && strusercode != "undefined")
  6940. {//坐席
  6941. var usercode = strusercode.Trim().Split(',');
  6942. var newusercode = "";
  6943. foreach (var item in usercode)
  6944. {
  6945. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6946. newusercode += "'" + item + "',";
  6947. }
  6948. newusercode = newusercode.Trim(',');
  6949. if (newusercode.Trim() != "" && newusercode != "undefined")
  6950. {
  6951. sql += " and F_CreateUser in (" + newusercode + ") ";
  6952. }
  6953. }
  6954. }
  6955. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  6956. {//调度员
  6957. var ddusercode = strddusercode.Trim().Split(',');
  6958. var newusercode = "";
  6959. foreach (var item in ddusercode)
  6960. {
  6961. if (!string.IsNullOrWhiteSpace(item.Trim()))
  6962. newusercode += "'" + item + "',";
  6963. }
  6964. newusercode = newusercode.Trim(',');
  6965. if (newusercode.Trim() != "" && newusercode != "undefined")
  6966. {
  6967. sql += " and F_AssignUser in(" + newusercode + ") ";
  6968. }
  6969. }
  6970. #endregion
  6971. if (source != 0)
  6972. {
  6973. sql += " and F_InfoSource = '" + source + "' ";
  6974. }
  6975. string sqlwheres = ""; string value = "";
  6976. if (keyid != 0)
  6977. {
  6978. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  6979. value = " INNER JOIN[GetValueId]('" + keyid + "') Value on wo.F_Key = Value.F_ValueId";
  6980. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  6981. // " or F_Key='" + keyid + "' )";
  6982. }
  6983. if (type != 0)
  6984. {
  6985. sql += " and F_InfoType = '" + type + "' ";
  6986. }
  6987. if (bigtype != 0)
  6988. {
  6989. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  6990. }
  6991. if (smalltype != 0)
  6992. {
  6993. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  6994. }
  6995. if (sourcearea != 0)
  6996. {
  6997. sql += " and F_SourceArea = '" + sourcearea + "' ";
  6998. }
  6999. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7000. {
  7001. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7002. }
  7003. if (strendtime.Trim() != "" && strendtime != "undefined")
  7004. {
  7005. sql += " and F_CreateTime<='" + strendtime + "' ";
  7006. }
  7007. if (deptid != 0)
  7008. {
  7009. if (deptlevel == 0)
  7010. {
  7011. 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 ";
  7012. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7013. }
  7014. else
  7015. {
  7016. 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 ";
  7017. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7018. }
  7019. }
  7020. if (deptid != 0)
  7021. {
  7022. sql += " and (F_MainDeptId = '" + deptid + "' or F_MainDeptID3='" + deptid + "')";
  7023. }
  7024. #endregion
  7025. #region 导出
  7026. string cols = "F_WorkOrderId,F_ComTitle,F_ComContent,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_Identification";
  7027. if (isdc > 0)
  7028. {
  7029. var top = " "; var orderby = " order by F_CreateTime";
  7030. if (sql == " and F_IsDelete=0 ")
  7031. {
  7032. top = " top 1000 "; orderby += " desc ";
  7033. }
  7034. var dtdc = DbHelperSQL.Query(" select " + top + " F_CreateTime 日期, F_WorkOrderId 工单号,F_ComTitle 诉求标题,F_ComContent 工单内容,dbo.GetDictionaryName(F_Key) 主题词, "
  7035. + " dbo.GetDeptNames((select top 1 F_MainDeptId from T_Bus_AssignedInfo where F_WorkOrderId=wo.F_WorkOrderId order by F_Id desc )) 主办单位, "
  7036. + " (select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId =wo.F_WorkOrderId order by F_Id desc) 办理结果, "
  7037. + " (select top 1 (case F_IsSatisfie when 1 then'满意' when 2 then'基本满意' when 0 then '不满意' else '未评价' end) F_Satisfie from T_Bus_VisitResult WITH(NOLOCK) where F_State = 1 and F_IsDelete = 0 and F_WorkOrderId = wo.F_WorkOrderId order by F_Id desc) 是否满意,(select top 1 F_Result from T_Bus_Feedback WITH(NOLOCK) where F_Type=3 and F_State=1 and F_IsDelete=0" +
  7038. "and F_WorkOrderId=wo.F_WorkOrderId order by F_CreateTime desc ) as 退回原因 "
  7039. + " from T_Bus_WorkOrder wo WITH(NOLOCK)" + value + " where 1=1 " + sql + orderby).Tables[0];
  7040. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7041. if (msg == "")
  7042. {
  7043. return Success("导出成功");
  7044. }
  7045. else
  7046. {
  7047. return Error("导出失败");
  7048. }
  7049. }
  7050. #endregion
  7051. int recordCount = 0;
  7052. dt = BLL.PagerBLL.GetListPager(
  7053. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7054. "F_Id",
  7055. cols,
  7056. sql,
  7057. "ORDER BY F_CreateTime DESC",
  7058. pagesize,
  7059. pageindex,
  7060. true,
  7061. out recordCount);
  7062. #region 附加展示
  7063. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7064. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7065. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7066. dt.Columns.Add("OverState", typeof(string));//超时状态
  7067. dt.Columns.Add("LimitTime", typeof(string));//限制时间
  7068. dt.Columns.Add("GapTime", typeof(string));//时间差
  7069. dt.Columns.Add("FilePath", typeof(string));//语音文件路径
  7070. dt.Columns.Add("Buttons", typeof(object));//操作按钮
  7071. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7072. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7073. var configcs = configBll.GetModelList(" F_ParamCode='CSYJ' ").FirstOrDefault();
  7074. // var reminds = remindBLL.GetModelList(" F_IsDelete=0 and F_Type =1").ToList();
  7075. foreach (DataRow dr in dt.Rows)
  7076. {
  7077. //获取最新交办信息
  7078. string iszbdw = "0";
  7079. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7080. string ispd = "";
  7081. if (state > 1 && User.F_RoleCode != "DBZY" && User.F_RoleCode != "DBGLY")
  7082. {
  7083. 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";
  7084. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7085. if (dtjb.Rows.Count > 0)
  7086. {
  7087. if (dtjb.Rows[0]["F_MainDeptId"].ToString() == User.F_DeptId.ToString()) { iszbdw = "1"; }
  7088. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7089. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7090. {
  7091. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7092. }
  7093. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7094. #region
  7095. if (state < (int)EnumWorkState.dealed || state == (int)EnumWorkState.reload)
  7096. {
  7097. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7098. dr["LimitTime"] = lt;
  7099. if (!string.IsNullOrWhiteSpace(lt))
  7100. {
  7101. var ltime = DateTime.Parse(lt);
  7102. if (ltime > DateTime.Now)
  7103. {
  7104. string SY = "SELECT COUNT(1) FROM T_Sys_WorkOFFDays WHERE F_OffState =0 AND F_OffDate > '" + DateTime.Now.ToString("yyyy-MM-dd") + "' AND F_OffDate<'" + lt + "'";
  7105. var SYSJ = DbHelperSQL.GetSingle(SY);
  7106. if (!string.IsNullOrEmpty(SYSJ.ToString()))
  7107. {
  7108. try
  7109. {
  7110. ltime = ltime.AddDays(-int.Parse(SYSJ.ToString()));
  7111. }
  7112. catch
  7113. {
  7114. }
  7115. }
  7116. }
  7117. TimeSpan ts = ltime.Subtract(DateTime.Now);
  7118. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7119. if (tss < 0) { tss = -tss; }
  7120. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7121. if (ltime > DateTime.Now)
  7122. {
  7123. if (configcs != null)
  7124. {
  7125. int cs = Int32.Parse(configcs.F_ParamValue);
  7126. if (ts.TotalHours > cs)
  7127. {
  7128. dr["OverState"] = 1;
  7129. }
  7130. else
  7131. {
  7132. dr["OverState"] = 2;
  7133. }
  7134. }
  7135. dr["GapTime"] = "剩余" + gshsj;
  7136. }
  7137. else
  7138. {
  7139. dr["OverState"] = 3;
  7140. dr["GapTime"] = "超时" + gshsj;
  7141. }
  7142. }
  7143. }
  7144. if (state == (int)EnumWorkState.finish)
  7145. {
  7146. var closetime = dr["F_DealTime"].ToString();//关闭工单时间
  7147. var dttime = DateTime.Now;
  7148. if (!string.IsNullOrWhiteSpace(closetime)) { dttime = DateTime.Parse(closetime); }
  7149. else
  7150. {
  7151. var DealTime = dr["F_CloseTime"].ToString();
  7152. if (!string.IsNullOrWhiteSpace(DealTime)) { dttime = DateTime.Parse(DealTime); }
  7153. }
  7154. var lt = dtjb.Rows[0]["F_LimitTime"].ToString();//限制时间
  7155. dr["LimitTime"] = lt;
  7156. if (!string.IsNullOrWhiteSpace(lt))
  7157. {
  7158. var ltime = DateTime.Parse(lt);
  7159. TimeSpan ts = ltime.Subtract(dttime);
  7160. double tss = double.Parse(Math.Round(ts.TotalSeconds, 0).ToString());
  7161. if (tss < 0) { tss = -tss; }
  7162. string gshsj = DateTimeConvert.parseTimeSeconds(tss, 1);
  7163. if (ltime < dttime)
  7164. {
  7165. dr["OverState"] = 3;
  7166. dr["GapTime"] = "超时" + gshsj;
  7167. }
  7168. }
  7169. }
  7170. #endregion
  7171. ispd = dtjb.Rows[0]["F_IsNext"] != null ? dtjb.Rows[0]["F_IsNext"].ToString() : "";
  7172. }
  7173. else
  7174. {
  7175. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7176. }
  7177. }
  7178. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7179. {
  7180. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7181. }
  7182. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7183. {
  7184. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7185. }
  7186. #region 按钮
  7187. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7188. //0督办-待办,1督办-办理中,2督办-超期未完结,3督办-已退回,4督办-已完结
  7189. btns.Clear();
  7190. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW")
  7191. {
  7192. btns = ButtonGroup.GetButtons(dr["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dr["F_IsResult"].ToString(), iszbdw, ispd);
  7193. #region 判断是否存在待督办
  7194. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  7195. if (butt != null)
  7196. btns.Remove(butt);
  7197. var delay = btns.Find(c => c.key == ButtonGroup.delay().key);
  7198. if (delay != null)
  7199. btns.Remove(delay);
  7200. #endregion
  7201. }
  7202. else
  7203. {
  7204. switch (strtab)
  7205. {
  7206. case "0"://督办-待办 操作为:回复、派单(督办且审核交办)、退回(不督办)、打印
  7207. btns.Add(ButtonGroup.oversee()); //督办 输入督办信息确认后跳转编辑页面进行审核交办
  7208. btns.Add(ButtonGroup.turnnosee());//不督办 工单被退回
  7209. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "DBGLY")
  7210. btns.Add(ButtonGroup.forceend());
  7211. break;
  7212. case "1"://督办-办理中 操作为:查看工单、短信催办
  7213. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY")
  7214. {
  7215. if (state == 3)
  7216. {
  7217. btns.Add(ButtonGroup.auditreback());
  7218. }
  7219. else
  7220. {
  7221. btns.Add(ButtonGroup.takeback());
  7222. btns.Add(ButtonGroup.forceend());
  7223. }
  7224. }
  7225. break;
  7226. case "2"://督办-超期未完结 操作为:查看工单、短信催办
  7227. //if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY")
  7228. // btns.Add(ButtonGroup.forceend());
  7229. break;
  7230. case "3"://督办-已退回:查看
  7231. break;
  7232. case "4"://督办-已完结:查看
  7233. break;
  7234. case "6"://督办-办理中 操作为:查看工单、短信催办
  7235. if (isExamine != 1)
  7236. {
  7237. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7238. {
  7239. btns.Add(ButtonGroup.Approved());
  7240. btns.Add(ButtonGroup.Auditreject());
  7241. }
  7242. }
  7243. else
  7244. {
  7245. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "GLY")
  7246. {
  7247. btns.Add(ButtonGroup.forceend());
  7248. }
  7249. }
  7250. break;
  7251. }
  7252. btns.Add(ButtonGroup.query());
  7253. }
  7254. dr["Buttons"] = btns;
  7255. #endregion
  7256. }
  7257. #endregion
  7258. var obj = new
  7259. {
  7260. state = "success",
  7261. message = "成功",
  7262. rows = dt,
  7263. total = recordCount
  7264. };
  7265. return Content(obj.ToJson());
  7266. }
  7267. public ActionResult GetNoticeListOLD(int isdc = 0)
  7268. {
  7269. DataTable dt = new DataTable();
  7270. string sql = " and F_IsDelete=0 ";
  7271. string strname = HttpUtility.UrlDecode(RequestString.GetQueryString("name"));
  7272. string strtel = HttpUtility.UrlDecode(RequestString.GetQueryString("tel"));
  7273. string strkey = HttpUtility.UrlDecode(RequestString.GetQueryString("key"));
  7274. string strstarttime = HttpUtility.UrlDecode(RequestString.GetQueryString("starttime"));
  7275. string strendtime = HttpUtility.UrlDecode(RequestString.GetQueryString("endtime"));
  7276. string strworkid = HttpUtility.UrlDecode(RequestString.GetQueryString("workid"));
  7277. string strusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("usercode"));
  7278. string strddusercode = HttpUtility.UrlDecode(RequestString.GetQueryString("ddusercode"));//调度员
  7279. int source = RequestString.GetInt("source", 0);
  7280. int keyid = RequestString.GetInt("keyid", 0);
  7281. int type = RequestString.GetInt("type", 0);
  7282. int bigtype = RequestString.GetInt("bigtype", 0);
  7283. int smalltype = RequestString.GetInt("smalltype", 0);
  7284. int sourcearea = RequestString.GetInt("sourcearea", 0);
  7285. int deptid = RequestString.GetInt("deptid", 0);
  7286. string strpageindex = RequestString.GetQueryString("page");
  7287. int pageindex = 1;
  7288. string strpagesize = RequestString.GetQueryString("pagesize");
  7289. int pagesize = 10;
  7290. if (strworkid.Trim() != "" && strworkid != "undefined")
  7291. {
  7292. sql += " and F_WorkOrderId like '%" + strworkid + "%' ";
  7293. }
  7294. if (strname.Trim() != "" && strname != "undefined")
  7295. {
  7296. sql += " and F_CusName like '%" + strname + "%' ";
  7297. }
  7298. if (strtel.Trim() != "" && strtel != "undefined")
  7299. {
  7300. sql += " and (F_CusPhone like '%" + strtel + "%' or F_ConPhone like '%" + strtel + "%') ";
  7301. }
  7302. string ComTitle = HttpUtility.UrlDecode(RequestString.GetQueryString("ComTitle"));
  7303. string ComContent = HttpUtility.UrlDecode(RequestString.GetQueryString("ComContent"));
  7304. string Result = HttpUtility.UrlDecode(RequestString.GetQueryString("Result"));
  7305. if (ComTitle.Trim() != "" && ComTitle != "undefined")
  7306. {
  7307. sql += " and F_ComTitle like '%" + ComTitle + "%' ";
  7308. }
  7309. if (Result.Trim() != "" && Result != "undefined")
  7310. {
  7311. sql += " and F_Result like '%" + Result + "%' ";
  7312. }
  7313. if (ComContent.Trim() != "" && ComContent != "undefined")
  7314. {
  7315. sql += " and F_ComContent like '%" + ComContent + "%' ";
  7316. }
  7317. if (strkey.Trim() != "" && strkey != "undefined")
  7318. {
  7319. sql += " and (F_ComTitle like '%" + strkey + "%' or F_ComContent like '%" + strkey + "%'" +
  7320. " or F_Result like '%" + strkey + "%' ) ";
  7321. }
  7322. #region 坐席&调度员
  7323. if (strusercode.Trim() != "" && strusercode != "undefined")
  7324. {//坐席
  7325. var usercode = strusercode.Trim().Split(',');
  7326. var newusercode = "";
  7327. foreach (var item in usercode)
  7328. {
  7329. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7330. newusercode += "'" + item + "',";
  7331. }
  7332. newusercode = newusercode.Trim(',');
  7333. if (newusercode.Trim() != "" && newusercode != "undefined")
  7334. {
  7335. sql += " and F_CreateUser in (" + newusercode + ") ";
  7336. }
  7337. }
  7338. if (strddusercode.Trim() != "" && strddusercode != "undefined")
  7339. {//调度员
  7340. var ddusercode = strddusercode.Trim().Split(',');
  7341. var newusercode = "";
  7342. foreach (var item in ddusercode)
  7343. {
  7344. if (!string.IsNullOrWhiteSpace(item.Trim()))
  7345. newusercode += "'" + item + "',";
  7346. }
  7347. newusercode = newusercode.Trim(',');
  7348. if (newusercode.Trim() != "" && newusercode != "undefined")
  7349. {
  7350. sql += " and F_AssignUser in(" + newusercode + ") ";
  7351. }
  7352. }
  7353. //if (strusercode.Trim() != "" && strusercode != "undefined")
  7354. //{
  7355. // sql += " and F_CreateUser = '" + strusercode + "' ";
  7356. //}
  7357. #endregion
  7358. if (source != 0)
  7359. {
  7360. sql += " and F_InfoSource = '" + source + "' ";
  7361. }
  7362. string sqlwheres = "";
  7363. if (keyid != 0)
  7364. {
  7365. sqlwheres = " INNER JOIN[GetValueId]('" + keyid + "') Value on a.F_Key = Value.F_ValueId";
  7366. //sql += "and (F_Key IN( SELECT F_ValueId from [GetValueId]('"+ keyid + "'))" +
  7367. // " or F_Key='" + keyid + "' )";
  7368. }
  7369. if (type != 0)
  7370. {
  7371. sql += " and F_InfoType = '" + type + "' ";
  7372. }
  7373. if (bigtype != 0)
  7374. {
  7375. sql += " and F_InfoConBigType = '" + bigtype + "' ";
  7376. }
  7377. if (smalltype != 0)
  7378. {
  7379. sql += " and F_InfoConSmallType = '" + smalltype + "' ";
  7380. }
  7381. if (sourcearea != 0)
  7382. {
  7383. sql += " and F_SourceArea = '" + sourcearea + "' ";
  7384. }
  7385. if (deptid != 0)
  7386. {
  7387. 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 ";
  7388. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7389. }
  7390. if (strstarttime.Trim() != "" && strstarttime != "undefined")
  7391. {
  7392. sql += " and F_CreateTime>='" + strstarttime + "' ";
  7393. }
  7394. if (strendtime.Trim() != "" && strendtime != "undefined")
  7395. {
  7396. sql += " and F_CreateTime<='" + strendtime + "' ";
  7397. }
  7398. if (User.F_RoleCode == "WLDW")
  7399. {
  7400. string sqlwhere = "select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where ','+F_DeptIds+',' like '%," + User.F_DeptId + ",%' and F_State=1 and F_IsDelete=0 ";
  7401. sql += " and F_WorkOrderID in(" + sqlwhere + ")";
  7402. }
  7403. else
  7404. {
  7405. sql += " and F_WorkOrderID in(select F_WorkOrderID from T_Bus_NoticeCriticism WITH(NOLOCK) where F_State=1 and F_IsDelete=0) ";
  7406. }
  7407. if (strpageindex.Trim() != "")
  7408. {
  7409. pageindex = Convert.ToInt32(strpageindex);
  7410. }
  7411. if (strpagesize.Trim() != "")
  7412. {
  7413. pagesize = Convert.ToInt32(strpagesize);
  7414. }
  7415. //string cols = "*,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName";
  7416. string cols = "F_WorkOrderId,F_ComTitle,F_WorkState,F_MainDeptId,F_OtherDeptIds,F_DealTime,F_LeaveRecordId,F_CallRecordId,F_IsResult,F_IsProtect,F_IsReturn,F_CreateTime,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName,dbo.GetDictionaryName(F_InfoSource) as SourceName,F_Identification";
  7417. if (isdc > 0)
  7418. {
  7419. var dtdc = DbHelperSQL.Query(" select " + cols + " from T_Bus_WorkOrder WITH(NOLOCK) where 1=1 " + sql).Tables[0];
  7420. var msg = new NPOIHelper().ExportToExcel("工单列表", dtdc);
  7421. if (msg == "")
  7422. {
  7423. return Success("导出成功");
  7424. }
  7425. else
  7426. {
  7427. return Error("导出失败");
  7428. }
  7429. }
  7430. int recordCount = 0;
  7431. dt = BLL.PagerBLL.GetListPager(
  7432. "T_Bus_WorkOrder a WITH(NOLOCK)" + sqlwheres,
  7433. "F_Id",
  7434. cols,
  7435. sql,
  7436. "ORDER BY F_CreateTime DESC",
  7437. pagesize,
  7438. pageindex,
  7439. true,
  7440. out recordCount);
  7441. #region 声音文件
  7442. dt.Columns.Add("DeptName", typeof(string));//交办单位
  7443. dt.Columns.Add("OtherDeptName", typeof(string));//协办单位
  7444. dt.Columns.Add("AssignTime", typeof(string));//交办时间
  7445. dt.Columns.Add("NoticeDeptName", typeof(string));//通报单位
  7446. dt.Columns.Add("NoticeReson", typeof(string));//通报原因
  7447. dt.Columns.Add("IsReturnNotice", typeof(string));
  7448. dt.Columns.Add("FilePath", typeof(string));
  7449. dt.Columns.Add("Buttons", typeof(object));
  7450. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7451. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7452. int IsReturnNotice = 0;
  7453. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  7454. {
  7455. IsReturnNotice = 1;
  7456. }
  7457. foreach (DataRow dr in dt.Rows)
  7458. {
  7459. //获取最新交办信息
  7460. //string iszbdw = "0";
  7461. int state = Int32.Parse(dr["F_WorkState"].ToString());
  7462. if (state > 1)
  7463. {
  7464. 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";
  7465. var dtjb = DbHelperSQL.Query(sqljb).Tables[0];
  7466. if (dtjb.Rows.Count > 0)
  7467. {
  7468. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_MainDeptId"].ToString() + "')");
  7469. if (dtjb.Rows[0]["F_OtherDeptIds"] != null && dtjb.Rows[0]["F_OtherDeptIds"].ToString() != "")
  7470. {
  7471. dr["OtherDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dtjb.Rows[0]["F_OtherDeptIds"].ToString() + "')");
  7472. }
  7473. dr["AssignTime"] = dtjb.Rows[0]["F_CreateTime"].ToString();
  7474. }
  7475. else
  7476. {
  7477. dr["DeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dr["F_MainDeptId"].ToString() + "')");
  7478. }
  7479. }
  7480. //获取最新通报信息
  7481. 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";
  7482. var dttb = DbHelperSQL.Query(sqltb).Tables[0];
  7483. if (dttb.Rows.Count > 0)
  7484. {
  7485. if (dttb.Rows[0]["F_DeptIds"] != null && dttb.Rows[0]["F_DeptIds"].ToString() != "")
  7486. {
  7487. dr["NoticeDeptName"] = DbHelperSQL.GetSingle(" select dbo.GetDeptNames('" + dttb.Rows[0]["F_DeptIds"].ToString() + "')");
  7488. }
  7489. dr["NoticeReson"] = dttb.Rows[0]["F_Content"] != null ? dttb.Rows[0]["F_Content"].ToString() : "";
  7490. }
  7491. if (dr["F_LeaveRecordId"] != null && dr["F_LeaveRecordId"].ToString() != "")
  7492. {
  7493. dr["FilePath"] = GetLeavePath(dr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7494. }
  7495. else if (dr["F_CallRecordId"] != null && dr["F_CallRecordId"].ToString() != "")
  7496. {
  7497. dr["FilePath"] = GetCallPath(dr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7498. }
  7499. List<ButtonGroup.button> btns = new List<ButtonGroup.button>();
  7500. btns.Add(ButtonGroup.query());
  7501. dr["Buttons"] = btns;
  7502. dr["IsReturnNotice"] = IsReturnNotice;
  7503. }
  7504. #endregion
  7505. var obj = new
  7506. {
  7507. state = "success",
  7508. message = "成功",
  7509. rows = dt,
  7510. total = recordCount
  7511. };
  7512. return Content(obj.ToJson());
  7513. }
  7514. public ActionResult GetWorkorderSimp()
  7515. {
  7516. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7517. if (!string.IsNullOrEmpty(strworkorderid))
  7518. {
  7519. string sql = "select F_WorkOrderId,F_CreateTime,F_ComTitle,F_ComContent,F_Result,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDeptName(F_MainDeptId) deptname "
  7520. + " from T_Bus_WorkOrder WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7521. var dt = DbHelperSQL.Query(sql).Tables[0];
  7522. if (dt.Rows.Count > 0)
  7523. {
  7524. return Success("成功", dt);
  7525. }
  7526. return Error("获取失败");
  7527. }
  7528. return Error("参数错误");
  7529. }
  7530. /// <summary>
  7531. /// 获取工单信息
  7532. /// </summary>
  7533. /// <returns></returns>
  7534. //[Authority]
  7535. public ActionResult GetWorkOrder()
  7536. {
  7537. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7538. //int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  7539. if (!string.IsNullOrEmpty(strworkorderid))
  7540. {
  7541. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  7542. + "dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetDictionaryName(F_Key) as KeyName,dbo.GetAreaChildrenCode(F_Township) as Township , dbo.GetAreaChildrenCode(F_Village) as Village,dbo.GetDeptName(F_MainDeptId) deptname ," + "F_DeptIdIsSms = (select F_IsSms from T_Sys_Department where F_DeptId =a.F_MainDeptId)"
  7543. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7544. var dt = DbHelperSQL.Query(sql).Tables[0];
  7545. if (dt.Rows.Count > 0)
  7546. {
  7547. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  7548. {
  7549. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7550. if (isp == "1")
  7551. {
  7552. dt.Rows[0]["F_CusName"] = "";
  7553. dt.Rows[0]["F_CusPhone"] = "";
  7554. dt.Rows[0]["F_ConPhone"] = "";
  7555. }
  7556. }
  7557. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7558. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7559. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7560. //string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7561. // + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "'";
  7562. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7563. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7564. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName "
  7565. + "from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7566. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7567. + "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";
  7568. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7569. + "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";
  7570. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7571. + "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";
  7572. 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 "
  7573. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7574. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName "
  7575. + "from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7576. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7577. + "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";
  7578. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7579. + "from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7580. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7581. + "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";
  7582. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName "
  7583. + "from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7584. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7585. + "from T_Bus_VisitResult WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  7586. string gcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7587. + "from T_Bus_Operation WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  7588. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName "
  7589. + "from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7590. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  7591. #region 声音文件
  7592. dt.Columns.Add("FilePath", typeof(string));
  7593. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  7594. {
  7595. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7596. }
  7597. else if (dt.Rows[0]["F_CallRecordId"] != null)
  7598. {
  7599. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  7600. }
  7601. #endregion
  7602. #region 附件
  7603. if (configfj != null)
  7604. {
  7605. dt = BindFileData(dt, configfj.F_ParamValue);
  7606. }
  7607. #endregion
  7608. #region 监察信息
  7609. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  7610. if (configfj != null)
  7611. {
  7612. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  7613. }
  7614. #endregion
  7615. #region 批示信息
  7616. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  7617. if (configfj != null)
  7618. {
  7619. psdt = BindFileData(psdt, configfj.F_ParamValue);
  7620. }
  7621. #endregion
  7622. #region 指示信息
  7623. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  7624. if (configfj != null)
  7625. {
  7626. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  7627. }
  7628. #endregion
  7629. #region 回退信息
  7630. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  7631. #endregion
  7632. #region 督办信息
  7633. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  7634. if (configfj != null)
  7635. {
  7636. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  7637. }
  7638. #endregion
  7639. #region 交办信息
  7640. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7641. if (configfj != null)
  7642. {
  7643. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  7644. }
  7645. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  7646. if (configfj != null)
  7647. {
  7648. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  7649. }
  7650. #endregion
  7651. #region 退回信息
  7652. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  7653. #endregion
  7654. #region 延时信息
  7655. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  7656. if (configfj != null)
  7657. {
  7658. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  7659. }
  7660. #endregion
  7661. #region 办理情况
  7662. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  7663. if (configfj != null)
  7664. {
  7665. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  7666. }
  7667. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  7668. if (configfj != null)
  7669. {
  7670. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  7671. }
  7672. #endregion
  7673. #region 回访信息
  7674. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  7675. hfdt.Columns.Add("FilePath", typeof(string));
  7676. foreach (DataRow bldr in hfdt.Rows)
  7677. {
  7678. if (bldr["F_CallRecordId"] != null && config != null)
  7679. {
  7680. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7681. }
  7682. }
  7683. #endregion
  7684. #region 市民催单
  7685. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  7686. cbdt.Columns.Add("FilePath", typeof(string));
  7687. foreach (DataRow bldr in cbdt.Rows)
  7688. {
  7689. if (bldr["F_CallRecordId"] != null && config != null)
  7690. {
  7691. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7692. }
  7693. }
  7694. #endregion
  7695. #region 市民评议
  7696. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  7697. #endregion
  7698. #region 办理过程
  7699. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  7700. gcdt.Columns.Add("File", typeof(object));
  7701. gcdt.Columns.Add("FilePath", typeof(string));
  7702. if (configfj != null || configly != null || config != null)
  7703. {
  7704. foreach (DataRow bldr in gcdt.Rows)
  7705. {
  7706. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  7707. {
  7708. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  7709. }
  7710. if (bldr["F_LeaveRecordId"] != null && configly != null)
  7711. {
  7712. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7713. }
  7714. else if (bldr["F_CallRecordId"] != null && config != null)
  7715. {
  7716. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  7717. }
  7718. }
  7719. }
  7720. #endregion
  7721. #region 操作按钮
  7722. var btns = new List<ButtonGroup.button>();
  7723. if (jbdt.Rows.Count > 0)
  7724. {
  7725. var jbzx = jbdt.Rows[jbdt.Rows.Count - 1];
  7726. string ispd = jbzx["F_IsNext"].ToString();
  7727. string iszbdw = "0";
  7728. string fmd = jbzx["F_MainDeptId"].ToString();
  7729. string fod = jbzx["F_OtherDeptIds"] == null ? "" : jbzx["F_OtherDeptIds"].ToString();
  7730. if (fmd == User.F_DeptId.ToString())
  7731. { iszbdw = "1"; }
  7732. else if (fod != "" && fod.Split(',').Contains(User.F_DeptId.ToString()))
  7733. {
  7734. iszbdw = "2";
  7735. }
  7736. if (!(User.F_RoleCode == "WLDW" && iszbdw == "0"))
  7737. {
  7738. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), iszbdw, ispd);
  7739. }
  7740. }
  7741. else
  7742. {
  7743. btns = ButtonGroup.GetButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsResult"].ToString(), "0");
  7744. }
  7745. #region 判断是否存在待督办
  7746. var recount = remindBLL.GetModelList("F_State=0 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "'").ToList().Count();
  7747. var butt = btns.Find(c => c.key == ButtonGroup.turnsee().key);
  7748. if (recount > 0)
  7749. {
  7750. if (butt != null)
  7751. btns.Remove(butt);
  7752. if (User.F_RoleCode == "DBZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  7753. {
  7754. btns.Add(ButtonGroup.oversee());
  7755. btns.Add(ButtonGroup.turnnosee());
  7756. }
  7757. }
  7758. if (btns == null)
  7759. {
  7760. btns.Add(ButtonGroup.query());
  7761. }
  7762. else
  7763. {
  7764. if (btns.Count == 0)
  7765. btns.Add(ButtonGroup.query());
  7766. }
  7767. #endregion
  7768. #endregion
  7769. #region 其他权限
  7770. int issend = 0;
  7771. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD"))
  7772. //{
  7773. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  7774. // {
  7775. // issend = 1;
  7776. // }
  7777. //}
  7778. int isnotice = 0;
  7779. if (dt.Rows[0]["F_IsNotice"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "DDZG"))
  7780. {
  7781. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  7782. {
  7783. isnotice = 1;
  7784. }
  7785. }
  7786. int isedit = 0;
  7787. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  7788. //{
  7789. // isedit = 1;
  7790. //}
  7791. #endregion
  7792. var obj = new
  7793. {
  7794. data = dt,
  7795. jcdata = jcdt,
  7796. psdata = psdt,
  7797. zsdata = zsdt,
  7798. htdata = htdt,
  7799. dbdata = dbdt,
  7800. jbdata = jbdt,
  7801. ejjbdata = ejjbdt,
  7802. thdata = thdt,
  7803. ysdata = ysdt,
  7804. bldata = bldt,
  7805. ejbldata = ejbldt,
  7806. hfdata = hfdt,
  7807. cbdata = cbdt,
  7808. gcdata = gcdt,
  7809. issend = issend,
  7810. isedit = isedit,
  7811. isnotice = isnotice,
  7812. btndata = btns,
  7813. pydt
  7814. };
  7815. return Success("获取成功", obj);
  7816. }
  7817. else
  7818. {
  7819. return Error("获取失败");
  7820. }
  7821. }
  7822. else
  7823. {
  7824. return Error("参数传输失败");
  7825. }
  7826. }
  7827. /// <summary>
  7828. /// 导出word
  7829. /// </summary>
  7830. /// <returns></returns>
  7831. //[Authority]
  7832. public ActionResult ExportWorkOrder()
  7833. {
  7834. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7835. if (!string.IsNullOrEmpty(strworkorderid))
  7836. {
  7837. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,"
  7838. + "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)"
  7839. + " from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7840. var dt = DbHelperSQL.Query(sql).Tables[0];
  7841. if (dt.Rows.Count > 0)
  7842. {
  7843. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "DBZY"))
  7844. {
  7845. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7846. if (isp == "1")
  7847. {
  7848. dt.Rows[0]["F_CusName"] = "";
  7849. dt.Rows[0]["F_CusPhone"] = "";
  7850. dt.Rows[0]["F_ConPhone"] = "";
  7851. }
  7852. }
  7853. 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 "
  7854. + "from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime desc";
  7855. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7856. //ExportWord np = new ExportWord();
  7857. //np.CreateWord(dt ,jbdt,User .F_UserCode );
  7858. //string url = dt.Rows[0]["F_WorkOrderId"].ToString();
  7859. //url = "http://192.168.8.9:1042//Upload/Word/工单" + url + ".doc";
  7860. //return Success(url);
  7861. var aw = new AsposeWord();
  7862. aw.OpenWithTemplate(Server.MapPath("/Upload/Word/热线工单模版.doc"));
  7863. aw.Builder();
  7864. aw.CreateAssignWord(dt, jbdt, User.F_UserCode);
  7865. var bt = aw.ExportAs();
  7866. Response.AppendHeader("Access-Control-Expose-Headers", "Content-Disposition");
  7867. return File(bt, "application/msword", "工单" + strworkorderid + ".doc");
  7868. }
  7869. else
  7870. {
  7871. return Error("获取失败");
  7872. }
  7873. }
  7874. else
  7875. {
  7876. return Error("参数传输失败");
  7877. }
  7878. }
  7879. /// <summary>
  7880. /// 获取工单信息
  7881. /// </summary>
  7882. /// <returns></returns>
  7883. //[Authority]
  7884. public ActionResult GetWorkOrderNew()
  7885. {
  7886. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  7887. int type = RequestString.GetInt("type", 0);//0基本信息1监察意见2领导批示3办理情况4回访信息5督办信息6办理过程
  7888. if (!string.IsNullOrEmpty(strworkorderid))
  7889. {
  7890. var configly = configBll.GetModelList(" F_ParamCode='PlayLeaveVoice' ").FirstOrDefault();
  7891. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  7892. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  7893. switch (type)
  7894. {
  7895. case 0:
  7896. #region 基本信息
  7897. string sql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDictionaryName(F_InfoType) as TypeName1,dbo.GetAreaName(F_SourceArea) as AreaName,dbo.GetDictionaryName(F_InfoSource) as SourceName,dbo.GetKeyNames(F_Key) as KeyName,dbo.GetDeptName(F_MainDeptId) deptname ,dbo.GetAreaChildrenCode(F_Township) as Township , dbo.GetAreaChildrenCode(F_Village) as Village,F_DeptIdIsSms = (select F_IsSms from T_Sys_Department WITH(NOLOCK) where F_DeptId =a.F_MainDeptId),dbo.GetIsRelease(F_WorkOrderId) as IsRelease from T_Bus_WorkOrder a WITH(NOLOCK) where F_WorkOrderId ='" + strworkorderid + "'";
  7898. var dt = DbHelperSQL.Query(sql).Tables[0];
  7899. if (dt.Rows.Count > 0)
  7900. {
  7901. if (User.F_RoleCode == "WLDW" && dt.Rows[0]["F_MainDeptId"].ToString() != User.F_DeptId.ToString())
  7902. {
  7903. dt.Rows[0]["F_Result"] = "";
  7904. }
  7905. if (dt.Rows[0]["F_IsProtect"] != null && (User.F_RoleCode == "WLDW" || User.F_RoleCode == "EJWLDW"))
  7906. {
  7907. string isp = dt.Rows[0]["F_IsProtect"].ToString();
  7908. if (isp == "1")
  7909. {
  7910. dt.Rows[0]["F_CusPhone"] = "";
  7911. dt.Rows[0]["F_ConPhone"] = "";
  7912. }
  7913. }
  7914. #region 声音文件
  7915. dt.Columns.Add("FilePath", typeof(string));
  7916. if (dt.Rows[0]["F_LeaveRecordId"] != null)
  7917. {
  7918. dt.Rows[0]["FilePath"] = GetLeavePath(dt.Rows[0]["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  7919. }
  7920. else if (dt.Rows[0]["F_CallRecordId"] != null)
  7921. {
  7922. dt.Rows[0]["FilePath"] = GetCallPath(dt.Rows[0]["F_CallRecordId"].ToString(), config.F_ParamValue);
  7923. }
  7924. #endregion
  7925. #region 附件
  7926. if (configfj != null)
  7927. {
  7928. dt = BindFileData(dt, configfj.F_ParamValue);
  7929. }
  7930. #endregion
  7931. #region 操作按钮
  7932. var btns = new List<ButtonGroup.button>();
  7933. // (int)EnumWorkState.submit, (int)EnumWorkState.resubmit
  7934. btns = ButtonGroup.GetAPPButtons(dt.Rows[0]["F_WorkState"].ToString(), User.F_RoleCode.ToUpper(), dt.Rows[0]["F_IsProResult"].ToString());
  7935. #endregion
  7936. #region 其他权限
  7937. int issend = 0;
  7938. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"|| User.F_RoleCode == "MTDD"))
  7939. //{
  7940. // if (dt.Rows[0]["F_IsRelease"].ToString() != "1")
  7941. // {
  7942. // issend = 1;
  7943. // }
  7944. //}
  7945. int isnotice = 0;
  7946. if (dt.Rows[0]["F_IsNotice"] != null && (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  7947. {
  7948. if (dt.Rows[0]["F_IsNotice"].ToString() != "1")
  7949. {
  7950. isnotice = 1;
  7951. }
  7952. }
  7953. int isedit = 0;
  7954. //if (dt.Rows[0]["F_IsRelease"] != null && (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "ZXLDGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  7955. //{
  7956. // isedit = 1;
  7957. //}
  7958. #endregion
  7959. var obj = new
  7960. {
  7961. data = dt,
  7962. issend,
  7963. isedit,
  7964. isnotice,
  7965. btndata = btns
  7966. };
  7967. return Success("获取成功", obj);
  7968. }
  7969. else
  7970. {
  7971. return Error("获取失败");
  7972. }
  7973. #endregion
  7974. case 1:
  7975. #region 交办信息
  7976. string jbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName,dbo.GetDictionaryNames(F_StandardIDS) as StandardNames from T_Bus_AssignedInfo WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7977. string ejjbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_MainDeptId) as DeptName,dbo.GetDeptNames(F_OtherDeptIds) as OtherDeptName from T_Bus_AssignedInfo_Next WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7978. string thsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  7979. var jbdt = DbHelperSQL.Query(jbsql).Tables[0];
  7980. if (configfj != null)
  7981. {
  7982. jbdt = BindFileData(jbdt, configfj.F_ParamValue);
  7983. }
  7984. var ejjbdt = DbHelperSQL.Query(ejjbsql).Tables[0];
  7985. if (configfj != null)
  7986. {
  7987. ejjbdt = BindFileData(ejjbdt, configfj.F_ParamValue);
  7988. }
  7989. var thdt = DbHelperSQL.Query(thsql).Tables[0];
  7990. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  7991. {
  7992. BindFileData(thdt, configfj.F_ParamValue);
  7993. }
  7994. var obj1 = new
  7995. {
  7996. jbdata = jbdt,
  7997. ejjbdata = ejjbdt,
  7998. thdata = thdt
  7999. };
  8000. return Success("获取成功", obj1);
  8001. #endregion
  8002. case 2:
  8003. #region 指示信息
  8004. string zssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=2 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8005. var zsdt = DbHelperSQL.Query(zssql).Tables[0];
  8006. if (configfj != null)
  8007. {
  8008. zsdt = BindFileData(zsdt, configfj.F_ParamValue);
  8009. }
  8010. return Success("获取成功", zsdt);
  8011. #endregion
  8012. case 3:
  8013. #region 回退信息
  8014. string htsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=3 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8015. var htdt = DbHelperSQL.Query(htsql).Tables[0];
  8016. return Success("获取成功", htdt);
  8017. #endregion
  8018. case 4:
  8019. #region 办理情况
  8020. string blsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8021. string ejblsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_CreateDeptId) as DeptName from T_Bus_Feedback_Next WITH(NOLOCK) where F_State=1 and F_Type!=3 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8022. var bldt = DbHelperSQL.Query(blsql).Tables[0];
  8023. if (bldt != null && bldt.Rows.Count > 0)
  8024. {
  8025. if (User.F_RoleCode == "WLDW" && bldt.Rows[0]["F_CreateDeptId"].ToString() != User.F_DeptId.ToString())
  8026. {
  8027. bldt.Rows[0]["F_Result"] = "";
  8028. }
  8029. }
  8030. if (configfj != null)
  8031. {
  8032. bldt = BindFileDatas(bldt, configfj.F_ParamValue);
  8033. }
  8034. var ejbldt = DbHelperSQL.Query(ejblsql).Tables[0];
  8035. if (configfj != null)
  8036. {
  8037. ejbldt = BindFileData(ejbldt, configfj.F_ParamValue);
  8038. }
  8039. var obj5 = new
  8040. {
  8041. bldata = bldt,
  8042. ejbldata = ejbldt
  8043. };
  8044. return Success("获取成功", obj5);
  8045. #endregion
  8046. case 5:
  8047. #region 延时信息
  8048. string yssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_DelayTime WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8049. var ysdt = DbHelperSQL.Query(yssql).Tables[0];
  8050. if (configfj != null)
  8051. {
  8052. ysdt = BindFileData(ysdt, configfj.F_ParamValue);
  8053. }
  8054. return Success("获取成功", ysdt);
  8055. #endregion
  8056. case 6:
  8057. #region 回访信息
  8058. string hfsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_VisitResult WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime ";
  8059. var hfdt = DbHelperSQL.Query(hfsql).Tables[0];
  8060. hfdt.Columns.Add("FilePath", typeof(string));
  8061. hfdt.Columns.Add("F_Phone", typeof(string));
  8062. foreach (DataRow bldr in hfdt.Rows)
  8063. {
  8064. if (bldr["F_CallRecordId"] != null && config != null)
  8065. {
  8066. try
  8067. {
  8068. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(bldr["F_CallRecordId"].ToString()));
  8069. if (luyin != null)
  8070. {
  8071. if (!string.IsNullOrEmpty(luyin.FilePath))
  8072. {
  8073. var ym = config.F_ParamValue;
  8074. ym = ym.Substring(0, ym.Length - 1);
  8075. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  8076. bldr["FilePath"] = ym + lujing;
  8077. }
  8078. bldr["F_Phone"] = luyin.CallNumber;
  8079. }
  8080. }
  8081. catch
  8082. {
  8083. }
  8084. }
  8085. }
  8086. return Success("获取成功", hfdt);
  8087. #endregion
  8088. case 7:
  8089. #region 督办信息
  8090. string dbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8091. var dbdt = DbHelperSQL.Query(dbsql).Tables[0];
  8092. if (configfj != null)
  8093. {
  8094. dbdt = BindFileData(dbdt, configfj.F_ParamValue);
  8095. }
  8096. return Success("获取成功", dbdt);
  8097. #endregion
  8098. case 8:
  8099. #region 市民催单
  8100. string cbsql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_Additional WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8101. var cbdt = DbHelperSQL.Query(cbsql).Tables[0];
  8102. cbdt.Columns.Add("FilePath", typeof(string));
  8103. foreach (DataRow bldr in cbdt.Rows)
  8104. {
  8105. if (bldr["F_CallRecordId"] != null && config != null)
  8106. {
  8107. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8108. }
  8109. }
  8110. return Success("获取成功", cbdt);
  8111. #endregion
  8112. case 9:
  8113. #region 办理过程
  8114. string gcsql = "select o.*,u.F_UserName from T_Bus_Operation o WITH(NOLOCK) left join T_Sys_UserAccount u WITH(NOLOCK) on o.F_CreateUser=u.F_UserCode where o.F_IsDelete=0 and o.F_WorkOrderId ='" + strworkorderid + "' order by o.F_CreateTime ";
  8115. var gcdt = DbHelperSQL.Query(gcsql).Tables[0];
  8116. gcdt.Columns.Add("File", typeof(object));
  8117. gcdt.Columns.Add("FilePath", typeof(string));
  8118. if (configfj != null || configly != null || config != null)
  8119. {
  8120. foreach (DataRow bldr in gcdt.Rows)
  8121. {
  8122. if (bldr["F_File"] != null && bldr["F_File"].ToString() != "" && configfj != null)
  8123. {
  8124. bldr["File"] = GetFileData(bldr["F_File"].ToString(), configfj.F_ParamValue);
  8125. }
  8126. if (bldr["F_LeaveRecordId"] != null && configly != null)
  8127. {
  8128. bldr["FilePath"] = GetLeavePath(bldr["F_LeaveRecordId"].ToString(), configly.F_ParamValue);
  8129. }
  8130. else if (bldr["F_CallRecordId"] != null && config != null)
  8131. {
  8132. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8133. }
  8134. }
  8135. }
  8136. return Success("获取成功", gcdt);
  8137. #endregion
  8138. case 10:
  8139. #region 市民评议
  8140. string pysql = "select * from PublicComment WITH(NOLOCK) where WorkOrderId ='" + strworkorderid + "' order by CreateTime";
  8141. var pydt = DbHelperSQL.Query(pysql).Tables[0];
  8142. return Success("获取成功", pydt);
  8143. #endregion
  8144. case 11:
  8145. #region 监察信息
  8146. string jcsql = "select *,dbo.GetUserName(F_CreateUser) as UserName,dbo.GetDeptName(F_DeptId) as DeptName from T_Bus_RemindRecord WITH(NOLOCK) where F_Type=2 and F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8147. var jcdt = DbHelperSQL.Query(jcsql).Tables[0];
  8148. if (configfj != null)
  8149. {
  8150. jcdt = BindFileData(jcdt, configfj.F_ParamValue);
  8151. }
  8152. return Success("获取成功", jcdt);
  8153. #endregion
  8154. case 12:
  8155. #region 批示信息
  8156. string pssql = "select *,dbo.GetUserName(F_CreateUser) as UserName from T_Bus_SubmitSuper WITH(NOLOCK) where F_State=1 and F_IsDelete=0 and F_Type=1 and F_WorkOrderId ='" + strworkorderid + "' order by F_CreateTime";
  8157. var psdt = DbHelperSQL.Query(pssql).Tables[0];
  8158. if (configfj != null)
  8159. {
  8160. psdt = BindFileData(psdt, configfj.F_ParamValue);
  8161. }
  8162. return Success("获取成功", psdt);
  8163. #endregion
  8164. case 13:
  8165. #region 审核信息
  8166. string shsql = "select *,[dbo].[GetDeptNames](a.F_MainDeptId) as DeptNames from T_Bus_ToExamine a WITH(NOLOCK) where F_IsDelete=0 and F_WorkOrderId ='" + strworkorderid + "' order by F_ID desc";
  8167. var shdt = DbHelperSQL.Query(shsql).Tables[0];
  8168. return Success("获取成功", shdt);
  8169. #endregion
  8170. }
  8171. return Error("获取失败");
  8172. }
  8173. else
  8174. {
  8175. return Error("参数传输失败");
  8176. }
  8177. }
  8178. /// <summary>
  8179. /// 获取草稿信息
  8180. /// </summary>
  8181. /// <returns></returns>
  8182. //[Authority]
  8183. public ActionResult GetDraftInfo()
  8184. {
  8185. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8186. int type = RequestString.GetInt("type", 0);//1交办信息 2反馈信息 3回访信息 4履职界定信息
  8187. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  8188. {
  8189. string sql = string.Empty;
  8190. switch (type)
  8191. {
  8192. case 1:
  8193. 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;
  8194. case 2: sql = "select top 1 * from T_Bus_Feedback WITH(NOLOCK)"; break;
  8195. case 3: sql = "select top 1 * from T_Bus_VisitResult WITH(NOLOCK)"; break;
  8196. case 4: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK)"; break;
  8197. }
  8198. sql += " where F_WorkOrderId='" + strworkorderid + "' and F_State=0 and F_IsDelete=0 and F_CreateUser=" + User.F_UserCode + " order by F_CreateTime desc";
  8199. var dt = DbHelperSQL.Query(sql).Tables[0];
  8200. if (dt.Rows.Count > 0)
  8201. {
  8202. #region 附件
  8203. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8204. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  8205. {
  8206. BindFileData(dt, configfj.F_ParamValue);
  8207. }
  8208. #endregion
  8209. }
  8210. return Success("获取成功", dt);
  8211. }
  8212. else
  8213. {
  8214. return Error("参数传输失败");
  8215. }
  8216. }
  8217. /// <summary>
  8218. /// 获取审核信息
  8219. /// </summary>
  8220. /// <returns></returns>
  8221. //[Authority]
  8222. public ActionResult GetAuditInfo()
  8223. {
  8224. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8225. int type = RequestString.GetInt("type", 0);//1退回信息2延时信息
  8226. if (!string.IsNullOrEmpty(strworkorderid) && type != 0)
  8227. {
  8228. string sql = string.Empty;
  8229. switch (type)
  8230. {
  8231. case 1: sql = "select top 1 dbo.GetDeptNames(a .F_CreateDeptId) as DepeName , * from T_Bus_Feedback a WITH(NOLOCK) where F_Type=3 and F_State=1 and "; break;
  8232. case 2: sql = "select top 1 * from T_Bus_DelayTime WITH(NOLOCK) where "; break;
  8233. case 3: sql = "select top 1 * from T_Bus_PerformDuties WITH(NOLOCK) where F_State=1 and "; break;
  8234. }
  8235. sql += " F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsAudit=0 order by F_CreateTime desc";
  8236. var dt = DbHelperSQL.Query(sql).Tables[0];
  8237. if (dt.Rows.Count > 0)
  8238. {
  8239. #region 附件
  8240. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8241. if (!string.IsNullOrEmpty(configfj.F_ParamValue))
  8242. {
  8243. BindFileData(dt, configfj.F_ParamValue);
  8244. }
  8245. #endregion
  8246. }
  8247. return Success("获取成功", dt);
  8248. }
  8249. else
  8250. {
  8251. return Error("参数传输失败");
  8252. }
  8253. }
  8254. /// <summary>
  8255. /// 获取所有交办单位
  8256. /// </summary>
  8257. /// <returns></returns>
  8258. //[Authority]
  8259. public ActionResult GetAllAssignDept()
  8260. {
  8261. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8262. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(strworkorderid);
  8263. if (modelT_Bus_WorkOrder != null)
  8264. {
  8265. string ids = string.Empty;
  8266. var Assigns = assignBLL.GetModelList(" F_WorkOrderId='" + strworkorderid + "' and F_IsDelete=0 and F_IsSure in (0,1,2) ");
  8267. foreach (var assign in Assigns)
  8268. {
  8269. if (string.IsNullOrEmpty(ids))
  8270. {
  8271. ids = assign.F_MainDeptId.Value.ToString();
  8272. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  8273. {
  8274. ids += "," + assign.F_OtherDeptIds;
  8275. }
  8276. }
  8277. else
  8278. {
  8279. ids += "," + assign.F_MainDeptId.Value.ToString();
  8280. if (!string.IsNullOrEmpty(assign.F_OtherDeptIds))
  8281. {
  8282. ids += "," + assign.F_OtherDeptIds;
  8283. }
  8284. }
  8285. }
  8286. if (string.IsNullOrEmpty(ids))
  8287. {
  8288. ids = "0";
  8289. }
  8290. var dt = new BLL.T_Sys_Department().GetModelList(" F_DeptId in ( " + ids + " ) ");
  8291. return Success("获取成功", dt);
  8292. }
  8293. else
  8294. {
  8295. return Error("操作失败");
  8296. }
  8297. }
  8298. /// <summary>
  8299. /// 获取二级单位处理信息
  8300. /// </summary>
  8301. /// <returns></returns>
  8302. //[Authority]
  8303. public ActionResult GetSecondDealInfo()
  8304. {
  8305. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8306. if (!string.IsNullOrEmpty(strworkorderid))
  8307. {
  8308. //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, ";
  8309. //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, ";
  8310. //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, ";
  8311. //sql += " fn.F_Result, fn.F_CreateDeptId, fn.F_IsFeedEnd, fn.F_IsAudit, fn.F_AuditUser, fn.F_AuditTime, fn.F_AuditReason ";
  8312. //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";
  8313. //sql += " where an.F_WorkOrderId='" + strworkorderid + "' order by F_CreateTime desc";
  8314. //var dt = DbHelperSQL.Query(sql).Tables[0];
  8315. 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";
  8316. string sql1 = "select * from T_Bus_Feedback_Next WITH(NOLOCK) where F_WorkOrderId='" + strworkorderid + "' and F_IsDelete = 0 ";
  8317. var bldt = DbHelperSQL.Query(sql1).Tables[0];
  8318. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8319. if (configfj != null)
  8320. {
  8321. bldt = BindFileData(bldt, configfj.F_ParamValue);
  8322. }
  8323. var obj = new
  8324. {
  8325. pdinfo = DbHelperSQL.Query(sql).Tables[0],
  8326. fkinfo = bldt
  8327. };
  8328. return Success("获取成功", obj);
  8329. }
  8330. else
  8331. {
  8332. return Error("参数传输失败");
  8333. }
  8334. }
  8335. /// <summary>
  8336. /// 获取二级单位最新处理信息
  8337. /// </summary>
  8338. /// <returns></returns>
  8339. //[Authority]
  8340. public ActionResult GetNewSecondDealInfo()
  8341. {
  8342. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8343. if (!string.IsNullOrEmpty(strworkorderid))
  8344. {
  8345. 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";
  8346. var bldt = DbHelperSQL.Query(sql).Tables[0];
  8347. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  8348. if (configfj != null)
  8349. {
  8350. bldt = BindFileData(bldt, configfj.F_ParamValue);
  8351. }
  8352. return Success("获取成功", bldt);
  8353. }
  8354. else
  8355. {
  8356. return Error("参数传输失败");
  8357. }
  8358. }
  8359. /// <summary>
  8360. /// 修改工单内容和处理结果
  8361. /// </summary>
  8362. /// <returns></returns>
  8363. //[Authority]
  8364. public ActionResult EditResult()
  8365. {
  8366. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  8367. {
  8368. string workorderid = RequestString.GetFormString("workorderid");
  8369. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8370. string result = RequestString.GetFormString("result");
  8371. string content = RequestString.GetFormString("content");
  8372. string comContent = RequestString.GetFormString("comContent");
  8373. string additionalReply = RequestString.GetFormString("additionalReply");
  8374. if (modelT_Bus_WorkOrder != null)
  8375. {
  8376. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  8377. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8378. if (!string.IsNullOrEmpty(content))
  8379. {
  8380. string message = "";
  8381. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Content))
  8382. message = modelT_Bus_WorkOrder.F_Content;
  8383. else
  8384. message = modelT_Bus_WorkOrder.F_ComTitle;
  8385. if (content != message)
  8386. {
  8387. // modelT_Bus_WorkOrder.F_Content = content;
  8388. keyValuePairs.Add("F_Content", content);
  8389. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8390. oper.F_WorkOrderId = workorderid;
  8391. oper.F_AssignedId = 0;
  8392. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8393. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  8394. oper.F_CreateUser = User.F_UserCode;
  8395. oper.F_CreateTime = DateTime.Now;
  8396. oper.F_IsDelete = 0;
  8397. operBLL.Add(oper);
  8398. }
  8399. }
  8400. if (!string.IsNullOrEmpty(comContent))
  8401. {
  8402. string message = "";
  8403. message = modelT_Bus_WorkOrder.F_ComContent;
  8404. if (comContent != message)
  8405. {
  8406. // modelT_Bus_WorkOrder.F_Content = content;
  8407. keyValuePairs.Add("F_ComContent", comContent);
  8408. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8409. oper.F_WorkOrderId = workorderid;
  8410. oper.F_AssignedId = 0;
  8411. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8412. oper.F_Message = userinfo + " 修改了工单内容,原内容:" + message;
  8413. oper.F_CreateUser = User.F_UserCode;
  8414. oper.F_CreateTime = DateTime.Now;
  8415. oper.F_IsDelete = 0;
  8416. operBLL.Add(oper);
  8417. }
  8418. }
  8419. if (!string.IsNullOrEmpty(additionalReply))
  8420. {
  8421. string message = "";
  8422. message = modelT_Bus_WorkOrder.F_AdditionalReply;
  8423. if (additionalReply != message)
  8424. {
  8425. // modelT_Bus_WorkOrder.F_Content = content;
  8426. keyValuePairs.Add("F_AdditionalReply", additionalReply);
  8427. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8428. oper.F_WorkOrderId = workorderid;
  8429. oper.F_AssignedId = 0;
  8430. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8431. oper.F_Message = userinfo + " 修改了追加回复内容,原内容:" + message;
  8432. oper.F_CreateUser = User.F_UserCode;
  8433. oper.F_CreateTime = DateTime.Now;
  8434. oper.F_IsDelete = 0;
  8435. operBLL.Add(oper);
  8436. }
  8437. }
  8438. if (!string.IsNullOrEmpty(result))
  8439. {
  8440. string message = "";
  8441. message = modelT_Bus_WorkOrder.F_Result;
  8442. if (result != message)
  8443. {
  8444. // modelT_Bus_WorkOrder.F_Result = result;
  8445. keyValuePairs.Add("F_Result", result);
  8446. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8447. oper.F_WorkOrderId = workorderid;
  8448. oper.F_AssignedId = 0;
  8449. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8450. oper.F_Message = userinfo + " 修改了办理结果,原结果:" + message;
  8451. oper.F_CreateUser = User.F_UserCode;
  8452. oper.F_CreateTime = DateTime.Now;
  8453. oper.F_IsDelete = 0;
  8454. operBLL.Add(oper);
  8455. }
  8456. }
  8457. if (keyValuePairs.Count > 0)
  8458. {
  8459. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  8460. if (n)
  8461. return Success("操作成功");
  8462. else
  8463. return Error("修改失败");
  8464. }
  8465. else
  8466. {
  8467. return Success("操作成功");
  8468. }
  8469. }
  8470. else
  8471. {
  8472. return Error("操作失败");
  8473. }
  8474. }
  8475. else
  8476. {
  8477. return Error("权限不足");
  8478. }
  8479. }
  8480. /// <summary>
  8481. /// 修改下级单位处理内容
  8482. /// </summary>
  8483. /// <returns></returns>
  8484. //[Authority]
  8485. public ActionResult EditDealWorkOrder()
  8486. {
  8487. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  8488. {
  8489. string workorderid = RequestString.GetFormString("workorderid");
  8490. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  8491. string result = RequestString.GetFormString("result");
  8492. string flies = RequestString.GetFormString("flies");
  8493. var modelT_Bus_Feedback_Nexts = new BLL.T_Bus_Feedback_Next()
  8494. .GetModelList("F_WorkOrderId='" + workorderid + "' and F_IsDelete = 0 order by F_CreateTime desc");
  8495. if (modelT_Bus_Feedback_Nexts != null && modelT_Bus_WorkOrder != null && modelT_Bus_Feedback_Nexts.Count > 0)
  8496. {
  8497. string message = modelT_Bus_Feedback_Nexts[0].F_Result;
  8498. modelT_Bus_Feedback_Nexts[0].F_Result = result;//反馈内容
  8499. modelT_Bus_Feedback_Nexts[0].F_File = flies;
  8500. bool n = new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Nexts[0]);
  8501. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8502. oper.F_WorkOrderId = workorderid;
  8503. oper.F_AssignedId = modelT_Bus_Feedback_Nexts[0].F_Id;
  8504. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8505. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8506. oper.F_Message = userinfo + " 修改了下级单位办理内容,原内容:" + message;
  8507. oper.F_CreateUser = User.F_UserCode;
  8508. oper.F_CreateTime = DateTime.Now;
  8509. oper.F_IsDelete = 0;
  8510. operBLL.Add(oper);
  8511. return Success("操作成功");
  8512. }
  8513. else
  8514. {
  8515. return Error("操作失败");
  8516. }
  8517. }
  8518. else
  8519. {
  8520. return Error("权限不足");
  8521. }
  8522. }
  8523. /// <summary>
  8524. /// 查看回访信息
  8525. /// </summary>
  8526. /// <returns></returns>
  8527. //[Authority]
  8528. public ActionResult GetVisitInfo()
  8529. {
  8530. string strworkorderid = HttpUtility.UrlDecode(RequestString.GetQueryString("workorderid"));
  8531. if (!string.IsNullOrEmpty(strworkorderid))
  8532. {
  8533. 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";
  8534. 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";
  8535. var dtvisit = DbHelperSQL.Query(sqlvisit).Tables[0];
  8536. var dtassgin = DbHelperSQL.Query(sqlassgin).Tables[0];
  8537. var config = configBll.GetModelList(" F_ParamCode='PlayPath' ").FirstOrDefault();
  8538. dtvisit.Columns.Add("FilePath", typeof(string));
  8539. dtvisit.Columns.Add("IsShowCheck", typeof(string));
  8540. if (dtvisit.Rows.Count > 0)
  8541. {
  8542. foreach (DataRow bldr in dtvisit.Rows)
  8543. {
  8544. #region 是否可勾选
  8545. var IsShowCheck = 0;
  8546. var drass = dtassgin.Select(" F_ID='" + bldr["F_AssignedId"].ToString() + "'");
  8547. if (drass.Length > 0)
  8548. {
  8549. var ass = (from DataRow dr in drass select dr.Field<int>("F_MainDeptId")).FirstOrDefault();
  8550. if (ass > 0)
  8551. {
  8552. if (ass == User.F_DeptId)
  8553. IsShowCheck = 1;
  8554. }
  8555. }
  8556. bldr["IsShowCheck"] = IsShowCheck;
  8557. #endregion
  8558. #region 录音
  8559. if (bldr["F_CallRecordId"] != null && config != null)
  8560. {
  8561. bldr["FilePath"] = GetCallPath(bldr["F_CallRecordId"].ToString(), config.F_ParamValue);
  8562. }
  8563. #endregion
  8564. }
  8565. }
  8566. return Success("获取成功", dtvisit);
  8567. }
  8568. else
  8569. {
  8570. return Error("参数传输失败");
  8571. }
  8572. }
  8573. #endregion
  8574. #region 新增工单
  8575. /// <summary>
  8576. /// 上传附件
  8577. /// </summary>
  8578. /// <returns></returns>
  8579. //[Authority]
  8580. public ActionResult UploadFile()
  8581. {
  8582. #region 单个上传 no use
  8583. //string path = string.Empty;
  8584. //HttpPostedFile _upfile = RequestString.GetFile("upFile");
  8585. //if (_upfile != null)
  8586. //{
  8587. // //byte[] buffer = new Byte[(int)_upfile.InputStream.Length]; //声明文件长度的二进制类型
  8588. // //_upfile.InputStream.Read(buffer, 0, buffer.Length); //将文件转成二进制
  8589. // string name = string.Empty;
  8590. // FileUp fu = new FileUp();
  8591. // var model = configBll.GetModelList(" F_ParamCode='FilePath' ").FirstOrDefault();
  8592. // if (model != null)
  8593. // {
  8594. // name = fu.Upload(_upfile, model.F_ParamValue);
  8595. // Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  8596. // model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  8597. // model_T_Sys_Accessories.F_FileName = name;//附件名称
  8598. // model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(_upfile.FileName);//附件类型
  8599. // model_T_Sys_Accessories.F_FileUrl = model.F_ParamValue + name;//附件地址
  8600. // model_T_Sys_Accessories.F_Size = _upfile.ContentLength;
  8601. // model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  8602. // int p_fuId = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  8603. // return Success("成功", model_T_Sys_Accessories);
  8604. // }
  8605. // else
  8606. // {
  8607. // return Error("上传失败");
  8608. // }
  8609. //}
  8610. //else
  8611. //{
  8612. // return Error("请选择要上传的文件");
  8613. //}
  8614. #endregion
  8615. #region 多个上传
  8616. HttpFileCollection files = RequestString.GetFiles();
  8617. if (files.Count > 0)
  8618. {
  8619. List<Model.T_Sys_Accessories> acs = new List<Model.T_Sys_Accessories>();
  8620. string path = "/Upload/Files/" + DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM") + "/" + DateTime.Now.ToString("dd") + "/";
  8621. for (int i = 0; i < files.Count; i++)
  8622. {
  8623. HttpPostedFile file = files[i];
  8624. FileUp fu = new FileUp();
  8625. string name = fu.Upload(file, path);
  8626. Model.T_Sys_Accessories model_T_Sys_Accessories = new Model.T_Sys_Accessories();
  8627. model_T_Sys_Accessories.F_AddTime = DateTime.Now;//上传时间
  8628. model_T_Sys_Accessories.F_FileName = name;//附件名称
  8629. model_T_Sys_Accessories.F_FileType = System.IO.Path.GetExtension(file.FileName);//附件类型
  8630. model_T_Sys_Accessories.F_FileUrl = path + name;//附件地址
  8631. model_T_Sys_Accessories.F_Size = file.ContentLength;
  8632. model_T_Sys_Accessories.F_UserCode = User.F_UserCode;//上传人
  8633. int id = new BLL.T_Sys_Accessories().Add(model_T_Sys_Accessories);
  8634. model_T_Sys_Accessories.F_FileId = id;
  8635. acs.Add(model_T_Sys_Accessories);
  8636. }
  8637. return Success("成功", acs);
  8638. }
  8639. else
  8640. {
  8641. return Error("请选择要上传的文件");
  8642. }
  8643. #endregion
  8644. }
  8645. /// <summary>
  8646. /// 添加工单信息
  8647. /// </summary>
  8648. /// <returns></returns>
  8649. //[Authority]
  8650. public ActionResult AddWorkOrder()
  8651. {
  8652. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ"
  8653. || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY"
  8654. || User.F_RoleCode == "ZJZY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ"
  8655. || User.F_RoleCode == "11" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"
  8656. || User.F_RoleCode == "DFZF") //增加新闻媒体(编号11)的添加工单权限
  8657. {
  8658. int source = RequestString.GetInt("source", 0);
  8659. string cusname = RequestString.GetFormString("cusname");
  8660. string cussex = RequestString.GetFormString("cussex");
  8661. string cusphone = RequestString.GetFormString("cusphone");
  8662. string cusaddress = RequestString.GetFormString("cusaddress");
  8663. string email = RequestString.GetFormString("email");
  8664. string zipcode = RequestString.GetFormString("zipcode");
  8665. string conname = RequestString.GetFormString("conname");
  8666. string conphone = RequestString.GetFormString("conphone");
  8667. string title = RequestString.GetFormString("title");
  8668. string content = RequestString.GetFormString("content");
  8669. string files = RequestString.GetFormString("files");
  8670. int sourcearea = RequestString.GetInt("sourcearea", 0);
  8671. string sourceaddress = RequestString.GetFormString("sourceaddress");
  8672. int isresult = RequestString.GetInt("isresult", 0);
  8673. string result = RequestString.GetFormString("result");
  8674. string keys = RequestString.GetFormString("keys");
  8675. string splituser = RequestString.GetFormString("splituser");
  8676. int type = RequestString.GetInt("type", 0);
  8677. int bigtype = RequestString.GetInt("bigtype", 0);
  8678. int smalltype = RequestString.GetInt("smalltype", 0);
  8679. int isprotect = RequestString.GetInt("isprotect", 0);
  8680. int level = RequestString.GetInt("level", 0);
  8681. int issubmit = RequestString.GetInt("issubmit", 0);
  8682. string callid = RequestString.GetFormString("callid");
  8683. string CallRecordsId = RequestString.GetFormString("CallRecordsId");
  8684. string longitude = RequestString.GetFormString("longitude");//经度
  8685. string latitude = RequestString.GetFormString("latitude");//纬度
  8686. int business = RequestString.GetInt("business", 0); ;//
  8687. int ispd = RequestString.GetInt("ispd", 0); ;//是否自动派单
  8688. int visittype = RequestString.GetInt("visittype", 0); ;//回访方式
  8689. int LeaveRecordId = RequestString.GetInt("LeaveRecordId", 0);
  8690. int township = RequestString.GetInt("township", 0);
  8691. int village = RequestString.GetInt("village", 0);
  8692. string file = RequestString.GetFormString("file");
  8693. int smsid = RequestString.GetInt("smsid", 0);
  8694. int deptid = 0;
  8695. var modeldept = new Model.T_Sys_Department();
  8696. var premodeldept = new Model.T_Sys_Department();
  8697. if (ispd > 0)
  8698. {
  8699. if (string.IsNullOrEmpty(keys))
  8700. return Error("自动派单失败,请选择反映类别!");
  8701. try
  8702. {
  8703. var model = new BLL.T_Sys_DictionaryValue().GetModel
  8704. (int.Parse(keys));
  8705. if (model != null)
  8706. {
  8707. if (model.F_Deptid != null)
  8708. deptid = (int)model.F_Deptid;
  8709. else
  8710. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  8711. }
  8712. else
  8713. return Error("自动派单失败,请选择反映类别.");
  8714. }
  8715. catch
  8716. {
  8717. return Error("自动派单失败,请选择反映类别");
  8718. }
  8719. modeldept = new BLL.T_Sys_Department().GetModel(deptid);
  8720. if (modeldept == null)
  8721. return Error("自动派单失败,派单单位不存在");
  8722. if (modeldept.F_IsDept == 2)
  8723. {
  8724. if (modeldept.F_PartentId > 0)
  8725. {
  8726. premodeldept = department((int)modeldept.F_PartentId);
  8727. if (premodeldept == null)
  8728. return Error("该单位没有上级单位,派单失败");
  8729. }
  8730. else
  8731. {
  8732. return Error("该单位没有上级单位,派单失败");
  8733. }
  8734. }
  8735. else
  8736. {
  8737. premodeldept = modeldept;
  8738. }
  8739. }
  8740. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  8741. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  8742. {
  8743. #region 保存工单信息
  8744. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  8745. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  8746. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  8747. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  8748. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  8749. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  8750. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  8751. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  8752. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  8753. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  8754. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  8755. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  8756. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  8757. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  8758. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  8759. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  8760. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  8761. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  8762. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  8763. modelT_Bus_WorkOrder.F_File = files;//附件
  8764. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  8765. modelT_Bus_WorkOrder.F_Key = keys;
  8766. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  8767. modelT_Bus_WorkOrder.F_Level = level;
  8768. modelT_Bus_WorkOrder.F_VisitType = visittype;
  8769. modelT_Bus_WorkOrder.F_Township = township;
  8770. modelT_Bus_WorkOrder.F_Village = village;
  8771. if (LeaveRecordId > 0)
  8772. {
  8773. var ld = new BLL.T_Call_LeaveRecord().GetModel(LeaveRecordId);
  8774. if (ld != null)
  8775. {
  8776. ld.F_Status = 1;
  8777. ld.F_DealTime = DateTime.Now;
  8778. ld.F_UserId = User.F_UserId;
  8779. ld.F_UserCode = User.F_UserCode;
  8780. ld.F_UserName = User.F_UserName;
  8781. new BLL.T_Call_LeaveRecord().Update(ld);
  8782. modelT_Bus_WorkOrder.F_LeaveRecordId = LeaveRecordId;
  8783. }
  8784. }
  8785. Task.Run(() =>
  8786. {
  8787. if (smsid > 0)
  8788. {
  8789. var sms = new BLL.T_SMS_RecvSMS().GetModel(smsid);
  8790. if (sms != null)
  8791. {
  8792. sms.F_Name = modelT_Bus_WorkOrder.F_WorkOrderId;
  8793. new BLL.T_SMS_RecvSMS().Update(sms);
  8794. }
  8795. }
  8796. });
  8797. modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  8798. modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  8799. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  8800. //是否直办(即时答复)0:,否1: 是
  8801. modelT_Bus_WorkOrder.F_IsResult = isresult;
  8802. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  8803. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  8804. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  8805. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  8806. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  8807. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  8808. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  8809. modelT_Bus_WorkOrder.F_ToBereply = 0;
  8810. //如果选择即刻答复:是,即为直办,工单结束
  8811. if (isresult == 1)
  8812. {
  8813. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  8814. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  8815. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  8816. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  8817. modelT_Bus_WorkOrder.F_IsClosed = 1;
  8818. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  8819. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  8820. if (!string.IsNullOrEmpty(file))
  8821. {
  8822. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  8823. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  8824. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  8825. modelT_Bus_Feedback.F_Result = result;//反馈内容
  8826. #region 20200114新增字段 zhengbingbing
  8827. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  8828. DateTime contime = DateTime.Now;
  8829. modelT_Bus_Feedback.F_IsProResult = 1;
  8830. #endregion
  8831. modelT_Bus_Feedback.F_File = file;
  8832. modelT_Bus_Feedback.F_IsAudit = 0;
  8833. modelT_Bus_Feedback.F_IsDelete = 0;
  8834. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  8835. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  8836. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  8837. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  8838. modelT_Bus_Feedback.F_State = 1;
  8839. modelT_Bus_Feedback.F_Type = 1;
  8840. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  8841. }
  8842. }
  8843. else if (issubmit == 1)
  8844. {
  8845. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  8846. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//
  8847. }
  8848. #region
  8849. #endregion
  8850. if (!string.IsNullOrEmpty(CallRecordsId))
  8851. {
  8852. var rd = new BLL.T_Call_CallRecords().GetModelByRecordId(CallRecordsId);
  8853. if (rd != null)
  8854. {
  8855. modelT_Bus_WorkOrder.F_CallId = rd.CallId;
  8856. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8857. rd.IsExitWorkOrder = true;
  8858. new BLL.T_Call_CallRecords().Update(rd);
  8859. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  8860. }
  8861. }
  8862. else if (!string.IsNullOrEmpty(callid))
  8863. {
  8864. modelT_Bus_WorkOrder.F_CallId = callid;
  8865. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  8866. if (rd != null)
  8867. {
  8868. rd.WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8869. rd.IsExitWorkOrder = true;
  8870. new BLL.T_Call_CallRecords().Update(rd);
  8871. modelT_Bus_WorkOrder.F_CallRecordId = rd.CallRecordsId;
  8872. }
  8873. }
  8874. modelT_Bus_WorkOrder.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder);
  8875. #endregion
  8876. trans.Complete();
  8877. }
  8878. if (modelT_Bus_WorkOrder.F_Id <= 0)
  8879. return Error("添加失败");
  8880. else
  8881. {
  8882. Task.Run(() =>
  8883. {
  8884. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_info");
  8885. //服务工单材料
  8886. if (!string.IsNullOrEmpty(files))
  8887. {
  8888. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_WorkOrder.F_Id, "10");
  8889. }
  8890. //电话服务记录
  8891. if (!string.IsNullOrEmpty(callid))
  8892. {
  8893. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_record");
  8894. }
  8895. }).ContinueWith(p =>
  8896. {
  8897. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  8898. });
  8899. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  8900. string message = "";
  8901. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  8902. {
  8903. message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8904. }
  8905. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  8906. {
  8907. message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8908. }
  8909. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  8910. {
  8911. message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  8912. Task.Run(() =>
  8913. {
  8914. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  8915. }).ContinueWith(p =>
  8916. {
  8917. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  8918. });
  8919. }
  8920. var curuser = User;
  8921. Task.Run(() =>
  8922. {
  8923. #region 插入操作记录
  8924. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  8925. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8926. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  8927. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  8928. oper.F_File = modelT_Bus_WorkOrder.F_File;
  8929. oper.F_Message = message;
  8930. oper.F_CreateUser = curuser.F_UserCode;
  8931. oper.F_CreateTime = DateTime.Now;
  8932. oper.F_IsDelete = 0;
  8933. operBLL.Add(oper);
  8934. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.finish)
  8935. {
  8936. string count = "您反映的事项已受理并转交相关部门处理,感谢您拨打市长热线!";
  8937. string msg = "";
  8938. // bool n = SMSController.AddSmS(0, msg, count, modelT_Bus_WorkOrder.F_CusPhone, "197387", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  8939. string phone = modelT_Bus_WorkOrder.F_CusPhone;
  8940. if (phone.Length > 11)
  8941. phone = phone.Substring(1, 11);
  8942. string n = SmsNewController.AddSmS(0, count, phone, "681240256766803968", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  8943. }
  8944. #endregion
  8945. }).ContinueWith(p =>
  8946. {
  8947. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  8948. });
  8949. Task.Run(() =>
  8950. {
  8951. #region 插入推送消息
  8952. //推送消息表
  8953. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)
  8954. {
  8955. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  8956. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  8957. foreach (var u in users)
  8958. {
  8959. msg.AddInternalMessagesInfo("工单消息", message, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  8960. }
  8961. }
  8962. #endregion
  8963. }).ContinueWith(p =>
  8964. {
  8965. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  8966. });
  8967. Task.Run(async () =>
  8968. {
  8969. #region 自动派单
  8970. if (ispd > 0)
  8971. {
  8972. //时限
  8973. string resdatetime = "";
  8974. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  8975. DataTable dt = DbHelperSQL.Query("select top " + 7 + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  8976. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  8977. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  8978. //交办信息
  8979. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  8980. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  8981. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  8982. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;
  8983. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  8984. modelT_Bus_AssignedInfo.F_AssignedOpinion = "自动派单";//交办意见
  8985. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  8986. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  8987. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  8988. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  8989. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  8990. modelT_Bus_AssignedInfo.F_IsSure = 0;
  8991. modelT_Bus_AssignedInfo.F_IsReload = 0;
  8992. modelT_Bus_AssignedInfo.F_IsNext = 0;
  8993. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  8994. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  8995. //工单信息
  8996. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  8997. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  8998. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  8999. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  9000. //modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  9001. keyValuePairs.Add("F_OtherDeptIds", "");
  9002. // modelT_Bus_WorkOrder.F_OtherDeptIds = ""
  9003. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  9004. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  9005. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  9006. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9007. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  9008. var msgss = userinfo + " 交办了工单,主办单位:" + premodeldept.F_DeptName;
  9009. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  9010. if (modeldept.F_IsDept == 2)
  9011. {
  9012. await SplitOrderNew(modelT_Bus_WorkOrder, modeldept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, "自动派单", curuser).ContinueWith(p =>
  9013. {
  9014. });
  9015. }
  9016. else
  9017. {
  9018. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  9019. keyValuePairs1.Add("F_WorkState", 2);
  9020. modelT_Bus_WorkOrder.F_WorkState = 2;
  9021. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  9022. await Task.Run(() =>
  9023. {
  9024. //addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode);
  9025. });
  9026. }
  9027. await Task.Run(() =>
  9028. {
  9029. //推送消息表
  9030. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  9031. foreach (var u in users)
  9032. {
  9033. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  9034. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  9035. {
  9036. continue;
  9037. }
  9038. else
  9039. {
  9040. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  9041. // string mag = modelT_Bus_WorkOrder.F_WorkOrderId;
  9042. // bool n = SMSController.AddSmS(0, mag, count, u.F_Mobile, "153305", "");
  9043. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  9044. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  9045. modelT_Bus_WorkOrder.F_WorkOrderId);
  9046. string t = PushMessageController.PushApp("新工单提醒", count, u.F_UserCode);
  9047. }
  9048. }
  9049. });
  9050. }
  9051. #endregion
  9052. }).ContinueWith(p =>
  9053. {
  9054. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9055. });
  9056. }
  9057. return Success("操作成功");
  9058. }
  9059. else
  9060. {
  9061. return Error("权限不足");
  9062. }
  9063. }
  9064. /// <summary>
  9065. /// 添加工单信息
  9066. /// </summary>
  9067. /// <returns></returns>
  9068. public string AddWorkOrderBySource(int source, string cusname, string cussex, string cusphone, string cusaddress, string email,
  9069. string zipcode, string conname, string conphone, string title, string content, int sourcearea, string sourceaddress,
  9070. string keys, string splituser, int type, int bigtype, int smalltype, int isprotect, int level, string files = null)
  9071. {
  9072. string workorderid = string.Empty;
  9073. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9074. {
  9075. #region 保存工单信息
  9076. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  9077. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  9078. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  9079. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea
  9080. , creattime, endtime);
  9081. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9082. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9083. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9084. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9085. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9086. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9087. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9088. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9089. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9090. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9091. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9092. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9093. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9094. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9095. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9096. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9097. modelT_Bus_WorkOrder.F_File = files;//附件
  9098. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9099. modelT_Bus_WorkOrder.F_Key = keys;
  9100. modelT_Bus_WorkOrder.F_SplitUser = splituser;
  9101. modelT_Bus_WorkOrder.F_Level = level;
  9102. //modelT_Bus_WorkOrder.F_Latitude = latitude != "" ? decimal.Parse(latitude) : 0;//纬度
  9103. //modelT_Bus_WorkOrder.F_Longitude = longitude != "" ? decimal.Parse(longitude) : 0;//经度
  9104. //modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  9105. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  9106. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  9107. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//审核环节去掉 20190715
  9108. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  9109. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  9110. modelT_Bus_WorkOrder.F_IsDelete = 1;//是否删除(0:否,1:是)
  9111. modelT_Bus_WorkOrder.F_IsEnabled = 0;//是否处理
  9112. workorderBLL.Add(modelT_Bus_WorkOrder);
  9113. workorderid = modelT_Bus_WorkOrder.F_WorkOrderId;
  9114. #endregion
  9115. #region 插入操作记录
  9116. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9117. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9118. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9119. string userinfo = "";
  9120. var sourceinfo = new BLL.T_Sys_DictionaryValue().GetModel(source);
  9121. if (sourceinfo != null) { userinfo = "由 " + sourceinfo.F_Value; }
  9122. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  9123. {
  9124. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9125. }
  9126. //oper.F_CreateUser = User.F_UserCode;
  9127. oper.F_CreateTime = DateTime.Now;
  9128. oper.F_IsDelete = 0;
  9129. operBLL.Add(oper);
  9130. #endregion
  9131. trans.Complete();
  9132. }
  9133. return workorderid;
  9134. }
  9135. /// <summary>
  9136. /// 添加工单信息留言
  9137. /// </summary>
  9138. /// <returns></returns>
  9139. //[Authority]
  9140. public ActionResult AddWorkOrderByLY()
  9141. {
  9142. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9143. {
  9144. int source = RequestString.GetInt("source", 0);
  9145. string cusname = RequestString.GetFormString("cusname");
  9146. string cussex = RequestString.GetFormString("cussex");
  9147. string cusphone = RequestString.GetFormString("cusphone");
  9148. string cusaddress = RequestString.GetFormString("cusaddress");
  9149. string email = RequestString.GetFormString("email");
  9150. string zipcode = RequestString.GetFormString("zipcode");
  9151. string conname = RequestString.GetFormString("conname");
  9152. string conphone = RequestString.GetFormString("conphone");
  9153. string title = RequestString.GetFormString("title");
  9154. string content = RequestString.GetFormString("content");
  9155. string files = RequestString.GetFormString("files");
  9156. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9157. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9158. int isresult = RequestString.GetInt("isresult", 0);
  9159. string result = RequestString.GetFormString("result");
  9160. string keys = RequestString.GetFormString("keys");
  9161. string splituser = RequestString.GetFormString("splituser");
  9162. int type = RequestString.GetInt("type", 0);
  9163. int bigtype = RequestString.GetInt("bigtype", 0);
  9164. int smalltype = RequestString.GetInt("smalltype", 0);
  9165. int isprotect = RequestString.GetInt("isprotect", 0);
  9166. int level = RequestString.GetInt("level", 0);
  9167. int issubmit = RequestString.GetInt("issubmit", 0);
  9168. int lyid = RequestString.GetInt("lyid", 0);
  9169. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9170. {
  9171. #region 保存工单信息
  9172. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new Model.T_Bus_WorkOrder();
  9173. string creattime = DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00";
  9174. string endtime = DateTime.Now.ToString("yyyy-MM-dd") + " 23:59:59";
  9175. modelT_Bus_WorkOrder.F_WorkOrderId = workorderBLL.GetNewWorkOrderID(source, sourcearea, creattime, endtime);
  9176. modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9177. modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9178. modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9179. modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9180. modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9181. modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9182. modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9183. modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9184. modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9185. modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9186. modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9187. modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9188. modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9189. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9190. modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9191. modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9192. modelT_Bus_WorkOrder.F_File = files;//附件
  9193. modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9194. modelT_Bus_WorkOrder.F_Key = keys;
  9195. modelT_Bus_WorkOrder.F_Level = level;
  9196. //是否直办(即时答复)0:,否1: 是
  9197. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9198. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9199. modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;//登记人工号
  9200. modelT_Bus_WorkOrder.F_CreateTime = DateTime.Now;//登记时间
  9201. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;//工单状态0登记中
  9202. modelT_Bus_WorkOrder.F_IsClosed = 0;//工单是否关闭
  9203. modelT_Bus_WorkOrder.F_IsOverdue = 0;//是否逾期(0:否,1:是)
  9204. modelT_Bus_WorkOrder.F_IsDelete = 0;//是否删除(0:否,1:是)
  9205. //如果选择即刻答复:是,即为直办,工单结束
  9206. if (isresult == 1)
  9207. {
  9208. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9209. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9210. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9211. modelT_Bus_WorkOrder.F_IsClosed = 1;
  9212. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9213. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  9214. }
  9215. else if (issubmit == 1)
  9216. {
  9217. modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9218. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9219. }
  9220. #region
  9221. //20190715去掉审核环节
  9222. //else
  9223. //{
  9224. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;//待审核
  9225. //}
  9226. //else if (issubmit == 1)
  9227. //{
  9228. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9229. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9230. //}
  9231. #endregion
  9232. if (lyid != 0)
  9233. {
  9234. var rd = new BLL.T_Call_LeaveRecord().GetModel(lyid);
  9235. if (rd != null)
  9236. {
  9237. modelT_Bus_WorkOrder.F_LeaveRecordId = rd.F_Id;
  9238. }
  9239. }
  9240. workorderBLL.Add(modelT_Bus_WorkOrder);
  9241. #endregion
  9242. #region 插入操作记录
  9243. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9244. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9245. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9246. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9247. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9248. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9249. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  9250. {
  9251. oper.F_Message = userinfo + " 登记了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9252. }
  9253. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9254. {
  9255. oper.F_Message = userinfo + " 登记并提交了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9256. }
  9257. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9258. {
  9259. oper.F_Message = userinfo + " 登记并结案了工单,工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  9260. }
  9261. oper.F_CreateUser = User.F_UserCode;
  9262. oper.F_CreateTime = DateTime.Now;
  9263. oper.F_IsDelete = 0;
  9264. operBLL.Add(oper);
  9265. //推送消息表
  9266. if (modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.neworder && modelT_Bus_WorkOrder.F_WorkState != (int)EnumWorkState.audit)//0)
  9267. {
  9268. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9269. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9270. foreach (var u in users)
  9271. {
  9272. msg.AddInternalMessagesInfo("工单消息", oper.F_Message, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9273. }
  9274. }
  9275. #endregion
  9276. trans.Complete();
  9277. }
  9278. return Success("操作成功");
  9279. }
  9280. else
  9281. {
  9282. return Error("权限不足");
  9283. }
  9284. }
  9285. /// <summary>
  9286. /// 添加工单信息
  9287. /// </summary>
  9288. /// <returns></returns>
  9289. //[Authority]
  9290. public ActionResult AddWorkOrderByAPP()
  9291. {
  9292. int source = RequestString.GetInt("source", 6);
  9293. string cusname = RequestString.GetFormString("cusname");
  9294. string cussex = RequestString.GetFormString("cussex");
  9295. string cusphone = RequestString.GetFormString("cusphone");
  9296. string cusaddress = RequestString.GetFormString("cusaddress");
  9297. string email = RequestString.GetFormString("email");
  9298. string zipcode = RequestString.GetFormString("zipcode");
  9299. string conname = RequestString.GetFormString("conname");
  9300. string conphone = RequestString.GetFormString("conphone");
  9301. string title = RequestString.GetFormString("title");
  9302. string content = RequestString.GetFormString("content");
  9303. string files = RequestString.GetFormString("files");
  9304. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9305. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9306. int isresult = RequestString.GetInt("isresult", 0);
  9307. string result = RequestString.GetFormString("result");
  9308. string keys = RequestString.GetFormString("keys");
  9309. string splituser = RequestString.GetFormString("splituser");
  9310. int type = RequestString.GetInt("type", 0);
  9311. int bigtype = RequestString.GetInt("bigtype", 0);
  9312. int smalltype = RequestString.GetInt("smalltype", 0);
  9313. int isprotect = RequestString.GetInt("isprotect", 0);
  9314. int level = RequestString.GetInt("level", 0);
  9315. string workorderid = AddWorkOrderBySource(6, cusname, cussex, cusphone, cusaddress, email, zipcode, conname,
  9316. conphone, title, content, sourcearea, sourceaddress, keys, splituser, type, bigtype, smalltype, isprotect, level, files);
  9317. if (!string.IsNullOrEmpty(workorderid))
  9318. {
  9319. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9320. {
  9321. #region 保存用户工单信息
  9322. var model = new BLL.T_Sys_Users().GetModel(User.F_UserCode);
  9323. if (model == null)
  9324. {
  9325. model = new Model.T_Sys_Users();
  9326. model.F_OpenId = User.F_UserCode;
  9327. model.F_Type = (int)EnumUserType.app;//3;
  9328. model.F_CreateTime = DateTime.Now;
  9329. model.F_Id = new BLL.T_Sys_Users().Add(model);
  9330. }
  9331. Model.T_Bus_UserWorkOrder tbu = new Model.T_Bus_UserWorkOrder();
  9332. tbu.F_UserId = model.F_Id;
  9333. tbu.F_WorkOrderId = workorderid;
  9334. new BLL.T_Bus_UserWorkOrder().Add(tbu);
  9335. #endregion
  9336. trans.Complete();
  9337. }
  9338. return Success("操作成功");
  9339. }
  9340. else
  9341. {
  9342. return Error("操作失败");
  9343. }
  9344. }
  9345. #endregion
  9346. #region 操作工单
  9347. /// <summary>
  9348. /// 修改工单信息
  9349. /// </summary>
  9350. /// <returns></returns>
  9351. //[Authority]
  9352. public ActionResult EditWorkOrder(List<maindeptcontent> contsents)
  9353. {
  9354. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ"
  9355. )
  9356. {
  9357. string workorderid = RequestString.GetFormString("workorderid");
  9358. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9359. int source = RequestString.GetInt("source", 0);
  9360. string cusname = RequestString.GetFormString("cusname");
  9361. string cussex = RequestString.GetFormString("cussex");
  9362. string cusphone = RequestString.GetFormString("cusphone");
  9363. string cusaddress = RequestString.GetFormString("cusaddress");
  9364. string email = RequestString.GetFormString("email");
  9365. string zipcode = RequestString.GetFormString("zipcode");
  9366. string conname = RequestString.GetFormString("conname");
  9367. string conphone = RequestString.GetFormString("conphone");
  9368. int state = RequestString.GetInt("state", 0);
  9369. string title = RequestString.GetFormString("title");
  9370. string content = RequestString.GetFormString("content");
  9371. string files = RequestString.GetFormString("files");
  9372. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9373. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9374. int isresult = RequestString.GetInt("isresult", 0);
  9375. string result = RequestString.GetFormString("result");
  9376. string keys = RequestString.GetFormString("keys");
  9377. string splituser = RequestString.GetFormString("splituser");
  9378. int type = RequestString.GetInt("type", 0);
  9379. int bigtype = RequestString.GetInt("bigtype", 0);
  9380. int smalltype = RequestString.GetInt("smalltype", 0);
  9381. int isprotect = RequestString.GetInt("isprotect", 0);
  9382. int level = RequestString.GetInt("level", 0);
  9383. int issubmit = RequestString.GetInt("issubmit", 0);
  9384. int isopen = RequestString.GetInt("isopen", 0);
  9385. int business = RequestString.GetInt("business", 0);
  9386. int township = RequestString.GetInt("township", 0);
  9387. int village = RequestString.GetInt("village", 0);
  9388. string file = RequestString.GetFormString("file");
  9389. string workcontent = RequestString.GetFormString("workcontent");
  9390. string maindeptids = RequestString.GetFormString("maindeptids");
  9391. int limittimes = RequestString.GetInt("limittimes", 0);
  9392. //领导批示
  9393. string superOpinion = RequestString.GetFormString("superOpinion");
  9394. lock (_MyLock)
  9395. {
  9396. #region 保存工单信息
  9397. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9398. keyValuePairs.Add("F_InfoSource", source);
  9399. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9400. keyValuePairs.Add("F_Township", township);
  9401. //modelT_Bus_WorkOrder.F_Township = township;
  9402. keyValuePairs.Add("F_Village", village);
  9403. //modelT_Bus_WorkOrder.F_Village = village;
  9404. keyValuePairs.Add("F_InfoType", type);
  9405. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9406. keyValuePairs.Add("F_InfoConBigType", bigtype);
  9407. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9408. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  9409. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9410. keyValuePairs.Add("F_SourceArea", sourcearea);
  9411. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9412. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  9413. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9414. keyValuePairs.Add("F_CusName", cusname);
  9415. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9416. keyValuePairs.Add("F_CusSex", cussex);
  9417. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9418. keyValuePairs.Add("F_CusPhone", cusphone);
  9419. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9420. keyValuePairs.Add("F_CusAddress", cusaddress);
  9421. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9422. keyValuePairs.Add("F_ZipCode", zipcode);
  9423. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9424. keyValuePairs.Add("F_ConName", conname);
  9425. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9426. keyValuePairs.Add("F_ConPhone", conphone);
  9427. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9428. keyValuePairs.Add("F_Email", email);
  9429. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9430. keyValuePairs.Add("F_ComTitle", title);
  9431. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9432. keyValuePairs.Add("F_ComContent", content);
  9433. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9434. keyValuePairs.Add("F_File", files);
  9435. // modelT_Bus_WorkOrder.F_File = files;//附件
  9436. keyValuePairs.Add("F_IsProtect", isprotect);
  9437. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9438. keyValuePairs.Add("F_Content", workcontent);
  9439. // modelT_Bus_WorkOrder.F_Content = workcontent;
  9440. keyValuePairs.Add("F_Key", keys);
  9441. // modelT_Bus_WorkOrder.F_Key = keys;
  9442. keyValuePairs.Add("F_Level", level);
  9443. // modelT_Bus_WorkOrder.F_Level = level;
  9444. keyValuePairs.Add("F_ToBereply", 0);
  9445. keyValuePairs.Add("F_SplitUser", splituser);
  9446. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  9447. //是否直办(即时答复)0:,否1: 是
  9448. keyValuePairs.Add("F_IsResult", isresult);
  9449. //领导批示
  9450. keyValuePairs.Add("F_SuperOpinion", superOpinion);
  9451. if (source != 1 && source != 3 && source != 6 && !string.IsNullOrEmpty(maindeptids))
  9452. {
  9453. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptids + ")");
  9454. if (deptlist != null)
  9455. {
  9456. if (deptlist.Count == 1)
  9457. {
  9458. var deptinfo = deptlist.FirstOrDefault();
  9459. if (deptinfo.F_IsDept == 2)
  9460. {
  9461. if (deptinfo.F_PartentId > 0)
  9462. {
  9463. var premodeldept = department((int)deptinfo.F_PartentId);
  9464. if (premodeldept == null)
  9465. return Error("该单位没有上级单位,派单失败");
  9466. }
  9467. else
  9468. {
  9469. return Error("该单位没有上级单位,派单失败");
  9470. }
  9471. }
  9472. }
  9473. else
  9474. {
  9475. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  9476. return Error("派单多单位不能派给三级单位");
  9477. }
  9478. }
  9479. else
  9480. {
  9481. return Error("单位不存在");
  9482. }
  9483. }
  9484. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9485. keyValuePairs.Add("F_Result", result);
  9486. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9487. if (isopen > 0)
  9488. {
  9489. keyValuePairs.Add("F_IsOpen", isopen);
  9490. // modelT_Bus_WorkOrder.F_IsOpen = isopen;
  9491. }
  9492. if (isresult == 1)
  9493. {
  9494. keyValuePairs.Add("F_WorkState", 9);
  9495. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9496. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  9497. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  9498. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  9499. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9500. keyValuePairs.Add("F_DealTime", DateTime.Now);
  9501. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9502. keyValuePairs.Add("F_IsClosed", 1);
  9503. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  9504. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  9505. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9506. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  9507. var cureuser = User;
  9508. Task.Run(() =>
  9509. {
  9510. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  9511. }).ContinueWith(p =>
  9512. {
  9513. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9514. });
  9515. }
  9516. else if (issubmit == 1)
  9517. {
  9518. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  9519. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9520. keyValuePairs.Add("F_WorkState", 1);
  9521. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9522. }
  9523. if (!string.IsNullOrEmpty(file))
  9524. {
  9525. Model.T_Bus_Feedback modelT_Bus_Feedback = new T_Bus_Feedback();
  9526. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  9527. modelT_Bus_Feedback.F_DealUser = User.F_UserCode;
  9528. modelT_Bus_Feedback.F_Result = result;//反馈内容
  9529. #region 20200114新增字段 zhengbingbing
  9530. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  9531. DateTime contime = DateTime.Now;
  9532. modelT_Bus_Feedback.F_IsProResult = 1;
  9533. #endregion
  9534. modelT_Bus_Feedback.F_File = file;
  9535. modelT_Bus_Feedback.F_IsAudit = 0;
  9536. modelT_Bus_Feedback.F_IsDelete = 0;
  9537. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  9538. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  9539. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  9540. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  9541. modelT_Bus_Feedback.F_State = 1;
  9542. modelT_Bus_Feedback.F_Type = 1;
  9543. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  9544. }
  9545. #region
  9546. #endregion
  9547. if (state > 0)
  9548. {
  9549. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9550. {
  9551. int assignid = RequestString.GetInt("assignid", 0);
  9552. int maindeptid = RequestString.GetInt("maindeptid", 0);
  9553. //string maindeptid = RequestString.GetFormString("maindeptid");
  9554. string otherdeptids = RequestString.GetFormString("otherdeptids");
  9555. DateTime limittime = DateTime.Now;
  9556. try
  9557. {
  9558. limittime = DateTime.Now.AddDays(int.Parse(RequestString.GetFormString("limittime")));
  9559. }
  9560. catch
  9561. {
  9562. limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  9563. }
  9564. string assignedopinion = RequestString.GetFormString("assignedopinion");
  9565. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  9566. if (!string.IsNullOrEmpty(otherdeptids))
  9567. {
  9568. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  9569. {
  9570. return Error("主办单位不能出现在协办单位");
  9571. }
  9572. }
  9573. if (limittime < DateTime.Now)
  9574. {
  9575. return Error("办理时限不能小于当前时间");
  9576. }
  9577. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  9578. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  9579. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  9580. {
  9581. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  9582. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9583. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  9584. {
  9585. int aid = 0;
  9586. using (TransactionScope tran = new TransactionScope())
  9587. {
  9588. if (assignid == 0)
  9589. {
  9590. #region 插入交办记录
  9591. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9592. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9593. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9594. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9595. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9596. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9597. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9598. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9599. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  9600. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  9601. modelT_Bus_AssignedInfo.F_IsSure = 0;
  9602. modelT_Bus_AssignedInfo.F_IsReload = 0;
  9603. modelT_Bus_AssignedInfo.F_IsNext = 0;
  9604. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9605. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  9606. #endregion
  9607. }
  9608. else
  9609. {
  9610. #region 修改交办记录
  9611. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  9612. if (modelT_Bus_AssignedInfo != null)
  9613. {
  9614. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  9615. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  9616. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  9617. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  9618. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  9619. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  9620. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  9621. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  9622. assignBLL.Update(modelT_Bus_AssignedInfo);
  9623. aid = modelT_Bus_AssignedInfo.F_Id;
  9624. }
  9625. #endregion
  9626. }
  9627. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  9628. {
  9629. #region 保存工单信息
  9630. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  9631. keyValuePairs.Add("F_WorkState", 2);
  9632. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  9633. keyValuePairs.Add("F_LimitTime", limittime);
  9634. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  9635. keyValuePairs.Add("F_MainDeptId", maindeptid);
  9636. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  9637. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  9638. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  9639. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  9640. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  9641. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  9642. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  9643. #endregion
  9644. #region 删除草稿信息
  9645. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  9646. foreach (var cg in cglist)
  9647. {
  9648. cg.F_IsDelete = 1;
  9649. cg.F_DeleteUser = User.F_UserCode;
  9650. cg.F_DeleteTime = DateTime.Now;
  9651. assignBLL.Update(cg);
  9652. }
  9653. #endregion
  9654. #region 插入操作记录
  9655. Model.T_Bus_Operation opers = new Model.T_Bus_Operation();
  9656. opers.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9657. opers.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  9658. opers.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9659. string userinfos = User.depname + "(" + User.F_UserCode + ")";
  9660. opers.F_Message = userinfos + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  9661. if (!string.IsNullOrEmpty(otherdeptids))
  9662. {
  9663. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  9664. opers.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  9665. }
  9666. opers.F_CreateUser = User.F_UserCode;
  9667. opers.F_CreateTime = DateTime.Now;
  9668. opers.F_IsDelete = 0;
  9669. operBLL.Add(opers);
  9670. //推送消息表
  9671. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  9672. foreach (var u in users)
  9673. {
  9674. msg.AddInternalMessagesInfo("工单消息", opers.F_Message + ",工单编号:" + opers.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9675. }
  9676. #endregion
  9677. }
  9678. tran.Complete();
  9679. }
  9680. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  9681. }
  9682. else
  9683. {
  9684. return Error("已经交办过了");
  9685. }
  9686. }
  9687. else
  9688. {
  9689. return Error("操作失败");
  9690. }
  9691. }
  9692. else
  9693. {
  9694. return Error("权限不足");
  9695. }
  9696. }
  9697. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  9698. #endregion
  9699. #region 插入操作记录
  9700. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9701. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9702. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9703. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9704. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9705. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9706. oper.F_Message = userinfo + " 修改了工单";
  9707. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9708. {
  9709. oper.F_Message = userinfo + " 修改并提交了工单";
  9710. }
  9711. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)//1)
  9712. {
  9713. oper.F_Message = userinfo + " 修改了重办工单";
  9714. }
  9715. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9716. {
  9717. oper.F_Message = userinfo + " 修改并结案了工单";
  9718. Task.Run(() =>
  9719. {
  9720. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  9721. }).ContinueWith(p =>
  9722. {
  9723. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  9724. });
  9725. }
  9726. oper.F_CreateUser = User.F_UserCode;
  9727. oper.F_CreateTime = DateTime.Now;
  9728. oper.F_IsDelete = 0;
  9729. operBLL.Add(oper);
  9730. Task.Run(() =>
  9731. {//推送消息表
  9732. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9733. {
  9734. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY'or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9735. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9736. foreach (var u in users)
  9737. {
  9738. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9739. }
  9740. }
  9741. });
  9742. //调用科大讯飞
  9743. #endregion
  9744. }
  9745. return Success("操作成功");
  9746. }
  9747. else
  9748. {
  9749. return Success("权限不足");
  9750. }
  9751. }
  9752. /// <summary>
  9753. /// 修改工单信息
  9754. /// </summary>
  9755. /// <returns></returns>
  9756. //[Authority]
  9757. public ActionResult EditWorkOrderBySource()
  9758. {
  9759. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9760. {
  9761. string workorderid = RequestString.GetFormString("workorderid");
  9762. int source = RequestString.GetInt("source", 0);
  9763. string cusname = RequestString.GetFormString("cusname");
  9764. string cussex = RequestString.GetFormString("cussex");
  9765. string cusphone = RequestString.GetFormString("cusphone");
  9766. string cusaddress = RequestString.GetFormString("cusaddress");
  9767. string email = RequestString.GetFormString("email");
  9768. string zipcode = RequestString.GetFormString("zipcode");
  9769. string conname = RequestString.GetFormString("conname");
  9770. string conphone = RequestString.GetFormString("conphone");
  9771. string title = RequestString.GetFormString("title");
  9772. string content = RequestString.GetFormString("content");
  9773. string files = RequestString.GetFormString("files");
  9774. int sourcearea = RequestString.GetInt("sourcearea", 0);
  9775. string sourceaddress = RequestString.GetFormString("sourceaddress");
  9776. string workcontent = RequestString.GetFormString("workcontent");
  9777. int isresult = RequestString.GetInt("isresult", 0);
  9778. string result = RequestString.GetFormString("result");
  9779. string keys = RequestString.GetFormString("keys");
  9780. string splituser = RequestString.GetFormString("splituser");
  9781. int type = RequestString.GetInt("type", 0);
  9782. int bigtype = RequestString.GetInt("bigtype", 0);
  9783. int smalltype = RequestString.GetInt("smalltype", 0);
  9784. int isprotect = RequestString.GetInt("isprotect", 0);
  9785. int level = RequestString.GetInt("level", 0);
  9786. int issubmit = RequestString.GetInt("issubmit", 0);
  9787. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9788. if (modelT_Bus_WorkOrder != null)
  9789. {
  9790. if (modelT_Bus_WorkOrder.F_IsEnabled == 0)
  9791. {
  9792. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9793. {
  9794. #region 保存工单信息
  9795. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9796. keyValuePairs.Add("F_InfoSource", source);
  9797. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  9798. keyValuePairs.Add("F_InfoType", type);
  9799. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  9800. keyValuePairs.Add("F_InfoConBigType", bigtype);
  9801. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  9802. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  9803. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  9804. keyValuePairs.Add("F_SourceArea", sourcearea);
  9805. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  9806. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  9807. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  9808. keyValuePairs.Add("F_CusName", cusname);
  9809. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  9810. keyValuePairs.Add("F_CusSex", cussex);
  9811. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  9812. keyValuePairs.Add("F_CusPhone", cusphone);
  9813. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  9814. keyValuePairs.Add("F_CusAddress", cusaddress);
  9815. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  9816. keyValuePairs.Add("F_ZipCode", zipcode);
  9817. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  9818. keyValuePairs.Add("F_ConName", conname);
  9819. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  9820. keyValuePairs.Add("F_ConPhone", conphone);
  9821. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  9822. keyValuePairs.Add("F_Email", email);
  9823. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  9824. keyValuePairs.Add("F_ComTitle", title);
  9825. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  9826. keyValuePairs.Add("F_ComContent", content);
  9827. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  9828. keyValuePairs.Add("F_File", files);
  9829. // modelT_Bus_WorkOrder.F_File = files;//附件
  9830. keyValuePairs.Add("F_File", isprotect);
  9831. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  9832. keyValuePairs.Add("F_Content", workcontent);
  9833. // modelT_Bus_WorkOrder.F_Content = workcontent;
  9834. keyValuePairs.Add("F_Key", keys);
  9835. // modelT_Bus_WorkOrder.F_Key = keys;
  9836. keyValuePairs.Add("F_Level", level);
  9837. // modelT_Bus_WorkOrder.F_Level = level;
  9838. keyValuePairs.Add("F_ToBereply", 0);
  9839. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  9840. //是否直办(即时答复)0:,否1: 是
  9841. keyValuePairs.Add("F_IsResult", isresult);
  9842. modelT_Bus_WorkOrder.F_IsResult = isresult;
  9843. keyValuePairs.Add("F_Result", result);
  9844. modelT_Bus_WorkOrder.F_Result = result;//处理结果
  9845. // modelT_Bus_WorkOrder.F_Business = business;
  9846. //如果选择即刻答复:是,即为直办,工单结束
  9847. if (isresult == 1)
  9848. {
  9849. keyValuePairs.Add("F_WorkState", 9);
  9850. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;// 9;//已结案
  9851. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  9852. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  9853. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  9854. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  9855. keyValuePairs.Add("F_DealTime", DateTime.Now);
  9856. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  9857. keyValuePairs.Add("F_IsClosed", 1);
  9858. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  9859. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  9860. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  9861. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  9862. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  9863. }
  9864. else if (issubmit == 1)
  9865. {
  9866. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  9867. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9868. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  9869. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;// 1;//提交领导
  9870. }
  9871. #region
  9872. #endregion
  9873. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  9874. keyValuePairs.Add("F_IsEnabled", 1);
  9875. // modelT_Bus_WorkOrder.F_IsEnabled = 1;
  9876. keyValuePairs.Add("F_EnableTime", DateTime.Now);
  9877. // modelT_Bus_WorkOrder.F_EnableTime = DateTime.Now
  9878. keyValuePairs.Add("F_IsDelete", 0); ;
  9879. // modelT_Bus_WorkOrder.F_IsDelete = 0;
  9880. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  9881. #endregion
  9882. #region 插入操作记录
  9883. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9884. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9885. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9886. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  9887. oper.F_File = modelT_Bus_WorkOrder.F_File;
  9888. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9889. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)//0)
  9890. {
  9891. oper.F_Message = userinfo + " 处理了工单";
  9892. }
  9893. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9894. {
  9895. oper.F_Message = userinfo + " 处理并提交了工单";
  9896. }
  9897. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9898. {
  9899. oper.F_Message = userinfo + " 处理并结案了工单";
  9900. }
  9901. oper.F_CreateUser = User.F_UserCode;
  9902. oper.F_CreateTime = DateTime.Now;
  9903. oper.F_IsDelete = 0;
  9904. operBLL.Add(oper);
  9905. //推送消息表
  9906. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)//1)
  9907. {
  9908. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  9909. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  9910. foreach (var u in users)
  9911. {
  9912. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  9913. }
  9914. }
  9915. //调用科大讯飞
  9916. if (modelT_Bus_WorkOrder.F_InfoSource == 7 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)//9)
  9917. {
  9918. ShangQiuWorkOrderController sqwo = new ShangQiuWorkOrderController();
  9919. bool bl = sqwo.SaveReplyInfo(oper.F_WorkOrderId, User.F_UserCode, User.depname, modelT_Bus_WorkOrder.F_Result, "3", modelT_Bus_WorkOrder.F_InfoType.Value.ToString());
  9920. if (bl)
  9921. {
  9922. Success("调用成功,工单号:" + oper.F_WorkOrderId);
  9923. }
  9924. else
  9925. {
  9926. Error("调用失败,工单号:" + oper.F_WorkOrderId);
  9927. }
  9928. }
  9929. #endregion
  9930. trans.Complete();
  9931. }
  9932. return Success("操作成功");
  9933. }
  9934. else
  9935. {
  9936. return Error("已经处理过了");
  9937. }
  9938. }
  9939. else
  9940. {
  9941. return Error("操作失败");
  9942. }
  9943. }
  9944. else
  9945. {
  9946. return Success("权限不足");
  9947. }
  9948. }
  9949. #region 新增审核工单流程
  9950. /// <summary>
  9951. /// 20190315需求变动,新增审核工单,由组长审核
  9952. /// </summary>
  9953. /// <param name="ids"></param>
  9954. /// <returns></returns>
  9955. //[Authority]
  9956. public ActionResult AuditWorkOrder()
  9957. {
  9958. if (User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  9959. {
  9960. string workorderid = RequestString.GetFormString("workorderid");
  9961. int state = RequestString.GetInt("state", 0);
  9962. string reason = RequestString.GetFormString("reason");
  9963. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  9964. if (modelT_Bus_WorkOrder != null)
  9965. {
  9966. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  9967. {
  9968. if (modelT_Bus_WorkOrder != null)
  9969. {
  9970. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  9971. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  9972. {
  9973. var opt = "审核并提交"; var re = "";
  9974. #region 保存工单信息
  9975. if (state == 1)
  9976. {
  9977. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  9978. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  9979. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  9980. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  9981. }
  9982. else
  9983. {
  9984. keyValuePairs.Add("F_WorkState", 0);
  9985. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  9986. opt = "审核并退回";
  9987. re = ",退回原因:" + reason;
  9988. }
  9989. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  9990. #endregion
  9991. #region 插入操作记录
  9992. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  9993. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  9994. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  9995. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  9996. oper.F_Message = userinfo + " " + opt + "了工单" + re;
  9997. oper.F_CreateUser = User.F_UserCode;
  9998. oper.F_CreateTime = DateTime.Now;
  9999. oper.F_IsDelete = 0;
  10000. operBLL.Add(oper);
  10001. //推送消息表
  10002. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  10003. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10004. {
  10005. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10006. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10007. foreach (var u in users)
  10008. {
  10009. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10010. }
  10011. }
  10012. #endregion
  10013. }
  10014. }
  10015. trans.Complete();
  10016. }
  10017. return Success("操作成功");
  10018. }
  10019. else
  10020. {
  10021. return Error("操作失败");
  10022. }
  10023. }
  10024. else
  10025. {
  10026. return Error("权限不足");
  10027. }
  10028. }
  10029. #endregion
  10030. /// <summary>
  10031. /// 提交工单
  10032. /// </summary>
  10033. /// <param name="ids"></param>
  10034. /// <returns></returns>
  10035. //[Authority]
  10036. public ActionResult SubmitWorkOrder(string[] ids)
  10037. {
  10038. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  10039. {
  10040. if (ids != null && ids.Length > 0)
  10041. {
  10042. foreach (string str in ids)
  10043. {
  10044. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10045. {
  10046. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  10047. if (modelT_Bus_WorkOrder != null)
  10048. {
  10049. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10050. //if (modelT_Bus_WorkOrder.F_WorkState == 0)
  10051. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  10052. {
  10053. #region 保存工单信息
  10054. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  10055. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  10056. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  10057. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  10058. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  10059. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10060. #endregion
  10061. #region 插入操作记录
  10062. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10063. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10064. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10065. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10066. oper.F_Message = userinfo + " 提交了工单";
  10067. oper.F_CreateUser = User.F_UserCode;
  10068. oper.F_CreateTime = DateTime.Now;
  10069. oper.F_IsDelete = 0;
  10070. operBLL.Add(oper);
  10071. //推送消息表
  10072. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  10073. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  10074. {
  10075. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  10076. if (role != null && role.Count() > 0)
  10077. {
  10078. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  10079. foreach (var u in users)
  10080. {
  10081. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10082. }
  10083. }
  10084. }
  10085. #endregion
  10086. }
  10087. }
  10088. trans.Complete();
  10089. }
  10090. }
  10091. return Success("操作成功");
  10092. }
  10093. else
  10094. {
  10095. return Error("操作失败");
  10096. }
  10097. }
  10098. else
  10099. {
  10100. return Error("权限不足");
  10101. }
  10102. }
  10103. /// <summary>
  10104. /// 回退工单
  10105. /// </summary>
  10106. /// <returns></returns>
  10107. //[Authority]
  10108. public ActionResult ReturnWorkOrder()
  10109. {
  10110. string workorderid = RequestString.GetFormString("workorderid");
  10111. string backuser = RequestString.GetFormString("backuser");
  10112. string backreason = RequestString.GetFormString("backreason");
  10113. string files = RequestString.GetFormString("files");
  10114. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  10115. if (modelT_Bus_WorkOrder != null)
  10116. {
  10117. //if (modelT_Bus_WorkOrder.F_WorkState == 1 || (modelT_Bus_WorkOrder.F_WorkState == 9 && modelT_Bus_WorkOrder.F_IsResult==1))
  10118. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit || (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && modelT_Bus_WorkOrder.F_IsResult == 1))
  10119. {
  10120. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10121. {
  10122. #region 保存工单信息
  10123. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10124. keyValuePairs.Add("F_WorkState", 0);
  10125. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;// 0;
  10126. //modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.audit;// 0;
  10127. keyValuePairs.Add("F_IsResult", 0);
  10128. keyValuePairs.Add("F_IsReturn", 1);
  10129. // modelT_Bus_WorkOrder.F_IsReturn = 1;
  10130. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  10131. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  10132. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10133. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10134. keyValuePairs.Add("F_Prevaricate", modelT_Bus_WorkOrder.F_Prevaricate + 1);
  10135. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10136. #endregion
  10137. #region 插入批示记录
  10138. //批示记录
  10139. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  10140. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  10141. model_T_Bus_SubmitSuper.F_Type = 3;//1领导批示 2市长指示 3回退
  10142. model_T_Bus_SubmitSuper.F_BatchReason = backuser;//批示人
  10143. model_T_Bus_SubmitSuper.F_SuperOpinion = backreason;//批示内容
  10144. model_T_Bus_SubmitSuper.F_File = files;//附件
  10145. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  10146. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  10147. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  10148. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  10149. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  10150. #endregion
  10151. #region 插入操作记录
  10152. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10153. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10154. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10155. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10156. oper.F_Message = userinfo + " 回退了工单";
  10157. oper.F_CreateUser = User.F_UserCode;
  10158. oper.F_CreateTime = DateTime.Now;
  10159. oper.F_IsDelete = 0;
  10160. operBLL.Add(oper);
  10161. #endregion
  10162. trans.Complete();
  10163. }
  10164. return Success("操作成功");
  10165. }
  10166. else
  10167. {
  10168. return Error("已经处理过了");
  10169. }
  10170. }
  10171. else
  10172. {
  10173. return Error("操作失败");
  10174. }
  10175. }
  10176. /// <summary>
  10177. /// 领导批示/市长指示
  10178. /// </summary>
  10179. /// <param name="ids"></param>
  10180. /// <returns></returns>
  10181. //[Authority]
  10182. public ActionResult SuperWorkOrder()
  10183. {
  10184. string workorderid = RequestString.GetFormString("workorderid");
  10185. int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示 3转督办
  10186. string superuser = RequestString.GetFormString("superuser");
  10187. string superopinion = RequestString.GetFormString("superopinion");
  10188. string files = RequestString.GetFormString("files");
  10189. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10190. if (modelT_Bus_WorkOrder != null)
  10191. {
  10192. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10193. {
  10194. #region 保存工单信息 no use
  10195. //modelT_Bus_WorkOrder.F_WorkState = 2;//领导批示
  10196. //workorderBLL.Update(modelT_Bus_WorkOrder);
  10197. #endregion
  10198. #region 插入批示记录
  10199. //批示记录
  10200. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new Model.T_Bus_SubmitSuper();
  10201. model_T_Bus_SubmitSuper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  10202. model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  10203. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  10204. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  10205. model_T_Bus_SubmitSuper.F_File = files;//附件
  10206. model_T_Bus_SubmitSuper.F_CreateUser = User.F_UserCode;//呈批人
  10207. model_T_Bus_SubmitSuper.F_CreateTime = DateTime.Now;//呈批时间
  10208. model_T_Bus_SubmitSuper.F_IsDelete = 0;
  10209. model_T_Bus_SubmitSuper.F_State = 1;//审批状态(0:未处理,1:通过)
  10210. new BLL.T_Bus_SubmitSuper().Add(model_T_Bus_SubmitSuper);
  10211. #endregion
  10212. #region 插入操作记录
  10213. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  10214. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10215. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  10216. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10217. oper.F_Message = userinfo + " 批示了工单";
  10218. oper.F_CreateUser = User.F_UserCode;
  10219. oper.F_CreateTime = DateTime.Now;
  10220. oper.F_IsDelete = 0;
  10221. operBLL.Add(oper);
  10222. #endregion
  10223. trans.Complete();
  10224. }
  10225. return Success("操作成功");
  10226. }
  10227. else
  10228. {
  10229. return Error("操作失败");
  10230. }
  10231. }
  10232. /// <summary>
  10233. /// 办理中交办
  10234. /// </summary>
  10235. /// <returns></returns>
  10236. //[Authority]
  10237. public ActionResult HandleAssign()
  10238. {
  10239. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  10240. {
  10241. string workorderid = RequestString.GetFormString("workorderid");
  10242. int state = RequestString.GetInt("state", 0);
  10243. int assignid = RequestString.GetInt("assignid", 0);
  10244. string maindeptid = RequestString.GetFormString("maindeptid");
  10245. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10246. int limittime = RequestString.GetInt("limittime", 0);
  10247. string limittimes = RequestString.GetFormString("limittimes");
  10248. string resdatetime = "";
  10249. if (limittime > 0)
  10250. {
  10251. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10252. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  10253. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10254. }
  10255. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10256. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10257. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10258. if (!string.IsNullOrEmpty(otherdeptids))
  10259. {
  10260. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  10261. if (both.Count() > 0)
  10262. {
  10263. return Error("主办单位不能出现在协办单位");
  10264. }
  10265. }
  10266. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10267. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10268. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10269. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  10270. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  10271. {
  10272. int aid = 0; var rre = "";
  10273. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10274. {
  10275. string newids = ""; string errdeptid = ""; string deptname = "";
  10276. foreach (var deptinfo in deptlist)
  10277. {
  10278. deptname += deptinfo.F_DeptName + ",";
  10279. #region 新增工单
  10280. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  10281. modelT_Bus_WorkOrder1 = modelT_Bus_WorkOrder;
  10282. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  10283. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  10284. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  10285. modelT_Bus_WorkOrder1.F_MainWorkorder1 = workorderid;
  10286. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  10287. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  10288. {
  10289. errdeptid += deptinfo.F_DeptName + ",";
  10290. continue;
  10291. }
  10292. #endregion
  10293. #region 交办
  10294. #region 插入交办记录
  10295. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10296. if (modelT_Bus_WorkOrder.F_Level == 2)
  10297. {
  10298. try
  10299. {
  10300. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10301. }
  10302. catch
  10303. {
  10304. return Error("请选择正确的时间");
  10305. }
  10306. }
  10307. else
  10308. {
  10309. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10310. }
  10311. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10312. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10313. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10314. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10315. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10316. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  10317. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10318. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10319. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10320. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10321. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10322. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10323. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10324. #endregion
  10325. #endregion
  10326. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10327. {
  10328. #region 保存工单信息
  10329. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10330. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  10331. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  10332. // modelT_Bus_WorkOrder1.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  10333. if (modelT_Bus_WorkOrder1.F_Level == 2)
  10334. {
  10335. try
  10336. {
  10337. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  10338. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  10339. }
  10340. catch
  10341. {
  10342. return Error("请选择正确的时间");
  10343. }
  10344. }
  10345. else
  10346. {
  10347. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  10348. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  10349. }
  10350. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  10351. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  10352. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  10353. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  10354. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  10355. //modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  10356. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10357. //modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  10358. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  10359. #endregion
  10360. #region 插入操作记录
  10361. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10362. if (!string.IsNullOrEmpty(otherdeptids))
  10363. {
  10364. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10365. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10366. }
  10367. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  10368. //推送消息表
  10369. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  10370. foreach (var u in users)
  10371. {
  10372. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  10373. }
  10374. #endregion
  10375. }
  10376. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  10377. Task.Run(() =>
  10378. {
  10379. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  10380. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  10381. {
  10382. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  10383. }
  10384. }).ContinueWith(p =>
  10385. {
  10386. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10387. });
  10388. }
  10389. newids = newids.Trim(',');
  10390. var msgs = "";
  10391. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder1 = workorderBLL.GetModel(workorderid);
  10392. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  10393. keyValuePairs1.Add("F_MainWorkorder1", tempT_Bus_WorkOrder1.F_WorkOrderId);
  10394. // tempT_Bus_WorkOrder1.F_MainWorkorder1 = tempT_Bus_WorkOrder1.F_WorkOrderId;
  10395. keyValuePairs1.Add("F_SubWorkorder1", newids + "," + tempT_Bus_WorkOrder1.F_WorkOrderId);
  10396. // tempT_Bus_WorkOrder1.F_SubWorkorder1 = newids+","+ tempT_Bus_WorkOrder1.F_WorkOrderId ;
  10397. workorderBLL.UpdateWorkOrder(tempT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  10398. if (errdeptid == "")
  10399. {
  10400. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  10401. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  10402. }
  10403. else
  10404. {
  10405. errdeptid = errdeptid.Trim(',');
  10406. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  10407. addoptlog(workorderid, 4, 0, msgs, User.F_UserCode);
  10408. }
  10409. #region 插入操作记录
  10410. #endregion
  10411. trans.Complete();
  10412. #region
  10413. #endregion
  10414. }
  10415. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in (" + maindeptid + ") ");
  10416. if (user != null && user.Count > 0)
  10417. {
  10418. foreach (var it in user)
  10419. {
  10420. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  10421. {
  10422. continue;
  10423. }
  10424. else
  10425. {
  10426. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  10427. // string msg = workorderid;
  10428. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  10429. string mag = "[\"" + workorderid + "\"]";
  10430. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  10431. workorderid);
  10432. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  10433. }
  10434. }
  10435. }
  10436. //审核员给二级单位转派
  10437. return Success("操作成功" + rre, modelT_Bus_AssignedInfo.F_Id);
  10438. }
  10439. else
  10440. {
  10441. return Error("操作失败");
  10442. }
  10443. }
  10444. else
  10445. {
  10446. return Error("权限不足");
  10447. }
  10448. }
  10449. private Model.T_Sys_Department department(int PartentId)
  10450. {
  10451. var model = new BLL.T_Sys_Department().GetModel(PartentId);
  10452. if (model != null)
  10453. {
  10454. if (model.F_IsDept == 1)
  10455. {
  10456. return model;
  10457. }
  10458. else
  10459. {
  10460. if (model.F_PartentId > 0)
  10461. model = department((int)model.F_PartentId);
  10462. else
  10463. return null;
  10464. }
  10465. }
  10466. else
  10467. {
  10468. return null;
  10469. }
  10470. return model;
  10471. }
  10472. public class maindeptcontent
  10473. {
  10474. public int id { set; get; }
  10475. public string content { set; get; }
  10476. }
  10477. /// <summary>
  10478. ///
  10479. /// </summary>
  10480. /// <returns></returns>
  10481. //[Authority]
  10482. public ActionResult AssignWorkOrderNew(List<maindeptcontent> content)
  10483. {
  10484. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  10485. {
  10486. string workorderid = RequestString.GetFormString("workorderid");
  10487. int state = RequestString.GetInt("state", 0);
  10488. int assignid = RequestString.GetInt("assignid", 0);
  10489. string maindeptid = RequestString.GetFormString("maindeptid");
  10490. string otherdeptids = RequestString.GetFormString("otherdeptids");
  10491. int limittime = RequestString.GetInt("limittime", 0);
  10492. string limittimes = RequestString.GetFormString("limittimes");
  10493. int ispd = RequestString.GetInt("ispd", 0);
  10494. int isms = RequestString.GetInt("isms", 0);
  10495. string resdatetime = "";
  10496. if (limittime > 0)
  10497. {
  10498. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  10499. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays with(nolock) where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  10500. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  10501. }
  10502. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  10503. string assignedopinion = RequestString.GetFormString("assignedopinion");
  10504. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  10505. if (!string.IsNullOrEmpty(otherdeptids))
  10506. {
  10507. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  10508. if (both.Count() > 0)
  10509. {
  10510. return Error("主办单位不能出现在协办单位");
  10511. }
  10512. }
  10513. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  10514. var premodeldept = new Model.T_Sys_Department();
  10515. if (ispd > 0)
  10516. {
  10517. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Key))
  10518. return Error("自动派单失败,请选择反映类别!");
  10519. try
  10520. {
  10521. var model = new BLL.T_Sys_DictionaryValue().GetModel
  10522. (int.Parse(modelT_Bus_WorkOrder.F_Key));
  10523. if (model != null)
  10524. {
  10525. if (model.F_Deptid != null)
  10526. maindeptid = model.F_Deptid.ToString();
  10527. else
  10528. return Error("当前反映类别暂未设置相应派单部门,自动派单失败");
  10529. }
  10530. else
  10531. return Error("自动派单失败,请选择反映类别.");
  10532. }
  10533. catch
  10534. {
  10535. return Error("自动派单失败,请选择反映类别");
  10536. }
  10537. }
  10538. else
  10539. {
  10540. if (string.IsNullOrEmpty(maindeptid))
  10541. return Error("请选择派单部门");
  10542. }
  10543. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  10544. if (deptlist != null)
  10545. {
  10546. if (deptlist.Count == 1)
  10547. {
  10548. var deptinfo = deptlist.FirstOrDefault();
  10549. if (deptinfo.F_IsDept == 2)
  10550. {
  10551. if (deptinfo.F_PartentId > 0)
  10552. {
  10553. premodeldept = department((int)deptinfo.F_PartentId);
  10554. if (premodeldept == null)
  10555. return Error("该单位没有上级单位,派单失败");
  10556. }
  10557. else
  10558. {
  10559. return Error("该单位没有上级单位,派单失败");
  10560. }
  10561. }
  10562. }
  10563. else
  10564. {
  10565. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  10566. return Error("派单多单位不能派给三级单位");
  10567. }
  10568. }
  10569. else
  10570. {
  10571. return Error("单位不存在");
  10572. }
  10573. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  10574. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  10575. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  10576. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  10577. {
  10578. if (modelT_Bus_WorkOrder.F_Level == 2)
  10579. {
  10580. try
  10581. {
  10582. Convert.ToDateTime(limittimes);
  10583. }
  10584. catch
  10585. {
  10586. return Error("请选择正确的时间");
  10587. }
  10588. }
  10589. int aid = 0;
  10590. var curuser = User;
  10591. if (deptlist.Count == 1)
  10592. {
  10593. #region 交办一个单位
  10594. var maindept = deptlist.FirstOrDefault();
  10595. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  10596. {
  10597. if (assignid == 0)
  10598. {
  10599. #region 插入交办记录
  10600. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  10601. if (modelT_Bus_WorkOrder.F_Level == 2)
  10602. {
  10603. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10604. }
  10605. else
  10606. {
  10607. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10608. }
  10609. if (maindept.F_IsDept == 2)
  10610. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  10611. else
  10612. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  10613. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10614. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10615. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10616. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10617. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10618. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10619. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10620. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10621. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10622. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10623. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10624. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  10625. #endregion
  10626. }
  10627. else
  10628. {
  10629. #region 修改交办记录
  10630. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  10631. if (modelT_Bus_AssignedInfo != null)
  10632. {
  10633. if (modelT_Bus_WorkOrder.F_Level == 2)
  10634. {
  10635. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10636. }
  10637. else
  10638. {
  10639. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10640. }
  10641. if (maindept.F_IsDept == 2)
  10642. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  10643. else
  10644. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  10645. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10646. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10647. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10648. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10649. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10650. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10651. assignBLL.Update(modelT_Bus_AssignedInfo);
  10652. aid = modelT_Bus_AssignedInfo.F_Id;
  10653. }
  10654. #endregion
  10655. }
  10656. trans.Complete();
  10657. }
  10658. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10659. {
  10660. Task.Run(() =>
  10661. {
  10662. #region 保存工单信息
  10663. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10664. if (content != null && content.Count > 0)
  10665. {
  10666. keyValuePairs.Add("F_Content", content[0].content);
  10667. }
  10668. if (modelT_Bus_WorkOrder.F_Level == 2)
  10669. {
  10670. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  10671. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  10672. }
  10673. else
  10674. {
  10675. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  10676. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  10677. }
  10678. if (maindept.F_IsDept == 2)
  10679. {
  10680. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  10681. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  10682. }
  10683. else
  10684. {
  10685. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  10686. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  10687. }
  10688. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  10689. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  10690. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  10691. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  10692. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10693. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  10694. if (maindept.F_IsDept == 2)
  10695. {
  10696. modelT_Bus_WorkOrder.F_WorkState = 4;
  10697. keyValuePairs.Add("F_WorkState", 4);
  10698. }
  10699. else
  10700. {
  10701. modelT_Bus_WorkOrder.F_WorkState = 2;
  10702. keyValuePairs.Add("F_WorkState", 2);
  10703. }
  10704. // keyValuePairs.Add("F_IsSendBack", 0);
  10705. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  10706. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10707. #endregion
  10708. }).ContinueWith(q =>
  10709. {
  10710. string DeptName = "";
  10711. if (maindept.F_IsDept == 2)
  10712. {
  10713. DeptName = premodeldept.F_DeptName;
  10714. }
  10715. else
  10716. DeptName = maindept.F_DeptName;
  10717. var msgss = userinfo + " 交办了工单,主办单位:" + DeptName;
  10718. if (!string.IsNullOrEmpty(otherdeptids))
  10719. {
  10720. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10721. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10722. }
  10723. if (maindept.F_IsDept == 2)
  10724. {
  10725. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  10726. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion, curuser).ContinueWith(p =>
  10727. {
  10728. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10729. });
  10730. }
  10731. else
  10732. {
  10733. Task.Run(() =>
  10734. {
  10735. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  10736. }).ContinueWith(p =>
  10737. {
  10738. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10739. });
  10740. }
  10741. #region 插入推送消息
  10742. if (isms > 0)
  10743. {
  10744. if (maindept.F_IsDept == 2)
  10745. {
  10746. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  10747. foreach (var u in users)
  10748. {
  10749. if (curuser.F_RoleCode == "DBZY")
  10750. {
  10751. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10752. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10753. // bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  10754. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10755. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  10756. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  10757. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode);
  10758. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10759. }
  10760. else
  10761. {
  10762. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  10763. {
  10764. continue;
  10765. }
  10766. else
  10767. {
  10768. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  10769. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10770. // bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  10771. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10772. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  10773. modelT_Bus_WorkOrder.F_WorkOrderId);
  10774. string t = PushMessageController.PushApp("新工单提醒", count, u.F_UserCode);
  10775. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10776. }
  10777. }
  10778. }
  10779. }
  10780. else
  10781. {
  10782. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  10783. foreach (var u in users)
  10784. {
  10785. if (curuser.F_RoleCode == "DBZY")
  10786. {
  10787. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10788. //string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10789. // bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  10790. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10791. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  10792. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  10793. string t = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode);
  10794. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10795. }
  10796. else
  10797. {
  10798. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  10799. {
  10800. continue;
  10801. }
  10802. else
  10803. {
  10804. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  10805. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  10806. // bool n = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  10807. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  10808. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  10809. modelT_Bus_WorkOrder.F_WorkOrderId);
  10810. string t = PushMessageController.PushApp("新工单提醒", count, u.F_UserCode);
  10811. }
  10812. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10813. }
  10814. }
  10815. }
  10816. }
  10817. #endregion
  10818. });
  10819. }
  10820. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  10821. #endregion
  10822. }
  10823. else
  10824. {
  10825. Task.Run(() =>
  10826. {
  10827. string newids = ""; string errdeptid = ""; string deptname = "";
  10828. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  10829. if (curuser.F_RoleCode == "DBZY")
  10830. {
  10831. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  10832. }
  10833. object obj = new object();
  10834. List<Task> taskList = new List<Task>();
  10835. foreach (var deptinfo in deptlist)
  10836. {
  10837. deptname += deptinfo.F_DeptName + ",";
  10838. #region 新增工单
  10839. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  10840. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  10841. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  10842. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  10843. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  10844. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  10845. if (content != null && content.Count > 0)
  10846. {
  10847. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  10848. {
  10849. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  10850. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  10851. }
  10852. }
  10853. modelT_Bus_WorkOrder1.F_IsRelease = null;
  10854. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  10855. if (curuser.F_RoleCode == "DBZY")
  10856. {
  10857. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  10858. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10859. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  10860. }
  10861. #endregion
  10862. if (modelT_Bus_WorkOrder1.F_Id > 0)
  10863. {
  10864. #region 插入交办记录
  10865. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10866. if (modelT_Bus_WorkOrder.F_Level == 2)
  10867. {
  10868. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  10869. }
  10870. else
  10871. {
  10872. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  10873. }
  10874. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  10875. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  10876. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  10877. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  10878. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  10879. modelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  10880. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  10881. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  10882. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  10883. modelT_Bus_AssignedInfo.F_IsSure = 0;
  10884. modelT_Bus_AssignedInfo.F_IsReload = 0;
  10885. modelT_Bus_AssignedInfo.F_IsNext = 0;
  10886. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  10887. #endregion
  10888. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  10889. {
  10890. #region 保存工单信息
  10891. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10892. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  10893. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  10894. if (modelT_Bus_WorkOrder1.F_Level == 2)
  10895. {
  10896. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  10897. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  10898. }
  10899. else
  10900. {
  10901. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  10902. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  10903. }
  10904. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  10905. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  10906. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  10907. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  10908. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  10909. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  10910. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  10911. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  10912. // keyValuePairs.Add("F_IsSendBack", 0);
  10913. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  10914. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  10915. #endregion
  10916. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  10917. if (!string.IsNullOrEmpty(otherdeptids))
  10918. {
  10919. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  10920. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  10921. }
  10922. #region 插入操作记录
  10923. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  10924. #endregion
  10925. #region 插入推送消息
  10926. //推送消息表
  10927. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  10928. foreach (var u in users)
  10929. {
  10930. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  10931. }
  10932. #endregion
  10933. #region 发短信
  10934. if (isms > 0)
  10935. {
  10936. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  10937. if (user != null && user.Count > 0)
  10938. {
  10939. foreach (var it in user)
  10940. {
  10941. if (curuser.F_RoleCode == "DBZY")
  10942. {
  10943. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  10944. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10945. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  10946. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  10947. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag,
  10948. modelT_Bus_WorkOrder1.F_WorkOrderId);
  10949. string t = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode);
  10950. }
  10951. else
  10952. {
  10953. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  10954. {
  10955. continue;
  10956. }
  10957. else
  10958. {
  10959. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  10960. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  10961. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  10962. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  10963. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  10964. modelT_Bus_WorkOrder1.F_WorkOrderId);
  10965. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  10966. }
  10967. }
  10968. }
  10969. }
  10970. }
  10971. #endregion
  10972. }
  10973. Task.Run(() =>
  10974. {
  10975. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  10976. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  10977. {
  10978. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  10979. }
  10980. }).ContinueWith(p =>
  10981. {
  10982. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  10983. });
  10984. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  10985. }
  10986. else
  10987. {
  10988. errdeptid += deptinfo.F_DeptName + ",";
  10989. }
  10990. }
  10991. newids = newids.Trim(',');
  10992. var msgs = "";
  10993. if (errdeptid == "")
  10994. {
  10995. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  10996. keyValuePairs.Add("F_SubWorkorder1", newids);
  10997. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  10998. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  10999. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  11000. }
  11001. else
  11002. {
  11003. errdeptid = errdeptid.Trim(',');
  11004. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  11005. }
  11006. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  11007. }).ContinueWith(p =>
  11008. {
  11009. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  11010. });
  11011. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  11012. // keyValuePairs1.Add("F_IsSendBack", 0);
  11013. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  11014. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  11015. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  11016. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  11017. return Success("操作成功");
  11018. }
  11019. }
  11020. else
  11021. {
  11022. return Error("操作失败");
  11023. }
  11024. }
  11025. else
  11026. {
  11027. return Error("权限不足");
  11028. }
  11029. }
  11030. /// <summary>
  11031. /// 审核工单
  11032. /// </summary>
  11033. /// <returns></returns>
  11034. public ActionResult ToExamineWorkOrder()
  11035. {
  11036. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  11037. {
  11038. string workorderid = RequestString.GetFormString("workorderid");
  11039. int nexttype = RequestString.GetInt("nexttype", 0);//审核通过1审核不通过2审核通过转办
  11040. int statistics = RequestString.GetInt("statistics", 0);//是否进行退回统计0否1是
  11041. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  11042. int issms = RequestString.GetInt("issms", 0);//是否发送短信
  11043. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11044. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11045. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11046. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new Model.T_Bus_ToExamine();
  11047. if (modelT_Bus_WorkOrder != null)
  11048. {
  11049. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  11050. {
  11051. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11052. {
  11053. modelT_Bus_ToExamine.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11054. modelT_Bus_ToExamine.F_IsDelete = 0;
  11055. modelT_Bus_ToExamine.F_Type = nexttype;
  11056. modelT_Bus_ToExamine.F_CreatUser = User.F_UserCode;
  11057. modelT_Bus_ToExamine.F_Result = cbreason;
  11058. if (modelT_Bus_AssignedInfo != null)
  11059. {
  11060. modelT_Bus_ToExamine.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11061. }
  11062. int id = new BLL.T_Bus_ToExamine().Add(modelT_Bus_ToExamine);
  11063. if (modelT_Bus_ToExamine != null)
  11064. {
  11065. //提交重办满意度改为满意
  11066. var opt = "审核通过"; var cbreasons = "";
  11067. //结案
  11068. if (nexttype == 0)
  11069. {
  11070. keyValuePairs.Add("F_WorkState", 7);
  11071. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.visit;//已回访
  11072. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11073. string deptname = User.depname; string code = User.F_UserCode;
  11074. Task.Run(() =>
  11075. {
  11076. if (issms > 0)
  11077. {
  11078. SendVisits(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, deptname, code);
  11079. }
  11080. });
  11081. }
  11082. #region 重办
  11083. else if (nexttype == 2)
  11084. {
  11085. #region 保存工单信息
  11086. //if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  11087. //{
  11088. // return Error("回访时,提交重办只能操作一次");
  11089. //}
  11090. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  11091. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  11092. keyValuePairs2.Add("F_RemindDay", 3);
  11093. else
  11094. keyValuePairs2.Add("F_RemindDay", 2);
  11095. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  11096. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  11097. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  11098. keyValuePairs2.Add("F_IsSms", 0);
  11099. // modelT_Bus_WorkOrder.F_IsSms = 0;
  11100. keyValuePairs2.Add("F_Identification", 0);
  11101. // modelT_Bus_WorkOrder.F_Identification = 0;
  11102. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  11103. #endregion
  11104. opt = "于" + DateTime.Now
  11105. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  11106. cbreasons = ",重办原因:" + cbreason;
  11107. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  11108. if (t_Bus_RemindRecord != null)
  11109. {
  11110. t_Bus_RemindRecord.F_State = 0;
  11111. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  11112. }
  11113. #endregion
  11114. }
  11115. else if (nexttype == 1)
  11116. {
  11117. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  11118. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  11119. {
  11120. if (User.F_RoleCode == "ZXHWY")
  11121. {
  11122. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  11123. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  11124. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  11125. if (statistics > 0)
  11126. {
  11127. if (modelT_Bus_AssignedInfo.F_IsPerform == 1)
  11128. modelT_Bus_AssignedInfo.F_IsPerform = 2;
  11129. else
  11130. modelT_Bus_AssignedInfo.F_IsPerform = 3;
  11131. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11132. }
  11133. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  11134. {
  11135. #region 插入操作记录
  11136. #region 20191021调整为多个主办单位时调整
  11137. #endregion
  11138. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  11139. cbreasons = ",重办原因:" + cbreason;
  11140. #endregion
  11141. }
  11142. }
  11143. else
  11144. {
  11145. 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());
  11146. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11147. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11148. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  11149. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  11150. if (!string.IsNullOrEmpty(resdatetime))
  11151. {
  11152. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  11153. }
  11154. if (statistics > 0)
  11155. {
  11156. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  11157. }
  11158. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  11159. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  11160. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  11161. newmodelT_Bus_AssignedInfo.F_State = 1;
  11162. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11163. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11164. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  11165. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11166. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  11167. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  11168. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  11169. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  11170. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  11171. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  11172. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  11173. {
  11174. #region 保存工单信息
  11175. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  11176. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  11177. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  11178. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  11179. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  11180. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  11181. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11182. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  11183. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11184. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  11185. {
  11186. keyValuePairs3.Add("F_RemindDay", 1);
  11187. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  11188. }
  11189. keyValuePairs3.Add("F_IsReload", n + 1);
  11190. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  11191. if (!string.IsNullOrEmpty(resdatetime))
  11192. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  11193. keyValuePairs3.Add("F_IsOverdue", 0);
  11194. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  11195. keyValuePairs3.Add("F_IsSms", 0);
  11196. // modelT_Bus_WorkOrder.F_IsSms = 0;
  11197. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  11198. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  11199. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  11200. keyValuePairs3.Add("F_Identification", 2);
  11201. // modelT_Bus_WorkOrder.F_Identification = 1;
  11202. keyValuePairs3.Add("F_Result", "");
  11203. // modelT_Bus_WorkOrder.F_Result = "";
  11204. keyValuePairs3.Add("F_DealDeptId", null);
  11205. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  11206. keyValuePairs3.Add("F_DealUser", "");
  11207. // modelT_Bus_WorkOrder.F_DealUser = "";
  11208. keyValuePairs3.Add("F_DealTime", null);
  11209. // modelT_Bus_WorkOrder.F_DealTime = null;
  11210. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  11211. {
  11212. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  11213. if (user != null && user.Count > 0)
  11214. {
  11215. foreach (var it in user)
  11216. {
  11217. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  11218. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11219. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  11220. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  11221. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  11222. "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  11223. }
  11224. }
  11225. #region 插入操作记录
  11226. #region 20191021调整为多个主办单位时调整
  11227. #endregion
  11228. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  11229. cbreasons = ",重办原因:" + cbreason;
  11230. #endregion
  11231. }
  11232. #endregion
  11233. }
  11234. else
  11235. {
  11236. return Error("退回失败");
  11237. }
  11238. }
  11239. }
  11240. }
  11241. #region 插入操作记录
  11242. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11243. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11244. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  11245. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11246. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11247. oper.F_Message = userinfo + " " + opt + "了工单" + cbreasons;
  11248. oper.F_CreateUser = User.F_UserCode;
  11249. oper.F_CreateTime = DateTime.Now;
  11250. oper.F_IsDelete = 0;
  11251. operBLL.Add(oper);
  11252. //推送消息表
  11253. #endregion
  11254. }
  11255. trans.Complete();
  11256. }
  11257. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  11258. }
  11259. else
  11260. {
  11261. return Error("已经审核过了");
  11262. }
  11263. }
  11264. else
  11265. {
  11266. return Error("工单不存在");
  11267. }
  11268. }
  11269. else
  11270. {
  11271. return Error("权限不足");
  11272. }
  11273. }
  11274. /// <summary>
  11275. /// 交办工单
  11276. /// </summary>
  11277. /// <returns></returns>
  11278. //[Authority]
  11279. public ActionResult AssignWorkOrder()
  11280. {
  11281. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11282. {
  11283. string workorderid = RequestString.GetFormString("workorderid");
  11284. int state = RequestString.GetInt("state", 0);
  11285. int assignid = RequestString.GetInt("assignid", 0);
  11286. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11287. //string maindeptid = RequestString.GetFormString("maindeptid");
  11288. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11289. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11290. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11291. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  11292. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  11293. {
  11294. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  11295. {
  11296. return Error("操作失败");
  11297. }
  11298. }
  11299. if (!string.IsNullOrEmpty(otherdeptids))
  11300. {
  11301. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  11302. {
  11303. return Error("主办单位不能出现在协办单位");
  11304. }
  11305. }
  11306. if (limittime < DateTime.Now)
  11307. {
  11308. return Error("办理时限不能小于当前时间");
  11309. }
  11310. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11311. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  11312. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11313. if (modelT_Bus_WorkOrder != null && deptinfo != null)
  11314. {
  11315. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  11316. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11317. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11318. {
  11319. int aid = 0;
  11320. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11321. {
  11322. if (assignid == 0)
  11323. {
  11324. #region 插入交办记录
  11325. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11326. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11327. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11328. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11329. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11330. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11331. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11332. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11333. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  11334. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  11335. modelT_Bus_AssignedInfo.F_IsSure = 0;
  11336. modelT_Bus_AssignedInfo.F_IsReload = 0;
  11337. modelT_Bus_AssignedInfo.F_IsNext = 0;
  11338. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11339. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  11340. #endregion
  11341. }
  11342. else
  11343. {
  11344. #region 修改交办记录
  11345. modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  11346. if (modelT_Bus_AssignedInfo != null)
  11347. {
  11348. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  11349. modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  11350. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  11351. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  11352. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  11353. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  11354. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  11355. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  11356. assignBLL.Update(modelT_Bus_AssignedInfo);
  11357. aid = modelT_Bus_AssignedInfo.F_Id;
  11358. }
  11359. #endregion
  11360. }
  11361. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  11362. {
  11363. #region 保存工单信息
  11364. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  11365. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  11366. modelT_Bus_WorkOrder.F_LimitTime = limittime;
  11367. modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  11368. modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  11369. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  11370. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  11371. workorderBLL.Update(modelT_Bus_WorkOrder);
  11372. #endregion
  11373. #region 删除草稿信息
  11374. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  11375. foreach (var cg in cglist)
  11376. {
  11377. cg.F_IsDelete = 1;
  11378. cg.F_DeleteUser = User.F_UserCode;
  11379. cg.F_DeleteTime = DateTime.Now;
  11380. assignBLL.Update(cg);
  11381. }
  11382. #endregion
  11383. #region 插入操作记录
  11384. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11385. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11386. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11387. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11388. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11389. oper.F_Message = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  11390. if (!string.IsNullOrEmpty(otherdeptids))
  11391. {
  11392. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  11393. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  11394. }
  11395. oper.F_CreateUser = User.F_UserCode;
  11396. oper.F_CreateTime = DateTime.Now;
  11397. oper.F_IsDelete = 0;
  11398. operBLL.Add(oper);
  11399. //推送消息表
  11400. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  11401. foreach (var u in users)
  11402. {
  11403. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  11404. }
  11405. #endregion
  11406. }
  11407. trans.Complete();
  11408. }
  11409. return Success("操作成功", modelT_Bus_AssignedInfo.F_Id);
  11410. }
  11411. else
  11412. {
  11413. return Error("已经交办过了");
  11414. }
  11415. }
  11416. else
  11417. {
  11418. return Error("操作失败");
  11419. }
  11420. }
  11421. else
  11422. {
  11423. return Error("权限不足");
  11424. }
  11425. }
  11426. /// <summary>
  11427. /// 派工单
  11428. /// </summary>
  11429. /// <returns></returns>
  11430. //[Authority]
  11431. public string SplitOrder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  11432. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion)
  11433. {
  11434. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11435. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11436. {
  11437. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11438. {
  11439. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11440. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11441. {
  11442. #region 插入派单记录
  11443. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11444. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11445. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  11446. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11447. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11448. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11449. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  11450. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11451. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11452. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11453. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11454. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11455. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11456. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11457. #endregion
  11458. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  11459. {
  11460. #region 保存交办信息
  11461. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11462. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  11463. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11464. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11465. #endregion
  11466. #region 插入操作记录
  11467. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11468. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11469. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11470. oper.F_State = 4;
  11471. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11472. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11473. oper.F_CreateUser = User.F_UserCode;
  11474. oper.F_CreateTime = DateTime.Now;
  11475. oper.F_IsDelete = 0;
  11476. operBLL.Add(oper);
  11477. //推送消息表
  11478. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11479. #endregion
  11480. }
  11481. trans.Complete();
  11482. }
  11483. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  11484. if (user != null && user.Count > 0)
  11485. {
  11486. foreach (var it in user)
  11487. {
  11488. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  11489. {
  11490. continue;
  11491. }
  11492. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  11493. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11494. //bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11495. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  11496. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  11497. modelT_Bus_WorkOrder.F_WorkOrderId);
  11498. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  11499. }
  11500. }
  11501. //二级单位给三级单位转派都有短信提醒
  11502. return ("操作成功");
  11503. }
  11504. else
  11505. {
  11506. return ("操作失败");
  11507. }
  11508. }
  11509. else
  11510. {
  11511. return ("操作失败");
  11512. }
  11513. }
  11514. public async Task SplitOrderNew(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder
  11515. , Model.T_Sys_Department deptinfo, DateTime limittime, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, string assignedopinion, Model.T_Sys_UserAccount Users)
  11516. {
  11517. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11518. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11519. {
  11520. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11521. {
  11522. #region 插入派单记录
  11523. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11524. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11525. modelT_Bus_AssignedInfo_Next.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  11526. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11527. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11528. modelT_Bus_AssignedInfo_Next.F_State = 1;//0草稿 1正式
  11529. modelT_Bus_AssignedInfo_Next.F_CreateUser = Users.F_UserCode;
  11530. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11531. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11532. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11533. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11534. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11535. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11536. #endregion
  11537. string userinfo = Users.depname + "(" + Users.F_UserCode + ")";
  11538. string message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11539. if (modelT_Bus_AssignedInfo_Next.F_Id > 0)
  11540. {
  11541. await Task.Run(() =>
  11542. {
  11543. #region 保存工单信息
  11544. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11545. keyValuePairs.Add("F_MainDeptID3", deptinfo.F_DeptId.ToString());
  11546. modelT_Bus_WorkOrder.F_MainDeptID3 = deptinfo.F_DeptId.ToString();
  11547. if (modelT_Bus_WorkOrder.F_WorkState == 11 || modelT_Bus_WorkOrder.F_WorkState == 8)
  11548. {
  11549. keyValuePairs.Add("F_WorkState", 8);
  11550. modelT_Bus_WorkOrder.F_WorkState = 8;
  11551. }
  11552. else
  11553. {
  11554. keyValuePairs.Add("F_WorkState", 4);
  11555. modelT_Bus_WorkOrder.F_WorkState = 4;
  11556. }
  11557. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11558. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11559. modelT_Bus_AssignedInfo.F_NextUser = Users.F_UserCode;
  11560. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11561. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11562. #endregion
  11563. });
  11564. await Task.Run(() =>
  11565. {
  11566. #region 插入操作记录
  11567. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11568. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11569. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11570. oper.F_State = 4;
  11571. oper.F_Message = message;
  11572. oper.F_CreateUser = Users.F_UserCode;
  11573. oper.F_CreateTime = DateTime.Now;
  11574. oper.F_IsDelete = 0;
  11575. operBLL.Add(oper);
  11576. #region 短信通知
  11577. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + deptinfo.F_DeptId + " ");
  11578. if (user != null && user.Count > 0)
  11579. {
  11580. foreach (var it in user)
  11581. {
  11582. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  11583. {
  11584. continue;
  11585. }
  11586. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  11587. //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  11588. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11589. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  11590. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  11591. modelT_Bus_WorkOrder.F_WorkOrderId);
  11592. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  11593. }
  11594. }
  11595. #endregion
  11596. #endregion
  11597. });
  11598. await Task.Run(() =>
  11599. {
  11600. #region 插入推送消息
  11601. msg.AddInternalMessagesInfo("工单消息", message + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, Users.F_UserCode, (int)EnumSmsType.workorder);
  11602. #endregion
  11603. });
  11604. }
  11605. }
  11606. }
  11607. }
  11608. /// <summary>
  11609. /// 派工单
  11610. /// </summary>
  11611. /// <returns></returns>
  11612. //[Authority]
  11613. public ActionResult SplitWorkOrder()
  11614. {
  11615. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11616. {
  11617. string workorderid = RequestString.GetFormString("workorderid");
  11618. int maindeptid = RequestString.GetInt("maindeptid", 0);
  11619. string otherdeptids = RequestString.GetFormString("otherdeptids");
  11620. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  11621. string assignedopinion = RequestString.GetFormString("assignedopinion");
  11622. string files = RequestString.GetFormString("files");
  11623. int state = RequestString.GetInt("state", 0);
  11624. int nextid = RequestString.GetInt("nextid", 0);
  11625. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11626. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11627. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new Model.T_Bus_AssignedInfo_Next();
  11628. var deptinfo = new BLL.T_Sys_Department().GetModel(maindeptid);
  11629. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && deptinfo != null)
  11630. {
  11631. if (limittime > modelT_Bus_AssignedInfo.F_LimitTime)
  11632. {
  11633. return Error("办理时限不能大于当前办理时限");
  11634. }
  11635. int type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  11636. if ((type == 1 && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)) || (User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG"))
  11637. {
  11638. if (modelT_Bus_AssignedInfo.F_IsNext == null || modelT_Bus_AssignedInfo.F_IsNext.Value == 0 || modelT_Bus_AssignedInfo.F_IsNext.Value == 4)
  11639. {
  11640. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11641. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11642. {
  11643. if (nextid == 0)
  11644. {
  11645. #region 插入派单记录
  11646. modelT_Bus_AssignedInfo_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11647. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11648. // modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime ;
  11649. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11650. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  11651. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11652. else
  11653. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11654. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11655. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11656. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11657. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11658. modelT_Bus_AssignedInfo_Next.F_IsDelete = 0;
  11659. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 0;
  11660. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  11661. modelT_Bus_AssignedInfo_Next.F_IsReload = 0;
  11662. modelT_Bus_AssignedInfo_Next.F_Id = new BLL.T_Bus_AssignedInfo_Next().Add(modelT_Bus_AssignedInfo_Next);
  11663. #endregion
  11664. }
  11665. else
  11666. {
  11667. #region 修改派单记录
  11668. modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModel(nextid);
  11669. if (modelT_Bus_AssignedInfo_Next != null)
  11670. {
  11671. modelT_Bus_AssignedInfo_Next.F_LimitTime = limittime;//办理时限
  11672. //modelT_Bus_AssignedInfo_Next.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  11673. modelT_Bus_AssignedInfo_Next.F_MainDeptId = maindeptid;//主办单位id
  11674. if (otherdeptids.Trim() != "" && otherdeptids != "undefined")
  11675. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = otherdeptids;//协办单位id
  11676. else
  11677. modelT_Bus_AssignedInfo_Next.F_OtherDeptIds = "";
  11678. modelT_Bus_AssignedInfo_Next.F_AssignedOpinion = assignedopinion;//交办意见
  11679. modelT_Bus_AssignedInfo_Next.F_State = state;//0草稿 1正式
  11680. modelT_Bus_AssignedInfo_Next.F_CreateUser = User.F_UserCode;
  11681. modelT_Bus_AssignedInfo_Next.F_CreateTime = DateTime.Now;
  11682. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  11683. }
  11684. #endregion
  11685. }
  11686. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_State == 1)
  11687. {
  11688. #region 保存交办信息
  11689. modelT_Bus_AssignedInfo.F_IsNext = 1;
  11690. modelT_Bus_AssignedInfo.F_NextUser = User.F_UserCode;
  11691. modelT_Bus_AssignedInfo.F_NextTime = DateTime.Now;
  11692. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  11693. #endregion
  11694. #region 保存工单信息
  11695. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11696. keyValuePairs.Add("F_MainDeptID3", maindeptid.ToString());
  11697. //modelT_Bus_WorkOrder.F_MainDeptID3 = maindeptid.ToString();
  11698. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  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_AssignedInfo.F_Id;
  11704. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11705. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11706. oper.F_Message = userinfo + " 派单给单位:" + deptinfo.F_DeptName;
  11707. oper.F_CreateUser = User.F_UserCode;
  11708. oper.F_CreateTime = DateTime.Now;
  11709. oper.F_IsDelete = 0;
  11710. operBLL.Add(oper);
  11711. //推送消息表
  11712. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  11713. #endregion
  11714. }
  11715. trans.Complete();
  11716. }
  11717. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + maindeptid + " ");
  11718. if (user != null && user.Count > 0)
  11719. {
  11720. foreach (var it in user)
  11721. {
  11722. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  11723. {
  11724. continue;
  11725. }
  11726. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  11727. // string msg = workorderid;
  11728. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  11729. string mag = "[\"" + workorderid + "\"]";
  11730. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  11731. workorderid);
  11732. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  11733. }
  11734. }
  11735. //二级单位给三级单位转派都有短信提醒
  11736. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  11737. }
  11738. else
  11739. {
  11740. return Error("已经派过单了");
  11741. }
  11742. }
  11743. else
  11744. {
  11745. return Error("操作失败");
  11746. }
  11747. }
  11748. else
  11749. {
  11750. return Error("操作失败");
  11751. }
  11752. }
  11753. else
  11754. {
  11755. return Error("权限不足");
  11756. }
  11757. }
  11758. /// <summary>
  11759. ///催单短信
  11760. /// </summary>
  11761. /// <returns></returns>
  11762. //[Authority]
  11763. public ActionResult Reminders(string workorderid)
  11764. {
  11765. List<T_Bus_WorkOrder> workorder = new List<T_Bus_WorkOrder>();
  11766. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11767. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11768. if (modelT_Bus_AssignedInfo.F_IsNext == 1 || modelT_Bus_AssignedInfo.F_IsNext == 2)
  11769. {
  11770. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  11771. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_AssignedInfo_Next.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  11772. if (user != null)
  11773. {
  11774. foreach (var iv in user)
  11775. {
  11776. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  11777. if (!string.IsNullOrEmpty(iv.F_Mobile))
  11778. {
  11779. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  11780. // string msg = workorderid;
  11781. //bool n = SMSController.AddSmS(0, msg, count, iv.F_Mobile, "165151", "", workorderid);
  11782. string mag = "[\"" + workorderid + "\"]";
  11783. string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  11784. workorderid);
  11785. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode);
  11786. }
  11787. }
  11788. }
  11789. }
  11790. else
  11791. {
  11792. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId = " + (modelT_Bus_WorkOrder.F_MainDeptId ?? 0) + " and F_DeleteFlag=0");
  11793. if (user != null)
  11794. {
  11795. foreach (var iv in user)
  11796. {
  11797. msg.AddInternalMessagesInfo("催单消息", "您的工单" + workorderid + "收到催办,请及时处理!", iv.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  11798. if (!string.IsNullOrEmpty(iv.F_Mobile))
  11799. {
  11800. string count = "您的工单" + workorderid + "收到催办,请及时处理!";
  11801. string mag = "[\"" + workorderid + "\"]";
  11802. string v = SmsNewController.AddSmS(0, count, iv.F_Mobile, "681240804383522816", mag,
  11803. workorderid);
  11804. string c = PushMessageController.PushApp("催单提醒", count, iv.F_UserCode);
  11805. }
  11806. }
  11807. }
  11808. }
  11809. return Success("发送成功");
  11810. }
  11811. /// <summary>
  11812. /// 撤回待审核转办
  11813. /// 话务员操作撤回自己提交的工单
  11814. /// </summary>
  11815. /// <returns></returns>
  11816. //[Authority]
  11817. public ActionResult WithdrawDWorkOrder()
  11818. {
  11819. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY")
  11820. {
  11821. string workorderid = RequestString.GetFormString("workorderid");
  11822. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11823. if (modelT_Bus_WorkOrder != null && modelT_Bus_WorkOrder.F_CreateUser == User.F_UserCode && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  11824. {
  11825. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11826. {
  11827. #region 保存工单信息
  11828. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11829. keyValuePairs.Add("F_WorkState", 0);
  11830. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.neworder;
  11831. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11832. #endregion
  11833. #region 插入操作记录
  11834. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11835. string msg = userinfo + " 撤回了工单";
  11836. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msg, User.F_UserCode);
  11837. #endregion
  11838. trans.Complete();
  11839. }
  11840. return Success("操作成功");
  11841. }
  11842. else
  11843. {
  11844. return Error("操作失败");
  11845. }
  11846. }
  11847. else
  11848. {
  11849. return Error("权限不足");
  11850. }
  11851. }
  11852. /// <summary>
  11853. /// 收回工单
  11854. /// </summary>
  11855. /// <returns></returns>
  11856. //[Authority]
  11857. public ActionResult TakeBackWorkOrder()
  11858. {
  11859. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  11860. {
  11861. string workorderid = RequestString.GetFormString("workorderid");
  11862. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11863. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11864. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  11865. {
  11866. //if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == 4))
  11867. if (modelT_Bus_AssignedInfo.F_IsSure == 0 || (modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing))
  11868. {
  11869. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11870. {
  11871. #region 插入交办记录
  11872. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  11873. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11874. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  11875. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  11876. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  11877. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  11878. AssignedInfo.F_State = 0;//0草稿 1正式
  11879. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  11880. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  11881. AssignedInfo.F_IsDelete = 0;
  11882. AssignedInfo.F_IsOverdue = 0;
  11883. AssignedInfo.F_IsSure = 0;
  11884. AssignedInfo.F_IsReload = 0;
  11885. AssignedInfo.F_IsNext = 0;
  11886. assignBLL.Add(AssignedInfo);
  11887. #endregion
  11888. #region 保存工单信息
  11889. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  11890. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11891. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  11892. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  11893. keyValuePairs.Add("F_MainDeptId", null);
  11894. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  11895. keyValuePairs.Add("F_OtherDeptIds", "");
  11896. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  11897. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11898. #endregion
  11899. #region 删除交办信息
  11900. modelT_Bus_AssignedInfo.F_IsDelete = 1;//删除
  11901. modelT_Bus_AssignedInfo.F_DeleteUser = User.F_UserCode;
  11902. modelT_Bus_AssignedInfo.F_DeleteTime = DateTime.Now;
  11903. assignBLL.Update(modelT_Bus_AssignedInfo);
  11904. #endregion
  11905. #region 删除派单信息
  11906. var pdlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  11907. foreach (var cg in pdlist)
  11908. {
  11909. cg.F_IsDelete = 1;
  11910. cg.F_DeleteUser = User.F_UserCode;
  11911. cg.F_DeleteTime = DateTime.Now;
  11912. new BLL.T_Bus_AssignedInfo_Next().Update(cg);
  11913. }
  11914. #endregion
  11915. #region 删除二级单位处理信息
  11916. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' ");
  11917. foreach (var cg in cglist)
  11918. {
  11919. cg.F_IsDelete = 1;
  11920. cg.F_DeleteUser = User.F_UserCode;
  11921. cg.F_DeleteTime = DateTime.Now;
  11922. new BLL.T_Bus_Feedback_Next().Update(cg);
  11923. }
  11924. #endregion
  11925. var modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State !=2 and F_IsDelete = 0 and F_Type = 1 and F_WorkOrderId = '"
  11926. + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc").FirstOrDefault();
  11927. if (modelT_Bus_RemindRecord != null)
  11928. {
  11929. modelT_Bus_RemindRecord.F_State = 0;
  11930. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  11931. }
  11932. #region 插入操作记录
  11933. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  11934. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  11935. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  11936. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  11937. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  11938. oper.F_Message = userinfo + " 收回了工单";
  11939. oper.F_CreateUser = User.F_UserCode;
  11940. oper.F_CreateTime = DateTime.Now;
  11941. oper.F_IsDelete = 0;
  11942. operBLL.Add(oper);
  11943. #endregion
  11944. trans.Complete();
  11945. }
  11946. return Success("操作成功");
  11947. }
  11948. else
  11949. {
  11950. return Error("单位已查收,不能收回");
  11951. }
  11952. }
  11953. else
  11954. {
  11955. return Error("操作失败");
  11956. }
  11957. }
  11958. else
  11959. {
  11960. return Error("权限不足");
  11961. }
  11962. }
  11963. /// <summary>
  11964. /// 查收工单
  11965. /// </summary>
  11966. /// <returns></returns>
  11967. //[Authority]
  11968. public ActionResult ReceiveWorkOrder()
  11969. {
  11970. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  11971. {
  11972. string workorderid = RequestString.GetFormString("workorderid");
  11973. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  11974. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  11975. //操作前新增判断状态
  11976. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  11977. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  11978. {
  11979. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  11980. {
  11981. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  11982. {
  11983. #region 保存工单信息
  11984. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  11985. // int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=4 where F_Id ='" + modelT_Bus_WorkOrder .F_Id + "'");
  11986. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  11987. keyValuePairs.Add("F_WorkState", 4);
  11988. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  11989. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  11990. // workorderBLL.Update(modelT_Bus_WorkOrder);
  11991. #endregion
  11992. #region 保存查收信息
  11993. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  11994. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  11995. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  11996. assignBLL.Update(modelT_Bus_AssignedInfo);
  11997. #endregion
  11998. #region 保存明细信息
  11999. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  12000. {
  12001. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  12002. foreach (string strid in strids)
  12003. {
  12004. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  12005. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12006. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  12007. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  12008. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  12009. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  12010. modelT_Bus_AssignedItemInfo.F_State = 1;
  12011. modelT_Bus_AssignedItemInfo.F_Type = 2;
  12012. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  12013. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  12014. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  12015. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  12016. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  12017. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  12018. }
  12019. }
  12020. #endregion
  12021. #region 插入操作记录
  12022. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12023. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12024. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12025. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12026. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12027. oper.F_Message = userinfo + " 查收了工单";
  12028. oper.F_CreateUser = User.F_UserCode;
  12029. oper.F_CreateTime = DateTime.Now;
  12030. oper.F_IsDelete = 0;
  12031. int n = operBLL.Add(oper);
  12032. #endregion
  12033. Task.Run(() =>
  12034. {
  12035. process_info(n, "case_process_info", "查收工单");
  12036. }).ContinueWith(p =>
  12037. {
  12038. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12039. });
  12040. trans.Complete();
  12041. }
  12042. return Success("操作成功");
  12043. }
  12044. else
  12045. {
  12046. return Error("单位已查收,不能再次查收");
  12047. }
  12048. }
  12049. else
  12050. {
  12051. return Error("操作失败");
  12052. }
  12053. }
  12054. else
  12055. {
  12056. return Error("权限不足");
  12057. }
  12058. }
  12059. /// <summary>
  12060. /// 审核退回重办
  12061. /// </summary>
  12062. /// <returns></returns>
  12063. //[Authority]
  12064. public ActionResult AuditWorkorders()
  12065. {
  12066. if (User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12067. {
  12068. string workorderid = RequestString.GetFormString("workorderid");
  12069. string cbreason = RequestString.GetFormString("cbreason");
  12070. int state = RequestString.GetInt("state", 0);
  12071. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12072. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12073. //操作前新增判断状态
  12074. //if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12075. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  12076. {
  12077. if (state > 0)
  12078. {
  12079. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  12080. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  12081. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  12082. 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());
  12083. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  12084. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12085. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  12086. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  12087. if (!string.IsNullOrEmpty(resdatetime))
  12088. {
  12089. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  12090. }
  12091. if (modelT_Bus_AssignedInfo.F_IsPerform == 2)
  12092. {
  12093. modelT_Bus_AssignedInfo.F_IsPerform = 1;
  12094. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  12095. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12096. }
  12097. else if (modelT_Bus_AssignedInfo.F_IsPerform == 3)
  12098. {
  12099. modelT_Bus_AssignedInfo.F_IsPerform = null;
  12100. newmodelT_Bus_AssignedInfo.F_IsPerform = 1;
  12101. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  12102. }
  12103. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  12104. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  12105. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = "";//交办意见
  12106. newmodelT_Bus_AssignedInfo.F_State = 1;
  12107. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12108. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12109. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  12110. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12111. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  12112. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  12113. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  12114. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  12115. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  12116. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  12117. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  12118. {
  12119. #region 保存工单信息
  12120. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  12121. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  12122. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  12123. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  12124. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  12125. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12126. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  12127. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12128. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  12129. {
  12130. keyValuePairs3.Add("F_RemindDay", 1);
  12131. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  12132. }
  12133. keyValuePairs3.Add("F_IsReload", n + 1);
  12134. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  12135. if (!string.IsNullOrEmpty(resdatetime))
  12136. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  12137. keyValuePairs3.Add("F_IsOverdue", 0);
  12138. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  12139. keyValuePairs3.Add("F_IsSms", 0);
  12140. // modelT_Bus_WorkOrder.F_IsSms = 0;
  12141. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  12142. keyValuePairs3.Add("F_Identification", 1);
  12143. // modelT_Bus_WorkOrder.F_Identification = 1;
  12144. keyValuePairs3.Add("F_Result", "");
  12145. // modelT_Bus_WorkOrder.F_Result = "";
  12146. keyValuePairs3.Add("F_DealDeptId", null);
  12147. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  12148. keyValuePairs3.Add("F_DealUser", "");
  12149. // modelT_Bus_WorkOrder.F_DealUser = "";
  12150. keyValuePairs3.Add("F_DealTime", null);
  12151. // modelT_Bus_WorkOrder.F_DealTime = null;
  12152. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  12153. {
  12154. #region 插入操作记录
  12155. #region 20191021调整为多个主办单位时调整
  12156. #endregion
  12157. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了退回重办";
  12158. string cbreasons = ",审核原因:" + cbreason;
  12159. #region 插入操作记录
  12160. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12161. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12162. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12163. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12164. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12165. oper.F_Message = userinfo + opt + cbreasons;
  12166. oper.F_CreateUser = User.F_UserCode;
  12167. oper.F_CreateTime = DateTime.Now;
  12168. oper.F_IsDelete = 0;
  12169. int v = operBLL.Add(oper);
  12170. #endregion
  12171. #endregion
  12172. }
  12173. #endregion
  12174. }
  12175. else
  12176. {
  12177. return Error("退回失败");
  12178. }
  12179. }
  12180. else
  12181. {
  12182. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  12183. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.dealed);
  12184. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;
  12185. string opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了退回重办";
  12186. string cbreasons = ",审核原因:" + cbreason;
  12187. #region 插入操作记录
  12188. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  12189. {
  12190. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12191. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12192. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12193. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12194. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12195. oper.F_Message = userinfo + opt + cbreasons;
  12196. oper.F_CreateUser = User.F_UserCode;
  12197. oper.F_CreateTime = DateTime.Now;
  12198. oper.F_IsDelete = 0;
  12199. int v = operBLL.Add(oper);
  12200. }
  12201. #endregion
  12202. }
  12203. }
  12204. else
  12205. {
  12206. return Error("操作失败");
  12207. }
  12208. return Success("操作成功");
  12209. }
  12210. else
  12211. {
  12212. return Error("权限不足");
  12213. }
  12214. }
  12215. /// <summary>
  12216. /// 退回工单
  12217. /// </summary>
  12218. /// <returns></returns>
  12219. //[Authority]
  12220. public ActionResult RebackWorkOrder()
  12221. {
  12222. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12223. {
  12224. string workorderid = RequestString.GetFormString("workorderid");
  12225. string backreason = RequestString.GetFormString("backreason");
  12226. string file = RequestString.GetFormString("file");
  12227. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12228. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12229. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12230. {
  12231. // if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  12232. // {
  12233. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12234. {
  12235. #region 保存工单信息
  12236. //modelT_Bus_WorkOrder.F_WorkState = 3;//退回审核中
  12237. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12238. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.auditreback);
  12239. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  12240. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12241. #endregion
  12242. #region 插入退回申请信息
  12243. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  12244. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  12245. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  12246. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  12247. model_T_Bus_Feedback.F_IsAudit = 0;
  12248. model_T_Bus_Feedback.F_IsDelete = 0;
  12249. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  12250. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  12251. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  12252. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  12253. model_T_Bus_Feedback.F_State = 1;
  12254. model_T_Bus_Feedback.F_Type = 3;
  12255. model_T_Bus_Feedback.F_File = file;
  12256. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  12257. #endregion
  12258. #region 保存交办信息
  12259. //modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;//办理
  12260. //if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  12261. //{
  12262. // modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  12263. //}
  12264. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  12265. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  12266. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  12267. assignBLL.Update(modelT_Bus_AssignedInfo);
  12268. #endregion
  12269. #region 插入操作记录
  12270. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12271. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12272. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12273. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12274. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12275. string message = "";
  12276. if (!string.IsNullOrEmpty(backreason))
  12277. {
  12278. message = ",退回原因:" + backreason;
  12279. }
  12280. oper.F_Message = userinfo + " 申请退回了工单" + message;
  12281. oper.F_CreateUser = User.F_UserCode;
  12282. oper.F_CreateTime = DateTime.Now;
  12283. oper.F_IsDelete = 0;
  12284. operBLL.Add(oper);
  12285. //推送消息表
  12286. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12287. #endregion
  12288. trans.Complete();
  12289. }
  12290. return Success("操作成功");
  12291. // }
  12292. // else
  12293. // {
  12294. // return Error("单位已查收,不能退回");
  12295. // }
  12296. }
  12297. else
  12298. {
  12299. return Error("操作失败");
  12300. }
  12301. }
  12302. else
  12303. {
  12304. return Error("权限不足");
  12305. }
  12306. }
  12307. /// <summary>
  12308. /// 审核退回工单
  12309. /// </summary>
  12310. /// <returns></returns>
  12311. //[Authority]
  12312. public ActionResult AuditRebackWorkOrder()
  12313. {
  12314. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12315. {
  12316. string workorderid = RequestString.GetFormString("workorderid");
  12317. int state = RequestString.GetInt("state", 0);
  12318. string reason = RequestString.GetFormString("reason");
  12319. int isjb = RequestString.GetInt("isjb", 0);
  12320. int rebackid = RequestString.GetInt("rebackid", 0);
  12321. int zb = RequestString.GetInt("zb", 0);
  12322. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12323. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  12324. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12325. Model.T_Bus_AssignedInfo_Next modelAssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  12326. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  12327. if (modelT_Bus_WorkOrder != null && modelT_Bus_Feedback != null && modelT_Bus_AssignedInfo != null)
  12328. {
  12329. //if (modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  12330. //{
  12331. // return Error("操作失败");
  12332. //}
  12333. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12334. if (modelT_Bus_Feedback.F_Type == 3 && modelT_Bus_Feedback.F_IsAudit == 0)
  12335. {
  12336. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12337. {
  12338. var rre = "";
  12339. #region 保存查收信息
  12340. modelT_Bus_Feedback.F_IsAudit = state;//审核
  12341. modelT_Bus_Feedback.F_AuditUser = User.F_UserCode;
  12342. modelT_Bus_Feedback.F_AuditTime = DateTime.Now;
  12343. modelT_Bus_Feedback.F_AuditReason = reason;
  12344. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  12345. #endregion
  12346. string strmsg = "同意";
  12347. if (modelT_Bus_Feedback.F_IsAudit == 1)
  12348. {
  12349. #region 插入交办记录
  12350. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  12351. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12352. AssignedInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;//办理时限
  12353. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  12354. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  12355. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  12356. AssignedInfo.F_State = 0;//0草稿 1正式
  12357. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  12358. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  12359. AssignedInfo.F_IsDelete = 0;
  12360. AssignedInfo.F_IsOverdue = 0;
  12361. AssignedInfo.F_IsSure = 0;
  12362. AssignedInfo.F_IsNext = 0;
  12363. AssignedInfo.F_IsReload = modelT_Bus_AssignedInfo.F_IsReload;
  12364. assignBLL.Add(AssignedInfo);
  12365. #endregion
  12366. #region 保存交办信息
  12367. modelT_Bus_AssignedInfo.F_IsSure = 3;//退回
  12368. assignBLL.Update(modelT_Bus_AssignedInfo);
  12369. #endregion
  12370. #region 保存工单信息
  12371. //modelT_Bus_WorkOrder.F_WorkState = 1;//待交办
  12372. keyValuePairs.Add("F_MainDeptId", null);
  12373. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  12374. keyValuePairs.Add("F_IsSendBack", 1);
  12375. // modelT_Bus_WorkOrder.F_IsSendBack = 1;
  12376. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  12377. keyValuePairs.Add("F_LimitTime", null);
  12378. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  12379. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12380. #endregion
  12381. if (modelAssignedInfo_Next != null)
  12382. {
  12383. modelAssignedInfo_Next.F_State = 2;
  12384. new BLL.T_Bus_AssignedInfo_Next().Update(modelAssignedInfo_Next);
  12385. }
  12386. if (zb == 0)
  12387. {
  12388. if (modelT_Bus_RemindRecord != null)
  12389. {
  12390. modelT_Bus_RemindRecord.F_State = 0;
  12391. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  12392. }
  12393. }
  12394. }
  12395. else
  12396. {
  12397. #region 保存工单信息
  12398. //modelT_Bus_WorkOrder.F_WorkState = 2;//待查收
  12399. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_Feedback.F_CreateTime.Value);
  12400. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12401. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime
  12402. .Value.AddHours(tss));
  12403. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  12404. // .Value.AddHours(tss);
  12405. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  12406. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//待查收
  12407. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12408. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + workorderid + "' order by F_CreateTime desc");
  12409. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  12410. assignBLL.Update(modelT_Bus_AssignedInfo);
  12411. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12412. {
  12413. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12414. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12415. .AddHours(tss);
  12416. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12417. }
  12418. #endregion
  12419. #region 保存交办信息
  12420. //modelT_Bus_AssignedInfo.F_FeedbackTime = null;//反馈时间
  12421. modelT_Bus_AssignedInfo.F_IsSure = 4;
  12422. modelT_Bus_AssignedInfo.F_SureUser = "";
  12423. modelT_Bus_AssignedInfo.F_SureTime = null;
  12424. assignBLL.Update(modelT_Bus_AssignedInfo);
  12425. #endregion
  12426. strmsg = "拒绝";
  12427. }
  12428. #region 插入操作记录
  12429. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12430. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12431. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12432. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12433. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12434. oper.F_Message = userinfo + " " + strmsg + "了工单退回申请";
  12435. oper.F_CreateUser = User.F_UserCode;
  12436. oper.F_CreateTime = DateTime.Now;
  12437. oper.F_IsDelete = 0;
  12438. operBLL.Add(oper);
  12439. //推送消息表
  12440. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_Feedback.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12441. #endregion
  12442. if (modelT_Bus_AssignedInfo.F_MainDeptId == 304)
  12443. {
  12444. rre = new ShangQiuWorkOrderController().AuditRebackToGrdding(workorderid, state.ToString(), reason, User.F_UserCode).ToString();
  12445. }
  12446. if (isjb > 0)
  12447. {
  12448. if (modelT_Bus_Feedback.F_IsAudit == 1)
  12449. {
  12450. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12451. {
  12452. string maindeptid = RequestString.GetFormString("maindeptid");
  12453. string otherdeptids = RequestString.GetFormString("otherdeptids");
  12454. int limittime = RequestString.GetInt("limittime", 0);
  12455. string limittimes = RequestString.GetString("limittimes");
  12456. string resdatetime = "";
  12457. if (limittime > 0)
  12458. {
  12459. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  12460. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  12461. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12462. }
  12463. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  12464. string assignedopinion = RequestString.GetFormString("assignedopinion");
  12465. var modelT_Bus_AssignedInfoLasts = assignBLL.GetList(0, $" F_WorkOrderId='{workorderid}' and F_IsDelete='0' and F_State='1' ", " F_CreateTime desc").Tables[0];
  12466. if (modelT_Bus_AssignedInfoLasts.Rows.Count > 0)
  12467. {
  12468. if (modelT_Bus_AssignedInfoLasts.Rows[0]["F_CreateUser"].ToString() != User.F_UserCode)
  12469. {
  12470. return Error("操作失败");
  12471. }
  12472. }
  12473. if (!string.IsNullOrEmpty(otherdeptids))
  12474. {
  12475. var both = otherdeptids.Split(',').Intersect(maindeptid.Split(','));
  12476. if (both.Count() > 0)
  12477. {
  12478. return Error("主办单位不能出现在协办单位");
  12479. }
  12480. }
  12481. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12482. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  12483. if (modelT_Bus_WorkOrder != null && deptlist != null && deptlist.Count > 0)
  12484. {
  12485. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  12486. {
  12487. int aid = 0;
  12488. if (deptlist.Count == 1)
  12489. {
  12490. var deptinfo = deptlist.FirstOrDefault();
  12491. #region 插入交办记录
  12492. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12493. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime .Now .AddDays (limittime);//办理时限
  12494. if (modelT_Bus_WorkOrder.F_Level == 2)
  12495. {
  12496. try
  12497. {
  12498. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12499. }
  12500. catch
  12501. {
  12502. return Error("请选择正确的时间");
  12503. }
  12504. }
  12505. else
  12506. {
  12507. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12508. }
  12509. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12510. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12511. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12512. modelT_Bus_AssignedInfo.F_State = state;//0草稿 1正式
  12513. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12514. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12515. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12516. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12517. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12518. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12519. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12520. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12521. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12522. #endregion
  12523. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12524. {
  12525. #region 保存工单信息
  12526. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.receive);
  12527. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.receive;//待查收
  12528. //modelT_Bus_WorkOrder.F_LimitTime = DateTime.Now.AddDays(limittime); ;
  12529. if (modelT_Bus_WorkOrder.F_Level == 2)
  12530. {
  12531. try
  12532. {
  12533. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  12534. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12535. }
  12536. catch
  12537. {
  12538. return Error("请选择正确的时间");
  12539. }
  12540. }
  12541. else
  12542. {
  12543. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  12544. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12545. }
  12546. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  12547. // modelT_Bus_WorkOrder.F_MainDeptId = deptinfo.F_DeptId;
  12548. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  12549. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  12550. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  12551. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  12552. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  12553. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  12554. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12555. #endregion
  12556. #region 删除草稿信息
  12557. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  12558. foreach (var cg in cglist)
  12559. {
  12560. cg.F_IsDelete = 1;
  12561. cg.F_DeleteUser = User.F_UserCode;
  12562. cg.F_DeleteTime = DateTime.Now;
  12563. assignBLL.Update(cg);
  12564. }
  12565. #endregion
  12566. #region 插入操作记录
  12567. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12568. if (!string.IsNullOrEmpty(otherdeptids))
  12569. {
  12570. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12571. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12572. }
  12573. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  12574. //推送消息表
  12575. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12576. foreach (var u in users)
  12577. {
  12578. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12579. }
  12580. #endregion
  12581. }
  12582. }
  12583. else
  12584. {
  12585. string newids = ""; string errdeptid = ""; string deptname = "";
  12586. foreach (var deptinfo in deptlist)
  12587. {
  12588. deptname += deptinfo.F_DeptName + ",";
  12589. #region 新增工单
  12590. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  12591. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  12592. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  12593. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  12594. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  12595. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  12596. if (modelT_Bus_WorkOrder1.F_Id <= 0)
  12597. {
  12598. errdeptid += deptinfo.F_DeptName + ",";
  12599. continue;
  12600. }
  12601. #endregion
  12602. #region 交办
  12603. #region 插入交办记录
  12604. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  12605. // modelT_Bus_AssignedInfo.F_LimitTime = DateTime.Now.AddDays(limittime); ;//办理时限
  12606. if (modelT_Bus_WorkOrder.F_Level == 2)
  12607. {
  12608. try
  12609. {
  12610. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(limittimes);
  12611. }
  12612. catch
  12613. {
  12614. return Error("请选择正确的时间");
  12615. }
  12616. }
  12617. else
  12618. {
  12619. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  12620. }
  12621. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  12622. modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  12623. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  12624. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  12625. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  12626. modelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  12627. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  12628. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  12629. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  12630. modelT_Bus_AssignedInfo.F_IsSure = 0;
  12631. modelT_Bus_AssignedInfo.F_IsReload = 0;
  12632. modelT_Bus_AssignedInfo.F_IsNext = 0;
  12633. aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  12634. #endregion
  12635. #endregion
  12636. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  12637. {
  12638. #region 保存工单信息
  12639. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  12640. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.receive);
  12641. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  12642. if (modelT_Bus_WorkOrder.F_Level == 2)
  12643. {
  12644. try
  12645. {
  12646. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  12647. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(limittimes));
  12648. }
  12649. catch
  12650. {
  12651. return Error("请选择正确的时间");
  12652. }
  12653. }
  12654. else
  12655. {
  12656. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  12657. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  12658. }
  12659. keyValuePairs1.Add("F_MainDeptId", Convert.ToDateTime(deptinfo.F_DeptId));
  12660. // modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  12661. keyValuePairs1.Add("F_OtherDeptIds", otherdeptids);
  12662. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  12663. keyValuePairs1.Add("F_AssignUser", User.F_UserCode);
  12664. // modelT_Bus_WorkOrder1.F_AssignUser = User.F_UserCode;
  12665. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  12666. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  12667. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs1);
  12668. #endregion
  12669. #region 删除草稿信息
  12670. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder1.F_WorkOrderId + "'");
  12671. foreach (var cg in cglist)
  12672. {
  12673. cg.F_IsDelete = 1;
  12674. cg.F_DeleteUser = User.F_UserCode;
  12675. cg.F_DeleteTime = DateTime.Now;
  12676. assignBLL.Update(cg);
  12677. }
  12678. #endregion
  12679. #region 插入操作记录
  12680. var msgss = userinfo + " 交办了工单,主办单位:" + deptinfo.F_DeptName;
  12681. if (!string.IsNullOrEmpty(otherdeptids))
  12682. {
  12683. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  12684. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  12685. }
  12686. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, User.F_UserCode);
  12687. //推送消息表
  12688. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  12689. foreach (var u in users)
  12690. {
  12691. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  12692. }
  12693. #endregion
  12694. }
  12695. Task.Run(() =>
  12696. {
  12697. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  12698. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  12699. {
  12700. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  12701. }
  12702. }).ContinueWith(p =>
  12703. {
  12704. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  12705. });
  12706. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  12707. }
  12708. newids = newids.Trim(',');
  12709. var msgs = "";
  12710. if (errdeptid == "")
  12711. {
  12712. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  12713. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.finish);
  12714. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  12715. keyValuePairs2.Add("F_CloseTime", DateTime.Now);
  12716. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  12717. keyValuePairs2.Add("F_CloseUser", User.F_UserCode);
  12718. //modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  12719. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  12720. msgs = userinfo + " 交办多单位:" + deptname + "关闭此工单并生成新工单,新工单编号为:" + newids;
  12721. }
  12722. else
  12723. {
  12724. errdeptid = errdeptid.Trim(',');
  12725. msgs = userinfo + " 交办的单位有" + deptname + ",部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  12726. }
  12727. #region 插入操作记录
  12728. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, User.F_UserCode);
  12729. #endregion
  12730. }
  12731. #region
  12732. #endregion
  12733. }
  12734. else
  12735. {
  12736. return Error("已经交办过了");
  12737. }
  12738. }
  12739. else
  12740. {
  12741. return Error("操作失败");
  12742. }
  12743. }
  12744. else
  12745. {
  12746. return Error("权限不足");
  12747. }
  12748. }
  12749. }
  12750. trans.Complete();
  12751. }
  12752. return Success("操作成功");
  12753. }
  12754. else
  12755. {
  12756. return Error("此审核已经处理");
  12757. }
  12758. }
  12759. else
  12760. {
  12761. return Error("操作失败");
  12762. }
  12763. }
  12764. else
  12765. {
  12766. return Error("权限不足");
  12767. }
  12768. }
  12769. /// <summary>
  12770. /// 申请延时
  12771. /// </summary>
  12772. /// <returns></returns>
  12773. //[Authority]
  12774. public ActionResult DelayWorkOrder()
  12775. {
  12776. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  12777. {
  12778. string workorderid = RequestString.GetFormString("workorderid");
  12779. int newlimittime = 7;
  12780. string resdatetime = "";
  12781. string reason = RequestString.GetFormString("reason");
  12782. string files = RequestString.GetFormString("files");
  12783. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12784. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12785. var Delay = new BLL.T_Bus_DelayTime().GetModelList("F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_IsAudit in (0,1) and F_CreateUser='" + User.F_DeptId + "'and F_AssignedId='" + modelT_Bus_AssignedInfo.F_Id + "'");
  12786. if (Delay != null && Delay.Count > 0)
  12787. {
  12788. return Error("当前工单只能申请一次延时");
  12789. }
  12790. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  12791. {
  12792. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12793. {
  12794. #region 保存工单信息
  12795. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=5 where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  12796. #endregion
  12797. #region 插入申请延时信息
  12798. Model.T_Bus_DelayTime delay = new Model.T_Bus_DelayTime();
  12799. delay.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12800. delay.F_OldTime = modelT_Bus_AssignedInfo.F_LimitTime;
  12801. if (newlimittime > 0)
  12802. {
  12803. DataTable dt = DbHelperSQL.Query("select top " + newlimittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + modelT_Bus_AssignedInfo.F_LimitTime + "' order by F_OffDate").Tables[0];
  12804. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  12805. }
  12806. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  12807. // delay.F_NewTime =DateTime .Now .AddDays ( newlimittime);
  12808. delay.F_NewTime = Convert.ToDateTime(resdatetime);
  12809. delay.F_Reason = reason;
  12810. delay.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12811. delay.F_IsAudit = 0;
  12812. delay.F_IsDelete = 0;
  12813. delay.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12814. delay.F_CreateUser = User.F_DeptId.ToString();
  12815. delay.F_CreateTime = DateTime.Now;
  12816. delay.F_File = files;
  12817. new BLL.T_Bus_DelayTime().Add(delay);
  12818. #endregion
  12819. #region 插入操作记录
  12820. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12821. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12822. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12823. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12824. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12825. oper.F_Message = userinfo + " 申请了延时处理";
  12826. oper.F_CreateUser = User.F_UserCode;
  12827. oper.F_CreateTime = DateTime.Now;
  12828. oper.F_IsDelete = 0;
  12829. operBLL.Add(oper);
  12830. //推送消息表
  12831. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12832. #endregion
  12833. trans.Complete();
  12834. }
  12835. return Success("操作成功");
  12836. }
  12837. else
  12838. {
  12839. return Error("操作失败");
  12840. }
  12841. }
  12842. else
  12843. {
  12844. return Error("权限不足");
  12845. }
  12846. }
  12847. /// <summary>
  12848. /// 审核延时工单
  12849. /// </summary>
  12850. /// <returns></returns>
  12851. //[Authority]
  12852. public ActionResult AuditDelayWorkOrder()
  12853. {
  12854. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12855. {
  12856. string workorderid = RequestString.GetFormString("workorderid");
  12857. int state = RequestString.GetInt("state", 0);
  12858. string reason = RequestString.GetFormString("reason");
  12859. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  12860. int delayid = RequestString.GetInt("delayid", 0);
  12861. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  12862. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  12863. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + workorderid + "' order by F_CreateTime desc");
  12864. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  12865. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  12866. {
  12867. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  12868. {
  12869. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12870. {
  12871. #region 保存工单信息
  12872. int workstate = 4;
  12873. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  12874. {
  12875. workstate = modelT_Bus_DelayTime.F_State.Value;
  12876. }
  12877. int n = DbHelperSQL.ExecuteSql(" update T_Bus_WorkOrder set F_WorkState=" + workstate + ",F_LimitTime='" + newlimittime + "' where F_Id ='" + modelT_Bus_WorkOrder.F_Id + "'");
  12878. #endregion
  12879. #region 保存审核信息
  12880. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  12881. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  12882. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  12883. modelT_Bus_DelayTime.F_RefuseReason = reason;
  12884. modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  12885. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  12886. #endregion
  12887. string type = "同意"; string des = "";
  12888. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  12889. {
  12890. #region 修改交办记录
  12891. modelT_Bus_AssignedInfo.F_IsSure = 1;
  12892. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  12893. assignBLL.Update(modelT_Bus_AssignedInfo);
  12894. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12895. {
  12896. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  12897. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12898. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12899. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12900. .AddHours(tss);
  12901. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12902. }
  12903. #endregion
  12904. #region 处理协办单位
  12905. #endregion
  12906. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  12907. }
  12908. else
  12909. {
  12910. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  12911. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  12912. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12913. keyValuePairs.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime
  12914. .Value.AddHours(tss));
  12915. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  12916. // .Value.AddHours(tss);
  12917. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  12918. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  12919. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  12920. {
  12921. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  12922. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  12923. .AddHours(tss);
  12924. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  12925. }
  12926. modelT_Bus_AssignedInfo.F_IsSure = 5;
  12927. assignBLL.Update(modelT_Bus_AssignedInfo);
  12928. type = "拒绝";
  12929. }
  12930. #region 插入操作记录
  12931. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  12932. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  12933. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  12934. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  12935. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  12936. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  12937. oper.F_CreateUser = User.F_UserCode;
  12938. oper.F_CreateTime = DateTime.Now;
  12939. oper.F_IsDelete = 0;
  12940. operBLL.Add(oper);
  12941. //推送消息表
  12942. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  12943. #endregion
  12944. trans.Complete();
  12945. }
  12946. return Success("操作成功");
  12947. }
  12948. else
  12949. {
  12950. return Error("此审核已经处理");
  12951. }
  12952. }
  12953. else
  12954. {
  12955. return Error("操作失败");
  12956. }
  12957. }
  12958. else
  12959. {
  12960. return Error("权限不足");
  12961. }
  12962. }
  12963. /// <summary>
  12964. /// 批量审核延时
  12965. /// </summary>
  12966. /// <param name="ids"></param>
  12967. /// <returns></returns>
  12968. //[Authority]
  12969. public ActionResult AuditDelayWorkOrderBatch(string ids)
  12970. {
  12971. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  12972. {
  12973. int state = RequestString.GetInt("state", 0);
  12974. string reason = RequestString.GetFormString("reason");
  12975. // DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");
  12976. string errids = ""; string errids1 = "";
  12977. if (!string.IsNullOrEmpty(ids))
  12978. {
  12979. string[] strids = ids.Split(',');
  12980. foreach (string str in strids)
  12981. {
  12982. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  12983. {
  12984. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(str);
  12985. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModelList(" F_WorkOrderId = '" + str + "' and F_IsDelete = 0 and F_IsAudit = 0 order by F_CreateTime desc").FirstOrDefault();
  12986. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(str);
  12987. var modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetModelList("F_State=1 and F_IsDelete=0 and F_WorkOrderId='" + str + "' order by F_CreateTime desc");
  12988. if (modelT_Bus_WorkOrder != null && modelT_Bus_DelayTime != null && modelT_Bus_AssignedInfo != null)
  12989. {
  12990. if (modelT_Bus_DelayTime.F_IsAudit == 0)
  12991. {
  12992. #region 保存工单信息
  12993. int workstate = 4;
  12994. if (modelT_Bus_DelayTime.F_State != null && modelT_Bus_DelayTime.F_State != 1)
  12995. workstate = modelT_Bus_DelayTime.F_State.Value;
  12996. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  12997. keyValuePairs.Add("F_WorkState", workstate);
  12998. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  12999. keyValuePairs.Add("F_LimitTime", modelT_Bus_DelayTime.F_NewTime);
  13000. // modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_DelayTime.F_NewTime;
  13001. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13002. #endregion
  13003. #region 保存审核信息
  13004. modelT_Bus_DelayTime.F_IsAudit = state;//审核
  13005. modelT_Bus_DelayTime.F_AuditUser = User.F_UserCode;
  13006. modelT_Bus_DelayTime.F_AuditTime = DateTime.Now;
  13007. modelT_Bus_DelayTime.F_RefuseReason = reason;
  13008. modelT_Bus_DelayTime.F_AgreeTime = modelT_Bus_DelayTime.F_NewTime;
  13009. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  13010. #endregion
  13011. string type = "同意"; string des = "";
  13012. if (modelT_Bus_DelayTime.F_IsAudit == 1)
  13013. {
  13014. #region 修改交办记录
  13015. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13016. assignBLL.Update(modelT_Bus_AssignedInfo);
  13017. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  13018. {
  13019. TimeSpan ts = modelT_Bus_DelayTime.F_AgreeTime.Value.Subtract(modelT_Bus_DelayTime.F_OldTime.Value);
  13020. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  13021. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  13022. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  13023. .AddHours(tss);
  13024. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  13025. }
  13026. #endregion
  13027. #region 处理协办单位
  13028. var xblist = assignItemBLL.GetModelList(" F_IsDelete=0 and F_State=1 and ISNULL(F_FeedbackTime, '')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13029. foreach (var xb in xblist)
  13030. {
  13031. //xb.F_LimitTime = DateTime.Now;
  13032. xb.F_LimitTime = modelT_Bus_DelayTime.F_AgreeTime;
  13033. assignItemBLL.Update(xb);
  13034. }
  13035. #endregion
  13036. des = ",原定时间" + modelT_Bus_DelayTime.F_OldTime + ",申请延长到" + modelT_Bus_DelayTime.F_AgreeTime;
  13037. }
  13038. else
  13039. {
  13040. TimeSpan ts = DateTime.Now.Subtract(modelT_Bus_DelayTime.F_CreateTime.Value);
  13041. int tss = int.Parse(Math.Round(ts.TotalHours, 0).ToString());
  13042. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  13043. keyValuePairs1.Add("F_LimitTime", modelT_Bus_WorkOrder.F_LimitTime);
  13044. modelT_Bus_WorkOrder.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime
  13045. .Value.AddHours(tss);
  13046. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  13047. modelT_Bus_AssignedInfo.F_LimitTime = modelT_Bus_WorkOrder.F_LimitTime;
  13048. if (modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.Count > 0)
  13049. {
  13050. modelT_Bus_AssignedInfo_Next[0].F_LimitTime =
  13051. modelT_Bus_AssignedInfo_Next[0].F_LimitTime.Value
  13052. .AddHours(tss);
  13053. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next[0]);
  13054. }
  13055. modelT_Bus_AssignedInfo.F_IsSure = 5;
  13056. assignBLL.Update(modelT_Bus_AssignedInfo);
  13057. type = "拒绝";
  13058. }
  13059. #region 插入操作记录
  13060. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13061. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13062. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13063. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13064. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13065. oper.F_Message = userinfo + " " + type + "了工单延时申请" + des;
  13066. oper.F_CreateUser = User.F_UserCode;
  13067. oper.F_CreateTime = DateTime.Now;
  13068. oper.F_IsDelete = 0;
  13069. operBLL.Add(oper);
  13070. //推送消息表
  13071. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_DelayTime.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13072. #endregion
  13073. }
  13074. else
  13075. errids1 += str + ",";
  13076. }
  13077. trans.Complete();
  13078. }
  13079. }
  13080. if (errids1 == "" && errids == "")
  13081. return Success("操作成功");
  13082. else
  13083. {
  13084. string msg = "";
  13085. if (errids1 != "")
  13086. msg += ",工单编号为" + errids1.Trim(',') + "的工单已被其他人审核";
  13087. if (errids != "")
  13088. msg += ",工单编号为" + errids1.Trim(',') + "的工单不是交办人本人";
  13089. return Error("部分工单操作失败" + msg);
  13090. }
  13091. }
  13092. else
  13093. {
  13094. return Error("参数获取失败");
  13095. }
  13096. }
  13097. else
  13098. {
  13099. return Error("权限不足");
  13100. }
  13101. }
  13102. /// <summary>
  13103. /// 办理工单
  13104. /// </summary>
  13105. /// <returns></returns>
  13106. //[Authority]
  13107. public ActionResult FeedBackWorkOrder()
  13108. {
  13109. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  13110. {
  13111. string workorderid = RequestString.GetFormString("workorderid");
  13112. string dealman = RequestString.GetFormString("dealman");
  13113. string result = RequestString.GetFormString("result");
  13114. string files = RequestString.GetFormString("files");
  13115. int state = RequestString.GetInt("state", 0);
  13116. int feedbackid = RequestString.GetInt("feedbackid", 0);
  13117. int isproresult = RequestString.GetInt("isproresult", 0);//是否向当事人反馈
  13118. string prosituation = RequestString.GetFormString("prosituation");
  13119. string dealcontact = RequestString.GetFormString("dealcontact");
  13120. string connecttime = RequestString.GetFormString("connecttime");
  13121. string connectmode = RequestString.GetFormString("connectmode");
  13122. string replycontent = RequestString.GetFormString("replycontent");
  13123. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  13124. string duties = RequestString.GetFormString("duties");
  13125. string situation = RequestString.GetFormString("situation");
  13126. string IsProResultState = RequestString.GetFormString("IsProResultState ");
  13127. string Unsuccessful = RequestString.GetFormString("Unsuccessful");
  13128. string AuditUser = RequestString.GetFormString("AuditUser");//审核领导
  13129. string post = RequestString.GetFormString("post");//审核领导职务
  13130. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  13131. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里 是否向当事人反馈,选择否的时候,有个输入框,可以填原因,
  13132. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13133. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13134. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  13135. int type = 0;
  13136. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null)
  13137. {
  13138. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13139. if (type > 0)
  13140. {
  13141. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  13142. if (modelT_Bus_WorkOrder.F_WorkState >= (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_IsProResult == 0)
  13143. {
  13144. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13145. {
  13146. if (feedbackid == 0)
  13147. {
  13148. #region 插入反馈记录
  13149. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13150. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13151. modelT_Bus_Feedback.F_AuditPost = post;
  13152. modelT_Bus_Feedback.F_AuditContact = auditContact;
  13153. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  13154. modelT_Bus_Feedback.F_DealUser = dealman;
  13155. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13156. #region 20200114新增字段 zhengbingbing
  13157. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13158. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13159. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13160. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13161. DateTime contime = DateTime.Now;
  13162. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13163. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13164. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13165. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13166. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13167. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  13168. modelT_Bus_Feedback.F_Duties = duties;//职务
  13169. modelT_Bus_Feedback.F_Situation = situation;
  13170. modelT_Bus_Feedback.F_IsProResult = isproresult;
  13171. #endregion
  13172. modelT_Bus_Feedback.F_File = files;
  13173. modelT_Bus_Feedback.F_IsAudit = 0;
  13174. modelT_Bus_Feedback.F_IsDelete = 0;
  13175. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13176. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13177. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13178. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13179. modelT_Bus_Feedback.F_State = state;
  13180. modelT_Bus_Feedback.F_Type = type;
  13181. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  13182. #endregion
  13183. }
  13184. else
  13185. {
  13186. #region 修改反馈记录
  13187. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  13188. if (modelT_Bus_Feedback != null)
  13189. {
  13190. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13191. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13192. modelT_Bus_Feedback.F_DealUser = dealman;
  13193. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13194. modelT_Bus_Feedback.F_File = files;
  13195. modelT_Bus_Feedback.F_AuditUser = AuditUser;
  13196. #region 20200114新增字段 zhengbingbing
  13197. // modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13198. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13199. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13200. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13201. DateTime contime = DateTime.Now;
  13202. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13203. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13204. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13205. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13206. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13207. modelT_Bus_Feedback.F_FeedbackReason = feedbackreason;
  13208. modelT_Bus_Feedback.F_Duties = duties;//职务
  13209. modelT_Bus_Feedback.F_Situation = situation;
  13210. #endregion
  13211. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13212. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13213. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13214. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13215. modelT_Bus_Feedback.F_State = state;
  13216. modelT_Bus_Feedback.F_IsProResult = isproresult;
  13217. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13218. {
  13219. modelT_Bus_Feedback.F_Type = 1;
  13220. }
  13221. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  13222. {
  13223. modelT_Bus_Feedback.F_Type = 2;
  13224. }
  13225. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  13226. }
  13227. #endregion
  13228. }
  13229. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  13230. {
  13231. string typemsg = "办理";
  13232. if (type == 1)
  13233. {
  13234. int iscs = 0;
  13235. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13236. {
  13237. iscs = 1;
  13238. }
  13239. #region 保存工单信息
  13240. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  13241. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13242. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealed);
  13243. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  13244. keyValuePairs.Add("F_Result", result);
  13245. // modelT_Bus_WorkOrder.F_Result = result;
  13246. keyValuePairs.Add("F_DealDeptId", User.F_DeptId);
  13247. // modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  13248. keyValuePairs.Add("F_DealUser", User.F_UserCode);
  13249. // modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  13250. keyValuePairs.Add("F_DealTime", DateTime.Now);
  13251. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  13252. keyValuePairs.Add("F_ToBereply", 1);
  13253. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  13254. keyValuePairs.Add("F_IsOverdue", iscs);
  13255. //modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  13256. keyValuePairs.Add("F_IsProResult", isproresult);
  13257. // modelT_Bus_WorkOrder.F_IsProResult = isproresult;
  13258. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13259. #endregion
  13260. #region 保存交办信息
  13261. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  13262. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13263. {
  13264. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  13265. }
  13266. assignBLL.Update(modelT_Bus_AssignedInfo);
  13267. #endregion
  13268. #region 删除草稿信息
  13269. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  13270. foreach (var cg in cglist)
  13271. {
  13272. cg.F_IsDelete = 1;
  13273. cg.F_DeleteUser = User.F_UserCode;
  13274. cg.F_DeleteTime = DateTime.Now;
  13275. new BLL.T_Bus_Feedback().Update(cg);
  13276. }
  13277. #endregion
  13278. #region 删除二级单位未办理信息
  13279. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13280. foreach (var ej in ejlist)
  13281. {
  13282. ej.F_IsDelete = 1;
  13283. ej.F_DeleteUser = User.F_UserCode;
  13284. ej.F_DeleteTime = DateTime.Now;
  13285. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  13286. }
  13287. #endregion
  13288. #region 处理协办单位
  13289. 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 + "'");
  13290. foreach (var xb in xblist)
  13291. {
  13292. xb.F_State = 2;
  13293. xb.F_SureUser = User.F_UserCode;
  13294. xb.F_SureTime = DateTime.Now;
  13295. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  13296. }
  13297. #endregion
  13298. typemsg = "主办";
  13299. }
  13300. else if (type == 2)
  13301. {
  13302. #region 保存明细信息
  13303. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_DeptId='" + User.F_DeptId + "'").FirstOrDefault();
  13304. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  13305. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  13306. {
  13307. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  13308. }
  13309. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  13310. #endregion
  13311. #region 删除草稿信息
  13312. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  13313. foreach (var cg in cglist)
  13314. {
  13315. cg.F_IsDelete = 1;
  13316. cg.F_DeleteUser = User.F_UserCode;
  13317. cg.F_DeleteTime = DateTime.Now;
  13318. new BLL.T_Bus_Feedback().Update(cg);
  13319. }
  13320. #endregion
  13321. typemsg = "协办";
  13322. }
  13323. #region 插入操作记录
  13324. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13325. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13326. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13327. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13328. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13329. oper.F_Message = userinfo + " " + typemsg + "了工单";
  13330. oper.F_CreateUser = User.F_UserCode;
  13331. oper.F_CreateTime = DateTime.Now;
  13332. oper.F_IsDelete = 0;
  13333. operBLL.Add(oper);
  13334. //推送消息表
  13335. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13336. #endregion
  13337. }
  13338. trans.Complete();
  13339. }
  13340. Task.Run(() =>
  13341. {
  13342. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  13343. if (!string.IsNullOrEmpty(files))
  13344. {
  13345. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  13346. }
  13347. }).ContinueWith(p =>
  13348. {
  13349. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  13350. });
  13351. return Success("操作成功", modelT_Bus_Feedback.F_Id);
  13352. }
  13353. else
  13354. {
  13355. return Error("已经办理过了");
  13356. }
  13357. }
  13358. else
  13359. {
  13360. return Error("权限不足");
  13361. }
  13362. }
  13363. else
  13364. {
  13365. return Error("操作失败");
  13366. }
  13367. }
  13368. else
  13369. {
  13370. return Error("权限不足");
  13371. }
  13372. }
  13373. /// <summary>
  13374. ///追问回复
  13375. /// </summary>
  13376. /// <returns></returns>
  13377. //[Authority]
  13378. public ActionResult ReplyWorkOrder()
  13379. {
  13380. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  13381. {
  13382. string workorderid = RequestString.GetFormString("workorderid");
  13383. string files = RequestString.GetFormString("files");
  13384. string replycount = RequestString.GetFormString("replycount");
  13385. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13386. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13387. Model.T_Bus_Feedback modelT_Bus_Feedback = feedbackBLL
  13388. .GetNewModelByWorkOrderID(workorderid);
  13389. int type = 0;
  13390. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null
  13391. && modelT_Bus_Feedback != null)
  13392. {
  13393. // type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13394. //if (modelT_Bus_WorkOrder.F_WorkState == 4)
  13395. if (modelT_Bus_WorkOrder.F_IsProResult == 2)
  13396. {
  13397. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13398. {
  13399. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13400. if (string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_AdditionalReply))
  13401. keyValuePairs.Add("F_AdditionalReply", replycount);
  13402. else
  13403. keyValuePairs.Add("F_AdditionalReply", modelT_Bus_WorkOrder.F_AdditionalReply + "; " + replycount);
  13404. keyValuePairs.Add("F_IsProResult", 3);
  13405. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13406. if (!string.IsNullOrEmpty(files))
  13407. {
  13408. if (!string.IsNullOrEmpty(modelT_Bus_Feedback.F_Files))
  13409. modelT_Bus_Feedback.F_Files += "," + files;
  13410. else
  13411. modelT_Bus_Feedback.F_Files = files;
  13412. bool f = feedbackBLL.Update(modelT_Bus_Feedback);
  13413. }
  13414. #region 插入操作记录
  13415. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13416. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13417. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13418. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13419. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13420. oper.F_Message = userinfo + " " + "回复" + "了工单";
  13421. oper.F_CreateUser = User.F_UserCode;
  13422. oper.F_CreateTime = DateTime.Now;
  13423. oper.F_IsDelete = 0;
  13424. operBLL.Add(oper);
  13425. #endregion
  13426. trans.Complete();
  13427. }
  13428. return Success("操作成功");
  13429. }
  13430. else
  13431. {
  13432. return Error("已经办理过了");
  13433. }
  13434. }
  13435. else
  13436. {
  13437. return Error("操作失败");
  13438. }
  13439. }
  13440. else
  13441. {
  13442. return Error("权限不足");
  13443. }
  13444. }
  13445. /// <summary>
  13446. /// 转办回访
  13447. /// </summary>
  13448. /// <returns></returns>
  13449. //[Authority]
  13450. public ActionResult Transfer()
  13451. {
  13452. string workorderid = RequestString.GetFormString("workorderid");
  13453. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  13454. {
  13455. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13456. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  13457. if (modelT_Bus_WorkOrder != null)
  13458. {
  13459. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13460. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  13461. keyValuePairs.Add("F_ToBereply", 0);
  13462. keyValuePairs.Add("F_IsSms", 0);
  13463. keyValuePairs.Add("F_IsProResult", 2);
  13464. keyValuePairs.Add("F_Note", "");
  13465. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  13466. #region 插入操作记录
  13467. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13468. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  13469. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  13470. {
  13471. var user = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  13472. if (user != null && user.Count > 0)
  13473. {
  13474. foreach (var it in user)
  13475. {
  13476. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  13477. // string msg = workorderid;
  13478. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  13479. string mag = "[\"" + workorderid + "\"]";
  13480. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  13481. workorderid);
  13482. }
  13483. }
  13484. if (modelT_Bus_AssignedInfo_Next != null)
  13485. {
  13486. var modelT_Bus_Feedback_Next
  13487. = new BLL.T_Bus_Feedback_Next().GetModelList
  13488. ("F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "' and F_WorkOrderId='" +
  13489. workorderid + "' ORDER BY F_CreateTime DESC ");
  13490. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next
  13491. .Count > 0)
  13492. {
  13493. if (modelT_Bus_Feedback_Next[0].F_CreateDeptId > 0)
  13494. {
  13495. var users = new BLL.T_Sys_UserAccount().GetModelList(" F_DeptId=" + modelT_Bus_Feedback_Next[0].F_CreateDeptId + " ");
  13496. if (users != null && users.Count > 0)
  13497. {
  13498. foreach (var it in users)
  13499. {
  13500. string count = "已办未果短信提醒,您的工单" + workorderid + "被审核员评定为已办未果工单,请继续处理。";
  13501. // string msg = workorderid;
  13502. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "170343", "");
  13503. string mag = "[\"" + workorderid + "\"]";
  13504. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240517979668480", mag,
  13505. workorderid);
  13506. }
  13507. }
  13508. }
  13509. }
  13510. }
  13511. // oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13512. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  13513. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  13514. oper.F_Message = userinfo + " " + "提交了已办未果";
  13515. oper.F_CreateUser = User.F_UserCode;
  13516. oper.F_CreateTime = DateTime.Now;
  13517. oper.F_IsDelete = 0;
  13518. operBLL.Add(oper);
  13519. #endregion
  13520. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  13521. return Success("转办成功");
  13522. else
  13523. return Error("转办失败");
  13524. }
  13525. else
  13526. return Error("该工单没有承办单位");
  13527. }
  13528. else
  13529. {
  13530. return Error("工单不存在");
  13531. }
  13532. }
  13533. return Error("权限不足");
  13534. }
  13535. /// <summary>
  13536. ///注解
  13537. /// </summary>
  13538. /// <returns></returns>
  13539. //[Authority]
  13540. public ActionResult NoteWorkOrder()
  13541. {
  13542. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  13543. {
  13544. string workorderid = RequestString.GetFormString("workorderid");
  13545. string note = RequestString.GetFormString("note");
  13546. if (string.IsNullOrEmpty(workorderid.Trim()) || string.IsNullOrEmpty(note.Trim()))
  13547. {
  13548. return Error("操作失败");
  13549. }
  13550. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13551. if (modelT_Bus_WorkOrder != null&& modelT_Bus_WorkOrder.F_WorkState== (int)EnumWorkState.visit)
  13552. {
  13553. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13554. keyValuePairs.Add("F_Note", modelT_Bus_WorkOrder.F_Note + "|||" + note);
  13555. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  13556. return Success("注解成功");
  13557. else
  13558. return Error("注解失败");
  13559. }
  13560. else
  13561. {
  13562. return Error("操作失败");
  13563. }
  13564. }
  13565. else
  13566. {
  13567. return Error("权限不足");
  13568. }
  13569. }
  13570. #region 网格化对接
  13571. /// <summary>
  13572. /// 对接网格化
  13573. /// 工单查收操作
  13574. /// </summary>
  13575. /// <param name="usercode"></param>
  13576. /// <param name="workorderid"></param>
  13577. /// <returns></returns>
  13578. public string ReceiveWorkOrderByDock(string usercode, string workorderid, string content)
  13579. {
  13580. var returns = "";
  13581. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13582. {
  13583. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var retbool = "false"; var optid = string.Empty;
  13584. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13585. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13586. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13587. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  13588. if (User != null)
  13589. {
  13590. if (modelT_Bus_WorkOrder == null)
  13591. msgss = "要办理的工单已不存在";
  13592. else if (modelT_Bus_AssignedInfo == null)
  13593. {
  13594. msgss = "工单无法处理或已被处理";
  13595. }
  13596. else
  13597. {
  13598. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload) && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13599. {
  13600. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13601. {
  13602. #region 保存工单信息
  13603. //modelT_Bus_WorkOrder.F_WorkState = 4;//办理中
  13604. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  13605. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealing);
  13606. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;//办理中
  13607. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  13608. #endregion
  13609. #region 保存查收信息
  13610. modelT_Bus_AssignedInfo.F_IsSure = 1;//查收
  13611. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13612. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13613. assignBLL.Update(modelT_Bus_AssignedInfo);
  13614. #endregion
  13615. #region 保存明细信息
  13616. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds))
  13617. {
  13618. string[] strids = modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',');
  13619. foreach (string strid in strids)
  13620. {
  13621. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  13622. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  13623. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;
  13624. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  13625. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo.F_LimitTime;
  13626. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo.F_Remark;
  13627. modelT_Bus_AssignedItemInfo.F_State = 1;
  13628. modelT_Bus_AssignedItemInfo.F_Type = 2;
  13629. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  13630. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  13631. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  13632. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  13633. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  13634. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  13635. }
  13636. }
  13637. #endregion
  13638. retbool = "true";
  13639. optmsg = " 查收了工单";
  13640. msgss = optmsg;
  13641. }
  13642. else
  13643. msgss = "工单已被查收";
  13644. assid = modelT_Bus_AssignedInfo.F_Id;
  13645. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  13646. }
  13647. else
  13648. msgss = "工单已办理或已被重新指派";
  13649. }
  13650. userinfo = User.depname + "(" + User.F_UserCode + ")";
  13651. }
  13652. else
  13653. {
  13654. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  13655. msgss = "无法获取工号信息";
  13656. }
  13657. #region 插入操作记录
  13658. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13659. oper.F_WorkOrderId = workorderid;
  13660. oper.F_AssignedId = assid;
  13661. oper.F_State = state;
  13662. oper.F_Message = userinfo + " " + msgss + msgend;
  13663. oper.F_CreateUser = usercode;
  13664. oper.F_CreateTime = DateTime.Now;
  13665. oper.F_IsDelete = 0;
  13666. oper.F_Type = 1;
  13667. optid = operBLL.Add(oper).ToString();
  13668. #endregion
  13669. trans.Complete();
  13670. returns = retbool + "|" + optid + "|" + msgss;
  13671. }
  13672. return returns;
  13673. }
  13674. /// <summary>
  13675. /// 对接网格化 工单退回操作
  13676. /// </summary>
  13677. /// <returns></returns>
  13678. public string RebackWorkOrderByDock(string usercode, string workorderid, string backreason, string content)
  13679. {
  13680. var returns = "";
  13681. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13682. {
  13683. string optmsg = ""; var assid = 0; var msgend = ""; var state = 0;
  13684. var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  13685. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13686. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13687. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13688. msgend = ",工单编号:" + workorderid + ",办理详情:" + content;
  13689. if (User != null)
  13690. {
  13691. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  13692. if (modelT_Bus_WorkOrder == null)
  13693. msgss = "要办理的工单已不存在";
  13694. else if (modelT_Bus_AssignedInfo == null)
  13695. {
  13696. msgss = "工单无法处理或已被处理";
  13697. }
  13698. else
  13699. {
  13700. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13701. {
  13702. if (modelT_Bus_AssignedInfo.F_IsSure == 0)
  13703. {
  13704. #region 保存工单信息
  13705. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.auditreback;//退回审核中
  13706. workorderBLL.Update(modelT_Bus_WorkOrder);
  13707. #endregion
  13708. #region 插入退回申请信息
  13709. Model.T_Bus_Feedback model_T_Bus_Feedback = new Model.T_Bus_Feedback();
  13710. model_T_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13711. model_T_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13712. model_T_Bus_Feedback.F_Result = backreason;//退回原因
  13713. model_T_Bus_Feedback.F_IsAudit = 0;
  13714. model_T_Bus_Feedback.F_IsDelete = 0;
  13715. model_T_Bus_Feedback.F_CreateUser = User.F_UserCode;//退回人
  13716. model_T_Bus_Feedback.F_CreateTime = DateTime.Now;//退回时间
  13717. model_T_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//退回部门
  13718. model_T_Bus_Feedback.F_IsFeedEnd = 1;
  13719. model_T_Bus_Feedback.F_State = 1;
  13720. model_T_Bus_Feedback.F_Type = 3;
  13721. new BLL.T_Bus_Feedback().Add(model_T_Bus_Feedback);
  13722. #endregion
  13723. #region 保存交办信息
  13724. modelT_Bus_AssignedInfo.F_IsSure = 2;//申请退回
  13725. modelT_Bus_AssignedInfo.F_SureUser = User.F_UserCode;
  13726. modelT_Bus_AssignedInfo.F_SureTime = DateTime.Now;
  13727. assignBLL.Update(modelT_Bus_AssignedInfo);
  13728. #endregion
  13729. #region 推送消息
  13730. retbool = "true";
  13731. optmsg = " 申请退回了工单";
  13732. //推送消息表
  13733. msg.AddInternalMessagesInfo("工单消息", userinfo + optmsg + ",工单编号:" + workorderid, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  13734. #endregion
  13735. msgss = optmsg;
  13736. }
  13737. else
  13738. msgss = "工单已被查收,不能退回";
  13739. assid = modelT_Bus_AssignedInfo.F_Id;
  13740. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  13741. }
  13742. else
  13743. msgss = "工单已办理或已被重新指派";
  13744. }
  13745. }
  13746. else
  13747. {
  13748. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  13749. msgss = "无法获取工号信息";
  13750. }
  13751. #region 插入操作记录
  13752. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  13753. oper.F_WorkOrderId = workorderid;
  13754. oper.F_AssignedId = assid;
  13755. oper.F_State = state;
  13756. oper.F_Message = userinfo + " " + msgss + msgend;
  13757. oper.F_CreateUser = usercode;
  13758. oper.F_CreateTime = DateTime.Now;
  13759. oper.F_IsDelete = 0;
  13760. oper.F_Type = 1;
  13761. optid = operBLL.Add(oper).ToString();
  13762. #endregion
  13763. trans.Complete();
  13764. returns = retbool + "|" + optid + "|" + msgss;
  13765. }
  13766. return returns;
  13767. }
  13768. /// <summary>
  13769. /// 对接网格化办理
  13770. /// </summary>
  13771. /// <param name="usercode">工号</param>
  13772. /// <param name="workorderid">工单编号</param>
  13773. /// <param name="dealman">承办人人</param>
  13774. /// <param name="result">反馈内容</param>
  13775. /// <param name="files">附件</param>
  13776. /// <param name="prosituation">处理情况/方案/进程</param>
  13777. /// <param name="dealcontact">承办人联系方式</param>
  13778. /// <param name="connecttime">沟通时间</param>
  13779. /// <param name="connectmode">沟通方式</param>
  13780. /// <param name="replycontent">答复内容</param>
  13781. /// <param name="duties">职务</param>
  13782. /// <param name="situation">处理情况</param>
  13783. /// <param name="state">0保存,1保存并办理</param>
  13784. /// <param name="feedbackid"></param>
  13785. /// <param name="isproresult">是否有处理结果:0默认,1是,2否</param>
  13786. /// <param name="isstaisfied">是否满意:0未评价,1满意,2基本满意,3不满意</param>
  13787. /// <returns></returns>
  13788. 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)
  13789. {
  13790. var returns = "";
  13791. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  13792. {
  13793. string optmsg = ""; var assid = 0; var msgend = ""; var wostate = 0; var userinfo = ""; string backid = string.Empty; var msgss = ""; var retbool = "false";
  13794. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  13795. if (User != null)
  13796. {
  13797. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  13798. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  13799. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  13800. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  13801. msgend = ",工单编号:" + workorderid;
  13802. int type = 0; var resmsg = ""; string typemsg = "办理";
  13803. if (modelT_Bus_WorkOrder == null)
  13804. msgss = "要办理的工单已不存在";
  13805. else if (modelT_Bus_AssignedInfo == null)
  13806. {
  13807. msgss = "工单无法处理";
  13808. }
  13809. else
  13810. {
  13811. type = AssignDeptType(modelT_Bus_AssignedInfo, User.F_DeptId);
  13812. if (type > 0)
  13813. {
  13814. #region 办理结果合成
  13815. result = "";
  13816. #region 获取部门
  13817. var deptname = "";
  13818. if (modelT_Bus_WorkOrder.F_MainDeptId != null)
  13819. {
  13820. var deptmodel = new BLL.T_Sys_Department().GetModel(modelT_Bus_WorkOrder.F_MainDeptId.Value);
  13821. if (deptmodel != null)
  13822. deptname = deptmodel.F_DeptName;
  13823. }
  13824. #endregion
  13825. #region 获取来源
  13826. var sourcename = "";
  13827. if (modelT_Bus_WorkOrder.F_InfoSource != null)
  13828. {
  13829. var dicmodel = new BLL.T_Sys_DictionaryValue().GetModel(modelT_Bus_WorkOrder.F_InfoSource.Value);
  13830. if (dicmodel != null)
  13831. sourcename = dicmodel.F_Value;
  13832. }
  13833. #endregion
  13834. var startstr = modelT_Bus_WorkOrder.F_CreateTime + " " + deptname + "部门接到" + sourcename + "来源工单(编号:" + modelT_Bus_WorkOrder.F_WorkOrderId + ")反映" + modelT_Bus_WorkOrder.F_ComTitle + "问题,";
  13835. var bljg = ""; var endstr = "";
  13836. if (isproresult == 1)
  13837. {
  13838. bljg = "已办理";
  13839. if (modelT_Bus_WorkOrder.F_IsProtect == 0)
  13840. {
  13841. var isStaisfiedRadioData = "未评价";
  13842. if (isstaisfied == 1)
  13843. {
  13844. isStaisfiedRadioData = "满意";
  13845. }
  13846. else if (isstaisfied == 2)
  13847. {
  13848. isStaisfiedRadioData = "基本满意";
  13849. }
  13850. else if (isstaisfied == 3)
  13851. {
  13852. isStaisfiedRadioData = "不满意";
  13853. }
  13854. endstr = "; " + dealman + "用" + connectmode + "方式在" + connecttime + "对反映人进行了回复,反映人对结果表示" + isStaisfiedRadioData;
  13855. }
  13856. }
  13857. else if (isproresult == 2)
  13858. {
  13859. bljg = "未办理";
  13860. endstr = "; 处理方案/进程:" + prosituation;
  13861. }
  13862. result = startstr + "经落实,具体情况回复如下:" + situation + " 办理结果:" + bljg + " 承办人:" + dealman + " 职务:" + duties + " 联系电话:" + dealcontact + endstr;
  13863. #endregion
  13864. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  13865. {
  13866. #region 处理办理
  13867. if (feedbackid == 0)
  13868. {
  13869. #region 插入反馈记录
  13870. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13871. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13872. modelT_Bus_Feedback.F_DealUser = dealman;
  13873. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13874. #region 20200114新增字段 zhengbingbing
  13875. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13876. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13877. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13878. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13879. DateTime contime = DateTime.Now;
  13880. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13881. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13882. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13883. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13884. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13885. modelT_Bus_Feedback.F_Duties = duties;//职务
  13886. modelT_Bus_Feedback.F_Situation = situation;
  13887. #endregion
  13888. modelT_Bus_Feedback.F_File = files;
  13889. modelT_Bus_Feedback.F_IsAudit = 0;
  13890. modelT_Bus_Feedback.F_IsDelete = 0;
  13891. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13892. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13893. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13894. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13895. modelT_Bus_Feedback.F_State = state;
  13896. modelT_Bus_Feedback.F_Type = type;
  13897. modelT_Bus_Feedback.F_Id = new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  13898. #endregion
  13899. }
  13900. else
  13901. {
  13902. #region 修改反馈记录
  13903. modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  13904. if (modelT_Bus_Feedback != null)
  13905. {
  13906. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  13907. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  13908. modelT_Bus_Feedback.F_DealUser = dealman;
  13909. modelT_Bus_Feedback.F_Result = result;//反馈内容
  13910. modelT_Bus_Feedback.F_File = files;
  13911. #region 20200114新增字段 zhengbingbing
  13912. modelT_Bus_Feedback.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  13913. modelT_Bus_Feedback.F_ProSituation = prosituation;//处理情况/方案/进程
  13914. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  13915. modelT_Bus_Feedback.F_DealUserContact = dealcontact;//承办人联系方式
  13916. DateTime contime = DateTime.Now;
  13917. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  13918. modelT_Bus_Feedback.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  13919. modelT_Bus_Feedback.F_ConnectMode = connectmode;//沟通方式
  13920. modelT_Bus_Feedback.F_ReplyContent = replycontent;//答复内容
  13921. modelT_Bus_Feedback.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  13922. modelT_Bus_Feedback.F_Duties = duties;//职务
  13923. modelT_Bus_Feedback.F_Situation = situation;
  13924. #endregion
  13925. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  13926. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  13927. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  13928. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  13929. modelT_Bus_Feedback.F_State = state;
  13930. if (modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  13931. {
  13932. modelT_Bus_Feedback.F_Type = 1;
  13933. }
  13934. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(User.F_DeptId.ToString()))
  13935. {
  13936. modelT_Bus_Feedback.F_Type = 2;
  13937. }
  13938. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  13939. }
  13940. #endregion
  13941. }
  13942. if (modelT_Bus_Feedback != null && modelT_Bus_Feedback.F_State == 1)
  13943. {
  13944. if (type == 1)
  13945. {
  13946. int iscs = 0;
  13947. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13948. {
  13949. iscs = 1;
  13950. }
  13951. #region 保存工单信息
  13952. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  13953. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  13954. modelT_Bus_WorkOrder.F_Result = result;
  13955. modelT_Bus_WorkOrder.F_DealDeptId = User.F_DeptId;
  13956. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  13957. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  13958. modelT_Bus_WorkOrder.F_IsOverdue = iscs;
  13959. workorderBLL.Update(modelT_Bus_WorkOrder);
  13960. #endregion
  13961. #region 保存交办信息
  13962. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  13963. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  13964. {
  13965. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  13966. }
  13967. assignBLL.Update(modelT_Bus_AssignedInfo);
  13968. #endregion
  13969. #region 删除草稿信息
  13970. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  13971. foreach (var cg in cglist)
  13972. {
  13973. cg.F_IsDelete = 1;
  13974. cg.F_DeleteUser = User.F_UserCode;
  13975. cg.F_DeleteTime = DateTime.Now;
  13976. new BLL.T_Bus_Feedback().Update(cg);
  13977. }
  13978. #endregion
  13979. #region 删除二级单位未办理信息
  13980. var ejlist = new BLL.T_Bus_AssignedInfo_Next().GetModelList(" F_IsDelete=0 and isnull(F_FeedbackTime,'')='' and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  13981. foreach (var ej in ejlist)
  13982. {
  13983. ej.F_IsDelete = 1;
  13984. ej.F_DeleteUser = User.F_UserCode;
  13985. ej.F_DeleteTime = DateTime.Now;
  13986. new BLL.T_Bus_AssignedInfo_Next().Update(ej);
  13987. }
  13988. #endregion
  13989. #region 处理协办单位
  13990. 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 + "'");
  13991. foreach (var xb in xblist)
  13992. {
  13993. xb.F_State = 2;
  13994. xb.F_SureUser = User.F_UserCode;
  13995. xb.F_SureTime = DateTime.Now;
  13996. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  13997. }
  13998. #endregion
  13999. typemsg = "主办";
  14000. }
  14001. else if (type == 2)
  14002. {
  14003. #region 保存明细信息
  14004. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new BLL.T_Bus_AssignedItemInfo().GetModelList(" F_IsDelete=0 and F_State=1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_DeptId='" + User.F_DeptId + "'").FirstOrDefault();
  14005. modelT_Bus_AssignedItemInfo.F_FeedbackTime = DateTime.Now;
  14006. if (modelT_Bus_AssignedItemInfo.F_LimitTime < DateTime.Now)
  14007. {
  14008. modelT_Bus_AssignedItemInfo.F_IsOverdue = 1;
  14009. }
  14010. new BLL.T_Bus_AssignedItemInfo().Update(modelT_Bus_AssignedItemInfo);
  14011. #endregion
  14012. #region 删除草稿信息
  14013. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  14014. foreach (var cg in cglist)
  14015. {
  14016. cg.F_IsDelete = 1;
  14017. cg.F_DeleteUser = User.F_UserCode;
  14018. cg.F_DeleteTime = DateTime.Now;
  14019. new BLL.T_Bus_Feedback().Update(cg);
  14020. }
  14021. #endregion
  14022. typemsg = "协办";
  14023. }
  14024. var msgs = userinfo + " " + resmsg + " " + typemsg + "了工单";
  14025. //推送消息表
  14026. msg.AddInternalMessagesInfo("工单消息", msgs + ",工单编号:" + workorderid, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14027. }
  14028. #endregion
  14029. retbool = "true";
  14030. }
  14031. else
  14032. msgss = "工单已办理";
  14033. backid = modelT_Bus_Feedback.F_Id.ToString();
  14034. }
  14035. else
  14036. msgss = "工单已办理或已被重新指派";
  14037. assid = modelT_Bus_AssignedInfo.F_Id;
  14038. wostate = modelT_Bus_WorkOrder.F_WorkState.Value;
  14039. }
  14040. msgend = resmsg + " " + typemsg + "了工单";
  14041. }
  14042. else
  14043. {
  14044. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  14045. msgss = "无法获取工号信息";
  14046. }
  14047. #region 插入操作记录
  14048. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14049. oper.F_WorkOrderId = workorderid;
  14050. oper.F_AssignedId = assid;
  14051. oper.F_State = wostate;
  14052. oper.F_Message = userinfo + msgend;
  14053. oper.F_CreateUser = usercode;
  14054. oper.F_CreateTime = DateTime.Now;
  14055. oper.F_IsDelete = 0;
  14056. oper.F_Type = 1;
  14057. oper.F_File = files;
  14058. operBLL.Add(oper);
  14059. #endregion
  14060. trans.Complete();
  14061. returns = retbool + "|" + backid + "|" + msgss;
  14062. }
  14063. return returns;
  14064. }
  14065. /// <summary>
  14066. /// 对接网格化,记录办理过程
  14067. /// </summary>
  14068. /// <param name="usercode"></param>
  14069. /// <param name="workorderid"></param>
  14070. /// <param name="content"></param>
  14071. /// <returns></returns>
  14072. public string DealProcessWorkOrderByDock(string usercode, string workorderid, string content)
  14073. {
  14074. var returns = "";
  14075. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14076. {
  14077. var assid = 0; var msgend = ""; var state = 0; var userinfo = ""; var msgss = ""; var optid = string.Empty; var retbool = "false";
  14078. Model.T_Sys_UserAccount User = userBLL.GetModel(usercode);
  14079. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14080. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14081. msgend = ",工单编号:" + workorderid + ",办理内容为:" + content;
  14082. if (User != null)
  14083. {
  14084. if (modelT_Bus_WorkOrder == null)
  14085. msgss = "要办理的工单已不存在";
  14086. else if (modelT_Bus_AssignedInfo == null)
  14087. {
  14088. msgss = "工单无法处理或已被处理";
  14089. }
  14090. else
  14091. {
  14092. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing && modelT_Bus_AssignedInfo.F_IsSure == 1 && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14093. {
  14094. msgss = "办理工单";
  14095. retbool = "true";
  14096. assid = modelT_Bus_AssignedInfo.F_Id;
  14097. state = modelT_Bus_WorkOrder.F_WorkState.Value;
  14098. }
  14099. else
  14100. {
  14101. msgss = "工单无法处理";
  14102. }
  14103. }
  14104. userinfo = User.depname + "-" + User.F_UserName + "(" + User.F_UserCode + ")";
  14105. }
  14106. else
  14107. {
  14108. userinfo = "无法获取工号信息,工号为" + usercode + msgend;
  14109. msgss = "无法获取工号信息";
  14110. }
  14111. #region 插入操作记录
  14112. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14113. oper.F_WorkOrderId = workorderid;
  14114. oper.F_AssignedId = assid;
  14115. oper.F_State = state;
  14116. oper.F_Message = userinfo + msgend;
  14117. oper.F_CreateUser = usercode;
  14118. oper.F_CreateTime = DateTime.Now;
  14119. oper.F_IsDelete = 0;
  14120. oper.F_Type = 1;
  14121. optid = operBLL.Add(oper).ToString();
  14122. #endregion
  14123. trans.Complete();
  14124. returns = retbool + "|" + optid + "|" + msgss;
  14125. }
  14126. return returns;
  14127. }
  14128. #endregion
  14129. /// <summary>
  14130. /// 撤回工单
  14131. /// </summary>
  14132. /// <returns></returns>
  14133. //[Authority]
  14134. public ActionResult WithdrawWorkOrder()
  14135. {
  14136. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14137. {
  14138. string workorderid = RequestString.GetFormString("workorderid");
  14139. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14140. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14141. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14142. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14143. {
  14144. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14145. {
  14146. #region 保存撤单信息
  14147. modelT_Bus_AssignedInfo_Next.F_IsDelete = 1;
  14148. modelT_Bus_AssignedInfo_Next.F_DeleteUser = User.F_UserCode;
  14149. modelT_Bus_AssignedInfo_Next.F_DeleteTime = DateTime.Now;
  14150. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14151. #endregion
  14152. #region 删除处理信息
  14153. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_AssignedId='" + modelT_Bus_AssignedInfo_Next.F_Id + "'");
  14154. foreach (var cg in cglist)
  14155. {
  14156. cg.F_IsDelete = 1;
  14157. cg.F_DeleteUser = User.F_UserCode;
  14158. cg.F_DeleteTime = DateTime.Now;
  14159. new BLL.T_Bus_Feedback_Next().Update(cg);
  14160. }
  14161. #endregion
  14162. #region 保存交办信息
  14163. modelT_Bus_AssignedInfo.F_IsNext = 0;
  14164. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14165. #endregion
  14166. #region 保存工单信息
  14167. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14168. keyValuePairs.Add("F_MainDeptID3", null);
  14169. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14170. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14171. #endregion
  14172. #region 插入操作记录
  14173. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14174. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14175. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14176. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14177. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14178. oper.F_Message = userinfo + " 撤回了工单";
  14179. oper.F_CreateUser = User.F_UserCode;
  14180. oper.F_CreateTime = DateTime.Now;
  14181. oper.F_IsDelete = 0;
  14182. operBLL.Add(oper);
  14183. #endregion
  14184. trans.Complete();
  14185. }
  14186. return Success("操作成功");
  14187. }
  14188. else
  14189. {
  14190. return Error("操作失败");
  14191. }
  14192. }
  14193. else
  14194. {
  14195. return Error("权限不足");
  14196. }
  14197. }
  14198. /// <summary>
  14199. /// 签收工单
  14200. /// </summary>
  14201. /// <returns></returns>
  14202. //[Authority]
  14203. public ActionResult SignWorkOrder()
  14204. {
  14205. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14206. {
  14207. string workorderid = RequestString.GetFormString("workorderid");
  14208. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14209. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14210. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14211. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  14212. {
  14213. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0)
  14214. {
  14215. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14216. {
  14217. #region 保存签收信息
  14218. modelT_Bus_AssignedInfo_Next.F_IsSure = 1;//签收
  14219. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14220. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14221. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14222. #endregion
  14223. #region 保存交办信息
  14224. modelT_Bus_AssignedInfo.F_IsNext = 2;
  14225. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14226. #endregion
  14227. if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo_Next.F_OtherDeptIds))
  14228. {
  14229. if (modelT_Bus_AssignedInfo_Next.F_OtherDeptIds != "null")
  14230. {
  14231. string[] strids = modelT_Bus_AssignedInfo_Next.F_OtherDeptIds.TrimEnd(',').Split(',');
  14232. foreach (string strid in strids)
  14233. {
  14234. Model.T_Bus_AssignedItemInfo modelT_Bus_AssignedItemInfo = new Model.T_Bus_AssignedItemInfo();
  14235. modelT_Bus_AssignedItemInfo.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14236. modelT_Bus_AssignedItemInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo_Next.F_AssignedOpinion;
  14237. modelT_Bus_AssignedItemInfo.F_DeptId = Int32.Parse(strid);
  14238. modelT_Bus_AssignedItemInfo.F_LimitTime = modelT_Bus_AssignedInfo_Next.F_LimitTime;
  14239. modelT_Bus_AssignedItemInfo.F_Remark = modelT_Bus_AssignedInfo_Next.F_Remark;
  14240. modelT_Bus_AssignedItemInfo.F_State = 1;
  14241. modelT_Bus_AssignedItemInfo.F_Type = 2;
  14242. modelT_Bus_AssignedItemInfo.F_WorkOrderId = modelT_Bus_AssignedInfo_Next.F_WorkOrderId;
  14243. modelT_Bus_AssignedItemInfo.F_IsSure = 0;
  14244. modelT_Bus_AssignedItemInfo.F_CreateTime = DateTime.Now;
  14245. modelT_Bus_AssignedItemInfo.F_CreateUser = User.F_UserCode;
  14246. modelT_Bus_AssignedItemInfo.F_IsDelete = 0;
  14247. new BLL.T_Bus_AssignedItemInfo().Add(modelT_Bus_AssignedItemInfo);
  14248. }
  14249. }
  14250. }
  14251. #region 插入操作记录
  14252. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14253. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14254. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14255. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14256. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14257. oper.F_Message = userinfo + " 签收了工单";
  14258. oper.F_CreateUser = User.F_UserCode;
  14259. oper.F_CreateTime = DateTime.Now;
  14260. oper.F_IsDelete = 0;
  14261. operBLL.Add(oper);
  14262. #endregion
  14263. trans.Complete();
  14264. }
  14265. return Success("操作成功");
  14266. }
  14267. else
  14268. {
  14269. return Error("单位已签收,不能再次签收");
  14270. }
  14271. }
  14272. else
  14273. {
  14274. return Error("操作失败");
  14275. }
  14276. }
  14277. else
  14278. {
  14279. return Error("权限不足");
  14280. }
  14281. }
  14282. /// <summary>
  14283. /// 拒收工单
  14284. /// </summary>
  14285. /// <returns></returns>
  14286. //[Authority]
  14287. public ActionResult RefuseWorkOrder()
  14288. {
  14289. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14290. {
  14291. string workorderid = RequestString.GetFormString("workorderid");
  14292. string reason = RequestString.GetFormString("reason");
  14293. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14294. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14295. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14296. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId)
  14297. {
  14298. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 0
  14299. || modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  14300. {
  14301. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14302. {
  14303. #region 保存签收信息
  14304. modelT_Bus_AssignedInfo_Next.F_IsSure = 3;//签收
  14305. modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14306. modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14307. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14308. #endregion
  14309. #region 保存交办信息
  14310. //三级单位退单
  14311. modelT_Bus_AssignedInfo.F_IsNext = 4;
  14312. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14313. #endregion
  14314. #region 保存工单信息
  14315. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14316. keyValuePairs.Add("F_MainDeptID3", null);
  14317. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14318. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14319. #endregion
  14320. #region 插入操作记录
  14321. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14322. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14323. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14324. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14325. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14326. oper.F_Message = userinfo + " 拒收了工单,原因:" + reason;
  14327. oper.F_CreateUser = User.F_UserCode;
  14328. oper.F_CreateTime = DateTime.Now;
  14329. oper.F_IsDelete = 0;
  14330. operBLL.Add(oper);
  14331. #endregion
  14332. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId=" + modelT_Bus_WorkOrder.F_MainDeptId + " ");
  14333. if (user != null && user.Count > 0)
  14334. {
  14335. foreach (var it in user)
  14336. {
  14337. string count = "工单" + workorderid + "已被退回至本单位,请及时转派处理!";
  14338. // string msg = workorderid;
  14339. // bool n = SMSController.AddSmS(0, msg, count, it.F_Mobile, "181769", "");
  14340. string mag = "[\"" + workorderid + "\"]";
  14341. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240428561600512", mag,
  14342. workorderid);
  14343. }
  14344. }
  14345. //三级单位退回工单给二级单位时,增加短信提醒
  14346. //三级单位退回工单给二级单位时,增加短信提醒
  14347. trans.Complete();
  14348. }
  14349. return Success("操作成功");
  14350. }
  14351. else
  14352. {
  14353. return Error("单位未拒收");
  14354. }
  14355. }
  14356. else
  14357. {
  14358. return Error("操作失败");
  14359. }
  14360. }
  14361. else
  14362. {
  14363. return Error("权限不足");
  14364. }
  14365. }
  14366. /// <summary>
  14367. /// 拒绝工单
  14368. /// </summary>
  14369. /// <returns></returns>
  14370. //[Authority]
  14371. public ActionResult RejectWorkOrder()
  14372. {
  14373. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14374. {
  14375. string workorderid = RequestString.GetFormString("workorderid");
  14376. string reason = RequestString.GetFormString("reason");
  14377. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14378. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14379. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14380. ;
  14381. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  14382. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14383. {
  14384. if (modelT_Bus_AssignedInfo_Next.F_IsSure == 3)
  14385. {
  14386. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14387. {
  14388. #region 保存签收信息
  14389. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  14390. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14391. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14392. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14393. #endregion
  14394. #region 保存交办信息
  14395. //三级单位退单
  14396. modelT_Bus_AssignedInfo.F_IsNext = 1;
  14397. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14398. #endregion
  14399. #region 保存工单信息
  14400. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14401. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  14402. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14403. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14404. #endregion
  14405. #region 插入操作记录
  14406. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14407. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14408. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14409. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14410. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14411. oper.F_Message = userinfo + " 拒绝了工单,原因:" + reason;
  14412. oper.F_CreateUser = User.F_UserCode;
  14413. oper.F_CreateTime = DateTime.Now;
  14414. oper.F_IsDelete = 0;
  14415. operBLL.Add(oper);
  14416. #endregion
  14417. trans.Complete();
  14418. }
  14419. return Success("操作成功");
  14420. }
  14421. else
  14422. {
  14423. return Error("单位已签收,不能再次签收");
  14424. }
  14425. }
  14426. else
  14427. {
  14428. return Error("操作失败");
  14429. }
  14430. }
  14431. else
  14432. {
  14433. return Error("权限不足");
  14434. }
  14435. }
  14436. /// <summary>
  14437. /// 二级单位退回工单
  14438. /// </summary>
  14439. /// <returns></returns>
  14440. //[Authority]
  14441. public ActionResult BackWorkOrder()
  14442. {
  14443. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "EJWLDW")
  14444. {
  14445. string workorderid = RequestString.GetFormString("workorderid");
  14446. string reason = RequestString.GetFormString("reason");
  14447. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14448. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14449. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14450. ;
  14451. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null
  14452. && modelT_Bus_AssignedInfo.F_MainDeptId == User.F_DeptId)
  14453. {
  14454. if (modelT_Bus_AssignedInfo_Next.F_FeedbackTime != null)
  14455. {
  14456. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14457. {
  14458. #region
  14459. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = null;
  14460. modelT_Bus_AssignedInfo_Next.F_IsSure = 0;
  14461. // modelT_Bus_AssignedInfo_Next.F_SureUser = User.F_UserCode;
  14462. // modelT_Bus_AssignedInfo_Next.F_SureTime = DateTime.Now;
  14463. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14464. #endregion
  14465. #region
  14466. //三级单位退单
  14467. modelT_Bus_AssignedInfo.F_IsNext = 1;
  14468. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14469. #endregion
  14470. #region 保存工单信息
  14471. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14472. keyValuePairs.Add("F_MainDeptID3", modelT_Bus_AssignedInfo_Next.F_MainDeptId.ToString());
  14473. //modelT_Bus_WorkOrder.F_MainDeptID3 = null;
  14474. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14475. #endregion
  14476. #region 插入操作记录
  14477. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14478. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14479. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14480. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14481. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14482. oper.F_Message = userinfo + " 退回了工单,原因:" + reason;
  14483. oper.F_CreateUser = User.F_UserCode;
  14484. oper.F_CreateTime = DateTime.Now;
  14485. oper.F_IsDelete = 0;
  14486. operBLL.Add(oper);
  14487. #endregion
  14488. trans.Complete();
  14489. }
  14490. return Success("操作成功");
  14491. }
  14492. else
  14493. {
  14494. return Error("单位未办理,不能退回重办");
  14495. }
  14496. }
  14497. else
  14498. {
  14499. return Error("操作失败");
  14500. }
  14501. }
  14502. else
  14503. {
  14504. return Error("权限不足");
  14505. }
  14506. }
  14507. /// <summary>
  14508. /// 处理工单
  14509. /// </summary>
  14510. /// <returns></returns>
  14511. //[Authority]
  14512. public ActionResult DealWorkOrder()
  14513. {
  14514. if (User.F_RoleCode == "EJWLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14515. {
  14516. string workorderid = RequestString.GetFormString("workorderid");
  14517. string dealman = RequestString.GetFormString("dealman");
  14518. string result = RequestString.GetFormString("result");
  14519. string files = RequestString.GetFormString("files");
  14520. int state = RequestString.GetInt("state", 0);
  14521. int dealid = RequestString.GetInt("dealid", 0);
  14522. int isproresult = RequestString.GetInt("isproresult", 0);//是否有处理结果:0默认,1是,2否
  14523. string prosituation = RequestString.GetFormString("prosituation");
  14524. string dealcontact = RequestString.GetFormString("dealcontact");
  14525. string connecttime = RequestString.GetFormString("connecttime");
  14526. string connectmode = RequestString.GetFormString("connectmode");
  14527. string replycontent = RequestString.GetFormString("replycontent");
  14528. int isstaisfied = RequestString.GetInt("isstaisfied", 0);
  14529. string duties = RequestString.GetFormString("duties");//职务
  14530. string situation = RequestString.GetFormString("situation");
  14531. string AuditUser = RequestString.GetFormString("AuditUser");
  14532. string post = RequestString.GetFormString("post");
  14533. string auditContact = RequestString.GetFormString("auditContact");//审核领导职务
  14534. string feedbackreason = RequestString.GetFormString("feedbackReason");//办理操作里
  14535. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14536. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14537. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next = new BLL.T_Bus_AssignedInfo_Next().GetNewModelByWorkOrderID(workorderid);
  14538. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new Model.T_Bus_Feedback_Next();
  14539. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo_Next != null && (modelT_Bus_AssignedInfo_Next.F_MainDeptId == User.F_DeptId || modelT_Bus_AssignedInfo_Next
  14540. .F_OtherDeptIds.Contains(User.F_DeptId.ToString()))
  14541. && modelT_Bus_AssignedInfo_Next.F_IsSure == 1)
  14542. {
  14543. //if (modelT_Bus_WorkOrder.F_WorkState == 4 || modelT_Bus_WorkOrder.F_WorkState == 5)
  14544. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay
  14545. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  14546. {
  14547. if (modelT_Bus_AssignedInfo.F_IsNext == 2)
  14548. {
  14549. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14550. {
  14551. if (dealid == 0)
  14552. {
  14553. #region 插入反馈记录
  14554. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14555. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  14556. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  14557. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  14558. #region 20200114新增字段 zhengbingbing
  14559. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  14560. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  14561. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  14562. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  14563. DateTime contime = DateTime.Now;
  14564. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  14565. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  14566. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  14567. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  14568. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14569. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  14570. modelT_Bus_Feedback_Next.F_Situation = situation;
  14571. #endregion
  14572. modelT_Bus_Feedback_Next.F_File = files;
  14573. modelT_Bus_Feedback_Next.F_IsAudit = 0;
  14574. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  14575. modelT_Bus_Feedback_Next.F_AuditPost = post;
  14576. modelT_Bus_Feedback_Next.F_IsDelete = 0;
  14577. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  14578. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  14579. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  14580. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  14581. modelT_Bus_Feedback_Next.F_State = state;
  14582. modelT_Bus_Feedback_Next.F_Type = 1;
  14583. modelT_Bus_Feedback_Next.F_AuditContact = auditContact;
  14584. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  14585. new BLL.T_Bus_Feedback_Next().Add(modelT_Bus_Feedback_Next);
  14586. #endregion
  14587. }
  14588. else
  14589. {
  14590. #region 修改反馈记录
  14591. modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(dealid);
  14592. if (modelT_Bus_Feedback_Next != null)
  14593. {
  14594. modelT_Bus_Feedback_Next.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14595. modelT_Bus_Feedback_Next.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;//交办id
  14596. modelT_Bus_Feedback_Next.F_DealUser = dealman;
  14597. modelT_Bus_Feedback_Next.F_Result = result;//反馈内容
  14598. modelT_Bus_Feedback_Next.F_File = files;
  14599. #region 20200114新增字段 zhengbingbing
  14600. modelT_Bus_Feedback_Next.F_IsProResult = isproresult;//是否有处理结果:0默认,1是,2否
  14601. modelT_Bus_Feedback_Next.F_ProSituation = prosituation;//处理情况/方案/进程
  14602. modelT_Bus_Feedback_Next.F_IsProtect = modelT_Bus_WorkOrder.F_IsProtect;//是否保密(0:否1:是)
  14603. modelT_Bus_Feedback_Next.F_DealUserContact = dealcontact;//承办人联系方式
  14604. DateTime contime = DateTime.Now;
  14605. if (connecttime != "" && DateTime.TryParse(connecttime, out contime))
  14606. modelT_Bus_Feedback_Next.F_ConnectTime = DateTime.Parse(connecttime);//沟通时间
  14607. modelT_Bus_Feedback_Next.F_ConnectMode = connectmode;//沟通方式
  14608. modelT_Bus_Feedback_Next.F_ReplyContent = replycontent;//答复内容
  14609. modelT_Bus_Feedback_Next.F_IsSatisfied = isstaisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14610. modelT_Bus_Feedback_Next.F_Duties = duties;//职务
  14611. modelT_Bus_Feedback_Next.F_Situation = situation;
  14612. #endregion
  14613. modelT_Bus_Feedback_Next.F_CreateUser = User.F_UserCode;//办理人
  14614. modelT_Bus_Feedback_Next.F_AuditUser = AuditUser;
  14615. modelT_Bus_Feedback_Next.F_CreateTime = DateTime.Now;//办理时间
  14616. modelT_Bus_Feedback_Next.F_CreateDeptId = User.F_DeptId;//办理部门
  14617. modelT_Bus_Feedback_Next.F_IsFeedEnd = 1;
  14618. modelT_Bus_Feedback_Next.F_State = state;
  14619. modelT_Bus_Feedback_Next.F_FeedbackReason = feedbackreason;
  14620. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  14621. }
  14622. #endregion
  14623. }
  14624. if (modelT_Bus_Feedback_Next != null && modelT_Bus_Feedback_Next.F_State == 1)
  14625. {
  14626. #region 保存交办信息
  14627. modelT_Bus_AssignedInfo.F_IsNext = 3;
  14628. new BLL.T_Bus_AssignedInfo().Update(modelT_Bus_AssignedInfo);
  14629. #endregion
  14630. #region 保存派单信息
  14631. modelT_Bus_AssignedInfo_Next.F_FeedbackTime = DateTime.Now;
  14632. if (modelT_Bus_AssignedInfo_Next.F_LimitTime < DateTime.Now)
  14633. {
  14634. modelT_Bus_AssignedInfo_Next.F_IsOverdue = 1;
  14635. }
  14636. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next);
  14637. #endregion
  14638. #region 删除草稿信息
  14639. var cglist = new BLL.T_Bus_Feedback_Next().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  14640. foreach (var cg in cglist)
  14641. {
  14642. cg.F_IsDelete = 1;
  14643. cg.F_DeleteUser = User.F_UserCode;
  14644. cg.F_DeleteTime = DateTime.Now;
  14645. new BLL.T_Bus_Feedback_Next().Update(cg);
  14646. }
  14647. #endregion
  14648. #region 插入操作记录
  14649. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14650. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14651. oper.F_AssignedId = modelT_Bus_AssignedInfo_Next.F_Id;
  14652. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14653. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14654. oper.F_Message = userinfo + " 办理了工单";
  14655. oper.F_CreateUser = User.F_UserCode;
  14656. oper.F_CreateTime = DateTime.Now;
  14657. oper.F_IsDelete = 0;
  14658. operBLL.Add(oper);
  14659. //推送消息表
  14660. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14661. #endregion
  14662. }
  14663. Task.Run(() =>
  14664. {
  14665. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_2");
  14666. }).ContinueWith(p =>
  14667. {
  14668. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  14669. });
  14670. trans.Complete();
  14671. }
  14672. return Success("操作成功", modelT_Bus_AssignedInfo_Next.F_Id);
  14673. }
  14674. else
  14675. {
  14676. return Error("已经办理过了");
  14677. }
  14678. }
  14679. else
  14680. {
  14681. return Error("已经办理过了");
  14682. }
  14683. }
  14684. else
  14685. {
  14686. return Error("操作失败");
  14687. }
  14688. }
  14689. else
  14690. {
  14691. return Error("权限不足");
  14692. }
  14693. }
  14694. private BLL.T_Cus_CustomerBase cusBLL = new BLL.T_Cus_CustomerBase();
  14695. /// <summary>
  14696. /// 保存客户档案
  14697. /// </summary>
  14698. /// <param name="telphone"></param>
  14699. /// <param name="name"></param>
  14700. /// <param name="phone"></param>
  14701. /// <param name="countryid"></param>
  14702. /// <param name="address"></param>
  14703. /// <returns></returns>
  14704. private void saveCus(string name, string phone, string address)
  14705. {
  14706. int res = 0;
  14707. Model.T_Cus_CustomerBase cusmodel = new Model.T_Cus_CustomerBase();
  14708. if (!string.IsNullOrWhiteSpace(phone))
  14709. {
  14710. cusmodel = cusBLL.GetModelBy(phone, name);
  14711. if (cusmodel == null)
  14712. {
  14713. cusmodel = new Model.T_Cus_CustomerBase();
  14714. cusmodel.F_Address = address;
  14715. cusmodel.F_CustomerName = name;
  14716. cusmodel.F_Mobile = phone;
  14717. cusmodel.F_DeleteFlag = 0;
  14718. res = cusBLL.Add(cusmodel);
  14719. }
  14720. }
  14721. }
  14722. /// <summary>
  14723. /// 审核处理工单
  14724. /// </summary>
  14725. /// <returns></returns>
  14726. //[Authority]
  14727. public ActionResult AuditSplitWorkOrder()
  14728. {
  14729. if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  14730. {
  14731. string workorderid = RequestString.GetFormString("workorderid");
  14732. int state = RequestString.GetInt("state", 0);
  14733. string reason = RequestString.GetFormString("reason");
  14734. int backid = RequestString.GetInt("backid", 0);
  14735. string files = RequestString.GetFormString("files");
  14736. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  14737. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  14738. Model.T_Bus_Feedback_Next modelT_Bus_Feedback_Next = new BLL.T_Bus_Feedback_Next().GetModel(backid);
  14739. if (modelT_Bus_WorkOrder != null && modelT_Bus_AssignedInfo != null && modelT_Bus_Feedback_Next != null)
  14740. {
  14741. if (modelT_Bus_Feedback_Next.F_IsAudit.Value == 0)
  14742. {
  14743. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  14744. {
  14745. modelT_Bus_Feedback_Next.F_IsAudit = state;
  14746. modelT_Bus_Feedback_Next.F_AuditUser = User.F_UserCode;
  14747. modelT_Bus_Feedback_Next.F_AuditTime = DateTime.Now;
  14748. modelT_Bus_Feedback_Next.F_AuditReason = reason;
  14749. new BLL.T_Bus_Feedback_Next().Update(modelT_Bus_Feedback_Next);
  14750. string strmsg = "";
  14751. string message = User.F_UserName + "于时间(" + DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分ss秒") + ")回复:" + modelT_Bus_Feedback_Next.F_Result; ;
  14752. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14753. if (state == 1)
  14754. {
  14755. strmsg = "同意";
  14756. #region 插入反馈记录
  14757. Model.T_Bus_Feedback modelT_Bus_Feedback = new Model.T_Bus_Feedback();
  14758. modelT_Bus_Feedback.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单编号
  14759. modelT_Bus_Feedback.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;//交办id
  14760. modelT_Bus_Feedback.F_DealUser = modelT_Bus_Feedback_Next.F_DealUser;
  14761. modelT_Bus_Feedback.F_Result = message;//反馈内容
  14762. #region 20200114新增字段 zhengbingbing
  14763. modelT_Bus_Feedback.F_IsProResult = modelT_Bus_Feedback_Next.F_IsProResult;//是否有处理结果:0默认,1是,2否
  14764. modelT_Bus_Feedback.F_ProSituation = modelT_Bus_Feedback_Next.F_ProSituation;//处理情况/方案/进程
  14765. modelT_Bus_Feedback.F_IsProtect = modelT_Bus_Feedback_Next.F_IsProtect;//是否保密(0:否1:是)
  14766. modelT_Bus_Feedback.F_DealUserContact = modelT_Bus_Feedback_Next.F_DealUserContact;//承办人联系方式
  14767. modelT_Bus_Feedback.F_ConnectTime = modelT_Bus_Feedback_Next.F_ConnectTime;//沟通时间
  14768. modelT_Bus_Feedback.F_ConnectMode = modelT_Bus_Feedback_Next.F_ConnectMode;//沟通方式
  14769. modelT_Bus_Feedback.F_ReplyContent = modelT_Bus_Feedback_Next.F_ReplyContent;//答复内容
  14770. modelT_Bus_Feedback.F_IsSatisfied = modelT_Bus_Feedback_Next.F_IsSatisfied;//是否满意:0未评价,1满意,2基本满意,3不满意
  14771. #endregion
  14772. modelT_Bus_Feedback.F_File = modelT_Bus_Feedback_Next.F_File;
  14773. modelT_Bus_Feedback.F_IsAudit = 0;
  14774. modelT_Bus_Feedback.F_IsDelete = 0;
  14775. modelT_Bus_Feedback.F_CreateUser = User.F_UserCode;//办理人
  14776. modelT_Bus_Feedback.F_CreateTime = DateTime.Now;//办理时间
  14777. modelT_Bus_Feedback.F_CreateDeptId = User.F_DeptId;//办理部门
  14778. modelT_Bus_Feedback.F_IsFeedEnd = 1;
  14779. modelT_Bus_Feedback.F_State = state;
  14780. modelT_Bus_Feedback.F_Type = 1;
  14781. new BLL.T_Bus_Feedback().Add(modelT_Bus_Feedback);
  14782. #endregion
  14783. if (modelT_Bus_AssignedInfo.F_LimitTime < DateTime.Now)
  14784. {
  14785. modelT_Bus_AssignedInfo.F_IsOverdue = 1;
  14786. keyValuePairs.Add("F_IsOverdue", 1);
  14787. // modelT_Bus_WorkOrder.F_IsOverdue = 1;
  14788. }
  14789. #region 保存工单信息
  14790. //modelT_Bus_WorkOrder.F_WorkState = 6;//待回访
  14791. if (modelT_Bus_Feedback.F_IsProResult == 2)
  14792. {
  14793. keyValuePairs.Add("F_IsProResult", 2);
  14794. // modelT_Bus_WorkOrder.F_IsProResult = 2;
  14795. // modelT_Bus_WorkOrder.F_IsProResultState = IsProResultState;
  14796. keyValuePairs.Add("F_Unsuccessful", modelT_Bus_Feedback.F_ProSituation);
  14797. // modelT_Bus_WorkOrder.F_Unsuccessful = modelT_Bus_Feedback.F_ProSituation;
  14798. }
  14799. else
  14800. {
  14801. keyValuePairs.Add("F_ToBereply", 1);
  14802. keyValuePairs.Add("F_IsProResult", 1);
  14803. // modelT_Bus_WorkOrder.F_ToBereply = 1;
  14804. // modelT_Bus_WorkOrder.F_IsProResult = 1;
  14805. }
  14806. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.dealed);
  14807. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealed;//待回访
  14808. keyValuePairs.Add("F_Result", message);
  14809. // modelT_Bus_WorkOrder.F_Result = message;
  14810. keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback_Next.F_CreateDeptId);
  14811. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback_Next.F_CreateDeptId;
  14812. keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback_Next.F_CreateUser);
  14813. // modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback_Next.F_CreateUser;
  14814. keyValuePairs.Add("F_DealTime", DateTime.Now);
  14815. // modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  14816. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  14817. #endregion
  14818. #region 保存交办信息
  14819. modelT_Bus_AssignedInfo.F_FeedbackTime = DateTime.Now;
  14820. assignBLL.Update(modelT_Bus_AssignedInfo);
  14821. #endregion
  14822. #region 删除草稿信息
  14823. var cglist = new BLL.T_Bus_Feedback().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateDeptId='" + User.F_DeptId + "'");
  14824. foreach (var cg in cglist)
  14825. {
  14826. cg.F_IsDelete = 1;
  14827. cg.F_DeleteUser = User.F_UserCode;
  14828. cg.F_DeleteTime = DateTime.Now;
  14829. new BLL.T_Bus_Feedback().Update(cg);
  14830. }
  14831. #endregion
  14832. #region 处理协办单位
  14833. 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 + "'");
  14834. foreach (var xb in xblist)
  14835. {
  14836. xb.F_State = 2;
  14837. xb.F_SureUser = User.F_UserCode;
  14838. xb.F_SureTime = DateTime.Now;
  14839. new BLL.T_Bus_AssignedItemInfo().Update(xb);
  14840. }
  14841. #endregion
  14842. Task.Run(() =>
  14843. {
  14844. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "handle_info_1");
  14845. if (!string.IsNullOrEmpty(files))
  14846. {
  14847. material_info(modelT_Bus_WorkOrder.F_WorkOrderId, files, modelT_Bus_Feedback.F_Id, "20");
  14848. }
  14849. }).ContinueWith(p =>
  14850. {
  14851. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  14852. });
  14853. }
  14854. else if (state == 2)
  14855. {
  14856. strmsg = "拒绝";
  14857. Model.T_Bus_AssignedInfo_Next modelT_Bus_AssignedInfo_Next1 = new BLL.T_Bus_AssignedInfo_Next().GetModel(modelT_Bus_Feedback_Next.F_AssignedId.Value);
  14858. modelT_Bus_AssignedInfo_Next1.F_FeedbackTime = null;
  14859. new BLL.T_Bus_AssignedInfo_Next().Update(modelT_Bus_AssignedInfo_Next1);
  14860. modelT_Bus_AssignedInfo.F_IsNext = 2;
  14861. assignBLL.Update(modelT_Bus_AssignedInfo);
  14862. }
  14863. #region 插入操作记录
  14864. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14865. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  14866. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  14867. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  14868. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14869. oper.F_Message = userinfo + " " + strmsg + "了此处理";
  14870. if (!string.IsNullOrWhiteSpace(reason))
  14871. oper.F_Message = oper.F_Message + ",原因:" + reason;
  14872. oper.F_CreateUser = User.F_UserCode;
  14873. oper.F_CreateTime = DateTime.Now;
  14874. oper.F_IsDelete = 0;
  14875. operBLL.Add(oper);
  14876. //推送消息表
  14877. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_WorkOrder.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  14878. #endregion
  14879. trans.Complete();
  14880. }
  14881. return Success("操作成功");
  14882. }
  14883. else
  14884. {
  14885. return Error("已经审核过了");
  14886. }
  14887. }
  14888. else
  14889. {
  14890. return Error("操作失败");
  14891. }
  14892. }
  14893. else
  14894. {
  14895. return Error("权限不足");
  14896. }
  14897. }
  14898. /// <summary>
  14899. /// 发送评价短信
  14900. /// </summary>
  14901. /// <param name="phone"></param>
  14902. /// <param name="WorkOrderId"></param>
  14903. /// <returns></returns>
  14904. public void SendVisits(string phone, string WorkOrderId, string deptname, string code)
  14905. {
  14906. if (!string.IsNullOrEmpty(phone))
  14907. {
  14908. if (phone.Trim().Length > 11)
  14909. phone = phone.Substring(1, 11);
  14910. }
  14911. var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  14912. if (model != null)
  14913. {
  14914. string content = ""; string temp = "680847330371186688";
  14915. if (model.F_InfoSource == 1 || model.F_InfoSource == 3 || model.F_InfoSource == 6)
  14916. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  14917. else
  14918. {
  14919. temp = "681914832337539072";
  14920. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  14921. }
  14922. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",\"]";
  14923. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, WorkOrderId);
  14924. if (n == "")
  14925. {
  14926. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14927. keyValuePairs.Add("F_IsSms", "1");
  14928. // model.F_IsSms = 1;
  14929. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  14930. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14931. oper.F_WorkOrderId = model.F_WorkOrderId;
  14932. oper.F_State = model.F_WorkState;
  14933. oper.F_CallRecordId = model.F_CallRecordId;
  14934. oper.F_File = model.F_File;
  14935. string userinfo = deptname + "(" + code + ")";
  14936. oper.F_Message = userinfo + "发送了市民评价短信";
  14937. oper.F_CreateUser = code;
  14938. oper.F_CreateTime = DateTime.Now;
  14939. oper.F_IsDelete = 0;
  14940. operBLL.Add(oper);
  14941. }
  14942. }
  14943. }
  14944. /// <summary>
  14945. /// 发送评价短信
  14946. /// </summary>
  14947. /// <param name="phone"></param>
  14948. /// <param name="WorkOrderId"></param>
  14949. /// <returns></returns>
  14950. public ActionResult SendVisit(string phone, string WorkOrderId)
  14951. {
  14952. if (!string.IsNullOrEmpty(phone))
  14953. {
  14954. if (phone.Trim().Length > 11)
  14955. phone = phone.Substring(1, 11);
  14956. }
  14957. else
  14958. {
  14959. return Error("请输入号码");
  14960. }
  14961. var model = new BLL.T_Bus_WorkOrder().GetModel(WorkOrderId);
  14962. if (model != null)
  14963. {
  14964. string content = ""; string temp = "680847330371186688";
  14965. if (model.F_InfoSource == 1 || model.F_InfoSource == 3 || model.F_InfoSource == 6)
  14966. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  14967. else
  14968. {
  14969. temp = "681914832337539072";
  14970. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  14971. }
  14972. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + model.F_WorkOrderId + ",\"]";
  14973. string n = SmsNewController.AddSmS(0, content, phone, temp, mag, WorkOrderId);
  14974. if (n == "")
  14975. {
  14976. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  14977. keyValuePairs.Add("F_IsSms", "1");
  14978. // model.F_IsSms = 1;
  14979. new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  14980. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  14981. oper.F_WorkOrderId = model.F_WorkOrderId;
  14982. oper.F_State = model.F_WorkState;
  14983. oper.F_CallRecordId = model.F_CallRecordId;
  14984. oper.F_File = model.F_File;
  14985. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  14986. oper.F_Message = userinfo + "发送了市民评价短信";
  14987. oper.F_CreateUser = User.F_UserCode;
  14988. oper.F_CreateTime = DateTime.Now;
  14989. oper.F_IsDelete = 0;
  14990. operBLL.Add(oper);
  14991. return Success("发送成功");
  14992. }
  14993. else
  14994. return Error(n);
  14995. // if (model.F_InfoSource == 1 || model.F_InfoSource == 2501)
  14996. // {
  14997. // //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  14998. // string content = "您提交的" + model.F_ComTitle + "事项的办理结果为:" + model.F_Result + "请于15天内回复:“$" + model.F_Id + "#”+1、满意,2、基本满意,3、不满意+#评议内容,进行评价。(不超过60字)";
  14999. // string mag = "[\"" + model.F_ComTitle + "\",\"" + model.F_Result + "\",\"" + model.F_Id + "\"]";
  15000. // string n = SmsNewController.AddSmS(0, content, phone, "660571546305982464", mag, WorkOrderId);
  15001. // if (n == "")
  15002. // {
  15003. // Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15004. // keyValuePairs.Add("F_IsSms", "1");
  15005. // // model.F_IsSms = 1;
  15006. // new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  15007. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15008. // oper.F_WorkOrderId = model.F_WorkOrderId;
  15009. // oper.F_State = model.F_WorkState;
  15010. // oper.F_CallRecordId = model.F_CallRecordId;
  15011. // oper.F_File = model.F_File;
  15012. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15013. // oper.F_Message = userinfo + "发送了市民评价短信";
  15014. // oper.F_CreateUser = User.F_UserCode;
  15015. // oper.F_CreateTime = DateTime.Now;
  15016. // oper.F_IsDelete = 0;
  15017. // operBLL.Add(oper);
  15018. // return Success("发送成功");
  15019. // }
  15020. // else
  15021. // return Error(n);
  15022. // }
  15023. // else
  15024. // {
  15025. // // if (model.F_InfoSource == 2 || model.F_InfoSource == 2458)
  15026. //// {
  15027. // //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  15028. // string content = "您诉求的诉求已完成,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn),登录后查看办结结果对执行情况进行评价,谢谢";
  15029. // string n = SmsNewController.AddSmS(0, content, phone, "614918587799461888", "", WorkOrderId);
  15030. // if (n == "")
  15031. // {
  15032. // Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15033. // keyValuePairs.Add("F_IsSms", "1");
  15034. // // model.F_IsSms = 1;
  15035. // new BLL.T_Bus_WorkOrder().UpdateWorkOrder(model.F_Id, keyValuePairs);
  15036. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15037. // oper.F_WorkOrderId = model.F_WorkOrderId;
  15038. // oper.F_State = model.F_WorkState;
  15039. // oper.F_CallRecordId = model.F_CallRecordId;
  15040. // oper.F_File = model.F_File;
  15041. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15042. // oper.F_Message = userinfo + "发送了市民评价短信";
  15043. // oper.F_CreateUser = User.F_UserCode;
  15044. // oper.F_CreateTime = DateTime.Now;
  15045. // oper.F_IsDelete = 0;
  15046. // operBLL.Add(oper);
  15047. // return Success("发送成功");
  15048. // }
  15049. // else
  15050. // return Error(n);
  15051. // // }
  15052. // }
  15053. }
  15054. return Error("发送失败");
  15055. }
  15056. /// <summary>
  15057. /// 审核派单
  15058. /// </summary>
  15059. /// <returns></returns>
  15060. public ActionResult AuditDispatch()
  15061. {
  15062. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15063. {
  15064. string workorderid = RequestString.GetFormString("workorderid");
  15065. int nexttype = RequestString.GetInt("nexttype", 0);//0审核通过1审核不通过
  15066. string cbreason = RequestString.GetFormString("cbreason");//审核
  15067. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15068. Model.T_Bus_ToExamine modelT_Bus_ToExamine = new BLL.T_Bus_ToExamine().GetNewModelByWorkOrderID(workorderid);
  15069. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15070. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = new T_Bus_AssignedInfo();
  15071. if (modelT_Bus_WorkOrder != null)
  15072. {
  15073. if (modelT_Bus_WorkOrder.F_WorkState == 1 || modelT_Bus_WorkOrder.F_WorkState == 11 && modelT_Bus_ToExamine != null)
  15074. {
  15075. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15076. {
  15077. modelT_Bus_ToExamine.F_IsDelete = 0;
  15078. if (nexttype == 1)
  15079. modelT_Bus_ToExamine.F_State = 1;
  15080. else
  15081. modelT_Bus_ToExamine.F_State = 0;
  15082. modelT_Bus_ToExamine.F_Type = nexttype;
  15083. modelT_Bus_ToExamine.AuditUser = User.F_UserCode;
  15084. modelT_Bus_ToExamine.F_Result = cbreason;
  15085. var n = new BLL.T_Bus_ToExamine().Update(modelT_Bus_ToExamine);
  15086. if (n)
  15087. {
  15088. var opt = "审核通过"; var cbreasons = "";
  15089. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15090. #region
  15091. if (nexttype == 1)
  15092. {
  15093. #region 保存工单信息
  15094. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  15095. keyValuePairs2.Add("F_MainDeptId", null);
  15096. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  15097. #endregion
  15098. cbreasons = ",拒绝原因:" + cbreason;
  15099. #endregion
  15100. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15101. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15102. oper.F_AssignedId = modelT_Bus_ToExamine.F_AssignedId;
  15103. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15104. oper.F_Message = userinfo + " 审核拒绝了工单" + cbreasons;
  15105. oper.F_CreateUser = User.F_UserCode;
  15106. oper.F_CreateTime = DateTime.Now;
  15107. oper.F_IsDelete = 0;
  15108. operBLL.Add(oper);
  15109. }
  15110. else
  15111. {
  15112. int day = 7;
  15113. if (modelT_Bus_ToExamine.F_LimitTime != null && modelT_Bus_ToExamine.F_LimitTime > 0)
  15114. {
  15115. day = (int)modelT_Bus_ToExamine.F_LimitTime + 1;
  15116. }
  15117. DataTable dt = DbHelperSQL.Query("select top " + day + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  15118. var resdatetime = dt.Rows[day - 1]["F_OffDate"].ToString();
  15119. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  15120. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + modelT_Bus_ToExamine.F_MainDeptId + ")");
  15121. int t = 0;
  15122. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  15123. t = 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()) + 1;
  15124. var curuser = User;
  15125. if (deptlist != null)
  15126. {
  15127. if (deptlist.Count == 1)
  15128. {
  15129. #region 交办一个单位
  15130. var maindept = deptlist.FirstOrDefault();
  15131. var premodeldept = department((int)maindept.F_PartentId);
  15132. #region 插入交办记录
  15133. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15134. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  15135. if (maindept.F_IsDept == 2)
  15136. modelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  15137. else
  15138. modelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  15139. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  15140. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  15141. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  15142. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  15143. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15144. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  15145. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15146. modelT_Bus_AssignedInfo.F_IsSure = 0;
  15147. modelT_Bus_AssignedInfo.F_IsReload = t;
  15148. modelT_Bus_AssignedInfo.F_IsNext = 0;
  15149. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  15150. modelT_Bus_AssignedInfo.F_Id = assignBLL.Add(modelT_Bus_AssignedInfo);
  15151. #endregion
  15152. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  15153. {
  15154. // Task.Run(() =>
  15155. // {
  15156. #region 保存工单信息
  15157. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15158. if (modelT_Bus_WorkOrder.F_Level == 2)
  15159. {
  15160. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  15161. //modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(limittimes);
  15162. }
  15163. else
  15164. {
  15165. keyValuePairs1.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  15166. // modelT_Bus_WorkOrder.F_LimitTime = Convert.ToDateTime(resdatetime);
  15167. }
  15168. if (maindept.F_IsDept == 2)
  15169. {
  15170. keyValuePairs1.Add("F_MainDeptId", premodeldept.F_DeptId);
  15171. modelT_Bus_WorkOrder.F_MainDeptId = premodeldept.F_DeptId;
  15172. }
  15173. else
  15174. {
  15175. keyValuePairs1.Add("F_MainDeptId", maindept.F_DeptId);
  15176. modelT_Bus_WorkOrder.F_MainDeptId = maindept.F_DeptId;
  15177. }
  15178. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  15179. {
  15180. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  15181. if (content != null && content.Length > 0)
  15182. {
  15183. string[] deptid = content[0].Split(',');
  15184. if (deptid != null && deptid.Length > 0)
  15185. {
  15186. keyValuePairs1.Add("F_Content", content[0].Remove(0, deptid[0].Length + 1));
  15187. }
  15188. }
  15189. }
  15190. keyValuePairs1.Add("F_OtherDeptIds", "");
  15191. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  15192. keyValuePairs1.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  15193. // modelT_Bus_WorkOrder.F_AssignUser = curuser.F_UserCode;
  15194. keyValuePairs1.Add("F_AssignTime", DateTime.Now);
  15195. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  15196. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  15197. {
  15198. keyValuePairs1.Add("F_IsReload", t);
  15199. keyValuePairs1.Add("F_IsOverdue", 0);
  15200. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  15201. modelT_Bus_WorkOrder.F_WorkState = 8;
  15202. }
  15203. else
  15204. {
  15205. if (maindept.F_IsDept == 2)
  15206. {
  15207. modelT_Bus_WorkOrder.F_WorkState = 4;
  15208. keyValuePairs1.Add("F_WorkState", 4);
  15209. }
  15210. else
  15211. {
  15212. modelT_Bus_WorkOrder.F_WorkState = 2;
  15213. keyValuePairs1.Add("F_WorkState", 2);
  15214. }
  15215. }
  15216. keyValuePairs1.Add("F_IsSendBack", 0);
  15217. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  15218. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  15219. #endregion
  15220. // }).ContinueWith(q =>
  15221. // {
  15222. string DeptName = "";
  15223. if (maindept.F_IsDept == 2)
  15224. {
  15225. DeptName = premodeldept.F_DeptName;
  15226. }
  15227. else
  15228. DeptName = maindept.F_DeptName;
  15229. var msgss = userinfo + " 审核通过了工单,主办单位:" + DeptName;
  15230. if (!string.IsNullOrEmpty(cbreason))
  15231. {
  15232. msgss += ",审核意见:" + cbreason;
  15233. }
  15234. if (maindept.F_IsDept == 2)
  15235. {
  15236. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  15237. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, cbreason, curuser).ContinueWith(p =>
  15238. {
  15239. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15240. });
  15241. }
  15242. else
  15243. {
  15244. Task.Run(() =>
  15245. {
  15246. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  15247. }).ContinueWith(p =>
  15248. {
  15249. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15250. });
  15251. }
  15252. #region 插入推送消息
  15253. if (maindept.F_IsDept == 2)
  15254. {
  15255. var users = userBLL.GetModelList(" F_DeptId='" + premodeldept.F_DeptId + "' ");
  15256. foreach (var u in users)
  15257. {
  15258. if (curuser.F_RoleCode == "DBZY")
  15259. {
  15260. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  15261. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  15262. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  15263. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  15264. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  15265. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  15266. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode);
  15267. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  15268. }
  15269. else
  15270. {
  15271. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  15272. {
  15273. continue;
  15274. }
  15275. else
  15276. {
  15277. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",已转至三级单位,请在已派单菜单查看。";
  15278. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  15279. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  15280. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  15281. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681555443768397824", mag,
  15282. modelT_Bus_WorkOrder.F_WorkOrderId);
  15283. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  15284. }
  15285. }
  15286. }
  15287. }
  15288. else
  15289. {
  15290. var users = userBLL.GetModelList(" F_DeptId='" + maindept.F_DeptId + "' ");
  15291. foreach (var u in users)
  15292. {
  15293. if (curuser.F_RoleCode == "DBZY")
  15294. {
  15295. string count = "你有督办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  15296. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  15297. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "242065", "");
  15298. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  15299. string v = SmsNewController.AddSmS(0, count, u.F_Mobile,
  15300. "681240181093470208", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  15301. string c = PushMessageController.PushApp("督办工单提醒", count, u.F_UserCode);
  15302. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  15303. }
  15304. else
  15305. {
  15306. if (u.F_RoleCode == "WLDW" && u.F_IsSms != null && u.F_IsSms == 1)
  15307. {
  15308. continue;
  15309. }
  15310. else
  15311. {
  15312. string count = "你有新工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理。";
  15313. // string msgcount = modelT_Bus_WorkOrder.F_WorkOrderId;
  15314. // bool v = SMSController.AddSmS(0, msgcount, count, u.F_Mobile, "153305", "");
  15315. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  15316. string v = SmsNewController.AddSmS(0, count, u.F_Mobile, "681240888655478784", mag,
  15317. modelT_Bus_WorkOrder.F_WorkOrderId);
  15318. string c = PushMessageController.PushApp("新工单提醒", count, u.F_UserCode);
  15319. }
  15320. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  15321. }
  15322. }
  15323. }
  15324. #endregion
  15325. // });
  15326. }
  15327. #endregion
  15328. }
  15329. else
  15330. {
  15331. // Task.Run(() =>
  15332. // {
  15333. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  15334. string newids = ""; string errdeptid = ""; string deptname = "";
  15335. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  15336. if (curuser.F_RoleCode == "DBZY")
  15337. {
  15338. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  15339. }
  15340. object obj = new object();
  15341. List<Task> taskList = new List<Task>();
  15342. foreach (var deptinfo in deptlist)
  15343. {
  15344. deptname += deptinfo.F_DeptName + ",";
  15345. #region 新增工单
  15346. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  15347. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  15348. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  15349. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  15350. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  15351. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  15352. string deptcontent = "";
  15353. if (!string.IsNullOrEmpty(modelT_Bus_ToExamine.F_Content))
  15354. {
  15355. string[] content = modelT_Bus_ToExamine.F_Content.Split('ぶ');
  15356. if (content != null && content.Length > 0)
  15357. {
  15358. foreach (var it in content)
  15359. {
  15360. string[] deptid = it.Split(',');
  15361. if (deptid != null && deptid.Length > 0)
  15362. {
  15363. if (deptid[0] == deptinfo.F_DeptId.ToString())
  15364. {
  15365. deptcontent = it.Remove(0, deptid[0].Length + 1);
  15366. }
  15367. }
  15368. }
  15369. }
  15370. }
  15371. if (!string.IsNullOrEmpty(deptcontent))
  15372. {
  15373. modelT_Bus_WorkOrder1.F_Content = deptcontent;
  15374. modelT_Bus_WorkOrder1.F_ComContent = deptcontent;
  15375. }
  15376. modelT_Bus_WorkOrder1.F_IsRelease = null;
  15377. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  15378. if (curuser.F_RoleCode == "DBZY")
  15379. {
  15380. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  15381. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  15382. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  15383. }
  15384. #endregion
  15385. if (modelT_Bus_WorkOrder1.F_Id > 0)
  15386. {
  15387. #region 插入交办记录
  15388. modelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  15389. modelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);
  15390. modelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;//主办单位id
  15391. modelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  15392. modelT_Bus_AssignedInfo.F_AssignedOpinion = "请按领导批示认真调查处理并答复来电人,在5个工作日内通过网络反馈市市长热线办公室。要求注明主办人、主管领导姓名和联系电话,同时提供有关处理依据。";
  15393. modelT_Bus_AssignedInfo.F_TimeResp = assignBLL.GetRepTimly(DateTime.Now);//及时查收时间点
  15394. modelT_Bus_AssignedInfo.F_State = 1;//0草稿 1正式
  15395. modelT_Bus_AssignedInfo.F_CreateUser = modelT_Bus_ToExamine.F_CreatUser;
  15396. modelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15397. modelT_Bus_AssignedInfo.F_IsDelete = 0;
  15398. modelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15399. modelT_Bus_AssignedInfo.F_IsSure = 0;
  15400. modelT_Bus_AssignedInfo.F_IsReload = 0;
  15401. modelT_Bus_AssignedInfo.F_IsNext = 0;
  15402. int aid = assignBLL.Add(modelT_Bus_AssignedInfo);
  15403. #endregion
  15404. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_State == 1)
  15405. {
  15406. #region 保存工单信息
  15407. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  15408. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  15409. {
  15410. keyValuePairs2.Add("F_IsReload", t);
  15411. keyValuePairs2.Add("F_IsOverdue", 0);
  15412. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.reload);
  15413. }
  15414. else
  15415. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.receive);
  15416. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.receive;//待查收
  15417. if (modelT_Bus_WorkOrder1.F_Level == 2)
  15418. {
  15419. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  15420. // modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(limittimes);
  15421. }
  15422. else
  15423. {
  15424. keyValuePairs2.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  15425. //modelT_Bus_WorkOrder1.F_LimitTime = Convert.ToDateTime(resdatetime);
  15426. }
  15427. keyValuePairs2.Add("F_MainDeptId", deptinfo.F_DeptId);
  15428. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  15429. keyValuePairs2.Add("F_OtherDeptIds", "");
  15430. // modelT_Bus_WorkOrder1.F_OtherDeptIds = otherdeptids;
  15431. keyValuePairs2.Add("F_AssignUser", modelT_Bus_ToExamine.F_CreatUser);
  15432. // modelT_Bus_WorkOrder1.F_AssignUser = curuser.F_UserCode;
  15433. keyValuePairs2.Add("F_AssignTime", DateTime.Now);
  15434. // modelT_Bus_WorkOrder1.F_AssignTime = DateTime.Now;
  15435. // keyValuePairs2.Add("F_IsSendBack", 0);
  15436. // modelT_Bus_WorkOrder1.F_IsSendBack = 0;
  15437. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs2);
  15438. #endregion
  15439. var msgss = userinfo + " 审核通过了工单,主办单位:" + deptinfo.F_DeptName;
  15440. if (!string.IsNullOrEmpty(cbreason))
  15441. {
  15442. msgss += ",审核意见:" + cbreason;
  15443. }
  15444. #region 插入操作记录
  15445. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  15446. #endregion
  15447. #region 插入推送消息
  15448. //推送消息表
  15449. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  15450. foreach (var u in users)
  15451. {
  15452. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  15453. }
  15454. #endregion
  15455. #region 发短信
  15456. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  15457. if (user != null && user.Count > 0)
  15458. {
  15459. foreach (var it in user)
  15460. {
  15461. if (curuser.F_RoleCode == "DBZY")
  15462. {
  15463. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  15464. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  15465. //bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  15466. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  15467. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  15468. "681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  15469. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode);
  15470. }
  15471. else
  15472. {
  15473. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  15474. {
  15475. continue;
  15476. }
  15477. else
  15478. {
  15479. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  15480. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  15481. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  15482. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  15483. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  15484. modelT_Bus_WorkOrder1.F_WorkOrderId);
  15485. string c = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  15486. }
  15487. }
  15488. }
  15489. }
  15490. #endregion
  15491. }
  15492. Task.Run(() =>
  15493. {
  15494. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  15495. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  15496. {
  15497. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  15498. }
  15499. }).ContinueWith(p =>
  15500. {
  15501. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15502. });
  15503. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  15504. }
  15505. else
  15506. {
  15507. errdeptid += deptinfo.F_DeptName + ",";
  15508. }
  15509. }
  15510. newids = newids.Trim(',');
  15511. var msgs = "";
  15512. if (errdeptid == "")
  15513. {
  15514. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  15515. keyValuePairs3.Add("F_SubWorkorder1", newids);
  15516. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  15517. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3);
  15518. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  15519. }
  15520. else
  15521. {
  15522. errdeptid = errdeptid.Trim(',');
  15523. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  15524. }
  15525. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, modelT_Bus_AssignedInfo.F_Id, msgs, curuser.F_UserCode, 0, 1);
  15526. // }).ContinueWith(p =>
  15527. // {
  15528. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15529. // });
  15530. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15531. keyValuePairs1.Add("F_IsSendBack", 0);
  15532. // modelT_Bus_WorkOrder.F_IsSendBack = 0;
  15533. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  15534. {
  15535. keyValuePairs1.Add("F_IsReload", t);
  15536. keyValuePairs1.Add("F_IsOverdue", 0);
  15537. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  15538. modelT_Bus_WorkOrder.F_WorkState = 8;
  15539. }
  15540. else
  15541. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.dealing);
  15542. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  15543. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  15544. }
  15545. }
  15546. else
  15547. {
  15548. return Error("单位不存在");
  15549. }
  15550. }
  15551. #region 插入操作记录
  15552. //推送消息表
  15553. #endregion
  15554. }
  15555. trans.Complete();
  15556. }
  15557. return Success("操作成功", modelT_Bus_ToExamine.F_ID);
  15558. }
  15559. else
  15560. {
  15561. return Error("已经审核过了");
  15562. }
  15563. }
  15564. else
  15565. {
  15566. return Error("操作失败");
  15567. }
  15568. }
  15569. else
  15570. {
  15571. return Error("权限不足");
  15572. }
  15573. }
  15574. /// <summary>
  15575. /// 回访工单
  15576. /// </summary>
  15577. /// <returns></returns>
  15578. public ActionResult VisitWorkOrder()
  15579. {
  15580. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  15581. {
  15582. string workorderid = RequestString.GetFormString("workorderid");
  15583. string visituser = RequestString.GetFormString("visituser");//回访人
  15584. int type = RequestString.GetInt("type", 0);//回访方式
  15585. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意2基本满意
  15586. int state = RequestString.GetInt("state", 1);//0保存 1保存并下一步
  15587. int visitid = RequestString.GetInt("visitid", 0);
  15588. string result = RequestString.GetFormString("result");//回访情况
  15589. int nexttype = RequestString.GetInt("nexttype", 0);//1重办 2退回重办3仅回访4已办未果
  15590. string cbreason = RequestString.GetFormString("cbreason");//重办原因
  15591. string callid = RequestString.GetFormString("callid");
  15592. string guid = RequestString.GetFormString("guid");
  15593. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  15594. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  15595. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  15596. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new Model.T_Bus_VisitResult();
  15597. if (string.IsNullOrEmpty(visituser))
  15598. {
  15599. visituser = User.F_UserCode;
  15600. }
  15601. if (modelT_Bus_WorkOrder != null)
  15602. {
  15603. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  15604. {
  15605. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  15606. {
  15607. if (visitid == 0)
  15608. {
  15609. #region 新增回访结果记录
  15610. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15611. modelT_Bus_VisitResult.F_AssignedId = 0;
  15612. modelT_Bus_VisitResult.F_VisitUser = visituser;
  15613. modelT_Bus_VisitResult.F_Type = type;
  15614. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  15615. modelT_Bus_VisitResult.F_Result = result;
  15616. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  15617. modelT_Bus_VisitResult.F_State = state;
  15618. if (!string.IsNullOrEmpty(callid))
  15619. {
  15620. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  15621. if (rd != null)
  15622. {
  15623. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  15624. }
  15625. }
  15626. modelT_Bus_VisitResult.F_IsDelete = 0;
  15627. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  15628. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  15629. if (modelT_Bus_AssignedInfo != null)
  15630. {
  15631. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15632. }
  15633. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  15634. modelT_Bus_VisitResult.F_Id = id;
  15635. //保存回访记录
  15636. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  15637. #endregion
  15638. }
  15639. else
  15640. {
  15641. #region 修改回访结果记录
  15642. modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  15643. if (modelT_Bus_VisitResult != null)
  15644. {
  15645. modelT_Bus_VisitResult.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15646. modelT_Bus_VisitResult.F_AssignedId = 0;
  15647. modelT_Bus_VisitResult.F_VisitUser = visituser;
  15648. modelT_Bus_VisitResult.F_Type = type;
  15649. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  15650. modelT_Bus_VisitResult.F_Result = result;
  15651. modelT_Bus_VisitResult.F_Remark = cbreason;//重办原因
  15652. modelT_Bus_VisitResult.F_State = state;
  15653. if (!string.IsNullOrEmpty(callid))
  15654. {
  15655. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  15656. if (rd != null)
  15657. {
  15658. modelT_Bus_VisitResult.F_CallRecordId = rd.CallRecordsId;
  15659. }
  15660. }
  15661. //modelT_Bus_VisitResult.F_LimitTime = newlimittime;
  15662. modelT_Bus_VisitResult.F_IsDelete = 0;
  15663. modelT_Bus_VisitResult.F_CreateUser = User.F_UserCode;
  15664. modelT_Bus_VisitResult.F_CreateTime = DateTime.Now;
  15665. if (modelT_Bus_AssignedInfo != null)
  15666. {
  15667. modelT_Bus_VisitResult.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  15668. }
  15669. int id = new BLL.T_Bus_VisitResult().Add(modelT_Bus_VisitResult);
  15670. modelT_Bus_VisitResult.F_Id = id;
  15671. //保存回访记录
  15672. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  15673. }
  15674. #endregion
  15675. }
  15676. if (modelT_Bus_VisitResult != null && modelT_Bus_VisitResult.F_State == 1)
  15677. {
  15678. //提交重办满意度改为满意
  15679. modelT_Bus_AssignedInfo.F_IsSatisfie = issatisfie;
  15680. assignBLL.Update(modelT_Bus_AssignedInfo);
  15681. var opt = "回访"; var cbreasons = "";
  15682. //结案
  15683. if (nexttype == 0)
  15684. {
  15685. if (issatisfie == 0)
  15686. keyValuePairs.Add("F_ToBereply", 1);
  15687. keyValuePairs.Add("F_IsClosed", 1);
  15688. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  15689. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  15690. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  15691. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  15692. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  15693. keyValuePairs.Add("F_WorkState", 9);
  15694. keyValuePairs.Add("F_IsProResult", 1);
  15695. keyValuePairs.Add("F_Note", "");
  15696. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;//已回访
  15697. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  15698. Task.Run(() =>
  15699. {
  15700. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  15701. }).ContinueWith(p =>
  15702. {
  15703. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15704. });
  15705. var cureuser = User;
  15706. Task.Run(() =>
  15707. {
  15708. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  15709. }).ContinueWith(p =>
  15710. {
  15711. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15712. });
  15713. }
  15714. #region 重办
  15715. else if (nexttype == 1)
  15716. {
  15717. #region 保存工单信息
  15718. if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  15719. {
  15720. return Error("回访时,提交重办只能操作一次");
  15721. }
  15722. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  15723. if (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  15724. keyValuePairs2.Add("F_RemindDay", 3);
  15725. else
  15726. keyValuePairs2.Add("F_RemindDay", 2);
  15727. keyValuePairs2.Add("F_WorkState", (int)EnumWorkState.resubmit);
  15728. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;
  15729. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  15730. keyValuePairs2.Add("F_IsSms", 0);
  15731. // modelT_Bus_WorkOrder.F_IsSms = 0;
  15732. keyValuePairs2.Add("F_Identification", 0);
  15733. keyValuePairs.Add("F_Note", "");
  15734. // modelT_Bus_WorkOrder.F_Identification = 0;
  15735. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  15736. #endregion
  15737. opt = "于" + DateTime.Now
  15738. .ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办";
  15739. cbreasons = ",重办原因:" + cbreason;
  15740. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  15741. if (t_Bus_RemindRecord != null)
  15742. {
  15743. t_Bus_RemindRecord.F_State = 0;
  15744. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  15745. }
  15746. #endregion
  15747. }
  15748. else if (nexttype == 2)
  15749. {
  15750. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  15751. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  15752. {
  15753. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  15754. if (User.F_RoleCode == "ZXHWY")
  15755. {
  15756. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  15757. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  15758. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  15759. {
  15760. #region 插入操作记录
  15761. #region 20191021调整为多个主办单位时调整
  15762. #endregion
  15763. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  15764. cbreasons = ",重办原因:" + cbreason;
  15765. #endregion
  15766. }
  15767. }
  15768. else
  15769. {
  15770. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.reload);
  15771. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  15772. 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());
  15773. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  15774. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15775. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  15776. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  15777. if (!string.IsNullOrEmpty(resdatetime))
  15778. {
  15779. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  15780. }
  15781. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  15782. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  15783. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = cbreason;//交办意见
  15784. newmodelT_Bus_AssignedInfo.F_State = 1;
  15785. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  15786. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  15787. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  15788. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  15789. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  15790. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  15791. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  15792. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  15793. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  15794. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  15795. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  15796. {
  15797. #region 保存工单信息
  15798. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  15799. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  15800. keyValuePairs3.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  15801. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  15802. keyValuePairs3.Add("F_AssignUser", User.F_UserCode);
  15803. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  15804. keyValuePairs3.Add("F_AssignTime", DateTime.Now);
  15805. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  15806. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  15807. {
  15808. keyValuePairs3.Add("F_RemindDay", 1);
  15809. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  15810. }
  15811. keyValuePairs3.Add("F_IsReload", n + 1);
  15812. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  15813. if (!string.IsNullOrEmpty(resdatetime))
  15814. keyValuePairs3.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  15815. keyValuePairs3.Add("F_IsOverdue", 0);
  15816. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  15817. keyValuePairs3.Add("F_IsSms", 0);
  15818. // modelT_Bus_WorkOrder.F_IsSms = 0;
  15819. keyValuePairs3.Add("F_Identification", 1);
  15820. // modelT_Bus_WorkOrder.F_Identification = 1;
  15821. keyValuePairs3.Add("F_Result", "");
  15822. // modelT_Bus_WorkOrder.F_Result = "";
  15823. keyValuePairs3.Add("F_DealDeptId", null);
  15824. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  15825. keyValuePairs3.Add("F_DealUser", "");
  15826. // modelT_Bus_WorkOrder.F_DealUser = "";
  15827. keyValuePairs3.Add("F_DealTime", null);
  15828. // modelT_Bus_WorkOrder.F_DealTime = null;
  15829. keyValuePairs3.Add("F_Note", "");
  15830. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  15831. {
  15832. #region 插入操作记录
  15833. #region 20191021调整为多个主办单位时调整
  15834. #endregion
  15835. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办";
  15836. cbreasons = ",重办原因:" + cbreason;
  15837. #endregion
  15838. }
  15839. #endregion
  15840. }
  15841. else
  15842. {
  15843. return Error("退回失败");
  15844. }
  15845. }
  15846. }
  15847. }
  15848. else if (nexttype == 4)
  15849. {
  15850. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  15851. keyValuePairs2.Add("F_ToBereply", 0);
  15852. keyValuePairs2.Add("F_IsSms", 0);
  15853. keyValuePairs2.Add("F_IsProResult", 2);
  15854. keyValuePairs2.Add("F_Note", "");
  15855. if (modelT_Bus_WorkOrder.F_MainDeptId > 0)
  15856. {
  15857. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs2);
  15858. opt = "提交已办未果";
  15859. }
  15860. else
  15861. return Error("该工单没有承办单位");
  15862. }
  15863. #region 插入操作记录
  15864. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  15865. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  15866. oper.F_AssignedId = modelT_Bus_VisitResult.F_AssignedId;
  15867. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  15868. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  15869. string satisfie = "满意";
  15870. if (issatisfie == 0)
  15871. satisfie = "不满意";
  15872. else if (issatisfie == 1)
  15873. satisfie = "基本满意";
  15874. oper.F_Message = userinfo + " " + opt + "了工单,结果:" + satisfie + cbreasons;
  15875. oper.F_CreateUser = User.F_UserCode;
  15876. oper.F_CreateTime = DateTime.Now;
  15877. oper.F_IsDelete = 0;
  15878. int o = operBLL.Add(oper);
  15879. Task.Run(() =>
  15880. {
  15881. process_info(o, "case_process_info", "审核工单");
  15882. }).ContinueWith(p =>
  15883. {
  15884. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15885. });
  15886. //推送消息表
  15887. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  15888. #endregion
  15889. if (issatisfie == 1)//如果满意就进行自动语音回访
  15890. {
  15891. var configacb = configBll.GetModelList(" F_ParamCode='AutoCallBack' ").FirstOrDefault();
  15892. if (configacb != null && configacb.F_ParamValue == "1")//如果为1就是开启了自动语音回访,其他都是关闭
  15893. {
  15894. string AutoCallMsg = string.Empty;
  15895. new BLL.T_CTI_Task().AddToAutoVoiceNotice(modelT_Bus_WorkOrder.F_CusPhone, modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_AssignedInfo.F_Id, out AutoCallMsg);
  15896. }
  15897. }
  15898. }
  15899. trans.Complete();
  15900. //////多次不满意转督办
  15901. ////if (issatisfie == 0 && nexttype > 0)
  15902. ////{
  15903. //// Remind(modelT_Bus_WorkOrder, modelT_Bus_AssignedInfo);
  15904. ////}
  15905. }
  15906. if (modelT_Bus_WorkOrder.F_WorkState == 9)
  15907. {
  15908. Task.Run(() =>
  15909. {
  15910. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_info");
  15911. }).ContinueWith(p =>
  15912. {
  15913. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15914. });
  15915. }
  15916. Task.Run(() =>
  15917. {
  15918. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_visit_detail_info");
  15919. }).ContinueWith(p =>
  15920. {
  15921. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  15922. });
  15923. return Success("操作成功", modelT_Bus_VisitResult.F_Id);
  15924. }
  15925. else
  15926. {
  15927. return Error("已经回访过了");
  15928. }
  15929. }
  15930. else
  15931. {
  15932. return Error("操作失败");
  15933. }
  15934. }
  15935. else
  15936. {
  15937. return Error("权限不足");
  15938. }
  15939. }
  15940. public void CloseWorkorder(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Sys_UserAccount curruser)
  15941. {
  15942. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  15943. {
  15944. var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  15945. if (model != null)
  15946. {
  15947. string Result = "";
  15948. if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  15949. {
  15950. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  15951. {
  15952. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  15953. string FinalOpinion = "";
  15954. if (modellist != null && modellist.Count > 0)
  15955. {
  15956. foreach (var it in modellist)
  15957. {
  15958. if (string.IsNullOrEmpty(Result))
  15959. Result = modelT_Bus_WorkOrder.F_Result;
  15960. else
  15961. Result += "; " + it.F_Result;
  15962. if (!string.IsNullOrEmpty(FinalOpinion))
  15963. {
  15964. if (string.IsNullOrEmpty(FinalOpinion))
  15965. FinalOpinion = it.F_FinalOpinion;
  15966. else
  15967. {
  15968. if (!string.IsNullOrEmpty(it.F_FinalOpinion))
  15969. FinalOpinion += "; " + it.F_FinalOpinion;
  15970. }
  15971. }
  15972. }
  15973. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15974. keyValuePairs1.Add("F_Result", Result);
  15975. model.F_Result = Result;
  15976. keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  15977. // model.F_FinalOpinion = FinalOpinion;
  15978. keyValuePairs1.Add("F_Note", "");
  15979. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  15980. }
  15981. }
  15982. }
  15983. else
  15984. {
  15985. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  15986. if (string.IsNullOrEmpty(model.F_Result))
  15987. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  15988. else
  15989. keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  15990. Result = model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result;
  15991. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  15992. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  15993. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  15994. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  15995. if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  15996. {
  15997. int v = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  15998. if (v <= 0)
  15999. {
  16000. keyValuePairs1.Add("F_IsClosed", 1);
  16001. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  16002. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  16003. keyValuePairs1.Add("F_WorkState", 9);
  16004. keyValuePairs1.Add("F_IsProResult", 1);
  16005. keyValuePairs1.Add("F_Note", "");
  16006. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  16007. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  16008. }
  16009. else
  16010. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  16011. Task.Run(() =>
  16012. {
  16013. case_info(model.F_WorkOrderId, "case_finish_info");
  16014. }).ContinueWith(p =>
  16015. {
  16016. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16017. });
  16018. }
  16019. else
  16020. {
  16021. keyValuePairs1.Add("F_IsClosed", 1);
  16022. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  16023. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  16024. keyValuePairs1.Add("F_WorkState", 9);
  16025. keyValuePairs1.Add("F_IsProResult", 1);
  16026. keyValuePairs1.Add("F_Note", "");
  16027. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  16028. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  16029. Task.Run(() =>
  16030. {
  16031. case_info(model.F_WorkOrderId, "case_finish_info");
  16032. }).ContinueWith(p =>
  16033. {
  16034. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16035. });
  16036. }
  16037. }
  16038. if (model.F_IsRelease == 2)
  16039. {
  16040. if (!string.IsNullOrEmpty(model.F_SubWorkorder))
  16041. {
  16042. var orderlist = model.F_SubWorkorder.Split(',');
  16043. if (orderlist.Length > 0)
  16044. {
  16045. foreach (var it in orderlist)
  16046. {
  16047. var model1 = workorderBLL.GetModel(it);
  16048. if (model1 != null)
  16049. {
  16050. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  16051. keyValuePairs1.Add("F_IsClosed", 1);
  16052. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  16053. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  16054. keyValuePairs1.Add("F_WorkState", 9);
  16055. keyValuePairs1.Add("F_IsProResult", 1);
  16056. model1.F_WorkState = (int)EnumWorkState.finish;//已回访
  16057. keyValuePairs1.Add("F_Result", Result);
  16058. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  16059. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  16060. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  16061. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  16062. keyValuePairs1.Add("F_Note", "");
  16063. workorderBLL.UpdateWorkOrder(model1.F_Id, keyValuePairs1);
  16064. Task.Run(() =>
  16065. {
  16066. case_info(model1.F_WorkOrderId, "case_finish_info");
  16067. }).ContinueWith(p =>
  16068. {
  16069. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16070. });
  16071. }
  16072. }
  16073. }
  16074. }
  16075. }
  16076. }
  16077. }
  16078. if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  16079. {
  16080. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  16081. {
  16082. var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  16083. if (orderlist.Length > 0)
  16084. {
  16085. foreach (var it in orderlist)
  16086. {
  16087. var model = workorderBLL.GetModel(it);
  16088. if (model != null)
  16089. {
  16090. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  16091. keyValuePairs1.Add("F_IsClosed", 1);
  16092. keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  16093. keyValuePairs1.Add("F_CloseUser", curruser.F_UserCode);
  16094. keyValuePairs1.Add("F_WorkState", 9);
  16095. keyValuePairs1.Add("F_IsProResult", 1);
  16096. model.F_WorkState = (int)EnumWorkState.finish;//已回访
  16097. keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  16098. keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  16099. keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  16100. keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  16101. keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  16102. keyValuePairs1.Add("F_Note", "");
  16103. workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  16104. if (!string.IsNullOrEmpty(model.F_MainWorkorder1))
  16105. {
  16106. var model2 = workorderBLL.GetModel(model.F_MainWorkorder1);
  16107. if (model2 != null)
  16108. {
  16109. if (model2.F_WorkOrderId == model2.F_MainWorkorder1)
  16110. {
  16111. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  16112. {
  16113. var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model2.F_SubWorkorder1 + "',',' )) and F_IsDelete =0 ");
  16114. string Result = ""; string FinalOpinion = "";
  16115. if (modellist != null && modellist.Count > 0)
  16116. {
  16117. foreach (var iv in modellist)
  16118. {
  16119. if (string.IsNullOrEmpty(Result))
  16120. Result = modelT_Bus_WorkOrder.F_Result;
  16121. else
  16122. Result += "; " + iv.F_Result;
  16123. if (!string.IsNullOrEmpty(FinalOpinion))
  16124. {
  16125. if (string.IsNullOrEmpty(FinalOpinion))
  16126. FinalOpinion = iv.F_FinalOpinion;
  16127. else
  16128. {
  16129. if (!string.IsNullOrEmpty(iv.F_FinalOpinion))
  16130. FinalOpinion += "; " + iv.F_FinalOpinion;
  16131. }
  16132. }
  16133. }
  16134. Dictionary<string, object> keyValuePairs2 = new Dictionary<string, object>();
  16135. keyValuePairs2.Add("F_Result", Result);
  16136. model2.F_Result = Result;
  16137. keyValuePairs2.Add("F_FinalOpinion", FinalOpinion);
  16138. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs2);
  16139. }
  16140. }
  16141. }
  16142. else
  16143. {
  16144. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  16145. if (string.IsNullOrEmpty(model2.F_Result))
  16146. keyValuePairs3.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  16147. else
  16148. keyValuePairs3.Add("F_Result", model2.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  16149. keyValuePairs3.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  16150. // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  16151. keyValuePairs3.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  16152. // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  16153. keyValuePairs3.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  16154. // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  16155. keyValuePairs3.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  16156. // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16157. if (!string.IsNullOrEmpty(model2.F_SubWorkorder1))
  16158. {
  16159. int v = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model2.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  16160. if (v <= 0)
  16161. {
  16162. keyValuePairs3.Add("F_IsClosed", 1);
  16163. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  16164. keyValuePairs3.Add("F_WorkState", 9);
  16165. keyValuePairs3.Add("F_IsProResult", 1);
  16166. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  16167. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  16168. Task.Run(() =>
  16169. {
  16170. case_info(model2.F_WorkOrderId, "case_finish_info");
  16171. }).ContinueWith(p =>
  16172. {
  16173. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16174. });
  16175. }
  16176. else
  16177. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  16178. }
  16179. else
  16180. {
  16181. keyValuePairs3.Add("F_IsClosed", 1);
  16182. keyValuePairs3.Add("F_CloseTime", DateTime.Now);
  16183. keyValuePairs3.Add("F_WorkState", 9);
  16184. keyValuePairs3.Add("F_IsProResult", 1);
  16185. model2.F_WorkState = (int)EnumWorkState.finish;//已回访
  16186. workorderBLL.UpdateWorkOrder(model2.F_Id, keyValuePairs3);
  16187. Task.Run(() =>
  16188. {
  16189. case_info(model2.F_WorkOrderId, "case_finish_info");
  16190. }).ContinueWith(p =>
  16191. {
  16192. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  16193. });
  16194. }
  16195. }
  16196. }
  16197. }
  16198. }
  16199. }
  16200. }
  16201. }
  16202. }
  16203. }
  16204. /// <summary>
  16205. /// 多次不满意转督办
  16206. /// </summary>
  16207. /// <returns></returns>
  16208. public bool Remind(Model.T_Bus_WorkOrder modelT_Bus_WorkOrder, Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo)
  16209. {
  16210. bool n = true;
  16211. int f = Int32.Parse(DbHelperSQL.GetSingle("select COUNT(1) from T_Bus_VisitResult WITH(NOLOCK) where F_IsSatisfie = 0 and F_WorkOrderId = '" + modelT_Bus_WorkOrder.F_WorkOrderId + "'").ToString());
  16212. if (f >= 2)
  16213. {
  16214. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  16215. var modelRemindlist = new BLL.T_Bus_RemindRecord().GetModelList(" F_State=0 and F_IsDelete=0 and F_Type =1 and F_WorkOrderId= '" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc");
  16216. if (modelRemindlist != null && modelRemindlist.Count > 0)
  16217. {
  16218. modelT_Bus_RemindRecord = modelRemindlist.FirstOrDefault();
  16219. if (modelT_Bus_RemindRecord != null)
  16220. {
  16221. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办";
  16222. modelT_Bus_RemindRecord.F_State = 0;
  16223. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  16224. }
  16225. }
  16226. else
  16227. {
  16228. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16229. if (modelT_Bus_AssignedInfo != null)
  16230. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16231. modelT_Bus_RemindRecord.F_Type = 1;
  16232. if (modelT_Bus_AssignedInfo != null)
  16233. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  16234. modelT_Bus_RemindRecord.F_Content = "多次回访不满意转督办"; ;
  16235. modelT_Bus_RemindRecord.F_File = "";
  16236. modelT_Bus_RemindRecord.F_State = 0;//0待办 1已办 2退回
  16237. modelT_Bus_RemindRecord.F_IsDelete = 0;
  16238. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  16239. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  16240. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  16241. }
  16242. #endregion
  16243. #region 插入操作记录
  16244. string typename = "督办";
  16245. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16246. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16247. if (modelT_Bus_AssignedInfo != null)
  16248. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16249. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16250. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16251. oper.F_Message = userinfo + " " + typename + "了工单";
  16252. oper.F_CreateUser = User.F_UserCode;
  16253. oper.F_CreateTime = DateTime.Now;
  16254. oper.F_IsDelete = 0;
  16255. operBLL.Add(oper);
  16256. }
  16257. return n;
  16258. }
  16259. #region 20200311 zhengbingbing 增加履职界定操作
  16260. ///// <summary>
  16261. ///// 履职
  16262. ///// </summary>
  16263. ///// <returns></returns>
  16264. ////[Authority]
  16265. //public ActionResult PerformWorkOrder()
  16266. //{
  16267. // if (User.F_RoleCode == "WLDW" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  16268. // {//承办单位和管理员
  16269. // string workorderid = RequestString.GetFormString("workorderid");
  16270. // int state = RequestString.GetInt("state", 0);//0保存 1保存并下一步
  16271. // int perid = RequestString.GetInt("perid", 0);
  16272. // string file = RequestString.GetFormString("file");
  16273. // string result = RequestString.GetFormString("result");
  16274. // string guid = RequestString.GetFormString("guid");
  16275. // string visitids = RequestString.GetFormString("visitids");
  16276. // if (string.IsNullOrWhiteSpace(visitids))
  16277. // return Error("请选择你要履职的回访记录");
  16278. // Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16279. // List<Model.T_Bus_VisitResult> listT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModelList("F_Id in (" + visitids + ")");
  16280. // Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new Model.T_Bus_PerformDuties();
  16281. // if (modelT_Bus_WorkOrder != null)
  16282. // {
  16283. // 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)
  16284. // {//已回访,重办待交办,重办中,重办驳回,已结案
  16285. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16286. // {
  16287. // var assids = ""; //读取对应的交办记录
  16288. // #region 读取对应的交办id
  16289. // foreach (var item in listT_Bus_VisitResult)
  16290. // {
  16291. // if (item.F_AssignedId != null && item.F_AssignedId != 0)
  16292. // assids = item.F_AssignedId + ",";
  16293. // }
  16294. // assids = assids.Trim(',');
  16295. // #endregion
  16296. // #region 履职
  16297. // if (perid == 0)
  16298. // {
  16299. // #region 新增履职记录
  16300. // modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16301. // modelT_Bus_PerformDuties.F_AssignedId = assids;
  16302. // modelT_Bus_PerformDuties.F_VisitId = visitids;
  16303. // modelT_Bus_PerformDuties.F_File = file;
  16304. // modelT_Bus_PerformDuties.F_State = state;
  16305. // modelT_Bus_PerformDuties.F_Result = result;
  16306. // modelT_Bus_PerformDuties.F_IsAudit = 0;
  16307. // modelT_Bus_PerformDuties.F_IsDelete = 0;
  16308. // modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  16309. // modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  16310. // modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  16311. // int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  16312. // modelT_Bus_PerformDuties.F_Id = id;
  16313. // //保存回访记录
  16314. // new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  16315. // #endregion
  16316. // }
  16317. // else
  16318. // {
  16319. // #region 修改履职记录
  16320. // modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  16321. // if (modelT_Bus_PerformDuties != null)
  16322. // {
  16323. // modelT_Bus_PerformDuties.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16324. // modelT_Bus_PerformDuties.F_AssignedId = assids;
  16325. // modelT_Bus_PerformDuties.F_VisitId = visitids;
  16326. // modelT_Bus_PerformDuties.F_File = file;
  16327. // modelT_Bus_PerformDuties.F_State = state;
  16328. // modelT_Bus_PerformDuties.F_Result = result;
  16329. // modelT_Bus_PerformDuties.F_IsAudit = 0;
  16330. // modelT_Bus_PerformDuties.F_IsDelete = 0;
  16331. // modelT_Bus_PerformDuties.F_CreateDeptId = User.F_DeptId;
  16332. // modelT_Bus_PerformDuties.F_CreateTime = DateTime.Now;
  16333. // modelT_Bus_PerformDuties.F_CreateUser = User.F_UserCode;
  16334. // int id = new BLL.T_Bus_PerformDuties().Add(modelT_Bus_PerformDuties);
  16335. // modelT_Bus_PerformDuties.F_Id = id;
  16336. // //保存回访记录
  16337. // new BLL.T_Bus_PerformDutiesRecords().AddInfo(modelT_Bus_PerformDuties, User.F_UserCode, guid);
  16338. // }
  16339. // #endregion
  16340. // }
  16341. // if (modelT_Bus_PerformDuties != null && modelT_Bus_PerformDuties.F_State == 1)
  16342. // {
  16343. // #region 保存交办信息
  16344. // foreach (var item in assids.Split(','))
  16345. // {
  16346. // var model = assignBLL.GetModel(int.Parse(item));
  16347. // if (model != null)
  16348. // {
  16349. // model.F_IsPerform = 1;
  16350. // assignBLL.Update(model);
  16351. // }
  16352. // }
  16353. // #endregion
  16354. // #region
  16355. // foreach (var item in listT_Bus_VisitResult)
  16356. // {
  16357. // item.F_IsPerform = 1;
  16358. // new BLL.T_Bus_VisitResult().Update(item);
  16359. // }
  16360. // #endregion
  16361. // #region 删除草稿信息
  16362. // var cglist = new BLL.T_Bus_PerformDuties().GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' and F_CreateUser='" + User.F_UserCode + "' ");
  16363. // foreach (var cg in cglist)
  16364. // {
  16365. // cg.F_IsDelete = 1;
  16366. // cg.F_DeleteUser = User.F_UserCode;
  16367. // cg.F_DeleteTime = DateTime.Now;
  16368. // new BLL.T_Bus_PerformDuties().Update(cg);
  16369. // new BLL.T_Bus_PerformDutiesRecords().AddInfo(cg, User.F_UserCode, guid);
  16370. // }
  16371. // #endregion
  16372. // var opt = "履职界定";
  16373. // #region 插入操作记录
  16374. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16375. // oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16376. // oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16377. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16378. // oper.F_Message = userinfo + " 对工单提交 " + opt + " 操作";
  16379. // oper.F_File = modelT_Bus_PerformDuties.F_File;
  16380. // oper.F_CreateUser = User.F_UserCode;
  16381. // oper.F_CreateTime = DateTime.Now;
  16382. // oper.F_IsDelete = 0;
  16383. // foreach (var item in assids.Split(','))
  16384. // {
  16385. // oper.F_AssignedId = int.Parse(item);
  16386. // operBLL.Add(oper);
  16387. // //推送消息表 履职界定消息目前推送给工号8666
  16388. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, "8666", User.F_UserCode, (int)EnumSmsType.workorder);
  16389. // }
  16390. // #endregion
  16391. // }
  16392. // #endregion
  16393. // trans.Complete();
  16394. // }
  16395. // return Success("操作成功", modelT_Bus_PerformDuties.F_Id);
  16396. // }
  16397. // else
  16398. // {
  16399. // return Error("此状态下不能进行履职操作");
  16400. // }
  16401. // }
  16402. // else
  16403. // {
  16404. // return Error("操作失败");
  16405. // }
  16406. // }
  16407. // else
  16408. // {
  16409. // return Error("权限不足");
  16410. // }
  16411. //}
  16412. ///// <summary>
  16413. ///// 履职界定审核
  16414. ///// </summary>
  16415. ///// <returns></returns>
  16416. ////[Authority]
  16417. //public ActionResult DefinitionWorkOrder()
  16418. //{
  16419. // if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "YSZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  16420. // {
  16421. // string workorderid = RequestString.GetFormString("workorderid");
  16422. // int state = RequestString.GetInt("state", 0);
  16423. // string reason = RequestString.GetFormString("reason");
  16424. // int perid = RequestString.GetInt("perid", 0);
  16425. // Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16426. // Model.T_Bus_PerformDuties modelT_Bus_PerformDuties = new BLL.T_Bus_PerformDuties().GetModel(perid);
  16427. // if (modelT_Bus_WorkOrder != null && modelT_Bus_PerformDuties != null)
  16428. // {
  16429. // if (modelT_Bus_PerformDuties.F_IsAudit.Value == 0)
  16430. // {
  16431. // using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16432. // {
  16433. // #region 保存履职界定信息
  16434. // modelT_Bus_PerformDuties.F_IsAudit = state;
  16435. // modelT_Bus_PerformDuties.F_AuditUser = User.F_UserCode;
  16436. // modelT_Bus_PerformDuties.F_AuditTime = DateTime.Now;
  16437. // modelT_Bus_PerformDuties.F_AuditReason = reason;
  16438. // new BLL.T_Bus_PerformDuties().Update(modelT_Bus_PerformDuties);
  16439. // #endregion
  16440. // string strmsg = ""; var isperform = 1; int IsSatisfie = 0;
  16441. // #region
  16442. // if (state == 1)
  16443. // {
  16444. // strmsg = "同意";
  16445. // isperform = 2;
  16446. // IsSatisfie = 1;
  16447. // }
  16448. // else if (state == 2)
  16449. // {
  16450. // strmsg = "拒绝";
  16451. // isperform = 3;
  16452. // }
  16453. // #endregion
  16454. // #region 交办记录处理
  16455. // foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  16456. // {
  16457. // var model = assignBLL.GetModel(int.Parse(item));
  16458. // if (model != null)
  16459. // {
  16460. // model.F_IsPerform = isperform;
  16461. // if (state == 1)//同意此履职界定则修改回访结果为满意
  16462. // model.F_IsSatisfie = IsSatisfie;
  16463. // assignBLL.Update(model);
  16464. // }
  16465. // }
  16466. // #endregion
  16467. // #region 回访记录处理
  16468. // foreach (var item in modelT_Bus_PerformDuties.F_VisitId.Split(','))
  16469. // {
  16470. // var model = new BLL.T_Bus_VisitResult().GetModel(int.Parse(item));
  16471. // if (model != null)
  16472. // {
  16473. // model.F_IsPerform = isperform;
  16474. // if (state == 1)//同意此履职界定则修改回访结果为满意
  16475. // model.F_IsSatisfie = IsSatisfie;
  16476. // new BLL.T_Bus_VisitResult().Update(model);
  16477. // }
  16478. // }
  16479. // #endregion
  16480. // #region 插入操作记录
  16481. // Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16482. // oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16483. // oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16484. // string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16485. // oper.F_Message = userinfo + " " + strmsg + "了此处理";
  16486. // if (!string.IsNullOrWhiteSpace(reason))
  16487. // oper.F_Message = oper.F_Message + ",理由为:" + reason;
  16488. // oper.F_CreateUser = User.F_UserCode;
  16489. // oper.F_CreateTime = DateTime.Now;
  16490. // oper.F_IsDelete = 0;
  16491. // foreach (var item in modelT_Bus_PerformDuties.F_AssignedId.Split(','))
  16492. // {
  16493. // oper.F_AssignedId = int.Parse(item);
  16494. // operBLL.Add(oper);
  16495. // //推送消息表
  16496. // msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_PerformDuties.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16497. // }
  16498. // #endregion
  16499. // trans.Complete();
  16500. // }
  16501. // return Success("操作成功");
  16502. // }
  16503. // else
  16504. // return Error("已经审核过了");
  16505. // }
  16506. // else
  16507. // return Error("操作失败");
  16508. // }
  16509. // else
  16510. // return Error("权限不足");
  16511. //}
  16512. #endregion
  16513. /// <summary>
  16514. /// 督办工单
  16515. /// </summary>
  16516. /// <returns></returns>
  16517. //[Authority]
  16518. public ActionResult RemindWorkOrder()
  16519. {
  16520. string workorderid = RequestString.GetFormString("workorderid");
  16521. int type = RequestString.GetInt("type", 0);//1督办 2监察
  16522. int state = RequestString.GetInt("state", 0);//0待办 1已办 2退回
  16523. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  16524. string files = RequestString.GetFormString("files");
  16525. int mode = RequestString.GetInt("mode", 0);//0现场1电话
  16526. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16527. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16528. if (modelT_Bus_WorkOrder != null)
  16529. {
  16530. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16531. {
  16532. #region 插入督办记录
  16533. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  16534. if (type == 1 && state > 0)
  16535. {
  16536. modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetModelList(" F_State !=2 and F_IsDelete=0 and F_Type =1 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_CreateTime desc").FirstOrDefault();
  16537. if (modelT_Bus_RemindRecord != null)
  16538. {
  16539. if (state == 0)
  16540. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  16541. else
  16542. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  16543. modelT_Bus_RemindRecord.F_State = state;
  16544. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  16545. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  16546. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  16547. }
  16548. }
  16549. else
  16550. {
  16551. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16552. if (modelT_Bus_AssignedInfo != null)
  16553. modelT_Bus_RemindRecord.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16554. modelT_Bus_RemindRecord.F_Type = type;
  16555. if (modelT_Bus_AssignedInfo != null)
  16556. modelT_Bus_RemindRecord.F_DeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  16557. if (state == 0)
  16558. modelT_Bus_RemindRecord.F_Remark = overseeopinion;
  16559. else
  16560. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  16561. modelT_Bus_RemindRecord.F_File = files;
  16562. modelT_Bus_RemindRecord.F_State = state;//0待办 1已办 2退回
  16563. modelT_Bus_RemindRecord.F_IsDelete = 0;
  16564. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  16565. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  16566. modelT_Bus_RemindRecord.F_Mode = mode;
  16567. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  16568. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  16569. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  16570. }
  16571. #endregion
  16572. #region 插入操作记录
  16573. string typename = "督办";
  16574. if (type == 2) { typename = "监察"; }
  16575. if (type == 1 && state == 0) { typename = "提交督办"; }
  16576. if (type == 1 && state == 1) { typename = "督办"; }
  16577. if (type == 1 && state == 2) { typename = "退回督办"; }
  16578. // modelT_Bus_WorkOrder.F_CreateUser = User.F_UserCode;
  16579. // bool n = workorderBLL.Update(modelT_Bus_WorkOrder);
  16580. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16581. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16582. if (modelT_Bus_AssignedInfo != null)
  16583. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16584. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16585. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16586. oper.F_Message = userinfo + " " + typename + "了工单";
  16587. oper.F_CreateUser = User.F_UserCode;
  16588. oper.F_CreateTime = DateTime.Now;
  16589. oper.F_IsDelete = 0;
  16590. operBLL.Add(oper);
  16591. #endregion
  16592. trans.Complete();
  16593. }
  16594. return Success("操作成功");
  16595. }
  16596. else
  16597. {
  16598. return Error("操作失败");
  16599. }
  16600. }
  16601. /// <summary>
  16602. /// 督办查收工单
  16603. /// </summary>
  16604. /// <returns></returns>
  16605. //[Authority]
  16606. public ActionResult RemindCheck()
  16607. {
  16608. string workorderid = RequestString.GetFormString("workorderid");
  16609. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  16610. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16611. if (modelT_Bus_RemindRecord != null)
  16612. {
  16613. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16614. {
  16615. #region 插入督办记录
  16616. modelT_Bus_RemindRecord.Supervisor = User.F_UserCode;
  16617. modelT_Bus_RemindRecord.SupervisorTime = DateTime.Now;
  16618. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  16619. #endregion
  16620. #region 插入操作记录
  16621. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16622. oper.F_WorkOrderId = modelT_Bus_RemindRecord.F_WorkOrderId;
  16623. if (modelT_Bus_AssignedInfo != null)
  16624. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16625. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16626. oper.F_Message = userinfo + " 查收了督办工单";
  16627. oper.F_CreateUser = User.F_UserCode;
  16628. oper.F_CreateTime = DateTime.Now;
  16629. oper.F_IsDelete = 0;
  16630. operBLL.Add(oper);
  16631. #endregion
  16632. trans.Complete();
  16633. }
  16634. return Success("操作成功");
  16635. }
  16636. else
  16637. {
  16638. return Error("操作失败");
  16639. }
  16640. }
  16641. /// <summary>
  16642. /// 督办审核工单
  16643. /// </summary>
  16644. /// <returns></returns>
  16645. public ActionResult RemindApproved()
  16646. {
  16647. if (User.F_RoleCode == "GLY" || User.F_RoleCode == "DBGLY" || User.F_RoleCode == "DBZY")
  16648. {
  16649. string workorderid = RequestString.GetFormString("workorderid");
  16650. int state = RequestString.GetInt("state", 0);//0通过1拒绝
  16651. string reason = RequestString.GetFormString("reason");//审核意见
  16652. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16653. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16654. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(workorderid);
  16655. if (modelT_Bus_WorkOrder != null && modelT_Bus_RemindRecord != null)
  16656. {
  16657. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  16658. {
  16659. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16660. {
  16661. var opt = ""; var cbreasons = "";
  16662. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16663. if (state == 1)
  16664. {
  16665. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  16666. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  16667. {
  16668. 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());
  16669. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  16670. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16671. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  16672. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  16673. if (!string.IsNullOrEmpty(resdatetime))
  16674. {
  16675. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  16676. }
  16677. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  16678. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  16679. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  16680. newmodelT_Bus_AssignedInfo.F_State = 1;
  16681. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  16682. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  16683. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  16684. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  16685. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  16686. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  16687. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  16688. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  16689. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  16690. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  16691. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  16692. {
  16693. #region 保存工单信息
  16694. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  16695. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  16696. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  16697. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  16698. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  16699. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  16700. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  16701. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  16702. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  16703. {
  16704. // modelT_Bus_WorkOrder.F_RemindDay = 1;
  16705. keyValuePairs.Add("F_RemindDay", 1);
  16706. }
  16707. keyValuePairs.Add("F_IsReload", n + 1);
  16708. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  16709. if (!string.IsNullOrEmpty(resdatetime))
  16710. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  16711. keyValuePairs.Add("F_IsOverdue", 0);
  16712. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  16713. keyValuePairs.Add("F_IsSms", 0);
  16714. // modelT_Bus_WorkOrder.F_IsSms = 0;
  16715. if (User.F_RoleCode == "ZXHWY")
  16716. {
  16717. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.backaudit);
  16718. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  16719. }
  16720. else
  16721. {
  16722. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  16723. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  16724. }
  16725. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  16726. keyValuePairs.Add("F_Identification", 1);
  16727. // modelT_Bus_WorkOrder.F_Identification = 1;
  16728. keyValuePairs.Add("F_Result", "");
  16729. // modelT_Bus_WorkOrder.F_Result = "";
  16730. keyValuePairs.Add("F_DealDeptId", null);
  16731. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  16732. keyValuePairs.Add("F_DealUser", "");
  16733. // modelT_Bus_WorkOrder.F_DealUser = "";
  16734. keyValuePairs.Add("F_DealTime", null);
  16735. // modelT_Bus_WorkOrder.F_DealTime = null;
  16736. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  16737. {
  16738. // var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  16739. // if (user != null && user.Count > 0)
  16740. // {
  16741. // foreach (var it in user)
  16742. // {
  16743. // string count = "你有督办退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  16744. // //string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  16745. // // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "255884", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  16746. // string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  16747. // string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  16748. //"681240088986554368", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  16749. // }
  16750. // }
  16751. #region 插入操作记录
  16752. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核拒绝了工单";
  16753. cbreasons = ",审核意见:" + reason;
  16754. #endregion
  16755. }
  16756. #endregion
  16757. }
  16758. else
  16759. {
  16760. return Error("退回失败");
  16761. }
  16762. }
  16763. }
  16764. else
  16765. {
  16766. modelT_Bus_RemindRecord.F_IsExamine = 1;
  16767. new BLL.T_Bus_RemindRecord().Update(modelT_Bus_RemindRecord);
  16768. opt = "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "审核通过了工单";
  16769. }
  16770. #region 插入操作记录
  16771. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16772. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16773. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16774. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16775. oper.F_Message = userinfo + " " + opt + "" + cbreasons;
  16776. oper.F_CreateUser = User.F_UserCode;
  16777. oper.F_CreateTime = DateTime.Now;
  16778. oper.F_IsDelete = 0;
  16779. operBLL.Add(oper);
  16780. //推送消息表
  16781. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, modelT_Bus_AssignedInfo.F_CreateUser, User.F_UserCode, (int)EnumSmsType.workorder);
  16782. #endregion
  16783. trans.Complete();
  16784. }
  16785. return Success("操作成功");
  16786. }
  16787. else
  16788. {
  16789. return Error("督办单不存在");
  16790. }
  16791. }
  16792. else
  16793. {
  16794. return Error("操作失败");
  16795. }
  16796. }
  16797. else
  16798. {
  16799. return Error("权限不足");
  16800. }
  16801. }
  16802. /// <summary>
  16803. /// 重办工单
  16804. /// </summary>
  16805. /// <returns></returns>
  16806. //[Authority]
  16807. public ActionResult ReloadWorkOrder()
  16808. {
  16809. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  16810. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  16811. {
  16812. string workorderid = RequestString.GetFormString("workorderid");
  16813. string overseeopinion = RequestString.GetFormString("overseeopinion");//督办意见
  16814. DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime") + " 23:59:59");//不满意,重办的办理时限
  16815. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  16816. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  16817. if (modelT_Bus_WorkOrder != null)
  16818. {
  16819. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  16820. {
  16821. return Error("操作失败");
  16822. }
  16823. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  16824. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  16825. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  16826. {
  16827. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  16828. {
  16829. #region 插入督办记录
  16830. Model.T_Bus_RemindRecord modelT_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  16831. modelT_Bus_RemindRecord.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16832. modelT_Bus_RemindRecord.F_AssignedId = 0;
  16833. modelT_Bus_RemindRecord.F_Type = 1;
  16834. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16835. if (modelT_Bus_AssignedInfo != null)//转办后重办
  16836. {
  16837. #region 插入交办记录
  16838. 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());
  16839. keyValuePairs.Add("F_IsReload", n + 1);
  16840. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  16841. keyValuePairs.Add("F_LimitTime", newlimittime);
  16842. // modelT_Bus_WorkOrder.F_LimitTime = newlimittime;
  16843. keyValuePairs.Add("F_IsOverdue", 0);
  16844. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  16845. Model.T_Bus_AssignedInfo AssignedInfo = new Model.T_Bus_AssignedInfo();
  16846. AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16847. AssignedInfo.F_LimitTime = newlimittime;//办理时限
  16848. AssignedInfo.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;//主办单位id
  16849. AssignedInfo.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;//协办单位id
  16850. AssignedInfo.F_AssignedOpinion = modelT_Bus_AssignedInfo.F_AssignedOpinion;//交办意见
  16851. AssignedInfo.F_State = 1;//0草稿 1正式
  16852. AssignedInfo.F_CreateUser = modelT_Bus_AssignedInfo.F_CreateUser;
  16853. AssignedInfo.F_CreateTime = modelT_Bus_AssignedInfo.F_CreateTime;
  16854. AssignedInfo.F_IsDelete = 0;
  16855. AssignedInfo.F_IsOverdue = 0;
  16856. AssignedInfo.F_IsSure = 0;
  16857. AssignedInfo.F_IsReload = n + 1;
  16858. AssignedInfo.F_ReloadUser = User.F_UserCode;
  16859. AssignedInfo.F_ReloadTime = DateTime.Now;
  16860. assignBLL.Add(AssignedInfo);
  16861. #endregion
  16862. modelT_Bus_RemindRecord.F_AssignedId = AssignedInfo.F_Id;
  16863. modelT_Bus_RemindRecord.F_DeptId = AssignedInfo.F_MainDeptId;
  16864. }
  16865. else if (modelT_Bus_WorkOrder.F_IsResult == 1)//直办后重办
  16866. {
  16867. var cruser = userBLL.GetModel(modelT_Bus_WorkOrder.F_CreateUser);
  16868. if (cruser != null)
  16869. {
  16870. modelT_Bus_RemindRecord.F_DeptId = cruser.F_DeptId;
  16871. }
  16872. }
  16873. modelT_Bus_RemindRecord.F_Content = overseeopinion;
  16874. modelT_Bus_RemindRecord.F_State = 1;
  16875. modelT_Bus_RemindRecord.F_IsDelete = 0;
  16876. modelT_Bus_RemindRecord.F_CreateUser = User.F_UserCode;
  16877. modelT_Bus_RemindRecord.F_CreateTime = DateTime.Now;
  16878. new BLL.T_Bus_RemindRecord().Add(modelT_Bus_RemindRecord);
  16879. #endregion
  16880. #region 保存工单信息
  16881. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  16882. // modelT_Bus_WorkOrder.F_IsSms = 0;
  16883. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  16884. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  16885. // keyValuePairs.Add("F_IsExamine", 1);
  16886. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  16887. keyValuePairs.Add("F_Result", "");
  16888. //modelT_Bus_WorkOrder.F_Result = "";
  16889. keyValuePairs.Add("F_DealDeptId", null);
  16890. //modelT_Bus_WorkOrder.F_DealDeptId = null;
  16891. keyValuePairs.Add("F_DealUser", "");
  16892. //modelT_Bus_WorkOrder.F_DealUser = "";
  16893. keyValuePairs.Add("F_DealTime", null);
  16894. // modelT_Bus_WorkOrder.F_DealTime = null;
  16895. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16896. #endregion
  16897. #region 插入操作记录
  16898. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16899. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16900. if (modelT_Bus_AssignedInfo != null)
  16901. {
  16902. oper.F_AssignedId = modelT_Bus_AssignedInfo.F_Id;
  16903. }
  16904. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16905. string deptname = "";
  16906. #region 20191021调整为多个主办单位时调整
  16907. var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  16908. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  16909. #endregion
  16910. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16911. oper.F_Message = userinfo + " 重办并督办了工单,交办单位:" + deptname;
  16912. oper.F_CreateUser = User.F_UserCode;
  16913. oper.F_CreateTime = DateTime.Now;
  16914. oper.F_IsDelete = 0;
  16915. operBLL.Add(oper);
  16916. //推送消息表
  16917. var users = userBLL.GetModelList(" F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ");
  16918. foreach (var u in users)
  16919. {
  16920. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  16921. }
  16922. #endregion
  16923. trans.Complete();
  16924. }
  16925. return Success("操作成功");
  16926. }
  16927. else
  16928. {
  16929. return Error("已经处理过了");
  16930. }
  16931. }
  16932. else
  16933. {
  16934. return Error("操作失败");
  16935. }
  16936. }
  16937. else
  16938. {
  16939. return Error("权限不足");
  16940. }
  16941. }
  16942. /// <summary>
  16943. /// 重办提交工单 提交后为重办待交办
  16944. /// </summary>
  16945. /// <returns></returns>
  16946. //[Authority]
  16947. public ActionResult SubReloadWorkOrder(string ids, string reason
  16948. , int iszb = 0)
  16949. {
  16950. int maindeptid = RequestString.GetInt("maindeptid", 0);
  16951. string otherdeptids = RequestString.GetFormString("otherdeptids");
  16952. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  16953. string assignedopinion = RequestString.GetFormString("assignedopinion");
  16954. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  16955. {
  16956. if (!string.IsNullOrEmpty(ids))
  16957. {
  16958. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(ids);
  16959. if (modelT_Bus_WorkOrder != null)
  16960. {
  16961. if (iszb == 0)
  16962. {
  16963. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  16964. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  16965. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  16966. {
  16967. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  16968. #region 保存工单信息
  16969. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  16970. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  16971. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  16972. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//待交办
  16973. // keyValuePairs.Add("F_IsExamine", 1);
  16974. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  16975. keyValuePairs.Add("F_IsSms", 0);
  16976. // modelT_Bus_WorkOrder.F_IsSms = 0;
  16977. keyValuePairs.Add("F_Identification", 0);
  16978. // modelT_Bus_WorkOrder.F_Identification = 0;
  16979. #region 重办待交办时-主办单位清空 zhengbingbing 20191016
  16980. keyValuePairs.Add("F_MainDeptId", null);
  16981. // modelT_Bus_WorkOrder.F_MainDeptId = null;
  16982. keyValuePairs.Add("F_OtherDeptIds", "");
  16983. // modelT_Bus_WorkOrder.F_OtherDeptIds = "";
  16984. keyValuePairs.Add("F_DealDeptId", null);
  16985. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  16986. keyValuePairs.Add("F_Note", "");
  16987. #endregion
  16988. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  16989. #endregion
  16990. #region 插入操作记录
  16991. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  16992. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  16993. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  16994. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  16995. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  16996. oper.F_CreateUser = User.F_UserCode;
  16997. oper.F_CreateTime = DateTime.Now;
  16998. oper.F_IsDelete = 0;
  16999. operBLL.Add(oper);
  17000. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  17001. if (t_Bus_RemindRecord != null)
  17002. {
  17003. t_Bus_RemindRecord.F_State = 0;
  17004. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  17005. }
  17006. #endregion
  17007. }
  17008. else
  17009. {
  17010. return Error("此工单已处理");
  17011. }
  17012. }
  17013. else
  17014. {
  17015. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  17016. {
  17017. #region 保存工单信息
  17018. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17019. keyValuePairs.Add("F_SubmitTime", DateTime.Now);
  17020. // modelT_Bus_WorkOrder.F_SubmitTime = DateTime.Now;
  17021. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.submit);
  17022. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.submit;//待交办
  17023. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17024. #endregion
  17025. #region 插入操作记录
  17026. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17027. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17028. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17029. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17030. if (!string.IsNullOrEmpty(assignedopinion))
  17031. {
  17032. oper.F_Message = userinfo + " 提交了驳回重办工单,意见:" + assignedopinion;
  17033. }
  17034. else
  17035. {
  17036. oper.F_Message = userinfo + " 提交了驳回重办工单";
  17037. }
  17038. oper.F_CreateUser = User.F_UserCode;
  17039. oper.F_CreateTime = DateTime.Now;
  17040. oper.F_IsDelete = 0;
  17041. operBLL.Add(oper);
  17042. #endregion 插入操作记录
  17043. //推送消息表
  17044. //if (modelT_Bus_WorkOrder.F_WorkState == 1)
  17045. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  17046. {
  17047. var role = new BLL.T_Sys_RoleInfo().GetModelList(" (F_RoleCode='ZXLD' or F_RoleCode='ZXLDGLYGLY' or F_RoleCode='MTDD') ").Select(p => p.F_RoleId);
  17048. if (role != null && role.Count() > 0)
  17049. {
  17050. var users = userBLL.GetModelList(" F_RoleId in (" + string.Join(",", role) + ") ");
  17051. if (users != null && users.Count() > 0)
  17052. {
  17053. foreach (var u in users)
  17054. {
  17055. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  17056. }
  17057. }
  17058. }
  17059. }
  17060. }
  17061. else
  17062. {
  17063. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish && (modelT_Bus_WorkOrder.F_RemindDay == 1 || modelT_Bus_WorkOrder.F_RemindDay == 3))
  17064. {
  17065. return Error("结案后工单只能提交重办一次");
  17066. }
  17067. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17068. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish)
  17069. {
  17070. if (modelT_Bus_WorkOrder.F_RemindDay == 2 || modelT_Bus_WorkOrder.F_RemindDay == 3)
  17071. keyValuePairs.Add("F_RemindDay", 3);
  17072. else
  17073. keyValuePairs.Add("F_RemindDay", 1);
  17074. }
  17075. if (modelT_Bus_WorkOrder.F_MainDeptId != null &&
  17076. modelT_Bus_WorkOrder.F_MainDeptId > 0)
  17077. {
  17078. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID
  17079. (modelT_Bus_WorkOrder.F_WorkOrderId);
  17080. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.finish || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload
  17081. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed
  17082. || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  17083. {
  17084. if (User.F_RoleCode == "ZXHWY")
  17085. {
  17086. Dictionary<string, object> keyValuePairs3 = new Dictionary<string, object>();
  17087. keyValuePairs3.Add("F_WorkState", (int)EnumWorkState.backaudit);
  17088. keyValuePairs3.Add("F_Note", "");
  17089. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.backaudit;//重办审核
  17090. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs3))
  17091. {
  17092. #region 插入操作记录
  17093. #region 20191021调整为多个主办单位时调整
  17094. #endregion
  17095. #endregion
  17096. #region 插入操作记录
  17097. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17098. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17099. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17100. string deptname = "";
  17101. #region 20191021调整为多个主办单位时调整
  17102. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  17103. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  17104. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  17105. #endregion
  17106. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17107. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "退回重办了工单,重办原因:" + reason;
  17108. if (!string.IsNullOrEmpty(otherdeptids))
  17109. {
  17110. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  17111. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  17112. }
  17113. oper.F_CreateUser = User.F_UserCode;
  17114. oper.F_CreateTime = DateTime.Now;
  17115. oper.F_IsDelete = 0;
  17116. operBLL.Add(oper);
  17117. //推送消息表
  17118. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  17119. foreach (var u in users)
  17120. {
  17121. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  17122. }
  17123. #endregion
  17124. }
  17125. }
  17126. else
  17127. {
  17128. 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());
  17129. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  17130. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17131. DataTable dt = DbHelperSQL.Query("select top 6 F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>='" + DateTime.Now + "' order by F_OffDate ").Tables[0];
  17132. var resdatetime = dt.Rows[5]["F_OffDate"].ToString();
  17133. if (!string.IsNullOrEmpty(resdatetime))
  17134. {
  17135. newmodelT_Bus_AssignedInfo.F_LimitTime = DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59");//办理时限
  17136. }
  17137. newmodelT_Bus_AssignedInfo.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;//主办单位id
  17138. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = "";//协办单位id
  17139. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = reason;//交办意见
  17140. newmodelT_Bus_AssignedInfo.F_State = 1;
  17141. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  17142. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  17143. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  17144. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  17145. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  17146. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  17147. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  17148. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  17149. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  17150. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  17151. if (newmodelT_Bus_AssignedInfo.F_Id > 0)
  17152. {
  17153. #region 保存工单信息
  17154. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  17155. modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  17156. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  17157. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  17158. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  17159. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  17160. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  17161. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  17162. keyValuePairs.Add("F_IsReload", n + 1);
  17163. // modelT_Bus_WorkOrder.F_IsReload = n + 1;
  17164. if (!string.IsNullOrEmpty(resdatetime))
  17165. keyValuePairs.Add("F_LimitTime", DateTime.Parse(resdatetime.Split(' ')[0] + " 23:59:59"));
  17166. keyValuePairs.Add("F_IsOverdue", 0);
  17167. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  17168. keyValuePairs.Add("F_IsSms", 0);
  17169. // modelT_Bus_WorkOrder.F_IsSms = 0;
  17170. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  17171. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  17172. //modelT_Bus_WorkOrder.F_IsExamine = 1;
  17173. keyValuePairs.Add("F_Identification", 1);
  17174. // modelT_Bus_WorkOrder.F_Identification = 1;
  17175. keyValuePairs.Add("F_Result", "");
  17176. // modelT_Bus_WorkOrder.F_Result = "";
  17177. keyValuePairs.Add("F_DealDeptId", null);
  17178. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  17179. keyValuePairs.Add("F_DealUser", "");
  17180. // modelT_Bus_WorkOrder.F_DealUser = "";
  17181. keyValuePairs.Add("F_DealTime", null);
  17182. // modelT_Bus_WorkOrder.F_DealTime = null;
  17183. keyValuePairs.Add("F_Note", "");
  17184. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  17185. {
  17186. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + modelT_Bus_WorkOrder.F_MainDeptId + "') ");
  17187. if (user != null && user.Count > 0)
  17188. {
  17189. foreach (var it in user)
  17190. {
  17191. string count = "你有退回重办工单:" + modelT_Bus_WorkOrder.F_WorkOrderId + ",请及时查收处理";
  17192. // string msg = modelT_Bus_WorkOrder.F_WorkOrderId;
  17193. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "196362", "");
  17194. string mag = "[\"" + modelT_Bus_WorkOrder.F_WorkOrderId + "\"]";
  17195. string v = SmsNewController.AddSmS(0, count, it.F_Mobile,
  17196. "681240339285540864", mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  17197. }
  17198. }
  17199. #region 插入操作记录
  17200. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17201. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17202. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  17203. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17204. string deptname = "";
  17205. #region 20191021调整为多个主办单位时调整
  17206. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  17207. var deptinfo = new BLL.T_Sys_Department().GetModel((int)modelT_Bus_WorkOrder.F_MainDeptId);
  17208. if (deptinfo != null) { deptname = deptinfo.F_DeptName; }
  17209. #endregion
  17210. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17211. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  17212. if (!string.IsNullOrEmpty(otherdeptids))
  17213. {
  17214. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  17215. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  17216. }
  17217. oper.F_CreateUser = User.F_UserCode;
  17218. oper.F_CreateTime = DateTime.Now;
  17219. oper.F_IsDelete = 0;
  17220. operBLL.Add(oper);
  17221. //推送消息表
  17222. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  17223. foreach (var u in users)
  17224. {
  17225. msg.AddInternalMessagesInfo("工单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.workorder);
  17226. }
  17227. #endregion
  17228. return Success("操作成功");
  17229. }
  17230. else
  17231. {
  17232. return Error("重办失败");
  17233. }
  17234. #endregion
  17235. }
  17236. else
  17237. {
  17238. return Error("退回失败");
  17239. }
  17240. }
  17241. }
  17242. else
  17243. {
  17244. return Error("已经处理过了");
  17245. }
  17246. }
  17247. else
  17248. {
  17249. #region 保存工单信息
  17250. keyValuePairs.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  17251. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  17252. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_WorkOrder.F_OtherDeptIds);
  17253. //modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_WorkOrder.F_OtherDeptIds;
  17254. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  17255. // modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  17256. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  17257. //modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  17258. keyValuePairs.Add("F_IsReload", 1);
  17259. // modelT_Bus_WorkOrder.F_IsReload = 1;
  17260. keyValuePairs.Add("F_IsOverdue", 0);
  17261. // modelT_Bus_WorkOrder.F_IsOverdue = 0;
  17262. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.resubmit);
  17263. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.resubmit;//重办中
  17264. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  17265. keyValuePairs.Add("F_Identification", 0);
  17266. // modelT_Bus_WorkOrder.F_Identification = 0;
  17267. keyValuePairs.Add("F_Result", "");
  17268. // modelT_Bus_WorkOrder.F_Result = "";
  17269. keyValuePairs.Add("F_DealDeptId", null);
  17270. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  17271. keyValuePairs.Add("F_DealUser", "");
  17272. // modelT_Bus_WorkOrder.F_DealUser = "";
  17273. keyValuePairs.Add("F_DealTime", null);
  17274. // modelT_Bus_WorkOrder.F_DealTime = null;
  17275. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs))
  17276. {
  17277. #region 插入操作记录
  17278. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17279. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17280. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17281. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17282. oper.F_Message = userinfo + "于" + DateTime.Now.ToString("yyyy年MM月dd日HH时mm分ss秒") + "提交重办了工单,重办原因:" + reason;
  17283. if (!string.IsNullOrEmpty(otherdeptids))
  17284. {
  17285. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  17286. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  17287. }
  17288. oper.F_CreateUser = User.F_UserCode;
  17289. oper.F_CreateTime = DateTime.Now;
  17290. oper.F_IsDelete = 0;
  17291. operBLL.Add(oper);
  17292. //推送消息表
  17293. var t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(modelT_Bus_WorkOrder.F_WorkOrderId);
  17294. if (t_Bus_RemindRecord != null)
  17295. {
  17296. t_Bus_RemindRecord.F_State = 0;
  17297. new BLL.T_Bus_RemindRecord().Update(t_Bus_RemindRecord);
  17298. }
  17299. #endregion
  17300. }
  17301. else
  17302. {
  17303. return Error("重办失败");
  17304. }
  17305. #endregion
  17306. }
  17307. }
  17308. }
  17309. }
  17310. else
  17311. {
  17312. return Error("操作失败");
  17313. }
  17314. return Success("操作成功");
  17315. }
  17316. else
  17317. {
  17318. return Error("操作失败");
  17319. }
  17320. }
  17321. else
  17322. {
  17323. return Error("权限不足");
  17324. }
  17325. }
  17326. /// <summary>
  17327. /// 驳回重办,驳回后状态为重办驳回状态
  17328. /// 调度员可驳回
  17329. /// </summary>
  17330. /// <param name="ids"></param>
  17331. /// <returns></returns>
  17332. //[Authority]
  17333. public ActionResult RejReloadWorkOrder(string id, string reason)
  17334. {
  17335. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17336. {
  17337. if (!string.IsNullOrEmpty(id))
  17338. {
  17339. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17340. {
  17341. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(id.Trim());
  17342. if (modelT_Bus_WorkOrder != null)
  17343. {
  17344. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModelList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'and F_FeedbackTime is not null and F_FeedbackTime !='' order by F_CreateTime desc ").FirstOrDefault();
  17345. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17346. {
  17347. #region 保存工单信息
  17348. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17349. // keyValuePairs.Add("F_IsExamine", 1);
  17350. // modelT_Bus_WorkOrder.F_IsExamine = 1;
  17351. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.rejload);
  17352. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.rejload;//重办驳回
  17353. if (modelT_Bus_AssignedInfo != null)
  17354. {
  17355. 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();
  17356. #region 重办驳回时-恢复主办单位 zhengbingbing 20191017
  17357. keyValuePairs.Add("F_MainDeptId", modelT_Bus_AssignedInfo.F_MainDeptId);
  17358. // modelT_Bus_WorkOrder.F_MainDeptId = modelT_Bus_AssignedInfo.F_MainDeptId;
  17359. keyValuePairs.Add("F_Identification", 1);
  17360. //modelT_Bus_WorkOrder.F_Identification = 1;
  17361. keyValuePairs.Add("F_OtherDeptIds", modelT_Bus_AssignedInfo.F_OtherDeptIds);
  17362. // modelT_Bus_WorkOrder.F_OtherDeptIds = modelT_Bus_AssignedInfo.F_OtherDeptIds;
  17363. keyValuePairs.Add("F_DealDeptId", modelT_Bus_Feedback.F_CreateDeptId);
  17364. // modelT_Bus_WorkOrder.F_DealDeptId = modelT_Bus_Feedback.F_CreateDeptId;
  17365. keyValuePairs.Add("F_DealUser", modelT_Bus_Feedback.F_CreateUser);
  17366. //modelT_Bus_WorkOrder.F_DealUser = modelT_Bus_Feedback.F_CreateUser;
  17367. keyValuePairs.Add("F_DealTime", modelT_Bus_Feedback.F_CreateTime);
  17368. // modelT_Bus_WorkOrder.F_DealTime = modelT_Bus_Feedback.F_CreateTime;
  17369. #endregion
  17370. }
  17371. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17372. #endregion
  17373. #region 插入操作记录
  17374. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17375. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17376. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17377. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17378. oper.F_Message = userinfo + " 驳回重办工单,驳回原因:" + reason;
  17379. oper.F_CreateUser = User.F_UserCode;
  17380. oper.F_CreateTime = DateTime.Now;
  17381. oper.F_IsDelete = 0;
  17382. operBLL.Add(oper);
  17383. #endregion
  17384. }
  17385. }
  17386. trans.Complete();
  17387. }
  17388. return Success("操作成功");
  17389. }
  17390. else
  17391. {
  17392. return Error("参数异常");
  17393. }
  17394. }
  17395. else
  17396. {
  17397. return Error("权限不足");
  17398. }
  17399. }
  17400. /// <summary>
  17401. /// 重办工单
  17402. /// </summary>
  17403. /// <returns></returns>
  17404. //[Authority]
  17405. public ActionResult NewReloadWorkOrder(List<maindeptcontent> content)
  17406. {
  17407. // var User = new BLL.T_Sys_UserAccount ().GetModel("8000");
  17408. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17409. //if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "GLY")
  17410. {
  17411. string workorderid = RequestString.GetFormString("workorderid");
  17412. string maindeptid = RequestString.GetFormString("maindeptid");
  17413. string otherdeptids = RequestString.GetFormString("otherdeptids");
  17414. // DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime") + " 23:59:59");
  17415. string limittimes = RequestString.GetFormString("limittimes");
  17416. int limittime = RequestString.GetInt("limittime", 0);
  17417. string assignedopinion = RequestString.GetFormString("assignedopinion");
  17418. var premodeldept = new Model.T_Sys_Department();
  17419. var curuser = User;
  17420. string resdatetime = "";
  17421. if (limittime > 0)
  17422. {
  17423. string resdate = DateTime.Now.Date.ToString("yyyy-MM-dd");
  17424. DataTable dt = DbHelperSQL.Query("select top " + limittime + " F_OffDate from T_Sys_WorkOFFDays where F_OffState = 1 and F_OffDate>'" + resdate + "' order by F_OffDate").Tables[0];
  17425. resdatetime = dt.Rows[dt.Rows.Count - 1]["F_OffDate"].ToString();
  17426. resdatetime = Convert.ToDateTime(resdatetime).ToString("yyyy-MM-dd") + " 23:59:59 ";
  17427. }
  17428. else
  17429. {
  17430. if (!string.IsNullOrEmpty(limittimes))
  17431. {
  17432. try
  17433. {
  17434. resdatetime = Convert.ToDateTime(limittimes).ToString("yyyy-MM-dd HH:mm:ss");
  17435. }
  17436. catch
  17437. {
  17438. return Error("请选择办理时限");
  17439. }
  17440. }
  17441. else
  17442. return Error("请选择办理时限");
  17443. }
  17444. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17445. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17446. if (modelT_Bus_WorkOrder != null)
  17447. {
  17448. var deptlist = new BLL.T_Sys_Department().GetModelList("F_DeptId in (" + maindeptid + ")");
  17449. if (deptlist != null)
  17450. {
  17451. if (deptlist.Count == 1)
  17452. {
  17453. var deptinfo = deptlist.FirstOrDefault();
  17454. if (deptinfo.F_IsDept == 2)
  17455. {
  17456. if (deptinfo.F_PartentId > 0)
  17457. {
  17458. premodeldept = department((int)deptinfo.F_PartentId);
  17459. if (premodeldept == null)
  17460. return Error("该单位没有上级单位,派单失败");
  17461. }
  17462. else
  17463. {
  17464. return Error("该单位没有上级单位,派单失败");
  17465. }
  17466. }
  17467. }
  17468. else
  17469. {
  17470. if (deptlist.Where(x => x.F_IsDept == 2).Count() > 0)
  17471. return Error("派单多单位不能派给三级单位");
  17472. }
  17473. }
  17474. else
  17475. {
  17476. return Error("单位不存在");
  17477. }
  17478. if (!string.IsNullOrEmpty(otherdeptids))
  17479. {
  17480. if (otherdeptids.Split(',').Contains(maindeptid.ToString()))
  17481. {
  17482. return Error("主办单位不能出现在协办单位");
  17483. }
  17484. }
  17485. //if (limittime < DateTime.Now)
  17486. //{
  17487. // return Error("办理时限不能小于当前时间");
  17488. //}
  17489. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17490. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  17491. //if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  17492. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  17493. {
  17494. 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());
  17495. if (deptlist.Count == 1)
  17496. {
  17497. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17498. {
  17499. var maindept = deptlist.FirstOrDefault();
  17500. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  17501. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17502. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  17503. if (maindept.F_IsDept == 2)
  17504. newmodelT_Bus_AssignedInfo.F_MainDeptId = premodeldept.F_DeptId;//主办单位id
  17505. else
  17506. newmodelT_Bus_AssignedInfo.F_MainDeptId = maindept.F_DeptId;
  17507. // newmodelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  17508. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  17509. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  17510. newmodelT_Bus_AssignedInfo.F_State = 1;
  17511. newmodelT_Bus_AssignedInfo.F_CreateUser = User.F_UserCode;
  17512. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  17513. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  17514. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  17515. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  17516. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  17517. newmodelT_Bus_AssignedInfo.F_ReloadUser = User.F_UserCode;
  17518. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  17519. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  17520. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  17521. #region 保存工单信息
  17522. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17523. if (maindept.F_IsDept == 2)
  17524. keyValuePairs.Add("F_MainDeptId", premodeldept.F_DeptId);
  17525. else
  17526. keyValuePairs.Add("F_MainDeptId", maindept.F_DeptId);
  17527. if (content != null && content.Count > 0)
  17528. {
  17529. keyValuePairs.Add("F_Content", content[0]);
  17530. keyValuePairs.Add("F_ComContent", content[0]);
  17531. }
  17532. //modelT_Bus_WorkOrder.F_MainDeptId = maindeptid;
  17533. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  17534. // modelT_Bus_WorkOrder.F_OtherDeptIds = otherdeptids;
  17535. keyValuePairs.Add("F_AssignUser", User.F_UserCode);
  17536. //modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  17537. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  17538. // modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  17539. keyValuePairs.Add("F_MainDeptID3", "");
  17540. //modelT_Bus_WorkOrder.F_MainDeptID3 = "";
  17541. keyValuePairs.Add("F_IsReload", n + 1);
  17542. //modelT_Bus_WorkOrder.F_IsReload = n + 1;
  17543. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17544. // modelT_Bus_WorkOrder.F_LimitTime = limittime;
  17545. keyValuePairs.Add("F_IsOverdue", 0);
  17546. keyValuePairs.Add("F_Identification", 0);
  17547. //modelT_Bus_WorkOrder.F_IsOverdue = 0;
  17548. //modelT_Bus_WorkOrder.F_WorkState = 8;//重办中
  17549. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  17550. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.reload;//重办中
  17551. // keyValuePairs.Add("F_IsExamine", 1);
  17552. // modelT_Bus_WorkOrder.F_IsExamine = 1; // modelT_Bus_WorkOrder.F_IsSms = 0;
  17553. keyValuePairs.Add("F_Result", "");
  17554. //modelT_Bus_WorkOrder.F_Result = "";
  17555. keyValuePairs.Add("F_DealDeptId", null);
  17556. // modelT_Bus_WorkOrder.F_DealDeptId = null;
  17557. keyValuePairs.Add("F_DealUser", "");
  17558. // modelT_Bus_WorkOrder.F_DealUser = "";
  17559. keyValuePairs.Add("F_DealTime", null);
  17560. //modelT_Bus_WorkOrder.F_DealTime = null;
  17561. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17562. #endregion
  17563. #region 插入操作记录
  17564. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17565. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17566. oper.F_AssignedId = newmodelT_Bus_AssignedInfo.F_Id;
  17567. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17568. string deptname = "";
  17569. #region 20191021调整为多个主办单位时调整
  17570. //var deptinfo = new BLL.T_Sys_Department().GetModel(modelT_Bus_AssignedInfo.F_MainDeptId.Value);
  17571. if (maindept.F_IsDept == 2)
  17572. {
  17573. deptname = premodeldept.F_DeptName;
  17574. }
  17575. else
  17576. deptname = maindept.F_DeptName;
  17577. if (maindept.F_IsDept == 2)
  17578. {
  17579. SplitOrderNew(modelT_Bus_WorkOrder, maindept, Convert.ToDateTime(resdatetime), modelT_Bus_AssignedInfo, assignedopinion, curuser).ContinueWith(p =>
  17580. {
  17581. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17582. });
  17583. }
  17584. #endregion
  17585. oper.F_Message = userinfo + " 重办了工单,主办单位:" + deptname;
  17586. if (!string.IsNullOrEmpty(otherdeptids))
  17587. {
  17588. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  17589. oper.F_Message += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  17590. }
  17591. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId in ('" + maindeptid + "') ");
  17592. if (user != null && user.Count > 0)
  17593. {
  17594. foreach (var it in user)
  17595. {
  17596. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  17597. {
  17598. continue;
  17599. }
  17600. string count = "你有新工单:" + workorderid + ",请及时查收处理。";
  17601. // string msg = workorderid;
  17602. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  17603. string mag = "[\"" + workorderid + "\"]";
  17604. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag,
  17605. workorderid);
  17606. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  17607. }
  17608. }
  17609. oper.F_CreateUser = User.F_UserCode;
  17610. oper.F_CreateTime = DateTime.Now;
  17611. oper.F_IsDelete = 0;
  17612. operBLL.Add(oper);
  17613. #endregion
  17614. trans.Complete();
  17615. }
  17616. }
  17617. else
  17618. {
  17619. Task.Run(() =>
  17620. {
  17621. string newids = ""; string errdeptid = ""; string deptname = "";
  17622. Model.T_Bus_WorkOrder tempT_Bus_WorkOrder = modelT_Bus_WorkOrder.ToJson().ToObject<Model.T_Bus_WorkOrder>();
  17623. Model.T_Bus_RemindRecord t_Bus_RemindRecord = new Model.T_Bus_RemindRecord();
  17624. if (curuser.F_RoleCode == "DBZY")
  17625. {
  17626. t_Bus_RemindRecord = new BLL.T_Bus_RemindRecord().GetNewModelByWorkOrderID(tempT_Bus_WorkOrder.F_WorkOrderId);
  17627. }
  17628. object obj = new object();
  17629. List<Task> taskList = new List<Task>();
  17630. foreach (var deptinfo in deptlist)
  17631. {
  17632. deptname += deptinfo.F_DeptName + ",";
  17633. #region 新增工单
  17634. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = new Model.T_Bus_WorkOrder();
  17635. modelT_Bus_WorkOrder1 = tempT_Bus_WorkOrder;
  17636. string creattime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 00:00:00";
  17637. string endtime = ((DateTime)modelT_Bus_WorkOrder1.F_CreateTime).ToString("yyyy-MM-dd") + " 23:59:59";
  17638. modelT_Bus_WorkOrder1.F_WorkOrderId = workorderBLL.GetNewWorkOrderID((int)modelT_Bus_WorkOrder.F_InfoSource, (int)modelT_Bus_WorkOrder.F_SourceArea, creattime, endtime);
  17639. modelT_Bus_WorkOrder1.F_MainWorkorder1 = modelT_Bus_WorkOrder.F_WorkOrderId;
  17640. if (content != null && content.Count > 0)
  17641. {
  17642. if (content.Where(x => x.id == deptinfo.F_DeptId).Count() > 0)
  17643. {
  17644. modelT_Bus_WorkOrder1.F_Content = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  17645. modelT_Bus_WorkOrder1.F_ComContent = content.Where(x => x.id == deptinfo.F_DeptId).First().content;
  17646. }
  17647. }
  17648. modelT_Bus_WorkOrder1.F_IsRelease = null;
  17649. modelT_Bus_WorkOrder1.F_Id = workorderBLL.Add(modelT_Bus_WorkOrder1);
  17650. if (curuser.F_RoleCode == "DBZY")
  17651. {
  17652. Model.T_Bus_RemindRecord t_Bus_RemindRecord_1 = t_Bus_RemindRecord;
  17653. t_Bus_RemindRecord_1.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17654. new BLL.T_Bus_RemindRecord().Add(t_Bus_RemindRecord_1);
  17655. }
  17656. #endregion
  17657. if (modelT_Bus_WorkOrder1.F_Id > 0)
  17658. {
  17659. #region 插入交办记录
  17660. Model.T_Bus_AssignedInfo newmodelT_Bus_AssignedInfo = new Model.T_Bus_AssignedInfo();
  17661. newmodelT_Bus_AssignedInfo.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17662. newmodelT_Bus_AssignedInfo.F_LimitTime = Convert.ToDateTime(resdatetime);//办理时限
  17663. newmodelT_Bus_AssignedInfo.F_MainDeptId = deptinfo.F_DeptId;
  17664. newmodelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  17665. newmodelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  17666. newmodelT_Bus_AssignedInfo.F_State = 1;
  17667. newmodelT_Bus_AssignedInfo.F_CreateUser = curuser.F_UserCode;
  17668. newmodelT_Bus_AssignedInfo.F_CreateTime = DateTime.Now;
  17669. newmodelT_Bus_AssignedInfo.F_IsDelete = 0;
  17670. newmodelT_Bus_AssignedInfo.F_IsOverdue = 0;
  17671. newmodelT_Bus_AssignedInfo.F_IsSure = 0;
  17672. newmodelT_Bus_AssignedInfo.F_IsReload = n + 1;
  17673. newmodelT_Bus_AssignedInfo.F_ReloadUser = curuser.F_UserCode;
  17674. newmodelT_Bus_AssignedInfo.F_ReloadTime = DateTime.Now;
  17675. newmodelT_Bus_AssignedInfo.F_IsNext = 0;
  17676. newmodelT_Bus_AssignedInfo.F_Id = assignBLL.Add(newmodelT_Bus_AssignedInfo);
  17677. #endregion
  17678. if (newmodelT_Bus_AssignedInfo != null && newmodelT_Bus_AssignedInfo.F_State == 1)
  17679. {
  17680. #region 保存工单信息
  17681. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17682. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.reload);
  17683. modelT_Bus_WorkOrder1.F_WorkState = (int)EnumWorkState.reload;
  17684. keyValuePairs.Add("F_LimitTime", Convert.ToDateTime(resdatetime));
  17685. keyValuePairs.Add("F_MainDeptId", deptinfo.F_DeptId);
  17686. modelT_Bus_WorkOrder1.F_MainDeptId = deptinfo.F_DeptId;
  17687. keyValuePairs.Add("F_OtherDeptIds", otherdeptids);
  17688. keyValuePairs.Add("F_AssignUser", curuser.F_UserCode);
  17689. keyValuePairs.Add("F_IsReload", n + 1);
  17690. keyValuePairs.Add("F_AssignTime", DateTime.Now);
  17691. keyValuePairs.Add("F_IsSendBack", 0);
  17692. // keyValuePairs.Add("F_IsExamine", 1);
  17693. keyValuePairs.Add("F_Result", "");
  17694. keyValuePairs.Add("F_DealDeptId", null);
  17695. keyValuePairs.Add("F_DealUser", "");
  17696. keyValuePairs.Add("F_Identification", 0);
  17697. keyValuePairs.Add("F_DealTime", null);
  17698. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  17699. #endregion
  17700. var msgss = userinfo + " 重办了工单,主办单位:" + deptinfo.F_DeptName;
  17701. if (!string.IsNullOrEmpty(otherdeptids))
  17702. {
  17703. string sql = "select dbo.GetDeptNames('" + otherdeptids + "')";
  17704. msgss += ",协办单位:" + DbHelperSQL.GetSingle(sql);
  17705. }
  17706. #region 插入操作记录
  17707. addoptlog(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_WorkState, newmodelT_Bus_AssignedInfo.F_Id, msgss, curuser.F_UserCode, 0, 1);
  17708. #endregion
  17709. #region 插入推送消息
  17710. //推送消息表
  17711. var users = userBLL.GetModelList(" F_DeptId='" + deptinfo.F_DeptId + "' ");
  17712. foreach (var u in users)
  17713. {
  17714. msg.AddInternalMessagesInfo("工单消息", msgss + ",工单编号:" + modelT_Bus_WorkOrder1.F_WorkOrderId, u.F_UserCode, curuser.F_UserCode, (int)EnumSmsType.workorder);
  17715. }
  17716. #endregion
  17717. #region 发短信
  17718. var user = new BLL.T_Sys_UserAccount().GetModelList("F_DeptId =" + deptinfo.F_DeptId);
  17719. if (user != null && user.Count > 0)
  17720. {
  17721. foreach (var it in user)
  17722. {
  17723. if (curuser.F_RoleCode == "DBZY")
  17724. {
  17725. string count = "你有督办工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  17726. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17727. // bool v = SMSController.AddSmS(0, msg, count, it.F_Mobile, "242065", "");
  17728. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  17729. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240181093470208", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17730. string c = PushMessageController.PushApp("督办工单提醒", count, it.F_UserCode);
  17731. }
  17732. else
  17733. {
  17734. if (it.F_RoleCode == "WLDW" && it.F_IsSms != null && it.F_IsSms == 1)
  17735. {
  17736. continue;
  17737. }
  17738. else
  17739. {
  17740. string count = "你有新工单:" + modelT_Bus_WorkOrder1.F_WorkOrderId + ",请及时查收处理。";
  17741. // string msg = modelT_Bus_WorkOrder1.F_WorkOrderId;
  17742. // bool f = SMSController.AddSmS(0, msg, count, it.F_Mobile, "153305", "");
  17743. string mag = "[\"" + modelT_Bus_WorkOrder1.F_WorkOrderId + "\"]";
  17744. string v = SmsNewController.AddSmS(0, count, it.F_Mobile, "681240888655478784", mag, modelT_Bus_WorkOrder1.F_WorkOrderId);
  17745. string t = PushMessageController.PushApp("新工单提醒", count, it.F_UserCode);
  17746. }
  17747. }
  17748. }
  17749. }
  17750. #endregion
  17751. }
  17752. Task.Run(() =>
  17753. {
  17754. case_info(modelT_Bus_WorkOrder1.F_WorkOrderId, "case_info");
  17755. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder1.F_File))
  17756. {
  17757. material_info(modelT_Bus_WorkOrder1.F_WorkOrderId, modelT_Bus_WorkOrder1.F_File, modelT_Bus_WorkOrder.F_Id, "10");
  17758. }
  17759. }).ContinueWith(p =>
  17760. {
  17761. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17762. });
  17763. newids += modelT_Bus_WorkOrder1.F_WorkOrderId + ",";
  17764. }
  17765. else
  17766. {
  17767. errdeptid += deptinfo.F_DeptName + ",";
  17768. }
  17769. }
  17770. newids = newids.Trim(',');
  17771. var msgs = "";
  17772. if (errdeptid == "")
  17773. {
  17774. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17775. keyValuePairs.Add("F_SubWorkorder1", newids);
  17776. modelT_Bus_WorkOrder.F_SubWorkorder1 = newids;
  17777. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17778. msgs = userinfo + " 交办多单位:" + deptname + "生成新工单,新工单编号为:" + newids;
  17779. }
  17780. else
  17781. {
  17782. errdeptid = errdeptid.Trim(',');
  17783. msgs = userinfo + " 交办的单位有" + deptname + "部分操作成功,新工单编号为:" + newids + ",交办失败的部门为:" + errdeptid;
  17784. }
  17785. addoptlog(modelT_Bus_WorkOrder.F_WorkOrderId, modelT_Bus_WorkOrder.F_WorkState, 0, msgs, curuser.F_UserCode, 0, 1);
  17786. }).ContinueWith(p =>
  17787. {
  17788. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17789. });
  17790. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  17791. keyValuePairs1.Add("F_IsSendBack", 0);
  17792. keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.reload);
  17793. // modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.dealing;
  17794. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1);
  17795. return Success("操作成功");
  17796. }
  17797. return Success("操作成功");
  17798. }
  17799. else
  17800. {
  17801. return Error("已经处理过了");
  17802. }
  17803. }
  17804. else
  17805. {
  17806. return Error("操作失败");
  17807. }
  17808. }
  17809. else
  17810. {
  17811. return Error("权限不足");
  17812. }
  17813. }
  17814. /// <summary>
  17815. /// 结案工单
  17816. /// </summary>
  17817. /// <returns></returns>
  17818. //[Authority]
  17819. public ActionResult FinishWorkOrder()
  17820. {
  17821. if (User.F_RoleCode == "ZJZY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17822. {
  17823. string workorderid = RequestString.GetFormString("workorderid");
  17824. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  17825. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  17826. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  17827. string deptids = RequestString.GetFormString("deptids");//通告单位
  17828. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  17829. //2020-3-4添加通告选项
  17830. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  17831. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  17832. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  17833. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  17834. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17835. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17836. if (modelT_Bus_WorkOrder != null)
  17837. {
  17838. //if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  17839. //{
  17840. // return Error("操作失败");
  17841. //}
  17842. //if (modelT_Bus_WorkOrder.F_WorkState == 7)
  17843. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  17844. {
  17845. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17846. {
  17847. #region 修改工单记录
  17848. //modelT_Bus_WorkOrder.F_WorkState = 9;
  17849. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17850. keyValuePairs.Add("F_WorkState", (int)EnumWorkState.finish);
  17851. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  17852. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  17853. //modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  17854. keyValuePairs.Add("F_IsClosed", 1);
  17855. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  17856. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  17857. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  17858. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  17859. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  17860. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  17861. // modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  17862. keyValuePairs.Add("F_IsStandard", isstandard);
  17863. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  17864. keyValuePairs.Add("F_StandardIDS", standardids);
  17865. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  17866. keyValuePairs.Add("F_ToBereply", 0);
  17867. keyValuePairs.Add("F_IsProResult", 1);
  17868. //modelT_Bus_WorkOrder.F_ToBereply = 0;
  17869. keyValuePairs.Add("F_Note", "");
  17870. if (isnotice == 1)
  17871. {
  17872. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  17873. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  17874. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17875. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  17876. modelT_Bus_NoticeCriticism.F_State = 1;
  17877. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  17878. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  17879. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  17880. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  17881. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  17882. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  17883. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  17884. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  17885. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  17886. keyValuePairs.Add("F_IsNotice", 1);
  17887. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  17888. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  17889. // modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  17890. }
  17891. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  17892. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  17893. assignBLL.Update(modelT_Bus_AssignedInfo);
  17894. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  17895. #endregion
  17896. #region 插入操作记录
  17897. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  17898. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  17899. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  17900. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  17901. oper.F_Message = userinfo + " 结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  17902. if (isnotice == 1)
  17903. {
  17904. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  17905. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  17906. }
  17907. if (isstandard == 1)
  17908. {
  17909. var sqlstand = "select dbo.GetDictionaryNames('" + standardids + "')";
  17910. var sts = DbHelperSQL.GetSingle(sqlstand);
  17911. oper.F_Message = oper.F_Message + ";办理结果出现不规范" + sts + "情况,请及时查看";
  17912. }
  17913. oper.F_CreateUser = User.F_UserCode;
  17914. oper.F_CreateTime = DateTime.Now;
  17915. oper.F_IsDelete = 0;
  17916. operBLL.Add(oper);
  17917. //调用科大讯飞
  17918. #endregion
  17919. trans.Complete();
  17920. }
  17921. Task.Run(() =>
  17922. {
  17923. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  17924. }).ContinueWith(p =>
  17925. {
  17926. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  17927. });
  17928. return Success("操作成功");
  17929. }
  17930. else
  17931. {
  17932. return Error("已经处理过了");
  17933. }
  17934. }
  17935. else
  17936. {
  17937. return Error("操作失败");
  17938. }
  17939. }
  17940. else
  17941. {
  17942. return Error("权限不足");
  17943. }
  17944. }
  17945. /// <summary>
  17946. /// 结案工单
  17947. /// </summary>
  17948. /// <returns></returns>
  17949. //[Authority]
  17950. public ActionResult ForceFinishWorkOrder()
  17951. {
  17952. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "DBZY" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  17953. {
  17954. string workorderid = RequestString.GetFormString("workorderid");
  17955. string result = RequestString.GetFormString("result");//处理结果
  17956. string finalopinion = RequestString.GetFormString("finalopinion");//结案意见
  17957. int issatisfie = RequestString.GetInt("issatisfie", 1);//0不满意 1满意
  17958. int isnotice = RequestString.GetInt("isnotice", 0);//0不通告 1通告
  17959. //是否发送短信0否1是
  17960. int issms = RequestString.GetInt("issms", 0);
  17961. string deptids = RequestString.GetFormString("deptids");//通告单位
  17962. string noticereson = RequestString.GetFormString("noticereson");//通告其他原因
  17963. //2020-3-4添加通告选项
  17964. int noticeid = RequestString.GetInt("noticeid", 0);//通告选项id
  17965. string noticeinfo = RequestString.GetFormString("noticeinfo");//通告内容
  17966. int isstandard = RequestString.GetInt("isstandard", 0);//是否规范,0是,1否
  17967. string standardids = RequestString.GetFormString("standardids");//不规范项,记录多项ID(1,2,3)
  17968. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  17969. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  17970. if (modelT_Bus_WorkOrder != null)
  17971. {
  17972. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "DDZG"
  17973. && User.F_RoleCode != "ZXHWY" && User.F_RoleCode != "ZXLD" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DBZY")
  17974. {
  17975. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_CreateUser != User.F_UserCode)
  17976. {
  17977. return Error("操作失败");
  17978. }
  17979. }
  17980. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  17981. {
  17982. #region 修改工单记录
  17983. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  17984. if (!string.IsNullOrEmpty(result))
  17985. {
  17986. keyValuePairs.Add("F_Result", result);
  17987. modelT_Bus_WorkOrder.F_Result = result;
  17988. }
  17989. else
  17990. {
  17991. if (!string.IsNullOrEmpty(finalopinion) &&
  17992. string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_Result))
  17993. {
  17994. keyValuePairs.Add("F_Result", finalopinion);
  17995. modelT_Bus_WorkOrder.F_Result = finalopinion;
  17996. }
  17997. }
  17998. if (modelT_Bus_WorkOrder.F_DealTime == null)
  17999. keyValuePairs.Add("F_DealTime", DateTime.Now);
  18000. //modelT_Bus_WorkOrder.F_WorkState = 9;
  18001. keyValuePairs.Add("F_WorkState", 9);
  18002. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  18003. keyValuePairs.Add("F_IsSatisfie", issatisfie);
  18004. // modelT_Bus_WorkOrder.F_IsSatisfie = issatisfie;
  18005. keyValuePairs.Add("F_IsClosed", 1);
  18006. // modelT_Bus_WorkOrder.F_IsClosed = 1;
  18007. keyValuePairs.Add("F_CloseUser", User.F_UserCode);
  18008. // modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  18009. keyValuePairs.Add("F_CloseTime", DateTime.Now);
  18010. // modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  18011. if (!string.IsNullOrEmpty(finalopinion))
  18012. {
  18013. keyValuePairs.Add("F_FinalOpinion", finalopinion);
  18014. modelT_Bus_WorkOrder.F_FinalOpinion = finalopinion;
  18015. }
  18016. keyValuePairs.Add("F_IsStandard", isstandard);
  18017. keyValuePairs.Add("F_IsProResult", 1);
  18018. //modelT_Bus_WorkOrder.F_IsStandard = isstandard;
  18019. keyValuePairs.Add("F_StandardIDS", standardids);
  18020. // modelT_Bus_WorkOrder.F_StandardIDS = standardids;
  18021. keyValuePairs.Add("F_Note", "");
  18022. if (isnotice == 1)
  18023. {
  18024. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  18025. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  18026. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18027. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  18028. modelT_Bus_NoticeCriticism.F_State = 1;
  18029. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  18030. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  18031. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  18032. modelT_Bus_NoticeCriticism.F_NoticeID = noticeid;
  18033. modelT_Bus_NoticeCriticism.F_NoticeInfo = noticeinfo;
  18034. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  18035. keyValuePairs.Add("F_IsNotice", 1);
  18036. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  18037. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  18038. if (modelT_Bus_AssignedInfo != null)
  18039. {
  18040. modelT_Bus_AssignedInfo.F_IsNotice = 1;
  18041. modelT_Bus_AssignedInfo.F_NoticeUser = User.F_UserCode;
  18042. modelT_Bus_AssignedInfo.F_NoticeTime = DateTime.Now;
  18043. }
  18044. }
  18045. if (modelT_Bus_AssignedInfo != null)
  18046. {
  18047. modelT_Bus_AssignedInfo.F_IsStandard = isstandard;
  18048. modelT_Bus_AssignedInfo.F_StandardIDS = standardids;
  18049. assignBLL.Update(modelT_Bus_AssignedInfo);
  18050. }
  18051. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18052. #endregion
  18053. #region 插入操作记录
  18054. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18055. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18056. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18057. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18058. oper.F_Message = userinfo + " 强制结案了工单,结果:" + (issatisfie == 1 ? "满意" : "不满意");
  18059. if (isnotice == 1)
  18060. {
  18061. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  18062. oper.F_Message = oper.F_Message + ",并通告了交办单位:" + DbHelperSQL.GetSingle(sql);
  18063. }
  18064. if (isstandard == 1)
  18065. {
  18066. oper.F_Message = oper.F_Message + ",办理结果出现不规范情况,请及时查看";
  18067. }
  18068. if (issms > 0)
  18069. {
  18070. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 2501)
  18071. {
  18072. if (modelT_Bus_WorkOrder.F_CusPhone.Length > 11)
  18073. modelT_Bus_WorkOrder.F_CusPhone = modelT_Bus_WorkOrder.F_CusPhone.Substring(1, 11);
  18074. string content = ""; string temp = "680847330371186688";
  18075. if (modelT_Bus_WorkOrder.F_InfoSource == 1 || modelT_Bus_WorkOrder.F_InfoSource == 3 || modelT_Bus_WorkOrder.F_InfoSource == 6)
  18076. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  18077. else
  18078. {
  18079. temp = "681914832337539072";
  18080. content = "您反映的诉求已有回复,请前往http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",查看办结结果并进行评价,谢谢!";
  18081. }
  18082. string mag = "[\"http://12345rx.zwfw.anyang.gov.cn:9999/citizenNode/orderDetails.html?workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + ",\"]";
  18083. string n = SmsNewController.AddSmS(0, content, modelT_Bus_WorkOrder.F_CusPhone, temp, mag, modelT_Bus_WorkOrder.F_WorkOrderId);
  18084. if (n != "")
  18085. return Error(n);
  18086. //string count = "您反映的诉求已有回复,请前往安阳政务服务官网(https://zwfw.anyang.gov.cn)登录后查看办结结果并对办理情况进行评价,或者拨打12345市长热线来电咨询,谢谢!";
  18087. //string mag = "";
  18088. //bool n = SMSController.AddSmS(0, mag, count, modelT_Bus_WorkOrder.F_CusPhone, "289715", "", modelT_Bus_WorkOrder.F_WorkOrderId);
  18089. }
  18090. }
  18091. oper.F_CreateUser = User.F_UserCode;
  18092. oper.F_CreateTime = DateTime.Now;
  18093. oper.F_IsDelete = 0;
  18094. operBLL.Add(oper);
  18095. var cureuser = User;
  18096. Task.Run(() =>
  18097. {
  18098. CloseWorkorder(modelT_Bus_WorkOrder, cureuser);
  18099. }).ContinueWith(p =>
  18100. {
  18101. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18102. });
  18103. //if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_MainWorkorder1))
  18104. //{
  18105. // var model = workorderBLL.GetModel(modelT_Bus_WorkOrder.F_MainWorkorder1);
  18106. // if (model != null)
  18107. // {
  18108. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18109. // if (modelT_Bus_WorkOrder.F_WorkOrderId == modelT_Bus_WorkOrder.F_MainWorkorder1)
  18110. // {
  18111. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  18112. // {
  18113. // var modellist = workorderBLL.GetModelList("F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_IsDelete =0");
  18114. // string Result = "";string FinalOpinion = "";
  18115. // if (modellist!=null && modellist.Count >0)
  18116. // {
  18117. // foreach (var it in modellist)
  18118. // {
  18119. // if (string.IsNullOrEmpty(Result))
  18120. // Result = modelT_Bus_WorkOrder.F_Result;
  18121. // else
  18122. // Result += "; " + it .F_Result;
  18123. // if (!string.IsNullOrEmpty(FinalOpinion))
  18124. // {
  18125. // if (string.IsNullOrEmpty(FinalOpinion))
  18126. // FinalOpinion = it.F_FinalOpinion;
  18127. // else
  18128. // {
  18129. // if (!string .IsNullOrEmpty (it.F_FinalOpinion))
  18130. // FinalOpinion += "; " + it.F_FinalOpinion;
  18131. // }
  18132. // }
  18133. // }
  18134. // keyValuePairs1.Add("F_Result", Result);
  18135. // // model.F_Result = Result;
  18136. // keyValuePairs1.Add("F_FinalOpinion", FinalOpinion);
  18137. // // model.F_FinalOpinion = FinalOpinion;
  18138. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  18139. // Task.Run(() =>
  18140. // {
  18141. // case_info(model.F_WorkOrderId, "case_finish_info");
  18142. // }).ContinueWith(p => {
  18143. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18144. // });
  18145. // }
  18146. // }
  18147. // }
  18148. // else
  18149. // {
  18150. // if (string.IsNullOrEmpty(model.F_Result))
  18151. // {
  18152. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18153. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  18154. // }
  18155. // else
  18156. // {
  18157. // keyValuePairs1.Add("F_Result", model.F_Result + "; " + modelT_Bus_WorkOrder.F_Result);
  18158. // // model.F_Result += ";" + modelT_Bus_WorkOrder.F_Result;
  18159. // }
  18160. // if (!string.IsNullOrEmpty(finalopinion))
  18161. // {
  18162. // if (string.IsNullOrEmpty(model.F_FinalOpinion))
  18163. // {
  18164. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  18165. // // model.F_FinalOpinion = finalopinion;
  18166. // }
  18167. // else
  18168. // {
  18169. // keyValuePairs1.Add("F_FinalOpinion", model.F_FinalOpinion + modelT_Bus_WorkOrder.F_FinalOpinion);
  18170. // // model.F_FinalOpinion += "; " + modelT_Bus_WorkOrder.F_FinalOpinion;
  18171. // }
  18172. // }
  18173. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  18174. // // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18175. // if (!string.IsNullOrEmpty(model.F_SubWorkorder1))
  18176. // {
  18177. // int n = Int32.Parse(DbHelperSQL.GetSingle(" select COUNT(1) from t_bus_workorder where F_WorkOrderId in(select col from dbo.SplitToNvarchar('" + model.F_SubWorkorder1 + "',',' )) and F_WorkState != 9 and F_IsDelete =0").ToString());
  18178. // if (n <= 0)
  18179. // {
  18180. // keyValuePairs1.Add("F_IsClosed", 1);
  18181. // // model.F_IsClosed = 1;
  18182. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18183. // // model.F_CloseTime = DateTime.Now;
  18184. // keyValuePairs1.Add("F_WorkState", (int)EnumWorkState.finish);
  18185. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18186. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18187. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  18188. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18189. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  18190. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  18191. // Task.Run(() =>
  18192. // {
  18193. // case_info(model.F_WorkOrderId, "case_finish_info");
  18194. // }).ContinueWith(p => {
  18195. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18196. // });
  18197. // }
  18198. // else
  18199. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  18200. // }
  18201. // else
  18202. // {
  18203. // keyValuePairs1.Add("F_IsClosed", 1);
  18204. // // model.F_IsClosed = 1;
  18205. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18206. // // model.F_CloseTime = DateTime.Now;
  18207. // keyValuePairs1.Add("F_WorkState", 9);
  18208. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18209. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18210. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  18211. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18212. // workorderBLL.UpdateWorkOrder (model.F_Id , keyValuePairs1);
  18213. // }
  18214. // }
  18215. // }
  18216. //}
  18217. //if (modelT_Bus_WorkOrder.F_IsRelease == 2)
  18218. //{
  18219. // if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  18220. // {
  18221. // var orderlist = modelT_Bus_WorkOrder.F_SubWorkorder.Split(',');
  18222. // if (orderlist.Length > 0)
  18223. // {
  18224. // foreach (var it in orderlist)
  18225. // {
  18226. // var model = workorderBLL.GetModel(it);
  18227. // if (model != null)
  18228. // {
  18229. // Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18230. // keyValuePairs1.Add("F_IsClosed", 1);
  18231. // //model.F_IsClosed = 1;
  18232. // keyValuePairs1.Add("F_CloseTime", DateTime.Now);
  18233. // //model.F_CloseTime = DateTime.Now;
  18234. // keyValuePairs1.Add("F_CloseUser", User.F_UserCode);
  18235. // // model.F_CloseUser = User.F_UserCode;
  18236. // keyValuePairs1.Add("F_WorkState", 9);
  18237. // model.F_WorkState = (int)EnumWorkState.finish;//已回访
  18238. // keyValuePairs1.Add("F_Result", modelT_Bus_WorkOrder.F_Result);
  18239. // // model.F_Result = modelT_Bus_WorkOrder.F_Result;
  18240. // if (!string.IsNullOrEmpty(finalopinion))
  18241. // {
  18242. // model.F_FinalOpinion = finalopinion;
  18243. // keyValuePairs1.Add("F_FinalOpinion", finalopinion);
  18244. // }
  18245. // keyValuePairs1.Add("F_DealUser", modelT_Bus_WorkOrder.F_DealUser);
  18246. // // model.F_DealUser = modelT_Bus_WorkOrder.F_DealUser;
  18247. // keyValuePairs1.Add("F_DealTime", modelT_Bus_WorkOrder.F_DealTime);
  18248. // // model.F_DealTime = modelT_Bus_WorkOrder.F_DealTime;
  18249. // keyValuePairs1.Add("F_DealDeptId", modelT_Bus_WorkOrder.F_DealDeptId);
  18250. // // model.F_DealDeptId = modelT_Bus_WorkOrder.F_DealDeptId;
  18251. // keyValuePairs1.Add("F_MainDeptId", modelT_Bus_WorkOrder.F_MainDeptId);
  18252. // // model.F_MainDeptId = modelT_Bus_WorkOrder.F_MainDeptId;
  18253. // Task.Run(() =>
  18254. // {
  18255. // case_info(model.F_WorkOrderId, "case_finish_info");
  18256. // }).ContinueWith(p => {
  18257. // System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18258. // });
  18259. // workorderBLL.UpdateWorkOrder(model.F_Id, keyValuePairs1);
  18260. // }
  18261. // }
  18262. // }
  18263. // }
  18264. //}
  18265. #endregion
  18266. trans.Complete();
  18267. }
  18268. Task.Run(() =>
  18269. {
  18270. case_info(modelT_Bus_WorkOrder.F_WorkOrderId, "case_finish_info");
  18271. }).ContinueWith(p =>
  18272. {
  18273. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  18274. });
  18275. return Success("操作成功");
  18276. }
  18277. else
  18278. {
  18279. return Error("操作失败");
  18280. }
  18281. }
  18282. else
  18283. {
  18284. return Error("权限不足");
  18285. }
  18286. }
  18287. /// <summary>
  18288. /// 删除工单
  18289. /// </summary>
  18290. /// <returns></returns>
  18291. public ActionResult DelWorkOrder(string[] ids)
  18292. {
  18293. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD" || User.F_RoleCode == "ZXLD")
  18294. {
  18295. //StringBuilder sb = new StringBuilder();
  18296. foreach (var item in ids)
  18297. {
  18298. //sb.Append("'" + item + "',");
  18299. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  18300. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  18301. {
  18302. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18303. {
  18304. #region 修改工单记录
  18305. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18306. keyValuePairs.Add("F_IsDelete", 1);
  18307. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  18308. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  18309. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  18310. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  18311. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  18312. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18313. #endregion
  18314. #region 插入操作记录
  18315. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18316. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18317. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18318. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18319. oper.F_Message = userinfo + " 删除了工单";
  18320. oper.F_CreateUser = User.F_UserCode;
  18321. oper.F_CreateTime = DateTime.Now;
  18322. oper.F_IsDelete = 0;
  18323. operBLL.Add(oper);
  18324. #endregion
  18325. trans.Complete();
  18326. }
  18327. }
  18328. }
  18329. return Success("删除成功");
  18330. }
  18331. else
  18332. {
  18333. return Error("权限不足");
  18334. }
  18335. }
  18336. /// <summary>
  18337. /// 删除工单
  18338. /// </summary>
  18339. /// <returns></returns>
  18340. public ActionResult Recovery(string[] ids)
  18341. {
  18342. if (User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "ZXBZ" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "MTDD")
  18343. {
  18344. //StringBuilder sb = new StringBuilder();
  18345. foreach (var item in ids)
  18346. {
  18347. //sb.Append("'" + item + "',");
  18348. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(item);
  18349. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder || modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit))//0)
  18350. {
  18351. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18352. {
  18353. #region 修改工单记录
  18354. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18355. keyValuePairs.Add("F_IsDelete", 0);
  18356. //modelT_Bus_WorkOrder.F_IsDelete = 1;
  18357. keyValuePairs.Add("F_DeleteUser", User.F_UserCode);
  18358. //modelT_Bus_WorkOrder.F_DeleteUser = User.F_UserCode;
  18359. keyValuePairs.Add("F_DeleteTime", DateTime.Now);
  18360. //modelT_Bus_WorkOrder.F_DeleteTime = DateTime.Now;
  18361. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18362. #endregion
  18363. #region 插入操作记录
  18364. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18365. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18366. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18367. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18368. oper.F_Message = userinfo + " 恢复了删除工单";
  18369. oper.F_CreateUser = User.F_UserCode;
  18370. oper.F_CreateTime = DateTime.Now;
  18371. oper.F_IsDelete = 0;
  18372. operBLL.Add(oper);
  18373. #endregion
  18374. trans.Complete();
  18375. }
  18376. }
  18377. }
  18378. return Success("删除成功");
  18379. }
  18380. else
  18381. {
  18382. return Error("权限不足");
  18383. }
  18384. }
  18385. /// <summary>
  18386. /// 转公开工单
  18387. /// </summary>
  18388. /// <returns></returns>
  18389. //[Authority]
  18390. public ActionResult ReleaseWorkOrder()
  18391. {
  18392. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  18393. {
  18394. string workorderid = RequestString.GetFormString("workorderid");
  18395. int isrelease = RequestString.GetInt("isrelease", -1);
  18396. // int isopen = RequestString.GetInt("isopen", 0);
  18397. if (isrelease > -1)
  18398. {
  18399. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18400. if (modelT_Bus_WorkOrder != null)
  18401. {
  18402. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18403. {
  18404. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18405. #region 修改工单记录
  18406. if (isrelease > 0)
  18407. {
  18408. var configly = configBll.GetModelList(" F_ParamCode='Public' ").FirstOrDefault();
  18409. int day = 5;
  18410. if (configly != null)
  18411. {
  18412. try
  18413. {
  18414. day = int.Parse(configly.F_ParamValue);
  18415. }
  18416. catch
  18417. {
  18418. day = 5;
  18419. }
  18420. }
  18421. if (modelT_Bus_WorkOrder.F_WorkState != 6 && modelT_Bus_WorkOrder.F_WorkState != 9)
  18422. {
  18423. if (modelT_Bus_WorkOrder.F_DealTime != null && modelT_Bus_WorkOrder.F_AssignTime != null)
  18424. {
  18425. TimeSpan time = (DateTime)modelT_Bus_WorkOrder.F_DealTime - (DateTime)modelT_Bus_WorkOrder.F_AssignTime;
  18426. if (time.TotalDays > day)
  18427. {
  18428. return Error("公开件的回复时间必须在" + day + "个工作日内");
  18429. }
  18430. }
  18431. }
  18432. keyValuePairs.Add("F_IsOpen", 1);
  18433. modelT_Bus_WorkOrder.F_IsOpen = 1;
  18434. }
  18435. else
  18436. {
  18437. keyValuePairs.Add("F_IsOpen", 0);
  18438. modelT_Bus_WorkOrder.F_IsOpen = 0;
  18439. }
  18440. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18441. #endregion
  18442. #region 插入操作记录
  18443. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18444. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18445. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18446. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18447. if (modelT_Bus_WorkOrder.F_IsOpen == 1)
  18448. oper.F_Message = userinfo + "公开了工单";
  18449. else
  18450. oper.F_Message = userinfo + "撤回了公开工单";
  18451. oper.F_CreateUser = User.F_UserCode;
  18452. oper.F_CreateTime = DateTime.Now;
  18453. oper.F_IsDelete = 0;
  18454. operBLL.Add(oper);
  18455. #endregion
  18456. trans.Complete();
  18457. }
  18458. return Success("操作成功");
  18459. }
  18460. else
  18461. return Error("操作失败");
  18462. }
  18463. else
  18464. return Error("操作失败");
  18465. }
  18466. else
  18467. {
  18468. return Error("权限不足");
  18469. }
  18470. }
  18471. /// <summary>
  18472. /// 转公开媒体
  18473. /// </summary>
  18474. /// <returns></returns>
  18475. //[Authority]
  18476. public ActionResult MediaWorkOrder()
  18477. {
  18478. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "ZXHWY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  18479. {
  18480. string workorderid = RequestString.GetFormString("workorderid");
  18481. int isrelease = RequestString.GetInt("isrelease", -1);
  18482. // int isopen = RequestString.GetInt("isopen", 0);
  18483. if (isrelease > -1)
  18484. {
  18485. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18486. if (modelT_Bus_WorkOrder != null)
  18487. {
  18488. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18489. {
  18490. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18491. #region 修改工单记录
  18492. if (isrelease > 0)
  18493. {
  18494. keyValuePairs.Add("F_IsMedia", 1);
  18495. modelT_Bus_WorkOrder.F_IsMedia = 1;
  18496. }
  18497. else
  18498. {
  18499. keyValuePairs.Add("F_IsMedia", 0);
  18500. modelT_Bus_WorkOrder.F_IsMedia = 0;
  18501. }
  18502. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18503. #endregion
  18504. #region 插入操作记录
  18505. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18506. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18507. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18508. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18509. if (modelT_Bus_WorkOrder.F_IsMedia == 1)
  18510. oper.F_Message = userinfo + "转媒体了工单";
  18511. else
  18512. oper.F_Message = userinfo + "撤回了媒体工单";
  18513. oper.F_CreateUser = User.F_UserCode;
  18514. oper.F_CreateTime = DateTime.Now;
  18515. oper.F_IsDelete = 0;
  18516. operBLL.Add(oper);
  18517. #endregion
  18518. trans.Complete();
  18519. }
  18520. return Success("操作成功");
  18521. }
  18522. else
  18523. return Error("操作失败");
  18524. }
  18525. else
  18526. return Error("操作失败");
  18527. }
  18528. else
  18529. {
  18530. return Error("权限不足");
  18531. }
  18532. }
  18533. /// <summary>
  18534. /// 撤销关联工单
  18535. /// </summary>
  18536. /// <returns></returns>
  18537. //[Authority]
  18538. public ActionResult DisassociateWorkOrder()
  18539. {
  18540. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  18541. {
  18542. string workorderid = RequestString.GetFormString("workorderid");
  18543. // string subworkorderid = RequestString.GetFormString("subworkorderid");
  18544. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18545. if (modelT_Bus_WorkOrder == null)
  18546. return Error("工单不存在");
  18547. if (modelT_Bus_WorkOrder.F_IsRelease != 3)
  18548. return Error("只能撤销子工单");
  18549. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18550. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18551. keyValuePairs.Add("F_MainWorkorder", "");
  18552. keyValuePairs.Add("F_IsRelease", null);
  18553. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  18554. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18555. if (!n)
  18556. return Error("撤销子工单失败");
  18557. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18558. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18559. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18560. oper.F_Message = userinfo + "撤销子工单";
  18561. oper.F_CreateUser = User.F_UserCode;
  18562. oper.F_CreateTime = DateTime.Now;
  18563. oper.F_IsDelete = 0;
  18564. operBLL.Add(oper);
  18565. return Success("撤销成功!");
  18566. }
  18567. else
  18568. {
  18569. return Error("权限不足");
  18570. }
  18571. }
  18572. /// <summary>
  18573. /// 关联工单
  18574. /// </summary>
  18575. /// <returns></returns>
  18576. //[Authority]
  18577. public ActionResult RelationWorkOrder()
  18578. {
  18579. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  18580. {
  18581. string workorderid = RequestString.GetFormString("workorderid");
  18582. string subworkorderid = RequestString.GetFormString("subworkorderid");
  18583. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18584. if (string.IsNullOrEmpty(workorderid))
  18585. return Error("请选择主工单");
  18586. if (string.IsNullOrEmpty(subworkorderid))
  18587. return Error("请选择子工单");
  18588. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18589. if (modelT_Bus_WorkOrder == null)
  18590. return Error("主工单不存在");
  18591. if (modelT_Bus_WorkOrder.F_IsRelease == 3)
  18592. return Error(modelT_Bus_WorkOrder.F_WorkOrderId + "工单已被设置为子工单不能设置为主工单");
  18593. string[] orderlist = subworkorderid.Split(',');
  18594. if (subworkorderid.Contains(workorderid))
  18595. {
  18596. return Error("主工单不能出现在子工单中");
  18597. }
  18598. if (orderlist.Length > 0)
  18599. {
  18600. foreach (var it in orderlist)
  18601. {
  18602. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder1 = workorderBLL.GetModel(it);
  18603. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18604. if (modelT_Bus_WorkOrder1 == null)
  18605. return Error("子工单" + it + "不存在");
  18606. if (modelT_Bus_WorkOrder1.F_IsRelease == 3)
  18607. return Error("" + it + "已被设置为子工单,不能重复设置");
  18608. if (modelT_Bus_WorkOrder1.F_IsRelease == 2)
  18609. return Error("" + it + "已被设置为主工单,不能设置为子工单");
  18610. // modelT_Bus_WorkOrder1.F_MainWorkorder = modelT_Bus_WorkOrder.F_WorkOrderId;
  18611. keyValuePairs.Add("F_MainWorkorder", modelT_Bus_WorkOrder.F_WorkOrderId);
  18612. keyValuePairs.Add("F_IsRelease", 3);
  18613. // modelT_Bus_WorkOrder1.F_IsRelease = 3;
  18614. bool n = workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder1.F_Id, keyValuePairs);
  18615. if (!n)
  18616. return Error("设置子工单" + it + "失败");
  18617. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18618. oper.F_WorkOrderId = modelT_Bus_WorkOrder1.F_WorkOrderId;
  18619. oper.F_State = modelT_Bus_WorkOrder1.F_WorkState;
  18620. oper.F_Message = userinfo + "设置该工单为子工单,主工单为:" + modelT_Bus_WorkOrder.F_WorkOrderId;
  18621. oper.F_CreateUser = User.F_UserCode;
  18622. oper.F_CreateTime = DateTime.Now;
  18623. oper.F_IsDelete = 0;
  18624. operBLL.Add(oper);
  18625. }
  18626. }
  18627. else
  18628. {
  18629. return Error("请选择子工单");
  18630. }
  18631. Dictionary<string, object> keyValuePairs1 = new Dictionary<string, object>();
  18632. if (!string.IsNullOrEmpty(modelT_Bus_WorkOrder.F_SubWorkorder))
  18633. keyValuePairs1.Add("F_SubWorkorder", modelT_Bus_WorkOrder.F_SubWorkorder + "," + subworkorderid);
  18634. else
  18635. keyValuePairs1.Add("F_SubWorkorder", subworkorderid);
  18636. keyValuePairs1.Add("F_IsRelease", 2);
  18637. // modelT_Bus_WorkOrder.F_SubWorkorder = subworkorderid;
  18638. // modelT_Bus_WorkOrder.F_IsRelease = 2;
  18639. Model.T_Bus_Operation ope = new Model.T_Bus_Operation();
  18640. ope.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18641. ope.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18642. ope.F_Message = userinfo + "设置该工单为主工单,子工单为:" + subworkorderid;
  18643. ope.F_CreateUser = User.F_UserCode;
  18644. ope.F_CreateTime = DateTime.Now;
  18645. ope.F_IsDelete = 0;
  18646. operBLL.Add(ope);
  18647. if (workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs1))
  18648. return Success("操作成功");
  18649. else
  18650. return Error("操作失败");
  18651. }
  18652. else
  18653. {
  18654. return Error("权限不足");
  18655. }
  18656. }
  18657. /// <summary>
  18658. /// 通告和撤销通告
  18659. /// </summary>
  18660. /// <returns></returns>
  18661. //[Authority]
  18662. public ActionResult NoticeWorkOrder()
  18663. {
  18664. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  18665. {
  18666. string workorderid = RequestString.GetFormString("workorderid");
  18667. int isnotice = RequestString.GetInt("isnotice", -1);
  18668. string deptids = RequestString.GetFormString("deptids");//通告单位
  18669. string noticereson = RequestString.GetFormString("noticereson");//通告原因
  18670. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  18671. if (modelT_Bus_WorkOrder != null)
  18672. {
  18673. if (isnotice == 0 && modelT_Bus_WorkOrder.F_IsNotice == 1)
  18674. {
  18675. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18676. {
  18677. #region 修改工单记录
  18678. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18679. keyValuePairs.Add("F_IsNotice", 0);
  18680. // modelT_Bus_WorkOrder.F_IsNotice = 0;
  18681. keyValuePairs.Add("F_NoticeDeptIds", "");
  18682. modelT_Bus_WorkOrder.F_NoticeDeptIds = "";
  18683. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18684. #endregion
  18685. #region 修改通告记录
  18686. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new BLL.T_Bus_NoticeCriticism().GetModelList(" F_WorkOrderId='" + workorderid + "' and F_IsDelete=0 ").FirstOrDefault();
  18687. modelT_Bus_NoticeCriticism.F_IsDelete = 1;
  18688. modelT_Bus_NoticeCriticism.F_DeleteTime = DateTime.Now;
  18689. modelT_Bus_NoticeCriticism.F_DeleteUser = User.F_UserCode;
  18690. new BLL.T_Bus_NoticeCriticism().Update(modelT_Bus_NoticeCriticism);
  18691. #endregion
  18692. #region 插入操作记录
  18693. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18694. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18695. string sql = "select dbo.GetDeptNames('" + modelT_Bus_NoticeCriticism.F_DeptIds + "')";
  18696. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18697. oper.F_Message = userinfo + " 撤销了通告交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  18698. oper.F_CreateUser = User.F_UserCode;
  18699. oper.F_CreateTime = DateTime.Now;
  18700. oper.F_IsDelete = 0;
  18701. operBLL.Add(oper);
  18702. #endregion
  18703. trans.Complete();
  18704. }
  18705. return Success("操作成功");
  18706. }
  18707. else if (isnotice == 1 && modelT_Bus_WorkOrder.F_IsNotice == 0)
  18708. {
  18709. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18710. {
  18711. #region 修改工单记录
  18712. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  18713. keyValuePairs.Add("F_IsNotice", 1);
  18714. // modelT_Bus_WorkOrder.F_IsNotice = 1;
  18715. keyValuePairs.Add("F_NoticeDeptIds", deptids);
  18716. modelT_Bus_WorkOrder.F_NoticeDeptIds = deptids;
  18717. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  18718. #endregion
  18719. #region 新增通告记录
  18720. Model.T_Bus_NoticeCriticism modelT_Bus_NoticeCriticism = new Model.T_Bus_NoticeCriticism();
  18721. modelT_Bus_NoticeCriticism.F_DeptIds = deptids;
  18722. modelT_Bus_NoticeCriticism.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18723. modelT_Bus_NoticeCriticism.F_Content = noticereson;
  18724. modelT_Bus_NoticeCriticism.F_State = 1;
  18725. modelT_Bus_NoticeCriticism.F_IsDelete = 0;
  18726. modelT_Bus_NoticeCriticism.F_CreateTime = DateTime.Now;
  18727. modelT_Bus_NoticeCriticism.F_CreateUser = User.F_UserCode;
  18728. new BLL.T_Bus_NoticeCriticism().Add(modelT_Bus_NoticeCriticism);
  18729. #endregion
  18730. #region 插入操作记录
  18731. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18732. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18733. string sql = "select dbo.GetDeptNames('" + deptids + "')";
  18734. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18735. oper.F_Message = userinfo + " 通告了交办单位:" + DbHelperSQL.GetSingle(sql).ToString();
  18736. oper.F_CreateUser = User.F_UserCode;
  18737. oper.F_CreateTime = DateTime.Now;
  18738. oper.F_IsDelete = 0;
  18739. operBLL.Add(oper);
  18740. #endregion
  18741. trans.Complete();
  18742. }
  18743. return Success("操作成功");
  18744. }
  18745. else
  18746. {
  18747. return Error("操作失败");
  18748. }
  18749. }
  18750. else
  18751. {
  18752. return Error("操作失败");
  18753. }
  18754. }
  18755. else
  18756. {
  18757. return Error("权限不足");
  18758. }
  18759. }
  18760. /// <summary>
  18761. /// 市民催单
  18762. /// </summary>
  18763. /// <returns></returns>
  18764. //[Authority]
  18765. public ActionResult AdditionalWorkOrder()
  18766. {
  18767. string workorderid = RequestString.GetFormString("workorderid");
  18768. string title = RequestString.GetFormString("title");
  18769. string content = RequestString.GetFormString("content");
  18770. string files = RequestString.GetFormString("files");
  18771. string callid = RequestString.GetFormString("callid");
  18772. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  18773. if (modelT_Bus_WorkOrder != null)
  18774. {
  18775. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  18776. {
  18777. #region 插入附加记录
  18778. //批示记录
  18779. Model.T_Bus_Additional model_T_Bus_Additional = new Model.T_Bus_Additional();
  18780. model_T_Bus_Additional.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;//工单流水号
  18781. model_T_Bus_Additional.F_Title = title;
  18782. model_T_Bus_Additional.F_Content = content;
  18783. if (!string.IsNullOrEmpty(callid))
  18784. {
  18785. model_T_Bus_Additional.F_CallId = callid;
  18786. var rd = new BLL.T_Call_CallRecords().GetModelByCallId(callid);
  18787. if (rd != null)
  18788. {
  18789. model_T_Bus_Additional.F_CallRecordId = rd.CallRecordsId;
  18790. }
  18791. }
  18792. model_T_Bus_Additional.F_File = files;//附件
  18793. model_T_Bus_Additional.F_CreateUser = User.F_UserCode;//呈批人
  18794. model_T_Bus_Additional.F_CreateTime = DateTime.Now;//呈批时间
  18795. model_T_Bus_Additional.F_IsDelete = 0;
  18796. model_T_Bus_Additional.F_State = 1;//审批状态(0:未处理,1:通过)
  18797. new BLL.T_Bus_Additional().Add(model_T_Bus_Additional);
  18798. #endregion
  18799. #region 插入操作记录
  18800. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  18801. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  18802. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  18803. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  18804. oper.F_Message = userinfo + " 接到市民催单,内容:" + content;
  18805. oper.F_CreateUser = User.F_UserCode;
  18806. oper.F_CreateTime = DateTime.Now;
  18807. oper.F_IsDelete = 0;
  18808. operBLL.Add(oper);
  18809. #endregion
  18810. #region 根据状态不同给出提醒
  18811. var sqlusers = " F_DeleteFlag=0 ";
  18812. #region 获取被提醒人
  18813. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetNewModelByWorkOrderID(workorderid);
  18814. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.neworder)
  18815. sqlusers += " and F_UserCode='" + modelT_Bus_WorkOrder.F_CreateUser + "'";//"新工单"向添加人提醒
  18816. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit)
  18817. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXLD')";//"待交办"向所有调度提醒
  18818. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.receive)
  18819. {
  18820. if (modelT_Bus_AssignedInfo != null && modelT_Bus_AssignedInfo.F_MainDeptId != null)
  18821. sqlusers += " and F_DeptId='" + modelT_Bus_AssignedInfo.F_MainDeptId + "' ";//"待查收"向被指派单位的所有人提醒
  18822. }
  18823. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditreback)
  18824. {
  18825. if (modelT_Bus_AssignedInfo != null)
  18826. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"退回审核中"向指派人提醒
  18827. }
  18828. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealing)
  18829. {
  18830. if (modelT_Bus_AssignedInfo != null && !string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_SureUser))
  18831. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_SureUser + "' ";//"办理中"向查收人提醒
  18832. }
  18833. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.auditdelay)
  18834. {
  18835. if (modelT_Bus_AssignedInfo != null)
  18836. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"延时审核中"
  18837. }
  18838. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.dealed)
  18839. {
  18840. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已办理"向所有质检提醒
  18841. }
  18842. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.visit)
  18843. {
  18844. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"已回访"向所有质检提醒
  18845. }
  18846. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.reload)
  18847. {
  18848. if (modelT_Bus_AssignedInfo != null)
  18849. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办中"向指派人提醒
  18850. }
  18851. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.audit)
  18852. {
  18853. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZXBZ')";//"待审核"向坐席班长提醒
  18854. }
  18855. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.resubmit)
  18856. {
  18857. if (modelT_Bus_AssignedInfo != null)
  18858. sqlusers += " and F_UserCode='" + modelT_Bus_AssignedInfo.F_CreateUser + "' ";//"重办待交办"向指派人提醒
  18859. }
  18860. if (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.rejload)
  18861. {
  18862. sqlusers += " and F_RoleId in (select F_RoleId from T_Sys_RoleInfo WITH(NOLOCK) where F_RoleCode='ZJZY')";//"重办驳回"向所有质检提醒
  18863. }
  18864. #endregion
  18865. var userlists = userBLL.GetModelListNoCache(sqlusers);
  18866. //推送消息表
  18867. foreach (var u in userlists)
  18868. {
  18869. msg.AddInternalMessagesInfo("催单消息", oper.F_Message + ",工单编号:" + oper.F_WorkOrderId, u.F_UserCode, User.F_UserCode, (int)EnumSmsType.additional);
  18870. }
  18871. #endregion
  18872. trans.Complete();
  18873. }
  18874. return Success("操作成功");
  18875. }
  18876. else
  18877. {
  18878. return Error("操作失败");
  18879. }
  18880. }
  18881. #endregion
  18882. #region 语音附件其他
  18883. /// <summary>
  18884. /// 验证当前单位是否交办单位
  18885. /// </summary>
  18886. /// <param name="modelT_Bus_AssignedInfo"></param>
  18887. /// <param name="deptid"></param>
  18888. /// <returns></returns>
  18889. public int AssignDeptType(Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo, int deptid)
  18890. {
  18891. int type = 0;
  18892. if (modelT_Bus_AssignedInfo.F_MainDeptId == deptid)
  18893. {
  18894. type = 1;//主办
  18895. }
  18896. else if (!string.IsNullOrEmpty(modelT_Bus_AssignedInfo.F_OtherDeptIds) && modelT_Bus_AssignedInfo.F_OtherDeptIds.Split(',').Contains(deptid.ToString()))
  18897. {
  18898. type = 2;//协办
  18899. }
  18900. return type;
  18901. }
  18902. /// <summary>
  18903. /// 获取留言路径
  18904. /// </summary>
  18905. /// <param name="lid">留言id</param>
  18906. /// <param name="prefix">前缀</param>
  18907. /// <returns></returns>
  18908. public string GetLeavePath(string lid, string prefix)
  18909. {
  18910. string path = string.Empty;
  18911. try
  18912. {
  18913. var liuyan = new BLL.T_Call_LeaveRecord().GetModel(int.Parse(lid));
  18914. if (liuyan != null)
  18915. {
  18916. if (!string.IsNullOrEmpty(liuyan.F_RecFileUrl))
  18917. {
  18918. path = prefix + liuyan.F_RecFileUrl;
  18919. }
  18920. }
  18921. }
  18922. catch
  18923. {
  18924. }
  18925. return path;
  18926. }
  18927. /// <summary>
  18928. /// 获取通话录音路径
  18929. /// </summary>
  18930. /// <param name="cid">通话id</param>
  18931. /// <param name="prefix">前缀</param>
  18932. /// <returns></returns>
  18933. public string GetCallPath(string cid, string prefix)
  18934. {
  18935. string path = string.Empty;
  18936. try
  18937. {
  18938. var luyin = new BLL.T_Call_CallRecords().GetModel(int.Parse(cid));
  18939. if (luyin != null)
  18940. {
  18941. if (!string.IsNullOrEmpty(luyin.FilePath))
  18942. {
  18943. var ym = prefix;
  18944. ym = ym.Substring(0, ym.Length - 1);
  18945. string lujing = luyin.FilePath.Substring(luyin.FilePath.IndexOf(':') + 1).Replace('\\', '/');
  18946. path = ym + lujing;
  18947. }
  18948. }
  18949. }
  18950. catch
  18951. {
  18952. }
  18953. return path;
  18954. }
  18955. public ActionResult Uploads(string ids)
  18956. {
  18957. var configfj = configBll.GetModelList(" F_ParamCode='FileUrlPath' ").FirstOrDefault();
  18958. string prefix = configfj.F_ParamValue;
  18959. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  18960. foreach (DataRow dr in dt.Rows)
  18961. {
  18962. if (dr["F_UserCode"].ToString() == "jianhang")
  18963. {
  18964. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  18965. {
  18966. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  18967. }
  18968. else
  18969. {
  18970. string url = Upload("http://172.16.0.10/" + dr["F_FileUrl"].ToString(), dr["F_FileName"].ToString(), "/" + dr["F_FileUrl"].ToString().Replace(dr["F_FileName"].ToString(), ""));
  18971. if (url == "1")
  18972. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  18973. else
  18974. dr["F_FileUrl"] = url;
  18975. }
  18976. }
  18977. else
  18978. {
  18979. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  18980. }
  18981. }
  18982. return Success("成功");
  18983. }
  18984. public string Upload(string pathUrl, string newFileName, string path)
  18985. {
  18986. //文件下载地址
  18987. try
  18988. {
  18989. HttpWebRequest request = (HttpWebRequest)WebRequest.Create(pathUrl);
  18990. HttpWebResponse response = request.GetResponse() as HttpWebResponse;
  18991. Stream responseStream = response.GetResponseStream();
  18992. string Currentpath = "F:/WEB/anyang12345Api" + path;
  18993. // 如果不存在就创建file文件夹
  18994. if (!Directory.Exists(Currentpath))
  18995. {
  18996. if (Currentpath != null) Directory.CreateDirectory(Currentpath);
  18997. }
  18998. Stream stream = new FileStream(Currentpath + newFileName, FileMode.Create);
  18999. byte[] bArr = new byte[1024];
  19000. int size = responseStream.Read(bArr, 0, bArr.Length);
  19001. while (size > 0)
  19002. {
  19003. stream.Write(bArr, 0, size);
  19004. size = responseStream.Read(bArr, 0, bArr.Length);
  19005. }
  19006. stream.Close();
  19007. responseStream.Close();
  19008. return "1";
  19009. }
  19010. catch (Exception e)
  19011. {
  19012. return e.Message;
  19013. }
  19014. }
  19015. /// <summary>
  19016. /// 获取附件数据
  19017. /// </summary>
  19018. /// <param name="ids">附件id,多个用英文逗号,隔开</param>
  19019. /// <param name="prefix">前缀</param>
  19020. /// <returns></returns>
  19021. public DataTable GetFileData(string ids, string prefix)
  19022. {
  19023. DataTable dt = DbHelperSQL.Query("select * from T_Sys_Accessories WITH(NOLOCK) where F_FileId in (" + ids + ")").Tables[0];
  19024. foreach (DataRow dr in dt.Rows)
  19025. {
  19026. if (dr["F_UserCode"].ToString() == "jianhang" || dr["F_UserCode"].ToString() == "shengpingtai")
  19027. {
  19028. if (System.IO.File.Exists(Directory.GetCurrentDirectory() + dr["F_FileUrl"].ToString()))
  19029. {
  19030. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  19031. }
  19032. else
  19033. {
  19034. string url = Upload("http://172.16.0.10/" + dr["F_FileUrl"].ToString(), dr["F_FileName"].ToString(), "/" + dr["F_FileUrl"].ToString().Replace(dr["F_FileName"].ToString(), ""));
  19035. if (url == "1")
  19036. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  19037. else
  19038. dr["F_FileUrl"] = url;
  19039. }
  19040. }
  19041. else
  19042. {
  19043. dr["F_FileUrl"] = prefix + dr["F_FileUrl"].ToString();
  19044. }
  19045. }
  19046. return dt;
  19047. }
  19048. /// <summary>
  19049. /// 绑定追问回复附件信息
  19050. /// </summary>
  19051. /// <param name="dt"></param>
  19052. /// <param name="prefix"></param>
  19053. /// <returns></returns>
  19054. public DataTable BindFileDatas(DataTable dt, string prefix)
  19055. {
  19056. dt.Columns.Add("File", typeof(object));
  19057. foreach (DataRow dr in dt.Rows)
  19058. {
  19059. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  19060. {
  19061. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  19062. }
  19063. }
  19064. dt.Columns.Add("Files", typeof(object));
  19065. foreach (DataRow dr in dt.Rows)
  19066. {
  19067. if (dr["F_Files"] != null && dr["F_Files"].ToString() != "")
  19068. {
  19069. dr["Files"] = GetFileData(dr["F_Files"].ToString(), prefix);
  19070. }
  19071. }
  19072. return dt;
  19073. }
  19074. /// <summary>
  19075. /// 绑定附件信息
  19076. /// </summary>
  19077. /// <param name="dt"></param>
  19078. /// <param name="prefix"></param>
  19079. /// <returns></returns>
  19080. public DataTable BindFileData(DataTable dt, string prefix)
  19081. {
  19082. dt.Columns.Add("File", typeof(object));
  19083. foreach (DataRow dr in dt.Rows)
  19084. {
  19085. if (dr["F_File"] != null && dr["F_File"].ToString() != "")
  19086. {
  19087. dr["File"] = GetFileData(dr["F_File"].ToString(), prefix);
  19088. }
  19089. }
  19090. return dt;
  19091. }
  19092. #endregion
  19093. #region 修改工单 by admin
  19094. /// <summary>
  19095. /// 获取详情
  19096. /// </summary>
  19097. /// <returns></returns>
  19098. //[Authority]
  19099. public ActionResult GetInfoByAdmin(int id, int type)
  19100. {
  19101. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19102. {
  19103. //string sql = "select * from ";
  19104. string table = string.Empty;
  19105. switch (type)
  19106. {
  19107. case 1: table = "T_Bus_AssignedInfo"; break;//交办信息
  19108. case 2: table = "T_Bus_DelayTime"; break;//延时信息
  19109. case 3: table = "T_Bus_Feedback"; break;//办理信息
  19110. case 4: table = "T_Bus_RemindRecord"; break;//督办
  19111. case 5: table = "T_Bus_SubmitSuper"; break;//1领导批示 2市长指示 3回退
  19112. case 6: table = "T_Bus_VisitResult"; break;//回访
  19113. }
  19114. string sql = "select * from " + table + " WITH(NOLOCK) where F_IsDelete=0 and F_Id=" + id;
  19115. var dt = DbHelperSQL.Query(sql).Tables[0];
  19116. return Success("操作成功", dt);
  19117. }
  19118. else
  19119. {
  19120. return Error("权限不足");
  19121. }
  19122. }
  19123. /// <summary>
  19124. /// 修改工单信息
  19125. /// </summary>
  19126. /// <returns></returns>
  19127. //[Authority]
  19128. public ActionResult EditWorkOrderByAdmin()
  19129. {
  19130. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19131. {
  19132. string workorderid = RequestString.GetFormString("workorderid");
  19133. int source = RequestString.GetInt("source", 0);
  19134. string cusname = RequestString.GetFormString("cusname");
  19135. string cussex = RequestString.GetFormString("cussex");
  19136. string cusphone = RequestString.GetFormString("cusphone");
  19137. string cusaddress = RequestString.GetFormString("cusaddress");
  19138. string email = RequestString.GetFormString("email");
  19139. string zipcode = RequestString.GetFormString("zipcode");
  19140. string conname = RequestString.GetFormString("conname");
  19141. string conphone = RequestString.GetFormString("conphone");
  19142. string title = RequestString.GetFormString("title");
  19143. string content = RequestString.GetFormString("content");
  19144. string files = RequestString.GetFormString("files");
  19145. int sourcearea = RequestString.GetInt("sourcearea", 0);
  19146. string sourceaddress = RequestString.GetFormString("sourceaddress");
  19147. string keys = RequestString.GetFormString("keys");
  19148. string splituser = RequestString.GetFormString("splituser");
  19149. int type = RequestString.GetInt("type", 0);
  19150. int bigtype = RequestString.GetInt("bigtype", 0);
  19151. int smalltype = RequestString.GetInt("smalltype", 0);
  19152. int isprotect = RequestString.GetInt("isprotect", 0);
  19153. int level = RequestString.GetInt("level", 0);
  19154. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  19155. if (modelT_Bus_WorkOrder != null)
  19156. {
  19157. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19158. {
  19159. #region 保存工单信息
  19160. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19161. keyValuePairs.Add("F_InfoSource", source);
  19162. //modelT_Bus_WorkOrder.F_InfoSource = source;//信息来源
  19163. keyValuePairs.Add("F_InfoType", type);
  19164. //modelT_Bus_WorkOrder.F_InfoType = type;//信息类别
  19165. keyValuePairs.Add("F_InfoConBigType", bigtype);
  19166. //modelT_Bus_WorkOrder.F_InfoConBigType = bigtype;//内容大类
  19167. keyValuePairs.Add("F_InfoConSmallType", smalltype);
  19168. //modelT_Bus_WorkOrder.F_InfoConSmallType = smalltype;//内容小类
  19169. keyValuePairs.Add("F_SourceArea", sourcearea);
  19170. //modelT_Bus_WorkOrder.F_SourceArea = sourcearea;//反映地域
  19171. keyValuePairs.Add("F_SourceAddress", sourceaddress);
  19172. //modelT_Bus_WorkOrder.F_SourceAddress = sourceaddress;//事发地址
  19173. keyValuePairs.Add("F_CusName", cusname);
  19174. // modelT_Bus_WorkOrder.F_CusName = cusname;//投诉人姓名
  19175. keyValuePairs.Add("F_CusSex", cussex);
  19176. //modelT_Bus_WorkOrder.F_CusSex = cussex;//性别
  19177. keyValuePairs.Add("F_CusPhone", cusphone);
  19178. // modelT_Bus_WorkOrder.F_CusPhone = cusphone;//来电号码
  19179. keyValuePairs.Add("F_CusAddress", cusaddress);
  19180. // modelT_Bus_WorkOrder.F_CusAddress = cusaddress;//地址
  19181. keyValuePairs.Add("F_ZipCode", zipcode);
  19182. // modelT_Bus_WorkOrder.F_ZipCode = zipcode;//邮编
  19183. keyValuePairs.Add("F_ConName", conname);
  19184. //modelT_Bus_WorkOrder.F_ConName = conname;//联系人姓名
  19185. keyValuePairs.Add("F_ConPhone", conphone);
  19186. // modelT_Bus_WorkOrder.F_ConPhone = conphone;//联系人电话
  19187. keyValuePairs.Add("F_Email", email);
  19188. modelT_Bus_WorkOrder.F_Email = email;//E-mail
  19189. keyValuePairs.Add("F_ComTitle", title);
  19190. // modelT_Bus_WorkOrder.F_ComTitle = title;//标题
  19191. keyValuePairs.Add("F_ComContent", content);
  19192. // modelT_Bus_WorkOrder.F_ComContent = content;//情况摘要(投诉内容)
  19193. keyValuePairs.Add("F_File", files);
  19194. // modelT_Bus_WorkOrder.F_File = files;//附件
  19195. keyValuePairs.Add("F_File", isprotect);
  19196. // modelT_Bus_WorkOrder.F_IsProtect = isprotect;//保密方式0否1是
  19197. // modelT_Bus_WorkOrder.F_Content = workcontent;
  19198. keyValuePairs.Add("F_Key", keys);
  19199. // modelT_Bus_WorkOrder.F_Key = keys;
  19200. keyValuePairs.Add("F_Level", level);
  19201. // modelT_Bus_WorkOrder.F_Level = level;
  19202. keyValuePairs.Add("F_ToBereply", 0);
  19203. // modelT_Bus_WorkOrder.F_ToBereply = 0;
  19204. //是否直办(即时答复)0:,否1: 是
  19205. workorderBLL.UpdateWorkOrder(modelT_Bus_WorkOrder.F_Id, keyValuePairs);
  19206. #endregion
  19207. #region 插入操作记录
  19208. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19209. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19210. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19211. oper.F_CallRecordId = modelT_Bus_WorkOrder.F_CallRecordId;
  19212. oper.F_File = modelT_Bus_WorkOrder.F_File;
  19213. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19214. oper.F_Message = userinfo + " 修改了工单基本信息";
  19215. oper.F_CreateUser = User.F_UserCode;
  19216. oper.F_CreateTime = DateTime.Now;
  19217. oper.F_IsDelete = 0;
  19218. operBLL.Add(oper);
  19219. #endregion
  19220. trans.Complete();
  19221. }
  19222. return Success("操作成功");
  19223. }
  19224. else
  19225. {
  19226. return Error("操作失败");
  19227. }
  19228. }
  19229. else
  19230. {
  19231. return Success("权限不足");
  19232. }
  19233. }
  19234. /// <summary>
  19235. /// 修改批示信息
  19236. /// </summary>
  19237. /// <returns></returns>
  19238. //[Authority]
  19239. public ActionResult EditSuperInfoByAdmin()
  19240. {
  19241. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19242. {
  19243. //int type = RequestString.GetInt("type", 0);//1领导批示 2市长指示
  19244. string superuser = RequestString.GetFormString("superuser");
  19245. string superopinion = RequestString.GetFormString("superopinion");
  19246. string files = RequestString.GetFormString("files");
  19247. int id = RequestString.GetInt("id", 0);
  19248. Model.T_Bus_SubmitSuper model_T_Bus_SubmitSuper = new BLL.T_Bus_SubmitSuper().GetModel(id);
  19249. if (model_T_Bus_SubmitSuper != null)
  19250. {
  19251. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19252. {
  19253. #region 保存批示信息
  19254. //model_T_Bus_SubmitSuper.F_Type = type;//1领导批示 2市长指示
  19255. model_T_Bus_SubmitSuper.F_BatchReason = superuser;//批示人
  19256. model_T_Bus_SubmitSuper.F_SuperOpinion = superopinion;//批示内容
  19257. if (!string.IsNullOrEmpty(files))
  19258. model_T_Bus_SubmitSuper.F_File = files;//附件
  19259. new BLL.T_Bus_SubmitSuper().Update(model_T_Bus_SubmitSuper);
  19260. #endregion
  19261. #region 插入操作记录
  19262. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19263. oper.F_WorkOrderId = model_T_Bus_SubmitSuper.F_WorkOrderId;
  19264. oper.F_File = model_T_Bus_SubmitSuper.F_File;
  19265. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19266. oper.F_Message = userinfo + " 修改了工单批示信息";
  19267. oper.F_CreateUser = User.F_UserCode;
  19268. oper.F_CreateTime = DateTime.Now;
  19269. oper.F_IsDelete = 0;
  19270. operBLL.Add(oper);
  19271. #endregion
  19272. trans.Complete();
  19273. }
  19274. return Success("操作成功");
  19275. }
  19276. else
  19277. {
  19278. return Error("操作失败");
  19279. }
  19280. }
  19281. else
  19282. {
  19283. return Error("权限不足");
  19284. }
  19285. }
  19286. /// <summary>
  19287. /// 修改交办信息
  19288. /// </summary>
  19289. /// <returns></returns>
  19290. //[Authority]
  19291. public ActionResult EditAssignInfoByAdmin()
  19292. {
  19293. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19294. {
  19295. int assignid = RequestString.GetInt("id", 0);
  19296. //int maindeptid = RequestString.GetInt("maindeptid", 0);
  19297. //string otherdeptids = RequestString.GetFormString("otherdeptids");
  19298. DateTime limittime = DateTime.Parse(RequestString.GetFormString("limittime"));
  19299. string assignedopinion = RequestString.GetFormString("assignedopinion");
  19300. Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(assignid);
  19301. if (modelT_Bus_AssignedInfo != null)
  19302. {
  19303. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19304. {
  19305. #region 保存交办信息
  19306. modelT_Bus_AssignedInfo.F_LimitTime = limittime;//办理时限
  19307. //modelT_Bus_AssignedInfo.F_MainDeptId = maindeptid;//主办单位id
  19308. //modelT_Bus_AssignedInfo.F_OtherDeptIds = otherdeptids;//协办单位id
  19309. modelT_Bus_AssignedInfo.F_AssignedOpinion = assignedopinion;//交办意见
  19310. assignBLL.Update(modelT_Bus_AssignedInfo);
  19311. #endregion
  19312. #region 插入操作记录
  19313. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19314. oper.F_WorkOrderId = modelT_Bus_AssignedInfo.F_WorkOrderId;
  19315. oper.F_File = modelT_Bus_AssignedInfo.F_File;
  19316. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19317. oper.F_Message = userinfo + " 修改了工单交办信息";
  19318. oper.F_CreateUser = User.F_UserCode;
  19319. oper.F_CreateTime = DateTime.Now;
  19320. oper.F_IsDelete = 0;
  19321. operBLL.Add(oper);
  19322. #endregion
  19323. trans.Complete();
  19324. }
  19325. return Success("操作成功");
  19326. }
  19327. else
  19328. {
  19329. return Error("操作失败");
  19330. }
  19331. }
  19332. else
  19333. {
  19334. return Error("权限不足");
  19335. }
  19336. }
  19337. /// <summary>
  19338. /// 修改办理信息
  19339. /// </summary>
  19340. /// <returns></returns>
  19341. //[Authority]
  19342. public ActionResult EditFeedBackInfoByAdmin()
  19343. {
  19344. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19345. {
  19346. string dealman = RequestString.GetFormString("dealman");
  19347. string result = RequestString.GetFormString("result");
  19348. string files = RequestString.GetFormString("files");
  19349. int feedbackid = RequestString.GetInt("id", 0);
  19350. Model.T_Bus_Feedback model_T_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(feedbackid);
  19351. if (model_T_Bus_Feedback != null)
  19352. {
  19353. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19354. {
  19355. #region 保存办理信息
  19356. model_T_Bus_Feedback.F_DealUser = dealman;
  19357. model_T_Bus_Feedback.F_Result = result;//反馈内容
  19358. model_T_Bus_Feedback.F_File = files;
  19359. new BLL.T_Bus_Feedback().Update(model_T_Bus_Feedback);
  19360. #endregion
  19361. #region 保存工单信息
  19362. 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());
  19363. var assign = assignBLL.GetModel(model_T_Bus_Feedback.F_AssignedId.Value);
  19364. if (maxid == assign.F_Id)
  19365. {
  19366. var order = workorderBLL.GetModel(model_T_Bus_Feedback.F_WorkOrderId);
  19367. Dictionary<string, object> keyValuePairs = new Dictionary<string, object>();
  19368. keyValuePairs.Add("F_Result", result);
  19369. workorderBLL.UpdateWorkOrder(order.F_Id, keyValuePairs);
  19370. }
  19371. #endregion
  19372. #region 插入操作记录
  19373. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19374. oper.F_WorkOrderId = model_T_Bus_Feedback.F_WorkOrderId;
  19375. oper.F_File = model_T_Bus_Feedback.F_File;
  19376. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19377. oper.F_Message = userinfo + " 修改了工单办理信息";
  19378. oper.F_CreateUser = User.F_UserCode;
  19379. oper.F_CreateTime = DateTime.Now;
  19380. oper.F_IsDelete = 0;
  19381. operBLL.Add(oper);
  19382. #endregion
  19383. trans.Complete();
  19384. }
  19385. return Success("操作成功");
  19386. }
  19387. else
  19388. {
  19389. return Error("操作失败");
  19390. }
  19391. }
  19392. else
  19393. {
  19394. return Error("权限不足");
  19395. }
  19396. }
  19397. /// <summary>
  19398. /// 修改回访信息
  19399. /// </summary>
  19400. /// <returns></returns>
  19401. //[Authority]
  19402. public ActionResult EditVisitInfoByAdmin()
  19403. {
  19404. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19405. {
  19406. string visituser = RequestString.GetFormString("visituser");//回访人
  19407. int type = RequestString.GetInt("type", 0);//回访方式
  19408. int issatisfie = RequestString.GetInt("issatisfie", 0);//0不满意 1满意
  19409. int visitid = RequestString.GetInt("id", 0);
  19410. string result = RequestString.GetFormString("result");//回访情况
  19411. string guid = RequestString.GetFormString("guid");
  19412. Model.T_Bus_VisitResult modelT_Bus_VisitResult = new BLL.T_Bus_VisitResult().GetModel(visitid);
  19413. if (modelT_Bus_VisitResult != null)
  19414. {
  19415. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19416. {
  19417. #region 保存回访信息
  19418. modelT_Bus_VisitResult.F_VisitUser = visituser;
  19419. modelT_Bus_VisitResult.F_Type = type;
  19420. modelT_Bus_VisitResult.F_IsSatisfie = issatisfie;
  19421. modelT_Bus_VisitResult.F_Result = result;
  19422. new BLL.T_Bus_VisitResult().Update(modelT_Bus_VisitResult);
  19423. //保存回访记录
  19424. new BLL.T_Bus_VisitResultRecords().AddInfo(modelT_Bus_VisitResult, User.F_UserCode, guid);
  19425. #endregion
  19426. #region 插入操作记录
  19427. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19428. oper.F_WorkOrderId = modelT_Bus_VisitResult.F_WorkOrderId;
  19429. oper.F_File = modelT_Bus_VisitResult.F_File;
  19430. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19431. oper.F_Message = userinfo + " 修改了工单回访信息";
  19432. oper.F_CreateUser = User.F_UserCode;
  19433. oper.F_CreateTime = DateTime.Now;
  19434. oper.F_IsDelete = 0;
  19435. operBLL.Add(oper);
  19436. #endregion
  19437. trans.Complete();
  19438. }
  19439. return Success("操作成功");
  19440. }
  19441. else
  19442. {
  19443. return Error("操作失败");
  19444. }
  19445. }
  19446. else
  19447. {
  19448. return Error("权限不足");
  19449. }
  19450. }
  19451. /// <summary>
  19452. /// 修改退回审核信息
  19453. /// </summary>
  19454. /// <returns></returns>
  19455. //[Authority]
  19456. public ActionResult EditAuditRebackByAdmin()
  19457. {
  19458. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19459. {
  19460. string reason = RequestString.GetFormString("reason");
  19461. int rebackid = RequestString.GetInt("id", 0);
  19462. Model.T_Bus_Feedback modelT_Bus_Feedback = new BLL.T_Bus_Feedback().GetModel(rebackid);
  19463. if (modelT_Bus_Feedback != null)
  19464. {
  19465. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19466. {
  19467. #region 保存反馈信息
  19468. modelT_Bus_Feedback.F_AuditReason = reason;//交办意见
  19469. new BLL.T_Bus_Feedback().Update(modelT_Bus_Feedback);
  19470. #endregion
  19471. #region 插入操作记录
  19472. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19473. oper.F_WorkOrderId = modelT_Bus_Feedback.F_WorkOrderId;
  19474. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19475. oper.F_Message = userinfo + " 修改了工单退回审核信息";
  19476. oper.F_CreateUser = User.F_UserCode;
  19477. oper.F_CreateTime = DateTime.Now;
  19478. oper.F_IsDelete = 0;
  19479. operBLL.Add(oper);
  19480. #endregion
  19481. trans.Complete();
  19482. }
  19483. return Success("操作成功");
  19484. }
  19485. else
  19486. {
  19487. return Error("操作失败");
  19488. }
  19489. }
  19490. else
  19491. {
  19492. return Error("权限不足");
  19493. }
  19494. }
  19495. /// <summary>
  19496. /// 修改延时审核信息
  19497. /// </summary>
  19498. /// <returns></returns>
  19499. //[Authority]
  19500. public ActionResult EditAuditDelayByAdmin()
  19501. {
  19502. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19503. {
  19504. string reason = RequestString.GetFormString("reason");
  19505. //DateTime newlimittime = DateTime.Parse(RequestString.GetFormString("newlimittime"));
  19506. int delayid = RequestString.GetInt("id", 0);
  19507. Model.T_Bus_DelayTime modelT_Bus_DelayTime = new BLL.T_Bus_DelayTime().GetModel(delayid);
  19508. if (modelT_Bus_DelayTime != null)
  19509. {
  19510. // Model.T_Bus_AssignedInfo modelT_Bus_AssignedInfo = assignBLL.GetModel(modelT_Bus_DelayTime.F_AssignedId.Value);
  19511. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19512. {
  19513. #region 保存延时审核信息
  19514. modelT_Bus_DelayTime.F_RefuseReason = reason;
  19515. //modelT_Bus_DelayTime.F_AgreeTime = newlimittime;
  19516. new BLL.T_Bus_DelayTime().Update(modelT_Bus_DelayTime);
  19517. #endregion
  19518. #region 插入操作记录
  19519. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19520. oper.F_WorkOrderId = modelT_Bus_DelayTime.F_WorkOrderId;
  19521. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19522. oper.F_Message = userinfo + " 修改了工单延时审核信息";
  19523. oper.F_CreateUser = User.F_UserCode;
  19524. oper.F_CreateTime = DateTime.Now;
  19525. oper.F_IsDelete = 0;
  19526. operBLL.Add(oper);
  19527. #endregion
  19528. trans.Complete();
  19529. }
  19530. return Success("操作成功");
  19531. }
  19532. else
  19533. {
  19534. return Error("操作失败");
  19535. }
  19536. }
  19537. else
  19538. {
  19539. return Error("权限不足");
  19540. }
  19541. }
  19542. #endregion
  19543. #region 县级对接
  19544. /// <summary>
  19545. /// 获取网点列表
  19546. /// </summary>
  19547. /// <param name="code"></param>
  19548. /// <param name="name"></param>
  19549. /// <returns></returns>
  19550. //[Authority]
  19551. public ActionResult GetCityList(string code, string name)
  19552. {
  19553. string signcode = Configs.GetValue("CityOutSignCode");
  19554. string url = Configs.GetValue("CityOutUrl");
  19555. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityList", signcode);
  19556. string strparams = "?code=" + code + "&name=" + name + "&signcode=" + outsigncode;
  19557. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityList" + strparams);
  19558. return Content(result);
  19559. }
  19560. /// <summary>
  19561. /// 获取网点详情
  19562. /// </summary>
  19563. /// <param name="code"></param>
  19564. /// <returns></returns>
  19565. //[Authority]
  19566. public ActionResult GetCityDetail(string code)
  19567. {
  19568. string signcode = Configs.GetValue("CityOutSignCode");
  19569. string url = Configs.GetValue("CityOutUrl");
  19570. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  19571. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  19572. string result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams);
  19573. return Content(result);
  19574. }
  19575. /// <summary>
  19576. /// 转派工单到县级
  19577. /// </summary>
  19578. /// <returns></returns>
  19579. //[Authority]
  19580. public ActionResult TurnWorkOrder()
  19581. {
  19582. if (User.F_RoleCode == "ZXLD" || User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG" || User.F_RoleCode == "SPZ" || User.F_RoleCode == "SPZJZ")
  19583. {
  19584. string workorderid = RequestString.GetFormString("workorderid");
  19585. string citycode = RequestString.GetFormString("citycode");
  19586. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = workorderBLL.GetModel(workorderid);
  19587. if (modelT_Bus_WorkOrder != null && (modelT_Bus_WorkOrder.F_WorkState == (int)EnumWorkState.submit))
  19588. {
  19589. string code = Configs.GetValue("CityCode");
  19590. var branchmodel = GetCityInfo(code);
  19591. var citymodel = GetCityInfo(citycode);
  19592. if (branchmodel != null && citymodel != null)
  19593. {
  19594. using (TransactionScope trans = new TransactionScope(TransactionScopeOption.Required, new TimeSpan(0, 10, 0)))
  19595. {
  19596. string cityworkorderid = string.Empty;
  19597. #region 转单
  19598. string turnsigncode = citymodel["F_Sign"].ToString();
  19599. string turnurl = citymodel["F_Url"].ToString();
  19600. string turnoutsigncode = CommonHelper.getsigncode("CountyBusiness", "AddWorkOrder", turnsigncode);
  19601. string turnstrparams = "workorderid=" + modelT_Bus_WorkOrder.F_WorkOrderId + "&signcode=" + turnoutsigncode
  19602. + "&citycode=" + branchmodel["F_Code"].ToString() + "&cityname=" + branchmodel["F_Name"].ToString() + "&cusname=" + modelT_Bus_WorkOrder.F_CusName + "&cussex=" + modelT_Bus_WorkOrder.F_CusSex
  19603. + "&cusphone=" + modelT_Bus_WorkOrder.F_CusPhone + "&cusaddress=" + modelT_Bus_WorkOrder.F_CusAddress + "&email=" + modelT_Bus_WorkOrder.F_Email
  19604. + "&zipcode=" + modelT_Bus_WorkOrder.F_ZipCode + "&conname=" + modelT_Bus_WorkOrder.F_ConName + "&conphone=" + modelT_Bus_WorkOrder.F_ConPhone
  19605. + "&title=" + modelT_Bus_WorkOrder.F_ComTitle + "&content=" + modelT_Bus_WorkOrder.F_ComContent + "&sourceaddress=" + modelT_Bus_WorkOrder.F_SourceAddress
  19606. + "&isprotect=" + modelT_Bus_WorkOrder.F_IsProtect + "&level=" + modelT_Bus_WorkOrder.F_Level;
  19607. string turnresultstr = HttpMethods.HttpPost(turnurl + "/CountyBusiness/AddWorkOrder", turnstrparams);
  19608. var turnresult = turnresultstr.ToJObject();
  19609. if (turnresult["state"].ToString() != "success")
  19610. {
  19611. return Content(turnresultstr);
  19612. }
  19613. else
  19614. {
  19615. cityworkorderid = turnresult["data"].ToString();
  19616. }
  19617. #endregion
  19618. #region 保存工单信息
  19619. modelT_Bus_WorkOrder.F_WorkState = (int)EnumWorkState.finish;
  19620. modelT_Bus_WorkOrder.F_IsClosed = 1;
  19621. modelT_Bus_WorkOrder.F_Result = "已转单到" + citymodel["F_Name"].ToString();
  19622. modelT_Bus_WorkOrder.F_DealUser = User.F_UserCode;
  19623. modelT_Bus_WorkOrder.F_DealTime = DateTime.Now;
  19624. modelT_Bus_WorkOrder.F_CloseUser = User.F_UserCode;
  19625. modelT_Bus_WorkOrder.F_CloseTime = DateTime.Now;
  19626. modelT_Bus_WorkOrder.F_AssignUser = User.F_UserCode;
  19627. modelT_Bus_WorkOrder.F_AssignTime = DateTime.Now;
  19628. workorderBLL.Update(modelT_Bus_WorkOrder);
  19629. #endregion
  19630. #region 删除草稿信息
  19631. var cglist = assignBLL.GetModelList(" F_IsDelete=0 and F_State=0 and F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'");
  19632. foreach (var cg in cglist)
  19633. {
  19634. cg.F_IsDelete = 1;
  19635. cg.F_DeleteUser = User.F_UserCode;
  19636. cg.F_DeleteTime = DateTime.Now;
  19637. assignBLL.Update(cg);
  19638. }
  19639. #endregion
  19640. #region 新增转单记录
  19641. Model.T_Bus_CityTurn modelT_Bus_CityTurn = new Model.T_Bus_CityTurn();
  19642. modelT_Bus_CityTurn.F_CityCode = citycode;
  19643. modelT_Bus_CityTurn.F_CityName = citymodel["F_Name"].ToString();
  19644. modelT_Bus_CityTurn.F_CityWorkOrderId = cityworkorderid;
  19645. modelT_Bus_CityTurn.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19646. modelT_Bus_CityTurn.F_Type = 2;
  19647. modelT_Bus_CityTurn.F_State = 1;
  19648. modelT_Bus_CityTurn.F_IsSure = 0;
  19649. modelT_Bus_CityTurn.F_IsDelete = 0;
  19650. modelT_Bus_CityTurn.F_CreateTime = DateTime.Now;
  19651. new BLL.T_Bus_CityTurn().Add(modelT_Bus_CityTurn);
  19652. #endregion
  19653. #region 插入操作记录
  19654. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19655. oper.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19656. oper.F_State = modelT_Bus_WorkOrder.F_WorkState;
  19657. string userinfo = User.depname + "(" + User.F_UserCode + ")";
  19658. oper.F_Message = userinfo + " 转派工单到 " + citymodel["F_Name"].ToString();
  19659. oper.F_CreateUser = User.F_UserCode;
  19660. oper.F_CreateTime = DateTime.Now;
  19661. oper.F_IsDelete = 0;
  19662. operBLL.Add(oper);
  19663. #endregion
  19664. trans.Complete();
  19665. }
  19666. return Success("操作成功");
  19667. }
  19668. else
  19669. {
  19670. return Error("操作失败");
  19671. }
  19672. }
  19673. else
  19674. {
  19675. return Error("操作失败");
  19676. }
  19677. }
  19678. else
  19679. {
  19680. return Success("权限不足");
  19681. }
  19682. }
  19683. /// <summary>
  19684. /// 获取当前网点信息
  19685. /// </summary>
  19686. /// <returns></returns>
  19687. public Newtonsoft.Json.Linq.JObject GetCityInfo(string code)
  19688. {
  19689. string signcode = Configs.GetValue("CityOutSignCode");
  19690. string url = Configs.GetValue("CityOutUrl");
  19691. string outsigncode = CommonHelper.getsigncode("CountyBranch", "GetCityDetail", signcode);
  19692. string strparams = "?code=" + code + "&signcode=" + outsigncode;
  19693. var result = HttpMethods.HttpGet(url + "/CountyBranch/GetCityDetail" + strparams).ToJObject();
  19694. if (result["state"].ToString() == "success")
  19695. {
  19696. return result["data"].ToString().ToJObject();
  19697. }
  19698. else
  19699. {
  19700. return null;
  19701. }
  19702. }
  19703. #endregion
  19704. #region 私有方法
  19705. /// <summary>
  19706. /// 添加操作日志
  19707. /// </summary>
  19708. /// <param name="workorderid"></param>
  19709. /// <param name="workstate"></param>
  19710. /// <param name="msgs"></param>
  19711. /// <param name="usercode"></param>
  19712. private void addoptlog(string workorderid, int? workstate, int assid, string msgs, string usercode, int type = 0, int isjb = 0)
  19713. {
  19714. Model.T_Bus_Operation oper = new Model.T_Bus_Operation();
  19715. oper.F_WorkOrderId = workorderid;
  19716. oper.F_State = workstate;
  19717. oper.F_AssignedId = assid;
  19718. oper.F_Message = msgs;
  19719. oper.F_CreateUser = usercode;
  19720. oper.F_CreateTime = DateTime.Now;
  19721. oper.F_IsDelete = 0;
  19722. oper.F_Type = type;
  19723. int n = operBLL.Add(oper);
  19724. if (isjb == 1)
  19725. {
  19726. Task.Run(() =>
  19727. {
  19728. process_info(n, "case_process_info", "交办工单");
  19729. }).ContinueWith(p =>
  19730. {
  19731. System.Diagnostics.Debug.WriteLine(DateTime.Now);
  19732. });
  19733. }
  19734. }
  19735. #endregion
  19736. /// <summary>
  19737. /// 二级单位下工单数量
  19738. /// </summary>
  19739. /// <returns></returns>
  19740. //[Authority]
  19741. public ActionResult GetDWCount()
  19742. {
  19743. Dictionary<string, string> paras = new Dictionary<string, string>();
  19744. paras.Add("@deptid", User.F_DeptId.ToString());
  19745. paras.Add("@usercode", User.F_UserCode.ToString());
  19746. if (User.F_RoleCode != "GLY" && User.F_RoleCode != "SPZ" && User.F_RoleCode != "SPZJZ" && User.F_RoleCode != "DDZG")
  19747. {
  19748. var obj = DbHelperSQL.RunProcedure("P_DWCount", paras, "DWCount");
  19749. return Success("成功", obj);
  19750. }
  19751. else
  19752. {
  19753. var obj = DbHelperSQL.RunProcedure("P_GLCount", paras, "DWCount");
  19754. return Success("成功", obj);
  19755. }
  19756. }
  19757. #region 省平台对接
  19758. string url = "http://172.20.0.203:8888/Affairs/";
  19759. // string url = "http://localhost:63660/Affairs/";
  19760. int Affairs = int.Parse(Configs.GetValue("Affairs"));
  19761. public void case_info(string workorderid, string parameter)
  19762. {
  19763. if (Affairs > 0)
  19764. {
  19765. WebClient web = new WebClient();
  19766. web.Encoding = Encoding.UTF8;
  19767. string Dataurl = web.DownloadString(url + parameter + "?workorderid=" + workorderid);
  19768. }
  19769. }
  19770. public void process_info(int id, string parameter, string title)
  19771. {
  19772. if (Affairs > 0)
  19773. {
  19774. WebClient web = new WebClient();
  19775. web.Encoding = Encoding.UTF8;
  19776. string Dataurl = web.DownloadString(url + parameter + "?id=" + id + "&title=" + title);
  19777. }
  19778. }
  19779. public void material_info(string WorkOrderId, string file, int id, string type)
  19780. {
  19781. if (Affairs > 0)
  19782. {
  19783. WebClient web = new WebClient();
  19784. web.Encoding = Encoding.UTF8;
  19785. string Dataurl = web.DownloadString(url + "case_material_info" + "?WorkOrderId=" + WorkOrderId + "&file=" + file + "&id=" + id + "&type=" + type);
  19786. }
  19787. }
  19788. #endregion
  19789. public ActionResult ReleaseOnLineWorkOrder()
  19790. {
  19791. if (User.F_RoleCode == "ZXLDGLYGLY" || User.F_RoleCode == "GLY" || User.F_RoleCode == "DDZG")
  19792. {
  19793. int userId = User.F_UserId;
  19794. if (userId != 0)
  19795. {
  19796. Model.T_Sys_UserAccount userModel = new BLL.T_Sys_UserAccount().GetModel(userId);
  19797. if (userModel != null)
  19798. {
  19799. string workorderid = RequestString.GetFormString("workorderid");
  19800. string title = RequestString.GetFormString("title");
  19801. int islimit = RequestString.GetInt("islimit", 1);
  19802. string limittime = RequestString.GetFormString("limittime");
  19803. Model.T_Bus_WorkOrder modelT_Bus_WorkOrder = new BLL.T_Bus_WorkOrder().GetModel(workorderid);
  19804. if (modelT_Bus_WorkOrder != null)
  19805. {
  19806. Model.T_Web_WorkRelease WorkReleaseInfo = new BLL.T_Web_WorkRelease().GetModel(workorderid);
  19807. if (WorkReleaseInfo == null)
  19808. {
  19809. WorkReleaseInfo = new Model.T_Web_WorkRelease();
  19810. WorkReleaseInfo.F_WorkOrderId = modelT_Bus_WorkOrder.F_WorkOrderId;
  19811. WorkReleaseInfo.F_Content = modelT_Bus_WorkOrder.F_ComContent;
  19812. WorkReleaseInfo.F_Result = modelT_Bus_WorkOrder.F_Result;
  19813. WorkReleaseInfo.F_WorkSort = modelT_Bus_WorkOrder.F_InfoType;
  19814. WorkReleaseInfo.F_WorkState = modelT_Bus_WorkOrder.F_WorkState;
  19815. WorkReleaseInfo.F_AcceptTime = modelT_Bus_WorkOrder.F_CreateTime;
  19816. WorkReleaseInfo.F_Title = title;
  19817. WorkReleaseInfo.F_EffectiveState = islimit;
  19818. if (islimit == 2)
  19819. {
  19820. WorkReleaseInfo.F_EffectiveTime = DateTime.Parse(limittime);
  19821. }
  19822. WorkReleaseInfo.F_Releaser = userModel.F_UserName;
  19823. WorkReleaseInfo.F_ReleaseState = 1;
  19824. WorkReleaseInfo.F_ReleaseTime = DateTime.Now;
  19825. var dt = new BLL.T_Bus_AssignedInfo().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "' order by F_Id desc").Tables[0];
  19826. if (dt != null && dt.Rows.Count > 0)
  19827. {
  19828. WorkReleaseInfo.F_Opinion = dt.Rows[0]["F_AssignedOpinion"].ToString();
  19829. if (!string.IsNullOrEmpty(dt.Rows[0]["F_MainDeptId"].ToString()))
  19830. {
  19831. WorkReleaseInfo.F_Department = Convert.ToInt32(dt.Rows[0]["F_MainDeptId"]);
  19832. }
  19833. }
  19834. dt.Dispose();
  19835. dt = new BLL.T_Bus_Feedback().GetList(" F_WorkOrderId='" + modelT_Bus_WorkOrder.F_WorkOrderId + "'").Tables[0];
  19836. if (dt != null && dt.Rows.Count > 0)
  19837. {
  19838. if (!string.IsNullOrEmpty(dt.Rows[0]["F_CreateTime"].ToString()))
  19839. {
  19840. WorkReleaseInfo.F_FeedbackTime = Convert.ToDateTime(dt.Rows[0]["F_CreateTime"]);
  19841. }
  19842. }
  19843. if (new BLL.T_Web_WorkRelease().Add(WorkReleaseInfo))
  19844. {
  19845. return Success("发布成功!");
  19846. }
  19847. else
  19848. {
  19849. return Error("发布失败!");
  19850. }
  19851. }
  19852. else
  19853. {
  19854. return Error("此工单已经发布过了!");
  19855. }
  19856. }
  19857. return Error("操作失败");
  19858. }
  19859. else
  19860. {
  19861. return Error("发布失败");
  19862. }
  19863. }
  19864. else
  19865. {
  19866. return Error("发布失败");
  19867. }
  19868. }
  19869. else
  19870. {
  19871. return Error("权限不足");
  19872. }
  19873. }
  19874. }
  19875. }