PDAModuleLogic.cs 406 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PDAModuleLogic.cs
  5. * 2.功能描述:PDA相关处理。
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2014/09/16 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Drawing;
  14. using System.Drawing.Imaging;
  15. using System.IO;
  16. using System.Text;
  17. using Dongke.IBOSS.PRD.Basics.BaseResources;
  18. using Dongke.IBOSS.PRD.Basics.DataAccess;
  19. using Dongke.IBOSS.PRD.Basics.Library;
  20. using Dongke.IBOSS.PRD.Service.DataModels;
  21. using Dongke.IBOSS.PRD.WCF.DataModels;
  22. using Dongke.IBOSS.PRD.WCF.DataModels.HRModule;
  23. using Dongke.IBOSS.PRD.WCF.DataModels.PCModule;
  24. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  25. using Oracle.ManagedDataAccess.Client;
  26. namespace Dongke.IBOSS.PRD.Service.PDAModuleLogic
  27. {
  28. /// <summary>
  29. /// PDA
  30. /// </summary>
  31. public partial class PDAModuleLogic
  32. {
  33. #region PDA端登陆
  34. /// <summary>
  35. /// PDA端登陆
  36. /// </summary>
  37. /// <returns></returns>
  38. public static PDALoginResult DoPDALogin(LoginRequestEntity requestEntity)
  39. {
  40. PDALoginResult pdaResult = new PDALoginResult();
  41. LoginResultEntity resultEntity = DKIBOSSPRDLogic.DKIBOSSPRDLogic.DoLogin(requestEntity, "2");
  42. pdaResult.Status = resultEntity.LoginStatus;
  43. //pdaResult.Message = resultEntity.LoginMessage;
  44. if (pdaResult.Status != 0)
  45. {
  46. switch (pdaResult.Status)
  47. {
  48. case 0:
  49. pdaResult.Message = "登录成功";
  50. break;
  51. case 1:
  52. pdaResult.Message = "帐套不存在";
  53. break;
  54. case 2:
  55. pdaResult.Message = "该帐套不存在该用户";
  56. break;
  57. case 3:
  58. pdaResult.Message = "用户密码不正确";
  59. break;
  60. case 4:
  61. pdaResult.Message = "MAC地址错误";
  62. break;
  63. case 5:
  64. pdaResult.Message = "登录时间错误";
  65. break;
  66. case 6:
  67. pdaResult.Message = "用户停用";
  68. break;
  69. case 7:
  70. pdaResult.Message = "用户被锁死";
  71. break;
  72. case 8:
  73. pdaResult.Message = "此用户不能在移动端登录";
  74. break;
  75. case 9:
  76. pdaResult.Message = "APP版本需要更新";
  77. break;
  78. case 10:
  79. pdaResult.Message = Constant.PDA_RESULT_SYSTEMDATEERROR;
  80. break;
  81. case 11:
  82. pdaResult.Message = "没有找到加服务器密锁";
  83. break;
  84. case 12:
  85. pdaResult.Message = "服务器加密锁不是东科的加密锁";
  86. break;
  87. case 13:
  88. pdaResult.Message = "读取服务器锁内客户编码内容失败";
  89. break;
  90. case 21:
  91. //pdaResult.Message = "没有找到license文件";
  92. pdaResult.Message = Messages.MSG_SYS_W011;
  93. break;
  94. case 22:
  95. //pdaResult.Message = "license文件损坏";
  96. pdaResult.Message = Messages.MSG_SYS_W012;
  97. break;
  98. case 23:
  99. //pdaResult.Message = "license文件内容不正确";
  100. pdaResult.Message = Messages.MSG_SYS_W013;
  101. break;
  102. case 31:
  103. pdaResult.Message = "服务器加密锁的内容和license文件的内容不相符";
  104. break;
  105. case 32:
  106. //pdaResult.Message = "临时的License已经过期";
  107. pdaResult.Message = Messages.MSG_SYS_W015;
  108. break;
  109. case 41:
  110. pdaResult.Message = "打开客户端加密锁失败";
  111. break;
  112. case 42:
  113. pdaResult.Message = "没有找到客户端加密锁";
  114. break;
  115. case 43:
  116. pdaResult.Message = "客户端加密锁不是东科的加密锁";
  117. break;
  118. case 44:
  119. pdaResult.Message = "读取加密锁信息失败(硬件损坏、管理密码错误等)";
  120. break;
  121. case 45:
  122. pdaResult.Message = "加密锁的内容和license内容不一致";
  123. break;
  124. default:
  125. pdaResult.Message = "登录失败";
  126. break;
  127. }
  128. }
  129. else
  130. {
  131. pdaResult.SessionKey = resultEntity.CurrentUserEntity.SessionKey;
  132. pdaResult.AccountID = resultEntity.CurrentUserEntity.AccountID;
  133. pdaResult.UserID = resultEntity.CurrentUserEntity.UserID;
  134. pdaResult.UserName = resultEntity.CurrentUserEntity.UserName;
  135. pdaResult.IsGroutingWorker = resultEntity.CurrentUserEntity.IsGroutingWorker.ToString();
  136. //pdaResult.Message = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("WCFSetting", "ServerName");
  137. pdaResult.ServerName = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("WCFSetting", "ServerName");
  138. if (resultEntity.LicenseInfo != null)
  139. {
  140. DateTime vEnd = Convert.ToDateTime(resultEntity.LicenseInfo.Tables["Info"].Rows[0]["ValidityEnd"]);
  141. pdaResult.ValidityEnd = vEnd.ToString("yyyy-MM-dd");
  142. // TODO message -1 登录成功,显示消息(确定);-2 登录成功,显示消息(不确定);
  143. }
  144. pdaResult.AppVersion = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("VersionSetting", "AndroidVersion");//System.Configuration.ConfigurationManager.AppSettings["AndroidVersion"];
  145. string ApkPath = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");
  146. ApkPath = System.AppDomain.CurrentDomain.BaseDirectory + ApkPath;
  147. if (File.Exists(ApkPath))
  148. {
  149. //pdaResult.Rights = userEntity.UserRightData;
  150. FileStream file = File.OpenRead(ApkPath);
  151. pdaResult.ApkSize = file.Length;
  152. file.Close();
  153. }
  154. else
  155. {
  156. pdaResult.ApkSize = -1;//APK文件不存在
  157. }
  158. }
  159. return pdaResult;
  160. }
  161. #endregion
  162. #region 获得显示数据
  163. /// <summary>
  164. /// 获得生产线菜单
  165. /// </summary>
  166. /// <param name="sUserInfo">用户信息</param>
  167. /// <returns>DataTable</returns>
  168. /// <remarks>
  169. /// 陈冰 2014.09.23 新建
  170. /// </remarks>
  171. public static DataTable GetProductionLineMenu(SUserInfo sUserInfo)
  172. {
  173. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  174. try
  175. {
  176. con.Open();
  177. OracleParameter[] paras = new OracleParameter[]{
  178. new OracleParameter("in_userID",OracleDbType.Int32,
  179. sUserInfo.UserID,ParameterDirection.Input),
  180. new OracleParameter("out_result",OracleDbType.RefCursor,ParameterDirection.Output),
  181. };
  182. DataSet dsResult = con.ExecStoredProcedure("PRO_PDA_GetProductionLineMenu", paras);
  183. if (dsResult != null && dsResult.Tables.Count > Constant.INT_IS_ZERO)
  184. {
  185. return dsResult.Tables[0];
  186. }
  187. return null;
  188. }
  189. catch (Exception ex)
  190. {
  191. throw ex;
  192. }
  193. finally
  194. {
  195. if (con.ConnState == ConnectionState.Open)
  196. {
  197. con.Close();
  198. }
  199. }
  200. }
  201. #endregion
  202. #region 统计
  203. /// <summary>
  204. /// 统计当日计数数量
  205. /// </summary>
  206. /// <param name="procedureID">当前工序ID</param>
  207. /// <param name="sUserInfo"></param>
  208. /// <returns></returns>
  209. public static DataSet StatisticsCollectBarcode(int procedureID, SUserInfo sUserInfo)
  210. {
  211. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  212. try
  213. {
  214. con.Open();
  215. // string sql = @"select tuser.UserCode, goods.GoodsCode, goods.GoodsName, goodscount.Count
  216. // from (select Goodsid, count(Goodsid) count, UserID
  217. // from tp_pm_productiondata
  218. // where ProcedureID = :procedureID
  219. // and CreateUserID = :createUserID
  220. // and AccountDate = fun_cmn_getaccountdate(accountid)
  221. // group by Goodsid, UserID) goodscount
  222. // inner join tp_mst_goods goods on goods.goodsid = goodscount.goodsid
  223. // inner join tp_mst_user tuser on tuser.userid = goodscount.userid
  224. // order by tuser.usercode, goods.goodscode";
  225. //tp_pm_productiondata.UserCode,
  226. // string sql = @" select
  227. // decode(GoodsCode,'小计','-',UserCode) as UserCode,
  228. //
  229. // decode(UserCode,'合计','合计',GoodsCode) as GoodsCode,
  230. // count
  231. // from
  232. // (
  233. //
  234. // select
  235. //
  236. // decode(tp_pm_productiondata.GoodsCode,'合计','-',tp_pm_productiondata.UserCode) as UserCode,
  237. // tp_pm_productiondata.GoodsCode,
  238. //
  239. // tp_pm_productiondata.count
  240. // from (
  241. // select
  242. //
  243. //
  244. // decode(grouping(tuser.UserCode),1,'合计',tuser.UserCode) UserCode,
  245. // decode(grouping(goods.GoodsCode),1,'小计',goods.GoodsCode) GoodsCode,
  246. //
  247. // count(tp_pm_productiondata.goodsid) count
  248. // from
  249. // tp_pm_productiondata
  250. // inner join tp_mst_goods goods
  251. // on tp_pm_productiondata.goodsid = goods.goodsid
  252. // and tp_pm_productiondata.procedureid=:procedureID
  253. // and tp_pm_productiondata.createUserID=:createUserID
  254. // and tp_pm_productiondata.AccountDate = trunc(sysdate)
  255. // inner join tp_mst_user tuser on tuser.userid = tp_pm_productiondata.userid
  256. //
  257. // group by rollup(tuser.UserCode,goods.GoodsCode)
  258. //
  259. // ) tp_pm_productiondata
  260. //
  261. // )
  262. //
  263. // ";
  264. string sql = @" select
  265. decode(GoodsCode,'小计','-',UserCode) as UserCode,
  266. decode(UserCode,'合计','合计',GoodsCode) as GoodsCode,
  267. count
  268. from
  269. (
  270. select
  271. decode(tp_pm_productiondata.GoodsCode,'合计','-',tp_pm_productiondata.UserCode) as UserCode,
  272. tp_pm_productiondata.GoodsCode,
  273. tp_pm_productiondata.count
  274. from (
  275. select
  276. decode(grouping(UserCode),1,'合计',UserCode) UserCode,
  277. decode(grouping(GoodsCode),1,'小计',GoodsCode) GoodsCode,
  278. count(tp_pm_productiondata.goodsid) count
  279. from
  280. tp_pm_productiondata
  281. where
  282. tp_pm_productiondata.procedureid=:procedureID
  283. and tp_pm_productiondata.createUserID=:createUserID
  284. and tp_pm_productiondata.AccountDate = trunc(sysdate)
  285. and tp_pm_productiondata.valueflag=1
  286. group by rollup(UserCode,GoodsCode)
  287. ) tp_pm_productiondata
  288. )
  289. ";
  290. // 陈冰 2014-11-24
  291. // and tp_pm_productiondata.userid=:createUserID 改成 tp_pm_productiondata.createUserID = :createUserID
  292. // and tp_pm_productiondata.AccountDate = fun_cmn_getaccountdate(tp_pm_productiondata.accountid)
  293. // 改成 and tp_pm_productiondata.AccountDate =trunc(sysdate)
  294. OracleParameter[] paras = new OracleParameter[]{
  295. new OracleParameter(":procedureID",OracleDbType.Int32,
  296. procedureID,ParameterDirection.Input),
  297. new OracleParameter(":createUserID",OracleDbType.Int32,
  298. sUserInfo.UserID,ParameterDirection.Input),
  299. };
  300. DataSet dsResult = con.GetSqlResultToDs(sql, paras);
  301. return dsResult;
  302. }
  303. catch (Exception ex)
  304. {
  305. throw ex;
  306. }
  307. finally
  308. {
  309. if (con.ConnState == ConnectionState.Open)
  310. {
  311. con.Close();
  312. }
  313. }
  314. }
  315. /// <summary>
  316. /// 使用存储过程PRO_PM_StatisticsKilnCar统计当前用户下工序的窑车产品数据
  317. /// </summary>
  318. /// <param name="procedureID">工序</param>
  319. /// <returns></returns>
  320. public static DataSet StatisticsKilnCar(int procedureID, SUserInfo sUserInfo)
  321. {
  322. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  323. string procsql = "PRO_PM_StatisticsKilnCar";
  324. try
  325. {
  326. IDataParameter[] paras = new OracleParameter[]
  327. {
  328. new OracleParameter("in_procedureid", OracleDbType.Int32,procedureID, ParameterDirection.Input),
  329. new OracleParameter("in_userid", OracleDbType.Int32,sUserInfo.UserID, ParameterDirection.Input),
  330. new OracleParameter("rs_result", OracleDbType.RefCursor, ParameterDirection.Output)
  331. };
  332. oracleConn.Open();
  333. DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  334. return returnDs;
  335. }
  336. catch (Exception ex)
  337. {
  338. throw ex;
  339. }
  340. finally
  341. {
  342. if (oracleConn.ConnState == ConnectionState.Open)
  343. {
  344. oracleConn.Close();
  345. }
  346. }
  347. }
  348. /// <summary>
  349. /// 使用存储过程PRO_PM_StatisticsProductTrack统计当前条码所有工序
  350. /// </summary>
  351. /// <param name="procedureID">工序</param>
  352. /// <returns></returns>
  353. public static ProductionDataEntity StatisticsProductTrack(string barcode, SUserInfo sUserInfo)
  354. {
  355. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  356. string procsql = "PRO_PM_StatisticsProductTrack";
  357. try
  358. {
  359. IDataParameter[] paras = new OracleParameter[]
  360. {
  361. new OracleParameter("in_barcode", OracleDbType.Varchar2,barcode, ParameterDirection.Input),
  362. new OracleParameter("in_accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  363. new OracleParameter("out_goodsCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  364. new OracleParameter("out_groutingUserCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  365. new OracleParameter("out_mouldCode", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  366. new OracleParameter("out_groutingNum", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  367. new OracleParameter("out_goodsEnding", OracleDbType.Varchar2,100,null, ParameterDirection.Output),
  368. new OracleParameter("rs_result", OracleDbType.RefCursor, ParameterDirection.Output)
  369. };
  370. oracleConn.Open();
  371. DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  372. ProductionDataEntity[] productionDataEntitys = new ProductionDataEntity[1];
  373. ProductionDataEntity productionDataEntity = new ProductionDataEntity();
  374. productionDataEntity.Barcode = paras[0].Value != null ? paras[0].Value.ToString() : "";
  375. productionDataEntity.GoodsCode = paras[2].Value != null ? paras[2].Value.ToString() : "";
  376. productionDataEntity.GroutingUserCode = paras[3].Value != null ? paras[3].Value.ToString() : "";
  377. productionDataEntity.MouldCode = paras[4].Value != null ? paras[4].Value.ToString() : "";
  378. string GroutingNum = paras[5].Value != null ? paras[5].Value.ToString() : "";
  379. productionDataEntity.GroutingNum = Convert.ToInt32((GroutingNum == "" || GroutingNum.ToString() == "null") ? "0" : GroutingNum);
  380. productionDataEntity.GoodsEnding = paras[6].Value != null ? paras[6].Value.ToString() : "";
  381. if (returnDs != null && returnDs.Tables[0].Rows.Count > 0)
  382. {
  383. //ProductionDataEntity[] productionDataEntitys = new ProductionDataEntity[returnDs.Tables[0].Rows.Count];
  384. List<ProductionProcedureListEntity> productionProcedureListEntitys = new List<ProductionProcedureListEntity>();
  385. for (int i = 0; i < returnDs.Tables[0].Rows.Count; i++)
  386. {
  387. ProductionProcedureListEntity productionProcedureListEntity = new ProductionProcedureListEntity();
  388. productionProcedureListEntity.ProcedureName = returnDs.Tables[0].Rows[i]["ProcedureName"].ToString();
  389. productionProcedureListEntity.ProductionUserCode = returnDs.Tables[0].Rows[i]["ProductionUserCode"].ToString();
  390. productionProcedureListEntity.Usercode = returnDs.Tables[0].Rows[i]["CreateUserCode"].ToString();
  391. productionProcedureListEntity.Createtime = Convert.ToDateTime(returnDs.Tables[0].Rows[i]["Createtime"].ToString());
  392. productionProcedureListEntitys.Add(productionProcedureListEntity);
  393. // productionDataEntitys[i].ProcedureDataList = productionProcedureListEntitys;
  394. }
  395. productionDataEntity.ProcedureDataList = new List<ProductionProcedureListEntity>();
  396. productionDataEntity.ProcedureDataList = productionProcedureListEntitys;
  397. }
  398. return productionDataEntity;
  399. }
  400. catch (Exception ex)
  401. {
  402. ex.HelpLink = "barcode:" + barcode; //为了看哪个条码出现的问题
  403. throw ex;
  404. }
  405. finally
  406. {
  407. if (oracleConn.ConnState == ConnectionState.Open)
  408. {
  409. oracleConn.Close();
  410. }
  411. }
  412. }
  413. #endregion
  414. #region 文件上传下载
  415. #region 保存PDA图片
  416. /// <summary>
  417. /// 保存临时图片
  418. /// </summary>
  419. /// <param name="mageStream"></param>
  420. /// <returns></returns>
  421. public static string SaveImg(Stream mageStream)
  422. {
  423. try
  424. {
  425. // 路径不存在 需要创建
  426. if (!Directory.Exists(Constant.SYSTEM_TEMP_PATH))
  427. {
  428. Directory.CreateDirectory(Constant.SYSTEM_TEMP_PATH);
  429. }
  430. string path = Constant.SYSTEM_TEMP_PATH + "/" + System.Guid.NewGuid().ToString() + Constant.SYSTEM_IMAGE_FORMAT;
  431. Image img = Bitmap.FromStream(mageStream);
  432. img.Save(System.AppDomain.CurrentDomain.BaseDirectory + path);
  433. return path;
  434. }
  435. catch (Exception ex)
  436. {
  437. throw ex;
  438. }
  439. }
  440. public static Stream GetImg(string path)
  441. {
  442. Image image = Image.FromFile(path);//这是你图片文件的
  443. MemoryStream stream = new MemoryStream();
  444. image.Save(stream, ImageFormat.Jpeg); //把图片保存到流中。
  445. return stream;
  446. }
  447. #endregion
  448. /// <summary>
  449. /// PAD自动更新
  450. /// </summary>
  451. /// <returns></returns>
  452. public static Stream AutoUpgrade()
  453. {
  454. try
  455. {
  456. string path = INIUtility.Instance(INIUtility.IniFile.Config).ReadIniData("PathSetting", "UpgradeAPKPath");//System.Configuration.ConfigurationManager.AppSettings["UpgradeAPKPath"].Trim();
  457. path = System.AppDomain.CurrentDomain.BaseDirectory + path;
  458. FileStream fileStream = new FileStream(path, FileMode.Open, FileAccess.Read, FileShare.Read);
  459. return fileStream;
  460. }
  461. catch (Exception ex)
  462. {
  463. throw ex;
  464. }
  465. }
  466. #endregion
  467. /// <summary>
  468. /// 由产品条码获取注浆信息
  469. /// </summary>
  470. /// <param name="barcode"></param>
  471. /// <returns></returns>
  472. public static DataSet GetGroutingProducttByBarCode(string barcode)
  473. {
  474. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  475. try
  476. {
  477. con.Open();
  478. string sqlString = @"select
  479. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  480. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  481. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  482. (select tp_pm_inproduction.ispublicbody from
  483. tp_pm_inproduction where tp_pm_inproduction.BarCode=:barcode) as ispublicbody,
  484. (select tp_pm_inproductiontrash.ispublicbody from
  485. tp_pm_inproductiontrash where tp_pm_inproductiontrash.BarCode=:barcode) as ispublicbodyTrach,
  486. TP_PM_GroutingDailyDetail.Groutingdate
  487. from TP_PM_GroutingDailyDetail
  488. where TP_PM_GroutingDailyDetail.BarCode=:barcode";
  489. OracleParameter[] paras = new OracleParameter[]{
  490. new OracleParameter(":barcode",barcode),
  491. };
  492. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  493. return ds;
  494. }
  495. catch (Exception ex)
  496. {
  497. throw ex;
  498. }
  499. finally
  500. {
  501. if (con.ConnState == ConnectionState.Open)
  502. {
  503. con.Close();
  504. }
  505. }
  506. }
  507. /// <summary>
  508. /// 获取工号下的所有工种信息
  509. /// </summary>
  510. /// <param name="UserID">工号ID</param>
  511. /// <param name="sUserInfo">获取系统账套信息</param>
  512. /// <returns>数据集</returns>
  513. public static DataSet GetAllJobsByUserID(int UserID, SUserInfo sUserInfo)
  514. {
  515. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  516. try
  517. {
  518. con.Open();
  519. string sqlString = @"select
  520. TP_MST_UserJobs.Userid,
  521. TP_MST_Jobs.JobsID as Jobs,
  522. TP_MST_Jobs.JobsName,
  523. TP_MST_Jobs.JobsCode
  524. from TP_MST_UserJobs
  525. left join TP_MST_Jobs
  526. on TP_MST_UserJobs.JobsID=TP_MST_Jobs.JobsID
  527. where TP_MST_UserJobs.Userid=:UserId and TP_MST_Jobs.Accountid=:Accountid
  528. order by TP_MST_Jobs.JobsCode
  529. ";
  530. OracleParameter[] paras = new OracleParameter[]{
  531. new OracleParameter(":Accountid",sUserInfo.AccountID),
  532. new OracleParameter(":UserId",UserID),
  533. };
  534. DataSet dsUserIsWorker = con.GetSqlResultToDs(sqlString, paras);
  535. return dsUserIsWorker;
  536. }
  537. catch (Exception ex)
  538. {
  539. throw ex;
  540. }
  541. finally
  542. {
  543. if (con.ConnState == ConnectionState.Open)
  544. {
  545. con.Close();
  546. }
  547. }
  548. }
  549. /// <summary>
  550. /// 根据所选工号对应的工种,查出缺陷责任员工
  551. /// </summary>
  552. /// <param name="jobs">工种ID</param>
  553. /// <returns></returns>
  554. public static DataSet GetDutyStaffByUserID(int jobs, SUserInfo sUserInfo)
  555. {
  556. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  557. try
  558. {
  559. con.Open();
  560. string sqlString = @"select
  561. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  562. from TP_MST_UserStaff
  563. left join TP_HR_Staff
  564. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  565. where TP_MST_UserStaff.Ujobsid=:jobs and TP_HR_Staff.StaffStatus in (1,2)
  566. order by TP_HR_Staff.StaffCode
  567. ";
  568. //and TP_PM_Producer.UserID=:UserID and TP_PM_Producer.UJobsID=:JobsID
  569. OracleParameter[] paras = new OracleParameter[]{
  570. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  571. };
  572. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  573. return ds;
  574. }
  575. catch (Exception ex)
  576. {
  577. throw ex;
  578. }
  579. finally
  580. {
  581. if (con.ConnState == ConnectionState.Open)
  582. {
  583. con.Close();
  584. }
  585. }
  586. }
  587. /// <summary>
  588. /// 根据所选工号,查出漏检责任员工
  589. /// </summary>
  590. /// <param name="userid">工号</param>
  591. /// <returns></returns>
  592. public static DataSet GetMissedStaffByUserID(int userid, SUserInfo sUserInfo)
  593. {
  594. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  595. try
  596. {
  597. con.Open();
  598. string sqlString = @"select
  599. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as UJobsID,TP_HR_Staff.Jobs as SJobsID
  600. from TP_MST_UserStaff
  601. left join TP_HR_Staff
  602. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  603. where TP_MST_UserStaff.Userid=:userid
  604. ";
  605. OracleParameter[] paras = new OracleParameter[]{
  606. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  607. };
  608. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  609. return ds;
  610. }
  611. catch (Exception ex)
  612. {
  613. throw ex;
  614. }
  615. finally
  616. {
  617. if (con.ConnState == ConnectionState.Open)
  618. {
  619. con.Close();
  620. }
  621. }
  622. }
  623. /// <summary>
  624. /// 查询产品信息
  625. /// </summary>
  626. /// <param name="requestEntity">请求信息</param>
  627. /// <param name="goodsEntity">产品信息</param>
  628. /// <returns></returns>
  629. /// <remarks>
  630. /// 王鑫 2014.12.09 新建
  631. /// </remarks>
  632. public static DataSet SerachGoods(SUserInfo sUserInfo, GoodsEntity goodsEntity)
  633. {
  634. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  635. try
  636. {
  637. con.Open();
  638. OracleParameter[] paras = new OracleParameter[]{
  639. new OracleParameter("account",OracleDbType.Int32,
  640. sUserInfo.AccountID,ParameterDirection.Input),
  641. new OracleParameter("goodsID",OracleDbType.Int32,
  642. goodsEntity.GoodsID,ParameterDirection.Input),
  643. new OracleParameter("goodsCode",OracleDbType.NVarchar2,
  644. goodsEntity.GoodsCode,ParameterDirection.Input),
  645. new OracleParameter("goodsName",OracleDbType.NVarchar2,
  646. goodsEntity.GoodsName,ParameterDirection.Input),
  647. new OracleParameter("goodsSpecification",OracleDbType.NVarchar2,
  648. goodsEntity.GoodsSpecification,ParameterDirection.Input),
  649. new OracleParameter("goodsModel",OracleDbType.NVarchar2,
  650. goodsEntity.GoodsModel,ParameterDirection.Input),
  651. new OracleParameter("goodsTypeCode",OracleDbType.NVarchar2,
  652. goodsEntity.GoodsTypeCode,ParameterDirection.Input),
  653. new OracleParameter("glazeTypeID",OracleDbType.Int32,
  654. goodsEntity.GlazeTypeID,ParameterDirection.Input),
  655. new OracleParameter("ceaseFlag",OracleDbType.NVarchar2,
  656. goodsEntity.CeaseFlag,ParameterDirection.Input),
  657. new OracleParameter("remarks",OracleDbType.NVarchar2,
  658. goodsEntity.Remarks,ParameterDirection.Input),
  659. new OracleParameter("valueFlag",OracleDbType.NVarchar2,
  660. goodsEntity.ValueFlag,ParameterDirection.Input),
  661. new OracleParameter("rs_result",OracleDbType.RefCursor,ParameterDirection.Output),
  662. new OracleParameter("rs_result_img",OracleDbType.RefCursor,ParameterDirection.Output),
  663. };
  664. foreach (OracleParameter item in paras)
  665. {
  666. if (item.Value + "" == "")
  667. {
  668. item.Value = DBNull.Value;
  669. }
  670. }
  671. DataSet ds = con.ExecStoredProcedure("PRO_MST_SerachGoods", paras);
  672. return ds;
  673. }
  674. catch (Exception ex)
  675. {
  676. throw ex;
  677. }
  678. finally
  679. {
  680. if (con.ConnState == ConnectionState.Open)
  681. {
  682. con.Close();
  683. }
  684. }
  685. }
  686. /// <summary>
  687. /// 获取用户列表
  688. /// </summary>
  689. /// <param name="requestEntity">用户实体</param>
  690. /// <param name="webUserInfo">获取系统账套信息</param>
  691. /// <returns>数据集</returns>
  692. public static DataSet SearchUserData(SUserEntity requestEntity, SUserInfo sUserInfo)
  693. {
  694. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  695. try
  696. {
  697. con.Open();
  698. OracleParameter[] paras = new OracleParameter[]{
  699. new OracleParameter("in_accountID",sUserInfo.AccountID),
  700. new OracleParameter("in_userID",sUserInfo.UserID),
  701. new OracleParameter("in_userCode",requestEntity.UserCode),
  702. new OracleParameter("in_userName",requestEntity.UserName),
  703. new OracleParameter("in_organizationID",requestEntity.OrganizationID),
  704. new OracleParameter("in_remarks",requestEntity.Remarks),
  705. new OracleParameter("in_limitMAC",requestEntity.LimitMAC),
  706. new OracleParameter("in_isWorker",requestEntity.IsWorker),
  707. new OracleParameter("rs_result",OracleDbType.RefCursor),
  708. new OracleParameter("in_ValueFlag",requestEntity.IsValueFlag),
  709. new OracleParameter("in_IsLocked",requestEntity.IsLocked),
  710. };
  711. paras[8].Direction = ParameterDirection.Output;
  712. DataSet ds = con.ExecStoredProcedure("PRO_MST_SearchUser", paras);
  713. return ds;
  714. }
  715. catch (Exception ex)
  716. {
  717. throw ex;
  718. }
  719. finally
  720. {
  721. if (con.ConnState == ConnectionState.Open)
  722. {
  723. con.Close();
  724. }
  725. }
  726. }
  727. /// <summary>
  728. /// 获取数据字典管理的数据
  729. /// </summary>
  730. /// <param name="Pvalue">显示停用标识</param>
  731. /// <param name="dictionaryType">字典类别</param>
  732. /// <returns></returns>
  733. /// <remarks>
  734. /// 2014.12.03 新建
  735. /// </remarks>
  736. public static DataSet GetDictionaryData(byte Pvalue, string dictionaryType, SUserInfo sUserInfo)
  737. {
  738. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  739. try
  740. {
  741. string sqlString = String.Empty;
  742. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = null;
  743. if (Pvalue.ToString() == Constant.INT_IS_ONE.ToString())
  744. {
  745. sqlString = "Select DictionaryID,DictionaryType,DictionaryValue,DisplayNo,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,"
  746. + "UpdateUserID,OPTimeStamp from TP_MST_DataDictionary where DictionaryType = :DictionaryType and AccountID = :AccountID";
  747. oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  748. {
  749. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID),
  750. new Oracle.ManagedDataAccess.Client.OracleParameter(":DictionaryType",dictionaryType)
  751. };
  752. }
  753. else if (Pvalue.ToString() == Constant.INT_IS_ZERO.ToString())
  754. {
  755. sqlString = "Select DictionaryID,DictionaryType,DictionaryValue,DisplayNo,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,"
  756. + "UpdateUserID,OPTimeStamp from TP_MST_DataDictionary where valueflag = :valueflag and DictionaryType = :DictionaryType and AccountID = :AccountID";
  757. oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  758. {
  759. new Oracle.ManagedDataAccess.Client.OracleParameter(":valueflag",Constant.INT_IS_ONE.ToString()),
  760. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID),
  761. new Oracle.ManagedDataAccess.Client.OracleParameter(":DictionaryType",dictionaryType)
  762. };
  763. }
  764. oracleConn.Open();
  765. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  766. oracleConn.Close();
  767. return result;
  768. }
  769. catch (Exception ex)
  770. {
  771. if (oracleConn.ConnState == ConnectionState.Open)
  772. {
  773. oracleConn.Close();
  774. }
  775. throw ex;
  776. }
  777. finally
  778. {
  779. if (oracleConn.ConnState == ConnectionState.Open)
  780. {
  781. oracleConn.Close();
  782. }
  783. }
  784. }
  785. /// <summary>
  786. /// 使用存储过程PRO_PM_GetProductionData获取生产工序计件数据
  787. /// </summary>
  788. /// <param name="searchEntity">生产数据实体类</param>
  789. /// <param name="user">用户基本信息</param>
  790. /// <returns>DataTable</returns>
  791. public static DataTable GetProductionData(SearchProductionDataEntity searchEntity, SUserInfo user)
  792. {
  793. //IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  794. //string procsql = "PRO_PM_GetProductionDataPDA";
  795. //try
  796. //{
  797. // IDataParameter[] paras = new OracleParameter[]
  798. // {
  799. // new OracleParameter("in_procedureID",OracleDbType.Int32, searchEntity.ProcedureID, ParameterDirection.Input),
  800. // new OracleParameter("in_barCode", OracleDbType.Varchar2,searchEntity.BarCode, ParameterDirection.Input),
  801. // new OracleParameter("in_goodsCode", OracleDbType.Varchar2,searchEntity.GoodsCode, ParameterDirection.Input),
  802. // new OracleParameter("in_goodsName", OracleDbType.Varchar2,searchEntity.GoodsName, ParameterDirection.Input),
  803. // new OracleParameter("in_userCode", OracleDbType.Varchar2,searchEntity.UserCode, ParameterDirection.Input),
  804. // new OracleParameter("in_organizationID", OracleDbType.Int32,searchEntity.OrganizationID, ParameterDirection.Input),
  805. // new OracleParameter("in_remarks", OracleDbType.Varchar2,searchEntity.Remarks, ParameterDirection.Input),
  806. // new OracleParameter("in_isReworked", OracleDbType.Varchar2,searchEntity.IsRework, ParameterDirection.Input),
  807. // new OracleParameter("in_begindate", OracleDbType.Date,searchEntity.BeginDate, ParameterDirection.Input),
  808. // new OracleParameter("in_enddate", OracleDbType.Date,searchEntity.EndDate, ParameterDirection.Input),
  809. // new OracleParameter("in_accountID", OracleDbType.Int32,user.AccountID, ParameterDirection.Input),
  810. // new OracleParameter("in_userID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  811. // new OracleParameter("in_kilnCode", OracleDbType.Varchar2,searchEntity.KilnCode, ParameterDirection.Input),
  812. // new OracleParameter("in_kilnCarCode", OracleDbType.Varchar2,searchEntity.KilnCarCode, ParameterDirection.Input),
  813. // new OracleParameter("in_kilnCarPosition", OracleDbType.Int32,searchEntity.KilnCarPosition, ParameterDirection.Input),
  814. // new OracleParameter("in_currentUserID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  815. // new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output),
  816. // new OracleParameter("in_goodsTypeCode", OracleDbType.Varchar2,searchEntity.GoodsTypeCode, ParameterDirection.Input),
  817. // };
  818. // oracleConn.Open();
  819. // DataSet returnDs = oracleConn.ExecStoredProcedure(procsql, paras);
  820. // if (returnDs != null && returnDs.Tables.Count > 0)
  821. // {
  822. // return returnDs.Tables[0];
  823. // }
  824. // else
  825. // {
  826. // return null;
  827. // }
  828. //}
  829. //catch (Exception ex)
  830. //{
  831. // throw ex;
  832. //}
  833. //finally
  834. //{
  835. // if (oracleConn.ConnState == ConnectionState.Open)
  836. // {
  837. // oracleConn.Close();
  838. // }
  839. //}
  840. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  841. string procsql = "";//PRO_PM_GetProductionDataPDA
  842. procsql = @"SELECT TP_PM_ProductionDataIn.ProductionDataID FROM TP_PM_ProductionDataIn where 1=1 and ProcedureID=" + searchEntity.ProcedureID + " and barcode='" + searchEntity.BarCode + "' order by TP_PM_ProductionDataIn.ProductionDataid desc";
  843. try
  844. {
  845. //IDataParameter[] paras = new OracleParameter[]
  846. //{
  847. // new OracleParameter("in_procedureID",OracleDbType.Int32, searchEntity.ProcedureID, ParameterDirection.Input),
  848. // new OracleParameter("in_barCode", OracleDbType.Varchar2,searchEntity.BarCode, ParameterDirection.Input),
  849. // new OracleParameter("in_goodsCode", OracleDbType.Varchar2,searchEntity.GoodsCode, ParameterDirection.Input),
  850. // new OracleParameter("in_goodsName", OracleDbType.Varchar2,searchEntity.GoodsName, ParameterDirection.Input),
  851. // new OracleParameter("in_userCode", OracleDbType.Varchar2,searchEntity.UserCode, ParameterDirection.Input),
  852. // new OracleParameter("in_organizationID", OracleDbType.Int32,searchEntity.OrganizationID, ParameterDirection.Input),
  853. // new OracleParameter("in_remarks", OracleDbType.Varchar2,searchEntity.Remarks, ParameterDirection.Input),
  854. // new OracleParameter("in_isReworked", OracleDbType.Varchar2,searchEntity.IsRework, ParameterDirection.Input),
  855. // new OracleParameter("in_begindate", OracleDbType.Date,searchEntity.BeginDate, ParameterDirection.Input),
  856. // new OracleParameter("in_enddate", OracleDbType.Date,searchEntity.EndDate, ParameterDirection.Input),
  857. // new OracleParameter("in_accountID", OracleDbType.Int32,user.AccountID, ParameterDirection.Input),
  858. // new OracleParameter("in_userID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  859. // new OracleParameter("in_kilnCode", OracleDbType.Varchar2,searchEntity.KilnCode, ParameterDirection.Input),
  860. // new OracleParameter("in_kilnCarCode", OracleDbType.Varchar2,searchEntity.KilnCarCode, ParameterDirection.Input),
  861. // new OracleParameter("in_kilnCarPosition", OracleDbType.Int32,searchEntity.KilnCarPosition, ParameterDirection.Input),
  862. // new OracleParameter("in_currentUserID", OracleDbType.Int32,user.UserID, ParameterDirection.Input),
  863. // new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output),
  864. // new OracleParameter("in_goodsTypeCode", OracleDbType.Varchar2,searchEntity.GoodsTypeCode, ParameterDirection.Input),
  865. //};
  866. oracleConn.Open();
  867. DataSet returnDs = oracleConn.GetSqlResultToDs(procsql);
  868. if (returnDs != null && returnDs.Tables.Count > 0)
  869. {
  870. return returnDs.Tables[0];
  871. }
  872. else
  873. {
  874. return null;
  875. }
  876. }
  877. catch (Exception ex)
  878. {
  879. throw ex;
  880. }
  881. finally
  882. {
  883. if (oracleConn.ConnState == ConnectionState.Open)
  884. {
  885. oracleConn.Close();
  886. }
  887. }
  888. }
  889. /// <summary>
  890. /// xuwei add 2020-03-23 此方法用于成检后 回收 再次成检 获取正确ID
  891. /// </summary>
  892. /// <param name="searchEntity">生产数据实体类</param>
  893. /// <param name="user">用户基本信息</param>
  894. /// <returns>DataTable</returns>
  895. public static DataTable GetProductionDataCheckID(SearchProductionDataEntity searchEntity, SUserInfo user)
  896. {
  897. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  898. //string procsql = $@"
  899. //SELECT
  900. // NVL(MAX( T.PRODUCTIONDATAID ),0) AS PRODUCTIONDATAID
  901. //FROM
  902. // TP_PM_PRODUCTIONDATAIN T
  903. // INNER JOIN TP_PM_INPRODUCTION INP ON INP.BARCODE = T.BARCODE
  904. // AND T.KILNCARBATCHNO = INP.KILNCARBATCHNO
  905. //WHERE
  906. // T.MODELTYPE =- 1
  907. // AND T.VALUEFLAG = '1'
  908. // AND T.BARCODE = '{searchEntity.BarCode}'
  909. //";
  910. string procsql = $@"
  911. SELECT * FROM (
  912. SELECT
  913. T.PRODUCTIONDATAID, T.PROCEDUREID
  914. FROM
  915. TP_PM_PRODUCTIONDATAIN T
  916. INNER JOIN TP_PM_INPRODUCTION INP ON INP.BARCODE = T.BARCODE
  917. AND T.KILNCARBATCHNO = INP.KILNCARBATCHNO
  918. WHERE
  919. T.MODELTYPE = -1
  920. AND T.VALUEFLAG = '1'
  921. AND T.BARCODE = '{searchEntity.BarCode}'
  922. ORDER BY
  923. T.PRODUCTIONDATAID DESC
  924. ) T
  925. WHERE
  926. ROWNUM=1
  927. ";
  928. try
  929. {
  930. oracleConn.Open();
  931. DataTable returnDs = oracleConn.GetSqlResultToDt(procsql);
  932. //xuwei fix 2020-04-24 取消null值 这可能会引起前端序列化json异常
  933. return returnDs;
  934. //if (returnDs != null && returnDs.Tables.Count > 0)
  935. //{
  936. // return returnDs.Tables[0];
  937. //}
  938. //else
  939. //{
  940. // return null;
  941. //}
  942. }
  943. catch (Exception ex)
  944. {
  945. throw ex;
  946. }
  947. finally
  948. {
  949. if (oracleConn.ConnState == ConnectionState.Open)
  950. {
  951. oracleConn.Close();
  952. }
  953. }
  954. }
  955. /// <summary>
  956. /// 根据所选生产数据ID,显示成检数据信息
  957. /// </summary>
  958. /// <param name="productionDataID">生产数据ID</param>
  959. /// <returns>DataSet</returns>
  960. public static DataSet GetProductionDataByID(int productionDataID)
  961. {
  962. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  963. try
  964. {
  965. con.Open();
  966. DataSet dsReturn = new DataSet();
  967. string sqlString = @"select
  968. TP_PM_ProductionDataIn.Barcode as BarCode,
  969. TP_PM_ProductionDataIn.Goodsid as GoodsID,
  970. TP_PM_ProductionDataIn.Goodscode as GoodsCode,
  971. TP_PM_ProductionDataIn.Goodsname as GoodsName,
  972. TP_PM_ProductionDataIn.GoodsLevelID as DefectFlagID,
  973. TP_PM_ProductionDataIn.Reworkprocedureid as ReworkProcedureID,
  974. TP_PM_ProductionDataIn.Remarks as Remarks,
  975. TP_PM_ProductionDataIn.Userid as UserID,
  976. TP_PM_ProductionDataIn.UserCode as UserCode,
  977. TP_PM_ProductionDataIn.UserName as UserName,
  978. TP_PM_ProductionDataIn.Goodsleveltypeid as GoodsLevelTypeID,
  979. TP_PM_ProductionDataIn.SpecialRepairflag,
  980. TP_PM_ProductionDataIn.IsReFire,
  981. TP_PM_ProductionDataIn.KilnCode,
  982. TP_PM_ProductionDataIn.KilnCarCode,
  983. TP_PM_ProductionDataIn.GroutingUserCode,
  984. TP_PM_ProductionDataIn.GroutingMouldCode as MouldCode,
  985. TP_PM_ProductionDataIn.GroutingNum,
  986. TP_PM_ProductionDataIn.GroutingDate,
  987. TP_PM_ProductionDataIn.IsPublicBody,
  988. TP_MST_Logo.logoid,
  989. TP_MST_Logo.logocode,
  990. TP_MST_Logo.logoname,
  991. TP_PM_ProductionDataIn.CreateTime,
  992. TP_PM_ProductionDataIn.CheckTime,
  993. dd.DICTIONARYVALUE as GLAZEName
  994. from TP_PM_ProductionDataIn
  995. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd
  996. on gdd.BARCODE = TP_PM_ProductionDataIn.BARCODE
  997. left join TP_MST_DATADICTIONARY dd on dd.DICTIONARYID = gdd.GLAZETYPEID
  998. left join TP_MST_Logo
  999. on gdd.logoid=TP_MST_Logo.logoid
  1000. where
  1001. TP_PM_ProductionDataIn.Productiondataid=:ProductionDataID
  1002. ";
  1003. string sqlString2 = @"
  1004. select
  1005. TP_PM_Defect.ProductionDefectID as ProductionDefectID,
  1006. TP_PM_Defect.Barcode as BarCode,
  1007. TP_PM_Defect.DefectID as DefectID,
  1008. TP_PM_Defect.Defectname as DefectName,
  1009. TP_PM_Defect.Defectcode as DefectCode,
  1010. TP_PM_Defect.Defectpositionid as DefectPositionID,
  1011. TP_PM_Defect.Defectpositionname as DefectPositionName,
  1012. TP_PM_Defect.Defectpositioncode as DefectPositionCode,
  1013. TP_PM_Defect.Defectprocedureid as DefectProcedureID,
  1014. TP_PM_Defect.Defectprocedurename as DefectProcedureName,
  1015. TP_PM_Defect.Defectprocedurecode as DefectProcedureCode,
  1016. TP_PM_Defect.Defectuserid as DefectUserID,
  1017. TP_PM_Defect.Defectusername as DefectUserName,
  1018. TP_PM_Defect.Defectusercode as DefectUserCode,
  1019. TP_PM_Defect.DefectJobs as Jobs,
  1020. nvl(TP_PM_Defect.MissedUserID,-1) as MissedUserID,
  1021. TP_PM_Defect.MissedUserCode,
  1022. TP_PM_Defect.MissedUserName,
  1023. TP_MST_Jobs.Jobsname as JobsText,
  1024. TP_PM_Defect.Remarks as DefectRemarks,
  1025. TP_PM_Defect.Productiondataid as ProductionDataID,
  1026. nvl(TP_PM_Defect.DefectProductionDataID,0) as DefectProductionDataID,
  1027. TP_PM_Defect.Defectfine as DefectFineID,
  1028. TP_MST_DefectFine.DefectFineCode as DefectFineValue,
  1029. TP_PM_Defect.SpecialDefect,
  1030. TP_PM_Defect.DefectDeductionNum,
  1031. TP_PM_Defect.CheckTime
  1032. from TP_PM_Defect
  1033. left join TP_MST_Jobs
  1034. on TP_PM_Defect.Defectjobs=TP_MST_Jobs.JobsID
  1035. left join TP_MST_DefectFine
  1036. on TP_PM_Defect.Defectfine= TP_MST_DefectFine.DefectFineid
  1037. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1038. string sqlString3 = @"select
  1039. TP_PM_DefectResponsible.ProductionDefectID as ProductionDefectID,
  1040. TP_PM_DefectResponsible.Staffid as StaffID,
  1041. TP_HR_Staff.Staffcode as StaffCode,
  1042. TP_HR_Staff.Staffname as StaffName,
  1043. TP_PM_DefectResponsible.Staffstatus as StaffStatus,
  1044. TP_PM_DefectResponsible.UJobsID,
  1045. TP_PM_DefectResponsible.SJobsID
  1046. from TP_PM_DefectResponsible
  1047. left join TP_HR_Staff
  1048. on TP_PM_DefectResponsible.StaffID=TP_HR_Staff.Staffid
  1049. where TP_PM_DefectResponsible.Productiondefectid in
  1050. (
  1051. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1052. )";
  1053. string sqlString4 = @" select
  1054. TP_PM_DefectImage.ProductionDefectID,
  1055. TP_PM_DefectImage.Thumbnailpath,
  1056. TP_PM_DefectImage.Imagepath
  1057. from TP_PM_DefectImage
  1058. where TP_PM_DefectImage.Productiondefectid in
  1059. (
  1060. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1061. )";
  1062. string sqlString5 = @"select
  1063. TP_PM_DefectMissedResponsible.ProductionDefectID as ProductionDefectID,
  1064. TP_PM_DefectMissedResponsible.Staffid as StaffID,
  1065. TP_HR_Staff.Staffcode as StaffCode,
  1066. TP_HR_Staff.Staffname as StaffName,
  1067. TP_PM_DefectMissedResponsible.Staffstatus as StaffStatus,
  1068. TP_PM_DefectMissedResponsible.UJobsID,
  1069. TP_PM_DefectMissedResponsible.SJobsID
  1070. from TP_PM_DefectMissedResponsible
  1071. left join TP_HR_Staff
  1072. on TP_PM_DefectMissedResponsible.StaffID=TP_HR_Staff.Staffid
  1073. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1074. (
  1075. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1076. )";
  1077. OracleParameter[] paras = new OracleParameter[]{
  1078. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1079. };
  1080. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1081. ds.Tables[0].TableName = "TP_PM_ProductionData";
  1082. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras);
  1083. ds2.Tables[0].TableName = "TP_PM_Defect";
  1084. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  1085. ds3.Tables[0].TableName = "TP_PM_DefectResponsible";
  1086. DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  1087. ds4.Tables[0].TableName = "TP_PM_DefectImage";
  1088. DataSet ds5 = con.GetSqlResultToDs(sqlString5, paras);
  1089. ds5.Tables[0].TableName = "TP_PM_DefectMissedResponsible";
  1090. dsReturn.Tables.Add(ds.Tables[0].Copy());
  1091. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  1092. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  1093. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  1094. dsReturn.Tables.Add(ds5.Tables[0].Copy());
  1095. return dsReturn;
  1096. }
  1097. catch (Exception ex)
  1098. {
  1099. throw ex;
  1100. }
  1101. finally
  1102. {
  1103. if (con.ConnState == ConnectionState.Open)
  1104. {
  1105. con.Close();
  1106. }
  1107. }
  1108. }
  1109. /// <summary>
  1110. /// 根据所选生产数据ID,显示成检数据信息--复检专用
  1111. /// </summary>
  1112. /// <param name="productionDataID">生产数据ID</param>
  1113. /// <returns>DataSet</returns>
  1114. public static DataSet GetProductionDataByIDSemiCheck(int productionDataID)
  1115. {
  1116. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1117. try
  1118. {
  1119. con.Open();
  1120. DataSet dsReturn = new DataSet();
  1121. string sqlString = @"select
  1122. TP_PM_ProductionData.Barcode as BarCode,
  1123. TP_PM_ProductionData.Goodsid as GoodsID,
  1124. TP_PM_ProductionData.Goodscode as GoodsCode,
  1125. TP_PM_ProductionData.Goodsname as GoodsName,
  1126. TP_PM_ProductionData.GoodsLevelID as DefectFlagID,
  1127. TP_PM_ProductionData.Reworkprocedureid as ReworkProcedureID,
  1128. TP_PM_ProductionData.Remarks as Remarks,
  1129. TP_PM_ProductionData.Userid as UserID,
  1130. TP_PM_ProductionData.UserCode as UserCode,
  1131. TP_PM_ProductionData.UserName as UserName,
  1132. TP_PM_ProductionData.Goodsleveltypeid as GoodsLevelTypeID,
  1133. TP_PM_ProductionData.SpecialRepairflag,
  1134. TP_PM_ProductionData.IsReFire,
  1135. TP_PM_ProductionData.KilnCode,
  1136. TP_PM_ProductionData.KilnCarCode,
  1137. TP_PM_ProductionData.GroutingUserCode,
  1138. TP_PM_ProductionData.GroutingMouldCode as MouldCode,
  1139. TP_PM_ProductionData.GroutingNum,
  1140. TP_PM_ProductionData.GroutingDate,
  1141. TP_PM_ProductionData.IsPublicBody,
  1142. TP_MST_Logo.logoid,
  1143. TP_MST_Logo.logocode,
  1144. TP_MST_Logo.logoname,
  1145. TP_PM_ProductionData.CreateTime,
  1146. TP_PM_ProductionData.CheckTime,
  1147. dd.DICTIONARYVALUE as GLAZEName
  1148. from TP_PM_ProductionData
  1149. INNER JOIN TP_PM_GROUTINGDAILYDETAIL gdd
  1150. on gdd.BARCODE = TP_PM_ProductionData.BARCODE
  1151. left join TP_MST_DATADICTIONARY dd on dd.DICTIONARYID = gdd.GLAZETYPEID
  1152. left join TP_MST_Logo
  1153. on gdd.logoid=TP_MST_Logo.logoid
  1154. where
  1155. TP_PM_ProductionData.Productiondataid=:ProductionDataID
  1156. ";
  1157. string sqlString2 = @"
  1158. select
  1159. TP_PM_Defect.ProductionDefectID as ProductionDefectID,
  1160. TP_PM_Defect.Barcode as BarCode,
  1161. TP_PM_Defect.DefectID as DefectID,
  1162. TP_PM_Defect.Defectname as DefectName,
  1163. TP_PM_Defect.Defectcode as DefectCode,
  1164. TP_PM_Defect.Defectpositionid as DefectPositionID,
  1165. TP_PM_Defect.Defectpositionname as DefectPositionName,
  1166. TP_PM_Defect.Defectpositioncode as DefectPositionCode,
  1167. TP_PM_Defect.Defectprocedureid as DefectProcedureID,
  1168. TP_PM_Defect.Defectprocedurename as DefectProcedureName,
  1169. TP_PM_Defect.Defectprocedurecode as DefectProcedureCode,
  1170. TP_PM_Defect.Defectuserid as DefectUserID,
  1171. TP_PM_Defect.Defectusername as DefectUserName,
  1172. TP_PM_Defect.Defectusercode as DefectUserCode,
  1173. TP_PM_Defect.DefectJobs as Jobs,
  1174. nvl(TP_PM_Defect.MissedUserID,-1) as MissedUserID,
  1175. TP_PM_Defect.MissedUserCode,
  1176. TP_PM_Defect.MissedUserName,
  1177. TP_MST_Jobs.Jobsname as JobsText,
  1178. TP_PM_Defect.Remarks as DefectRemarks,
  1179. TP_PM_Defect.Productiondataid as ProductionDataID,
  1180. nvl(TP_PM_Defect.DefectProductionDataID,0) as DefectProductionDataID,
  1181. TP_PM_Defect.Defectfine as DefectFineID,
  1182. TP_MST_DefectFine.DefectFineCode as DefectFineValue,
  1183. TP_PM_Defect.SpecialDefect,
  1184. TP_PM_Defect.DefectDeductionNum,
  1185. TP_PM_Defect.CheckTime
  1186. from TP_PM_Defect
  1187. left join TP_MST_Jobs
  1188. on TP_PM_Defect.Defectjobs=TP_MST_Jobs.JobsID
  1189. left join TP_MST_DefectFine
  1190. on TP_PM_Defect.Defectfine= TP_MST_DefectFine.DefectFineid
  1191. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1192. string sqlString3 = @"select
  1193. TP_PM_DefectResponsible.ProductionDefectID as ProductionDefectID,
  1194. TP_PM_DefectResponsible.Staffid as StaffID,
  1195. TP_HR_Staff.Staffcode as StaffCode,
  1196. TP_HR_Staff.Staffname as StaffName,
  1197. TP_PM_DefectResponsible.Staffstatus as StaffStatus,
  1198. TP_PM_DefectResponsible.UJobsID,
  1199. TP_PM_DefectResponsible.SJobsID
  1200. from TP_PM_DefectResponsible
  1201. left join TP_HR_Staff
  1202. on TP_PM_DefectResponsible.StaffID=TP_HR_Staff.Staffid
  1203. where TP_PM_DefectResponsible.Productiondefectid in
  1204. (
  1205. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1206. )";
  1207. string sqlString4 = @" select
  1208. TP_PM_DefectImage.ProductionDefectID,
  1209. TP_PM_DefectImage.Thumbnailpath,
  1210. TP_PM_DefectImage.Imagepath
  1211. from TP_PM_DefectImage
  1212. where TP_PM_DefectImage.Productiondefectid in
  1213. (
  1214. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1215. )";
  1216. string sqlString5 = @"select
  1217. TP_PM_DefectMissedResponsible.ProductionDefectID as ProductionDefectID,
  1218. TP_PM_DefectMissedResponsible.Staffid as StaffID,
  1219. TP_HR_Staff.Staffcode as StaffCode,
  1220. TP_HR_Staff.Staffname as StaffName,
  1221. TP_PM_DefectMissedResponsible.Staffstatus as StaffStatus,
  1222. TP_PM_DefectMissedResponsible.UJobsID,
  1223. TP_PM_DefectMissedResponsible.SJobsID
  1224. from TP_PM_DefectMissedResponsible
  1225. left join TP_HR_Staff
  1226. on TP_PM_DefectMissedResponsible.StaffID=TP_HR_Staff.Staffid
  1227. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1228. (
  1229. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1230. )";
  1231. OracleParameter[] paras = new OracleParameter[]{
  1232. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1233. };
  1234. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1235. ds.Tables[0].TableName = "TP_PM_ProductionData";
  1236. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras);
  1237. ds2.Tables[0].TableName = "TP_PM_Defect";
  1238. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  1239. ds3.Tables[0].TableName = "TP_PM_DefectResponsible";
  1240. DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  1241. ds4.Tables[0].TableName = "TP_PM_DefectImage";
  1242. DataSet ds5 = con.GetSqlResultToDs(sqlString5, paras);
  1243. ds5.Tables[0].TableName = "TP_PM_DefectMissedResponsible";
  1244. dsReturn.Tables.Add(ds.Tables[0].Copy());
  1245. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  1246. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  1247. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  1248. dsReturn.Tables.Add(ds5.Tables[0].Copy());
  1249. return dsReturn;
  1250. }
  1251. catch (Exception ex)
  1252. {
  1253. throw ex;
  1254. }
  1255. finally
  1256. {
  1257. if (con.ConnState == ConnectionState.Open)
  1258. {
  1259. con.Close();
  1260. }
  1261. }
  1262. }
  1263. /// <summary>
  1264. /// 绑定图片
  1265. /// </summary>
  1266. /// <returns></returns>
  1267. public static Stream BindDefectImage(string imagePath)
  1268. {
  1269. try
  1270. {
  1271. FileStream fileStream = new FileStream(System.AppDomain.CurrentDomain.BaseDirectory + imagePath, FileMode.Open, FileAccess.Read, FileShare.Read);
  1272. return fileStream;
  1273. }
  1274. catch (Exception ex)
  1275. {
  1276. throw ex;
  1277. }
  1278. }
  1279. /// <summary>
  1280. /// 根据所选工号对应的工种,查出缺陷责任员工
  1281. /// </summary>
  1282. /// <param name="jobs">工种ID</param>
  1283. /// <param name="userid">用户ID</param>
  1284. /// <param name="sUserInfo">用户基本信息</param>
  1285. /// <returns>DataSet</returns>
  1286. public static DataSet GetDutyStaffByUserJobsID(int jobs, SUserInfo sUserInfo, int userid)
  1287. {
  1288. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1289. try
  1290. {
  1291. con.Open();
  1292. string sqlString = @"select
  1293. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1294. from TP_MST_UserStaff
  1295. inner join TP_HR_Staff
  1296. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1297. where TP_MST_UserStaff.Ujobsid=:jobs and TP_MST_UserStaff.Userid=:userid
  1298. and TP_HR_Staff.valueflag = '1' and TP_HR_Staff.StaffStatus in (1,2) ";
  1299. OracleParameter[] paras = new OracleParameter[]{
  1300. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1301. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1302. };
  1303. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1304. return ds;
  1305. }
  1306. catch (Exception ex)
  1307. {
  1308. throw ex;
  1309. }
  1310. finally
  1311. {
  1312. if (con.ConnState == ConnectionState.Open)
  1313. {
  1314. con.Close();
  1315. }
  1316. }
  1317. }
  1318. #region 产品报废
  1319. /// <summary>
  1320. /// 验证废弃产品唯一性
  1321. /// </summary>
  1322. /// <param name="BarCode">产品条码</param>
  1323. /// <returns>int</returns>
  1324. public static string ScrapProductChack(string BarCode, SUserInfo sUserInfo)
  1325. {
  1326. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1327. try
  1328. {
  1329. con.Open();
  1330. // 当前工号是否有条码所在工序的操作权限
  1331. string sqlString =
  1332. "SELECT inp.procedureid\n" +
  1333. " ,p.procedurename\n" +
  1334. " ,p.MODELTYPE\n" +
  1335. " ,(SELECT 1\n" +
  1336. " FROM tp_mst_userpurview t\n" +
  1337. " WHERE t.purviewtype = 10\n" +
  1338. " AND t.userid = :userid\n" +
  1339. " AND (t.purviewid = -1 OR t.purviewid = inp.procedureid)\n" +
  1340. " AND rownum = 1) userpurview\n" +
  1341. " FROM tp_pm_inproduction inp\n" +
  1342. " LEFT JOIN tp_pc_procedure p\n" +
  1343. " ON p.procedureid = inp.procedureid\n" +
  1344. " WHERE inp.barcode = :barcode";
  1345. OracleParameter[] paras = new OracleParameter[]{
  1346. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  1347. new OracleParameter(":barcode",OracleDbType.Varchar2, BarCode,ParameterDirection.Input),
  1348. };
  1349. DataTable dt = con.GetSqlResultToDt(sqlString, paras);
  1350. if (dt == null || dt.Rows.Count == 0)
  1351. {
  1352. // 条码不在产。
  1353. return "2";
  1354. }
  1355. object userpurview = dt.Rows[0]["userpurview"];
  1356. if (userpurview == null || userpurview == DBNull.Value)
  1357. {
  1358. return "3:" + dt.Rows[0]["procedurename"];
  1359. }
  1360. int MODELTYPE = Convert.ToInt32(dt.Rows[0]["MODELTYPE"]);
  1361. if (MODELTYPE == 1 ||
  1362. MODELTYPE == 2 ||
  1363. MODELTYPE == 3 ||
  1364. MODELTYPE == 6)
  1365. {
  1366. return "4:该产品处于无法报损的特殊工序中";
  1367. }
  1368. /*
  1369. string strSql = @"Select * from TP_PM_ScrapProduct where ValueFlag=1
  1370. and BarCode='" + BarCode + "' and (AuditStatus=1)"; //AuditStatus=0 or
  1371. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  1372. if (dsReturn.Tables[0].Rows.Count == 0)
  1373. {
  1374. return 1;
  1375. }
  1376. else
  1377. {
  1378. return 0;
  1379. }
  1380. */
  1381. #region 判断产品是否被挂起
  1382. sqlString = "SELECT 1 AS RES\n" +
  1383. " FROM TP_PM_PRODUCTSUSPEND PS\n" +
  1384. " INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD\n" +
  1385. " ON GDD.GROUTINGDAILYDETAILID = PS.GROUTINGDAILYDETAILID\n" +
  1386. " WHERE GDD.BARCODE = :Barcode";
  1387. OracleParameter[] pars = new OracleParameter[]
  1388. {
  1389. new OracleParameter(":Barcode",OracleDbType.NVarchar2, BarCode,ParameterDirection.Input),
  1390. };
  1391. object objResult = con.GetSqlResultToObj(sqlString, pars);
  1392. if (objResult != null)
  1393. {
  1394. return "4:该产品被挂起";
  1395. }
  1396. #endregion
  1397. string strSql = "select GoodsLevelTypeID,AuditStatus from TP_PM_ScrapProduct "
  1398. + " where BarCode='" + BarCode + "'and CreateTime=(select max(CreateTime) "
  1399. + " from TP_PM_ScrapProduct "
  1400. + " where BarCode='" + BarCode + "' and ValueFlag=1 and (AuditStatus = 0 or AuditStatus = 1) and recyclingflag=0)"
  1401. + " and ValueFlag=1 and (AuditStatus = 0 or AuditStatus = 1) and recyclingflag=0";
  1402. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  1403. if (dsReturn.Tables[0].Rows.Count == 0)
  1404. {
  1405. return "1";
  1406. }
  1407. else
  1408. {
  1409. if (dsReturn.Tables[0].Rows[0]["GOODSLEVELTYPEID"].ToString().Equals("9") && dsReturn.Tables[0].Rows[0]["AUDITSTATUS"].ToString().Equals("1"))
  1410. {
  1411. return "1";
  1412. }
  1413. else if (dsReturn.Tables[0].Rows[0]["GOODSLEVELTYPEID"].ToString() != "9" && dsReturn.Tables[0].Rows[0]["AUDITSTATUS"].ToString().Equals("1"))
  1414. {
  1415. return "0";
  1416. }
  1417. else
  1418. {
  1419. return "1";
  1420. }
  1421. }
  1422. }
  1423. catch (Exception ex)
  1424. {
  1425. throw ex;
  1426. }
  1427. finally
  1428. {
  1429. if (con.ConnState == ConnectionState.Open)
  1430. {
  1431. con.Close();
  1432. }
  1433. }
  1434. }
  1435. /// <summary>
  1436. /// 根据条码获取该产品的在产信息以及生产数据
  1437. /// </summary>
  1438. /// <param name="Barcode">产品条码</param>
  1439. /// <returns>装有两个DataTable的数据集,第一个是在产信息,第二个是生产数据</returns>
  1440. public static DataSet GetInProductionAndProductionData(string BarCode, SUserInfo sUserInfo)
  1441. {
  1442. DataSet dsList = new DataSet();
  1443. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1444. try
  1445. {
  1446. con.Open();
  1447. StringBuilder sbSql = new StringBuilder();
  1448. ////sbSql.Append("Select inp.*,pt.ProcedureModelTypeID from TP_PM_InProduction inp ");
  1449. ////sbSql.Append(" Inner join TP_PC_Procedure p");
  1450. //////sbSql.Append(" On inp.CompleteProcedureID = p.ProcedureID");
  1451. ////sbSql.Append(" On inp.FlowProcedureID = p.ProcedureID");
  1452. ////sbSql.Append(" Inner join TP_SYS_ProcedureModelType pt");
  1453. ////sbSql.Append(" On p.ModelType = pt.ProcedureModelTypeID");
  1454. ////sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1455. //sbSql.Append("Select inp.*,inp.ModelType as ProcedureModelTypeID,1 as endmode from TP_PM_InProduction inp ");
  1456. //sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1457. sbSql.Append("Select inp.*, p.ProcedureCode,p.ProcedureName, inp.ModelType as ProcedureModelTypeID,1 as endmode from TP_PM_InProduction inp ");
  1458. sbSql.Append(" inner join tp_pc_Procedure p on p.ProcedureID = inp.ProcedureID ");
  1459. sbSql.Append(" where inp.Barcode=:Barcode and inp.ValueFlag=1");
  1460. OracleParameter[] Paras = new OracleParameter[]{
  1461. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1462. BarCode,ParameterDirection.Input),
  1463. };
  1464. DataTable dtProduction = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1465. if (dtProduction != null)
  1466. {
  1467. if (dtProduction.Rows.Count != 0)
  1468. {
  1469. dsList.Tables.Add(dtProduction);
  1470. }
  1471. else
  1472. {
  1473. //在产产品不存在的话,看看是不是变成了成品
  1474. sbSql.Clear();
  1475. sbSql.Append("Select fp.*,2 as endmode from TP_PM_FinishedProduct fp ");
  1476. sbSql.Append(" where fp.Barcode=:Barcode and fp.ValueFlag=1");
  1477. dtProduction = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1478. if (dtProduction != null)
  1479. {
  1480. dsList.Tables.Add(dtProduction);
  1481. }
  1482. }
  1483. }
  1484. else
  1485. {
  1486. return null;
  1487. }
  1488. //sbSql.Clear();
  1489. //sbSql.Append("Select distinct ProductionDataID,ProcedureID,ProcedureName,ProcedureCode from TP_PM_ProductionDataIn where Barcode=:Barcode and ValueFlag=1 order by ProductionDataid");
  1490. DataSet sysSetting = CommonModuleLogic.CommonModuleLogic.GetSysSettingBySettingType("S_PM_015", sUserInfo);
  1491. string spm015 = null;
  1492. if (sysSetting != null && sysSetting.Tables.Count > 0 && sysSetting.Tables[0].Rows.Count > 0)
  1493. {
  1494. spm015 = sysSetting.Tables[0].Rows[0]["SettingValue"] + "";
  1495. }
  1496. sbSql.Clear();
  1497. sbSql.Append("Select ProductionDataID,ProcedureID,ProcedureName,ProcedureCode from TP_PM_ProductionDataIn where Barcode=:Barcode and ValueFlag=1 ");
  1498. // 报损不能选成型责任
  1499. if ("0" == spm015)
  1500. {
  1501. sbSql.Append(" and MODELTYPE <> 5");
  1502. }
  1503. sbSql.Append(" order by ProductionDataid");
  1504. DataTable dtProductionData = con.GetSqlResultToDt(sbSql.ToString(), Paras);
  1505. if (dtProductionData != null)
  1506. {
  1507. dsList.Tables.Add(dtProductionData);
  1508. }
  1509. else
  1510. {
  1511. return null;
  1512. }
  1513. return dsList;
  1514. }
  1515. catch (Exception ex)
  1516. {
  1517. throw ex;
  1518. }
  1519. finally
  1520. {
  1521. if (con.ConnState == ConnectionState.Open)
  1522. {
  1523. con.Close();
  1524. }
  1525. }
  1526. }
  1527. /// <summary>
  1528. /// 根据工号查询员工档案信息
  1529. /// </summary>
  1530. /// <param name="userId">员工ID</param>
  1531. /// <param name="sUserInfo">用户基本信息</param>
  1532. /// <returns>DataSet</returns>
  1533. /// <remarks>
  1534. /// 作者 日期 内容
  1535. /// 冯雪 2014-9-23 新建
  1536. /// </remarks>
  1537. public static DataSet SearchHrStaffInfo(int userId, SUserInfo sUserInfo)
  1538. {
  1539. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1540. try
  1541. {
  1542. con.Open();
  1543. string strSql = " SELECT TUser.userid,Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  1544. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode,'' Remarks,"
  1545. + " (CASE Staff.staffStatus"
  1546. + " WHEN 0 THEN '未入职'"
  1547. + " WHEN 1 THEN '试用 '"
  1548. + " WHEN 2 THEN '转正'"
  1549. + " WHEN 3 THEN '离职'"
  1550. + " ELSE '' END) AS staffStatusName,"
  1551. + " Jobs.Jobsname,Org.Organizationname,TUser.UserCode,TUserJobs.Jobsname as UJobsName,TUserJobs.JobsId as UJobsId"
  1552. + " FROM TP_HR_Staff Staff "
  1553. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  1554. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  1555. + " LEFT JOIN TP_MST_UserStaff TUserStaff on TUserStaff.StaffID = Staff.StaffID "
  1556. + " LEFT JOIN TP_MST_User TUser on TUserStaff.Userid = TUser.Userid"
  1557. + " LEFT JOIN TP_MST_Jobs TUserJobs on TUserJobs.Jobsid = TUserStaff.Ujobsid"
  1558. + " WHERE Staff.Accountid = :accountID "
  1559. + " AND TUser.Userid = :userId"
  1560. + " AND Staff.Staffstatus in(1,2)";
  1561. OracleParameter[] paras = new OracleParameter[]{
  1562. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1563. new OracleParameter(":userId", OracleDbType.Int32, userId, ParameterDirection.Input),
  1564. };
  1565. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  1566. return ds;
  1567. }
  1568. catch (Exception ex)
  1569. {
  1570. throw ex;
  1571. }
  1572. finally
  1573. {
  1574. if (con.ConnState == ConnectionState.Open)
  1575. {
  1576. con.Close();
  1577. }
  1578. }
  1579. }
  1580. /// <summary>
  1581. /// 添加废弃产品记录
  1582. /// </summary>
  1583. /// <param name="SProductEntity">废弃产品实体</param>
  1584. /// <param name="RProcedureEntity">废弃责任工序实体</param>
  1585. /// <param name="SResponsibleList">责任者集合</param>
  1586. /// <param name="userInfo">用户基本信息</param>
  1587. /// <returns>int结果返回值</returns>
  1588. /// <remarks>
  1589. /// 庄天威 2014.09.24 新建
  1590. /// </remarks>
  1591. public static int AddScrapProduct(ScrapProductEntity SProductEntity,
  1592. ResponProcedureEntity RProcedureEntity,
  1593. ScrapResponsibleEntity[] SResponsibleList, SUserInfo userInfo)
  1594. {
  1595. int ll = 0;
  1596. int returnRows = 0;
  1597. int sresponsibleReturnRows = 0;
  1598. int rprocedureReturn = 0;
  1599. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1600. try
  1601. {
  1602. oracleTrConn.Connect();
  1603. //#region 判断产品是否被挂起
  1604. //string sqlString = "SELECT 1 AS RES\n" +
  1605. // " FROM TP_PM_PRODUCTSUSPEND PS\n" +
  1606. // " INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD\n" +
  1607. // " ON GDD.GROUTINGDAILYDETAILID = PS.GROUTINGDAILYDETAILID\n" +
  1608. // " WHERE GDD.BARCODE = :Barcode";
  1609. //OracleParameter[] pars = new OracleParameter[]
  1610. //{
  1611. // new OracleParameter(":Barcode",OracleDbType.NVarchar2, SProductEntity.BarCode,ParameterDirection.Input),
  1612. //};
  1613. //object objResult = oracleTrConn.GetSqlResultToObj(sqlString, pars);
  1614. //if (objResult != null)
  1615. //{
  1616. // return Constant.INT_IS_NEGATIE_ONE;
  1617. //}
  1618. //#endregion
  1619. object result = DBNull.Value;
  1620. ll = 1;
  1621. if (SProductEntity.AuditStatus != 0)
  1622. {
  1623. ll = 2;
  1624. //string strSql1 = "select FUN_CMN_GetAccountDate(:accountId) From DUAL";
  1625. string strSql1 = "select sysdate from dual";
  1626. // Oracle.ManagedDataAccess.Client.OracleParameter[] paras1 = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  1627. //{
  1628. // new Oracle.ManagedDataAccess.Client.OracleParameter(":accountId",userInfo.AccountID)
  1629. //};
  1630. object strResult = oracleTrConn.GetSqlResultToObj(strSql1);
  1631. if (strResult == null || strResult == DBNull.Value)
  1632. {
  1633. // 服务器时间错误
  1634. throw new Exception("SystemDateTimeError");
  1635. }
  1636. result = Convert.ToDateTime(strResult);
  1637. }
  1638. ll = 3;
  1639. // wangx 20156/01/13
  1640. int? ProductionDataID = null;
  1641. int? completeProcdureID = null;
  1642. string completeProcdureName = string.Empty;
  1643. string completeProcdureCode = string.Empty;
  1644. //string sqlProductionDataID = @"select tp_pm_inproduction.productiondataid,
  1645. // tp_pc_procedure.procedureid,
  1646. // tp_pc_procedure.procedurename,
  1647. // tp_pc_procedure.procedurecode
  1648. // from tp_pm_inproduction
  1649. // left join tp_pc_procedure
  1650. // on tp_pm_inproduction.procedureid=tp_pc_procedure.procedureid
  1651. // where tp_pm_inproduction.barcode = :barcode
  1652. // union
  1653. // select tp_pm_inproductiontrash.productiondataid,
  1654. // tp_pc_procedure.procedureid,
  1655. // tp_pc_procedure.procedurename,
  1656. // tp_pc_procedure.procedurecode
  1657. // from tp_pm_inproductiontrash
  1658. // left join tp_pc_procedure
  1659. // on tp_pm_inproductiontrash.procedureid=tp_pc_procedure.procedureid
  1660. // where tp_pm_inproductiontrash.barcode = :barcode
  1661. // ";
  1662. string sqlProductionDataID = @"select tp_pm_inproduction.productiondataid,
  1663. tp_pc_procedure.procedureid,
  1664. tp_pc_procedure.procedurename,
  1665. tp_pc_procedure.procedurecode, tp_pm_inproduction.InScrapFlag
  1666. from tp_pm_inproduction
  1667. left join tp_pc_procedure
  1668. on tp_pm_inproduction.procedureid=tp_pc_procedure.procedureid
  1669. where tp_pm_inproduction.barcode = :barcode
  1670. for update";
  1671. OracleParameter[] ParasProductionDataID = new OracleParameter[] {
  1672. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1673. SProductEntity.BarCode,ParameterDirection.Input),
  1674. };
  1675. ll = 4;
  1676. DataSet dsProductionDataID = oracleTrConn.GetSqlResultToDs(sqlProductionDataID, ParasProductionDataID);
  1677. if (dsProductionDataID != null && dsProductionDataID.Tables[0].Rows.Count > 0)
  1678. {
  1679. ProductionDataID = Convert.ToInt32(dsProductionDataID.Tables[0].Rows[0]["productiondataid"]);
  1680. completeProcdureID = Convert.ToInt32(dsProductionDataID.Tables[0].Rows[0]["procedureid"]);
  1681. completeProcdureName = dsProductionDataID.Tables[0].Rows[0]["procedurename"].ToString();
  1682. completeProcdureCode = dsProductionDataID.Tables[0].Rows[0]["procedurecode"].ToString();
  1683. string InScrapFlag = dsProductionDataID.Tables[0].Rows[0]["InScrapFlag"].ToString();
  1684. if (InScrapFlag == "1")
  1685. {
  1686. return Constant.RETURN_IS_DATACHANGED;
  1687. }
  1688. }
  1689. else
  1690. {
  1691. return Constant.RETURN_IS_DATACHANGED;
  1692. }
  1693. // end
  1694. ll = 5;
  1695. // 如果完成工序ID发生变化,则返回提示;
  1696. if (completeProcdureID != SProductEntity.ProcedureID)
  1697. {
  1698. return Constant.RETURN_IS_DATACHANGED;
  1699. }
  1700. //首先添加废弃产品主体信息
  1701. StringBuilder sbSql = new StringBuilder();
  1702. //获取序列ID
  1703. sbSql.Clear();
  1704. sbSql.Append("select SEQ_PM_ScrapProduct_ID.nextval from dual");
  1705. int id = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  1706. sbSql.Clear();
  1707. sbSql.Append("Insert into TP_PM_ScrapProduct");
  1708. sbSql.Append("(ScrapProductID,Barcode,ProductionLineID,ProductionLineCode,ProductionLineName,");
  1709. sbSql.Append("GoodsID,GoodsCode,GoodsName,GroutingDailyID,GroutingDailyDetailID,");
  1710. sbSql.Append("GroutingDate,GroutingLineID,GroutingLineCode,GroutingLineName,");
  1711. sbSql.Append("GMouldTypeID,GroutingLineDetailID,GroutingMouldCode,MouldCode,");
  1712. sbSql.Append("GoodsLevelID,GoodsLevelTypeID,ResponType,ScrapDate,Rreason,");
  1713. sbSql.Append("Remarks,AuditStatus,");
  1714. sbSql.Append("SettlementFlag,AccountID,ValueFlag,CreateTime,CreateUserID,");
  1715. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,GroutingUserID,GroutingUserCode,GroutingNum,IsPublicBody,IsReFire,ScrapFine,Auditor,AuditDate,SpecialRepairflag,Procedureid,ProcedureName,ProcedureCode,logoid,ProductionDataID)");
  1716. sbSql.Append("values(:ScrapProductID,:Barcode,:ProductionLineID,:ProductionLineCode,:ProductionLineName,");
  1717. sbSql.Append(":GoodsID,:GoodsCode,:GoodsName,:GroutingDailyID,:GroutingDailyDetailID,");
  1718. sbSql.Append(":GroutingDate,:GroutingLineID,:GroutingLineCode,:GroutingLineName,");
  1719. sbSql.Append(":GMouldTypeID,:GroutingLineDetailID,:GroutingMouldCode,:MouldCode,");
  1720. sbSql.Append(":GoodsLevelID,:GoodsLevelTypeID,:ResponType,:ScrapDate,:Rreason,");
  1721. sbSql.Append(":Remarks,:AuditStatus,");
  1722. sbSql.Append("0,:AccountID,1,sysdate,:CreateUserID,");
  1723. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:GroutingUserID,:GroutingUserCode,:GroutingNum,:IsPublicBody,:IsReFire,:ScrapFine,:Auditor,:AuditlDate,:SpecialRepairflag,:Procedureid,:ProcedureName,:ProcedureCode,:logoid,:ProductionDataID)");
  1724. OracleParameter[] Paras = new OracleParameter[] {
  1725. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  1726. id,ParameterDirection.Input),
  1727. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  1728. SProductEntity.BarCode,ParameterDirection.Input),
  1729. new OracleParameter(":ProductionLineID",OracleDbType.Int32,
  1730. SProductEntity.ProductionLineID,ParameterDirection.Input),
  1731. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  1732. SProductEntity.ProductionLineCode,ParameterDirection.Input),
  1733. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  1734. SProductEntity.ProductionLineName,ParameterDirection.Input),
  1735. new OracleParameter(":GoodsID",OracleDbType.Int32,
  1736. SProductEntity.GoodsID,ParameterDirection.Input),
  1737. new OracleParameter(":GoodsCode",OracleDbType.NVarchar2,
  1738. SProductEntity.GoodsCode,ParameterDirection.Input),
  1739. new OracleParameter(":GoodsName",OracleDbType.NVarchar2,
  1740. SProductEntity.GoodsName,ParameterDirection.Input),
  1741. new OracleParameter(":GroutingDailyID",OracleDbType.Int32,
  1742. SProductEntity.GroutingDailyID,ParameterDirection.Input),
  1743. new OracleParameter(":GroutingDailyDetailID",OracleDbType.Int32,
  1744. SProductEntity.GroutingDailyDetailID,ParameterDirection.Input),
  1745. new OracleParameter(":GroutingDate",OracleDbType.Date,
  1746. Convert.ToDateTime(SProductEntity.GroutingDatePDA),ParameterDirection.Input),
  1747. new OracleParameter(":GroutingLineID",OracleDbType.Int32,
  1748. SProductEntity.GroutingLineID,ParameterDirection.Input),
  1749. new OracleParameter(":GroutingLineCode",OracleDbType.NVarchar2,
  1750. SProductEntity.GroutingLineCode,ParameterDirection.Input),
  1751. new OracleParameter(":GroutingLineName",OracleDbType.NVarchar2,
  1752. SProductEntity.GroutingLineName,ParameterDirection.Input),
  1753. new OracleParameter(":GMouldTypeID",OracleDbType.Int32,
  1754. SProductEntity.GMouldTypeID,ParameterDirection.Input),
  1755. new OracleParameter(":GroutingLineDetailID",OracleDbType.Int32,
  1756. SProductEntity.GroutingLineDetailID,ParameterDirection.Input),
  1757. new OracleParameter(":GroutingMouldCode",OracleDbType.NVarchar2,
  1758. SProductEntity.GroutingMouldCode,ParameterDirection.Input),
  1759. new OracleParameter(":MouldCode",OracleDbType.NVarchar2,
  1760. SProductEntity.MouldCode,ParameterDirection.Input),
  1761. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  1762. SProductEntity.GoodsLevelID,ParameterDirection.Input),
  1763. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  1764. SProductEntity.GoodsLevelTypeID,ParameterDirection.Input),
  1765. new OracleParameter(":ResponType",OracleDbType.Int32,
  1766. Convert.ToInt32(SProductEntity.ResponType),ParameterDirection.Input),
  1767. new OracleParameter(":ScrapDate",OracleDbType.Date,
  1768. Convert.ToDateTime(SProductEntity.ScrapDatePDA),ParameterDirection.Input),
  1769. new OracleParameter(":Rreason",OracleDbType.NVarchar2,
  1770. SProductEntity.Rreason,ParameterDirection.Input),
  1771. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  1772. SProductEntity.Remarks,ParameterDirection.Input),
  1773. new OracleParameter(":AuditStatus",OracleDbType.Int32,
  1774. SProductEntity.AuditStatus,ParameterDirection.Input),
  1775. new OracleParameter(":AccountID",OracleDbType.Int32,
  1776. userInfo.AccountID,ParameterDirection.Input),
  1777. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  1778. userInfo.UserID,ParameterDirection.Input),
  1779. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  1780. userInfo.UserID,ParameterDirection.Input),
  1781. new OracleParameter(":GroutingUserID",OracleDbType.Int32,
  1782. SProductEntity.GroutingUserID,ParameterDirection.Input),
  1783. new OracleParameter(":GroutingUserCode",OracleDbType.NVarchar2,
  1784. SProductEntity.GroutingUserCode,ParameterDirection.Input),
  1785. new OracleParameter(":GroutingNum",OracleDbType.Decimal,
  1786. SProductEntity.GroutingNum,ParameterDirection.Input),
  1787. new OracleParameter(":IsPublicBody",OracleDbType.Int32,
  1788. SProductEntity.IsPublicBody,ParameterDirection.Input),
  1789. new OracleParameter(":IsReFire",OracleDbType.Int32,
  1790. SProductEntity.IsReFire,ParameterDirection.Input),
  1791. new OracleParameter(":ScrapFine",OracleDbType.Decimal,
  1792. SProductEntity.ScrapFine,ParameterDirection.Input),
  1793. new OracleParameter(":Auditor",OracleDbType.Int32,
  1794. userInfo.UserID,ParameterDirection.Input),
  1795. new OracleParameter(":AuditlDate",OracleDbType.Date,
  1796. result,ParameterDirection.Input),
  1797. new OracleParameter(":SpecialRepairflag",OracleDbType.Int32,
  1798. SProductEntity.SpecialRepairflag==null?0:SProductEntity.SpecialRepairflag,ParameterDirection.Input),//SpecialRepairflag
  1799. new OracleParameter(":Procedureid",OracleDbType.Int32,
  1800. completeProcdureID,ParameterDirection.Input),
  1801. new OracleParameter(":ProcedureName",OracleDbType.Varchar2,
  1802. completeProcdureName,ParameterDirection.Input),
  1803. new OracleParameter(":ProcedureCode",OracleDbType.Varchar2,
  1804. completeProcdureCode,ParameterDirection.Input),
  1805. new OracleParameter(":logoid",OracleDbType.Int32,
  1806. SProductEntity.LogoID==0?null:SProductEntity.LogoID,ParameterDirection.Input),
  1807. new OracleParameter(":ProductionDataID",OracleDbType.Int32,
  1808. ProductionDataID,ParameterDirection.Input),
  1809. };
  1810. ll = 6;
  1811. returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
  1812. ll = 7;
  1813. //如果是直接审批通过 wangxin 2015-03-24
  1814. if (SProductEntity.AuditStatus == 1)
  1815. {
  1816. ll = 8;
  1817. int DeleteRows = 0;
  1818. string sqlInsert = @"insert into TP_PM_InProductionTrash
  1819. (
  1820. BarCode,
  1821. ProductionLineID,
  1822. ProductionLineCode,
  1823. ProductionLineName,
  1824. ProcedureModel,
  1825. ModelType,
  1826. DefectFlag,
  1827. ReworkProcedureID,
  1828. IsPublicBody,
  1829. IsReFire,
  1830. GoodsLevelID,
  1831. GoodsLevelTypeID,
  1832. GoodsID,
  1833. GoodsCode,
  1834. GoodsName,
  1835. UserID,
  1836. GroutingDailyID,
  1837. GroutingDailyDetailID,
  1838. GroutingDate,
  1839. GroutingLineID,
  1840. GroutingLineCode,
  1841. GroutingLineName,
  1842. GMouldTypeID,
  1843. CanManyTimes,
  1844. GroutingLineDetailID,
  1845. GroutingMouldCode,
  1846. MouldCode,
  1847. GroutingUserID,
  1848. GroutingUserCode,
  1849. GroutingNum,
  1850. Remarks,
  1851. KilnID,
  1852. KilnCode,
  1853. KilnName,
  1854. KilnCarID,
  1855. KilnCarCode,
  1856. KilnCarName,
  1857. KilnCarBatchNo,
  1858. KilnCarPosition,
  1859. AccountID,
  1860. ValueFlag,
  1861. CreateUserID,
  1862. UpdateUserID,
  1863. SpecialRepairflag,
  1864. FlowProcedureID,
  1865. FlowProcedureTime,
  1866. ProcedureID,
  1867. ProcedureTime,
  1868. ProductionDataID,
  1869. logoid, ISREWORKFLAG, SEMICHECKID
  1870. )
  1871. select
  1872. BarCode,
  1873. ProductionLineID,
  1874. ProductionLineCode,
  1875. ProductionLineName,
  1876. ProcedureModel,
  1877. ModelType,
  1878. DefectFlag,
  1879. ReworkProcedureID,
  1880. IsPublicBody,
  1881. IsReFire,
  1882. :GoodsLevelID,
  1883. :GoodsLevelTypeID,
  1884. GoodsID,
  1885. GoodsCode,
  1886. GoodsName,
  1887. UserID,
  1888. GroutingDailyID,
  1889. GroutingDailyDetailID,
  1890. GroutingDate,
  1891. GroutingLineID,
  1892. GroutingLineCode,
  1893. GroutingLineName,
  1894. GMouldTypeID,
  1895. CanManyTimes,
  1896. GroutingLineDetailID,
  1897. GroutingMouldCode,
  1898. MouldCode,
  1899. GroutingUserID,
  1900. GroutingUserCode,
  1901. GroutingNum,
  1902. Remarks,
  1903. KilnID,
  1904. KilnCode,
  1905. KilnName,
  1906. KilnCarID,
  1907. KilnCarCode,
  1908. KilnCarName,
  1909. KilnCarBatchNo,
  1910. KilnCarPosition,
  1911. AccountID,
  1912. ValueFlag,
  1913. :CreateUserID,
  1914. :UpdateUserID,
  1915. SpecialRepairflag,
  1916. FlowProcedureID,
  1917. FlowProcedureTime,
  1918. ProcedureID,
  1919. ProcedureTime,
  1920. ProductionDataID,
  1921. logoid, ISREWORKFLAG, SEMICHECKID
  1922. from TP_PM_InProduction
  1923. where barcode='" + SProductEntity.BarCode + "'";
  1924. OracleParameter[] Paras2 = new OracleParameter[] {
  1925. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  1926. userInfo.UserID,ParameterDirection.Input),
  1927. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  1928. userInfo.UserID,ParameterDirection.Input),
  1929. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  1930. SProductEntity.GoodsLevelID,ParameterDirection.Input),
  1931. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  1932. SProductEntity.GoodsLevelTypeID,ParameterDirection.Input)
  1933. };
  1934. ll = 9;
  1935. DeleteRows = oracleTrConn.ExecuteNonQuery(sqlInsert, Paras2);
  1936. //20150714 modify wangx
  1937. ll = 10;
  1938. if (SProductEntity.ProcedureID != null)//在生产线上报废的,
  1939. {
  1940. sbSql.Clear();
  1941. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + SProductEntity.BarCode + "'");
  1942. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1943. }
  1944. //20150714 modify wangx end
  1945. ll = 11;
  1946. sbSql.Clear();
  1947. sbSql.Append("Delete from TP_PM_InProduction where BarCode='" + SProductEntity.BarCode + "'");
  1948. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1949. //如果没有删除在产产品,那么要去删除成品表
  1950. if (DeleteRows == 0)
  1951. {
  1952. sbSql.Clear();
  1953. sbSql.Append("Update TP_PM_FinishedProduct set ValueFlag = 0 where BarCode='" + SProductEntity.BarCode + "'");
  1954. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1955. }
  1956. //并且要把该产品的生产数据的最终状态添加上
  1957. //sbSql.Clear();
  1958. //sbSql.Append("Update TP_PM_ProductionData set GoodsEnding=8 where BarCode='" + SProductEntity.BarCode + "'");
  1959. //UpdateRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1960. }
  1961. else
  1962. {
  1963. ll = 12;
  1964. if (SProductEntity.ProcedureID != null)//在生产线上报废的,
  1965. {
  1966. sbSql.Clear();
  1967. if (SProductEntity.AuditStatus == 0) //待审核
  1968. {
  1969. sbSql.Append("update TP_PM_InProduction set inscrapflag='1' where BarCode='" + SProductEntity.BarCode + "'");
  1970. }
  1971. else
  1972. {
  1973. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + SProductEntity.BarCode + "'");
  1974. }
  1975. oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  1976. }
  1977. }
  1978. ll = 13;
  1979. //判断一下责任类型,如果是责任工序的话,则添加责任工序信息
  1980. if (Convert.ToInt32(SProductEntity.ResponType) == 3)
  1981. {
  1982. //插入产品废弃责任工序
  1983. sbSql.Clear();
  1984. sbSql.Append("select SEQ_PM_ResponProcedure_ID.nextval from dual");
  1985. RProcedureEntity.ResponProcedureID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  1986. sbSql.Clear();
  1987. sbSql.Append("Insert into TP_PM_ResponProcedure");
  1988. sbSql.Append("(ResponProcedureID,ScrapProductID,Barcode,ProductionDataID,ProductionLineID,");
  1989. sbSql.Append("ProductionLineCode,ProductionLineName,");
  1990. sbSql.Append("ProcedureID,ProcedureCode,ProcedureName,UserID,UserCode,UserName,Remarks,AccountID,");
  1991. sbSql.Append("ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp)");
  1992. sbSql.Append("Values(:ResponProcedureID,:ScrapProductID,:Barcode,:ProductionDataID,:ProductionLineID,");
  1993. sbSql.Append(":ProductionLineCode,:ProductionLineName,");
  1994. sbSql.Append(":ProcedureID,:ProcedureCode,:ProcedureName,:UserID,:UserCode,:UserName,:Remarks,");
  1995. sbSql.Append(":AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID,systimestamp)");
  1996. OracleParameter[] RPParas = new OracleParameter[]
  1997. {
  1998. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  1999. RProcedureEntity.ResponProcedureID,ParameterDirection.Input),
  2000. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2001. id,ParameterDirection.Input),
  2002. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2003. RProcedureEntity.BarCode,ParameterDirection.Input),
  2004. new OracleParameter(":ProductionDataID",OracleDbType.NVarchar2,
  2005. RProcedureEntity.ProductionDataID,ParameterDirection.Input),
  2006. new OracleParameter(":ProductionLineID",OracleDbType.NVarchar2,
  2007. RProcedureEntity.ProductionLineID,ParameterDirection.Input),
  2008. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  2009. RProcedureEntity.ProductionLineCode,ParameterDirection.Input),
  2010. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  2011. RProcedureEntity.ProductionLineName,ParameterDirection.Input),
  2012. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  2013. RProcedureEntity.ProcedureID,ParameterDirection.Input),
  2014. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  2015. RProcedureEntity.ProcedureCode,ParameterDirection.Input),
  2016. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  2017. RProcedureEntity.ProcedureName,ParameterDirection.Input),
  2018. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  2019. RProcedureEntity.UserID,ParameterDirection.Input),
  2020. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2021. RProcedureEntity.UserCode,ParameterDirection.Input),
  2022. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  2023. RProcedureEntity.UserName,ParameterDirection.Input),
  2024. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  2025. RProcedureEntity.Remarks,ParameterDirection.Input),
  2026. new OracleParameter(":AccountID",OracleDbType.NVarchar2,
  2027. userInfo.AccountID,ParameterDirection.Input),
  2028. new OracleParameter(":CreateUserID",OracleDbType.NVarchar2,
  2029. userInfo.UserID,ParameterDirection.Input),
  2030. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  2031. userInfo.UserID,ParameterDirection.Input)
  2032. };
  2033. ll = 14;
  2034. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2035. #region 更新废弃责任工序的生产工序ID
  2036. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2037. " SET (SP.RESPONPROCEDUREPROCEDUREID) =\n" +
  2038. " (SELECT RP.PROCEDUREID\n" +
  2039. " FROM TP_PM_RESPONPROCEDURE RP\n" +
  2040. " WHERE RP.SCRAPPRODUCTID = SP.SCRAPPRODUCTID)\n" +
  2041. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2042. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2043. RPParas = new OracleParameter[]
  2044. {
  2045. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,id,ParameterDirection.Input),
  2046. };
  2047. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, RPParas);
  2048. #endregion
  2049. }
  2050. ll = 15;
  2051. if (Convert.ToInt32(SProductEntity.ResponType) != 1)
  2052. {
  2053. //计算每个责任人的报废扣罚
  2054. decimal scrapfine = 0;
  2055. if (SResponsibleList.Length > 0)
  2056. {
  2057. scrapfine = SProductEntity.ScrapFine / SResponsibleList.Length;
  2058. }
  2059. //循环插入产品废弃责任者
  2060. OracleParameter[] SPParas;
  2061. foreach (ScrapResponsibleEntity spFor in SResponsibleList)
  2062. {
  2063. sbSql.Clear();
  2064. sbSql.Append("select SEQ_PM_ScrapResponsible_ID.nextval from dual");
  2065. spFor.ResponsibleID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2066. int? ResponProcedureID = null;
  2067. if (RProcedureEntity != null)
  2068. {
  2069. ResponProcedureID = RProcedureEntity.ResponProcedureID;
  2070. }
  2071. sbSql.Clear();
  2072. sbSql.Append("Insert into TP_PM_ScrapResponsible");
  2073. sbSql.Append("(ResponsibleID,ScrapProductID,ResponType,ResponProcedureID,Barcode,StaffID,UserID,UserCode,UJobsID,SJobsID,");
  2074. sbSql.Append("StaffStatus,AccountID,CreateTime,CreateUserID,");
  2075. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,Scrapfine)");
  2076. sbSql.Append("values(:ResponsibleID,:ScrapProductID,:ResponType,:ResponProcedureID,:Barcode,:StaffID,:UserID,:UserCode,:UJobsID,:SJobsID,");
  2077. sbSql.Append(":StaffStatus,:AccountID,sysdate,:CreateUserID,");
  2078. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:Scrapfine)");
  2079. SPParas = new OracleParameter[]
  2080. {
  2081. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2082. spFor.ResponsibleID,ParameterDirection.Input),
  2083. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2084. id,ParameterDirection.Input),
  2085. new OracleParameter(":ResponType",OracleDbType.Int32,
  2086. Convert.ToInt32(SProductEntity.ResponType),ParameterDirection.Input),
  2087. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2088. ResponProcedureID,ParameterDirection.Input),
  2089. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2090. spFor.BarCode,ParameterDirection.Input),
  2091. new OracleParameter(":StaffID",OracleDbType.Int32,
  2092. spFor.StaffID,ParameterDirection.Input),
  2093. new OracleParameter(":UserID",OracleDbType.Int32,
  2094. spFor.UserID,ParameterDirection.Input),
  2095. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2096. spFor.UserCode,ParameterDirection.Input),
  2097. new OracleParameter(":UJobsID",OracleDbType.Int32,
  2098. spFor.UJobsID,ParameterDirection.Input),
  2099. new OracleParameter(":SJobsID",OracleDbType.Int32,
  2100. spFor.SJobsID,ParameterDirection.Input),
  2101. new OracleParameter(":StaffStatus",OracleDbType.Int32,
  2102. spFor.StaffStatus,ParameterDirection.Input),
  2103. new OracleParameter(":AccountID",OracleDbType.Int32,
  2104. userInfo.AccountID,ParameterDirection.Input),
  2105. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2106. userInfo.UserID,ParameterDirection.Input),
  2107. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2108. userInfo.UserID,ParameterDirection.Input),
  2109. new OracleParameter(":Scrapfine",OracleDbType.Decimal,
  2110. scrapfine,ParameterDirection.Input)
  2111. };
  2112. sresponsibleReturnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2113. }
  2114. #region 更新废弃责任工序的责任者ID和编码
  2115. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2116. " SET (SP.RESPONSIBLEUSERID, SP.RESPONSIBLEUSERCODE) =\n" +
  2117. " (SELECT SR.USERID, SR.USERCODE\n" +
  2118. " FROM TP_PM_SCRAPRESPONSIBLE SR\n" +
  2119. " WHERE SR.SCRAPPRODUCTID = SP.SCRAPPRODUCTID\n" +
  2120. " GROUP BY SR.USERID, SR.USERCODE)\n" +
  2121. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2122. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2123. SPParas = new OracleParameter[]
  2124. {
  2125. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,id,ParameterDirection.Input),
  2126. };
  2127. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, SPParas);
  2128. #endregion
  2129. }
  2130. ll = 16;
  2131. if (returnRows == 0)
  2132. {
  2133. oracleTrConn.Rollback();
  2134. oracleTrConn.Disconnect();
  2135. }
  2136. else
  2137. {
  2138. oracleTrConn.Commit();
  2139. oracleTrConn.Disconnect();
  2140. }
  2141. }
  2142. catch (Exception ex)
  2143. {
  2144. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2145. {
  2146. oracleTrConn.Rollback();
  2147. oracleTrConn.Disconnect();
  2148. }
  2149. throw new Exception(ll.ToString(), ex);
  2150. }
  2151. finally
  2152. {
  2153. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2154. {
  2155. oracleTrConn.Disconnect();
  2156. }
  2157. }
  2158. return returnRows;
  2159. }
  2160. /// <summary>
  2161. /// 获取登陆帐户有无报损权限
  2162. /// </summary>
  2163. /// <param name="usercode">工号编码</param>
  2164. /// <returns></returns>
  2165. public static int GetScrapFuntion(string usercode, SUserInfo userInfo)
  2166. {
  2167. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2168. try
  2169. {
  2170. con.Open();
  2171. string strSql = "";
  2172. if (usercode.ToUpper() == "SYSTEM")
  2173. {
  2174. strSql = @"SELECT Functionlevel,
  2175. FunctionCode,
  2176. FunctionName,
  2177. FullName,
  2178. FunctionFlag,
  2179. FunctionButtonFlag,
  2180. FormName,
  2181. ButtonName
  2182. FROM TP_SYS_Function
  2183. WHERE ValueFlag = 1
  2184. AND FunctionCode = '01'
  2185. OR FunctionCode = '0101'
  2186. OR FunctionCode = '010101'";
  2187. }
  2188. else if (usercode.ToUpper() == "ADMIN")
  2189. {
  2190. strSql = @" SELECT Functionlevel,
  2191. FunctionCode,
  2192. FunctionName,
  2193. FullName,
  2194. FunctionFlag,
  2195. FunctionButtonFlag,
  2196. FormName,
  2197. ButtonName
  2198. FROM TP_SYS_Function WHERE ValueFlag = 1
  2199. AND FunctionCode LIKE '01%'
  2200. AND FunctionCode <> '0101'
  2201. AND FunctionCode <> '010101'";
  2202. }
  2203. else
  2204. {
  2205. strSql = @"SELECT F.Functionlevel,
  2206. F.FunctionCode,
  2207. F.FunctionName,
  2208. F.FullName,
  2209. F.FunctionFlag,
  2210. F.FunctionButtonFlag,
  2211. F.FormName,
  2212. F.ButtonName
  2213. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2214. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2215. WHERE F.ValueFlag = 1
  2216. AND F.FunctionCode NOT LIKE '0101%'
  2217. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060401') = 1";
  2218. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2219. }
  2220. DataSet ds = con.GetSqlResultToDs(strSql);
  2221. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2222. {
  2223. return 1;
  2224. }
  2225. return 0;
  2226. }
  2227. catch (Exception ex)
  2228. {
  2229. throw ex;
  2230. }
  2231. finally
  2232. {
  2233. if (con.ConnState == ConnectionState.Open)
  2234. {
  2235. con.Close();
  2236. }
  2237. }
  2238. }
  2239. /// <summary>
  2240. /// 获取是否存在报损未审核产品
  2241. /// </summary>
  2242. /// <param name="BarCode">产品条码</param>
  2243. /// <returns>int</returns>
  2244. public static int GetScrapProductAuditStatus(string BarCode)
  2245. {
  2246. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2247. try
  2248. {
  2249. con.Open();
  2250. // wangx modify 2015/07/14
  2251. string strSql = "select inscrapflag from TP_PM_INPRODUCTION where barcode='" + BarCode + "'";
  2252. DataSet dsReturn = con.GetSqlResultToDs(strSql);
  2253. if (dsReturn != null && dsReturn.Tables[0].Rows.Count > 0)
  2254. {
  2255. if (dsReturn.Tables[0].Rows[0]["inscrapflag"].ToString() == "0")
  2256. {
  2257. return 0;
  2258. }
  2259. else
  2260. {
  2261. strSql = @"Select ScrapProductID from TP_PM_ScrapProduct where ValueFlag=1
  2262. and BarCode='" + BarCode + "' and (AuditStatus=0 or AuditStatus=2) order by ScrapProductid desc "; //AuditStatus=0 or
  2263. dsReturn = con.GetSqlResultToDs(strSql);
  2264. if (dsReturn.Tables[0].Rows.Count == 0)
  2265. {
  2266. return 0;
  2267. }
  2268. else
  2269. {
  2270. return Convert.ToInt32(dsReturn.Tables[0].Rows[0]["ScrapProductID"]);
  2271. }
  2272. }
  2273. }
  2274. else
  2275. {
  2276. return 0;
  2277. }
  2278. // wangx modify 2015/07/14 end
  2279. //string strSql = @"Select * from TP_PM_ScrapProduct where ValueFlag=1
  2280. // strSql = @"Select ScrapProductID from TP_PM_ScrapProduct where ValueFlag=1
  2281. // and BarCode='" + BarCode + "' and (AuditStatus=0 or AuditStatus=2) order by ScrapProductid desc "; //AuditStatus=0 or
  2282. // dsReturn = con.GetSqlResultToDs(strSql);
  2283. // if (dsReturn.Tables[0].Rows.Count == 0)
  2284. // {
  2285. // return 0;
  2286. // }
  2287. // else
  2288. // {
  2289. // return Convert.ToInt32(dsReturn.Tables[0].Rows[0]["ScrapProductID"]);
  2290. // }
  2291. }
  2292. catch (Exception ex)
  2293. {
  2294. throw ex;
  2295. }
  2296. finally
  2297. {
  2298. if (con.ConnState == ConnectionState.Open)
  2299. {
  2300. con.Close();
  2301. }
  2302. }
  2303. }
  2304. /// <summary>
  2305. /// 获取产品报损明细
  2306. /// </summary>
  2307. /// <param name="usercode">工号编码</param>
  2308. /// <returns></returns>
  2309. public static DataSet GetScrapProductInfo(string usercode, SUserInfo userInfo)
  2310. {
  2311. return null;
  2312. }
  2313. #endregion
  2314. /// <summary>
  2315. /// 修改废弃产品记录
  2316. /// </summary>
  2317. /// <param name="UpdateSProductEntity">修改的废弃产品实体</param>
  2318. /// <param name="UpdateRProcedureEntity">修改的废弃责任工序实体</param>
  2319. /// <param name="UpdateSResponsibleList">修改的废弃责任人实体</param>
  2320. /// <param name="YSResponsibleList">修改前的废弃责任人实体</param>
  2321. /// <param name="userInfo">用户基本信息</param>
  2322. /// <returns>int结果返回值</returns>
  2323. /// <remarks>
  2324. /// 庄天威 2014.09.24 新建
  2325. /// </remarks>
  2326. public static int UpdateScrapProduct(ScrapProductEntity UpdateSProductEntity,
  2327. ResponProcedureEntity UpdateRProcedureEntity,
  2328. ScrapResponsibleEntity[] UpdateSResponsibleList, ScrapResponsibleEntity[] YSResponsibleList,
  2329. SUserInfo userInfo)
  2330. {
  2331. int returnRows = 0;
  2332. int sresponsibleReturnRows = 0;
  2333. int rprocedureReturn = 0;
  2334. int deleteRprocedureReturn = 0;
  2335. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2336. try
  2337. {
  2338. oracleTrConn.Connect();
  2339. //首先修改废弃产品主体信息
  2340. StringBuilder sbSql = new StringBuilder();
  2341. sbSql.Append("update TP_PM_ScrapProduct");
  2342. sbSql.Append(" set ScrapDate=to_date(:ScrapDate,'yyyy-mm-dd hh24:mi:ss'),");
  2343. sbSql.Append(" Rreason=:Rreason,");
  2344. sbSql.Append(" Remarks=:Remarks,");
  2345. sbSql.Append(" ResponType=:ResponType,");
  2346. sbSql.Append(" UpdateUserID=:UpdateUserID,");
  2347. sbSql.Append(" ScrapFine=:ScrapFine");
  2348. if (UpdateSProductEntity.AuditStatus != null)
  2349. {
  2350. sbSql.Append(" ,AuditStatus=" + UpdateSProductEntity.AuditStatus);
  2351. }
  2352. if (UpdateSProductEntity.AuditStatus == 0) //待审批
  2353. {
  2354. sbSql.Append(" ,AuditDate=null,Auditor=null");
  2355. }
  2356. else
  2357. {
  2358. //2021年12月6日10:58:08 by fy modify 取系统时间
  2359. //object result = DBNull.Value;
  2360. //string strSql1 = "select FUN_CMN_GetAccountDate(:accountId) From DUAL";
  2361. //Oracle.ManagedDataAccess.Client.OracleParameter[] paras1 = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2362. //{
  2363. // new Oracle.ManagedDataAccess.Client.OracleParameter(":accountId",userInfo.AccountID)
  2364. //};
  2365. //object strResult = oracleTrConn.GetSqlResultToObj(strSql1, paras1);
  2366. //if (strResult == null || strResult == DBNull.Value)
  2367. //{
  2368. // // 服务器时间错误
  2369. // throw new Exception("SystemDateTimeError");
  2370. //}
  2371. //result = Convert.ToDateTime(strResult);
  2372. //sbSql.Append(string.Format(" ,AuditDate=to_date('{0}','yyyy-mm-dd hh24:mi:ss'),Auditor={1}", result.ToString().Replace("/", "-"), userInfo.UserID));
  2373. sbSql.Append(string.Format(" ,AuditDate=sysdate,Auditor={0},AccountDate=trunc(sysdate)", userInfo.UserID));
  2374. }
  2375. sbSql.Append(" where ScrapProductID=:ScrapProductID");
  2376. OracleParameter[] Paras = new OracleParameter[] {
  2377. new OracleParameter(":ScrapDate",OracleDbType.NVarchar2,
  2378. UpdateSProductEntity.ScrapDatePDA.ToString(),ParameterDirection.Input),
  2379. new OracleParameter(":Rreason",OracleDbType.NVarchar2,
  2380. UpdateSProductEntity.Rreason,ParameterDirection.Input),
  2381. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  2382. UpdateSProductEntity.Remarks,ParameterDirection.Input),
  2383. new OracleParameter(":ResponType",OracleDbType.Int32,
  2384. UpdateSProductEntity.ResponType,ParameterDirection.Input),
  2385. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2386. userInfo.UserID,ParameterDirection.Input),
  2387. new OracleParameter(":ScrapProductID",OracleDbType.NVarchar2,
  2388. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2389. new OracleParameter(":ScrapFine",OracleDbType.Decimal,
  2390. UpdateSProductEntity.ScrapFine,ParameterDirection.Input)
  2391. };
  2392. returnRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), Paras);
  2393. //如果是直接审批通过 wangxin 2015-03-24
  2394. if (UpdateSProductEntity.AuditStatus == 1)
  2395. {
  2396. int DeleteRows = 0;
  2397. string sqlInsert = @"insert into TP_PM_InProductionTrash
  2398. (
  2399. BarCode,
  2400. ProductionLineID,
  2401. ProductionLineCode,
  2402. ProductionLineName,
  2403. ProcedureModel,
  2404. ModelType,
  2405. DefectFlag,
  2406. ReworkProcedureID,
  2407. IsPublicBody,
  2408. IsReFire,
  2409. GoodsLevelID,
  2410. GoodsLevelTypeID,
  2411. GoodsID,
  2412. GoodsCode,
  2413. GoodsName,
  2414. UserID,
  2415. GroutingDailyID,
  2416. GroutingDailyDetailID,
  2417. GroutingDate,
  2418. GroutingLineID,
  2419. GroutingLineCode,
  2420. GroutingLineName,
  2421. GMouldTypeID,
  2422. CanManyTimes,
  2423. GroutingLineDetailID,
  2424. GroutingMouldCode,
  2425. MouldCode,
  2426. GroutingUserID,
  2427. GroutingUserCode,
  2428. GroutingNum,
  2429. Remarks,
  2430. KilnID,
  2431. KilnCode,
  2432. KilnName,
  2433. KilnCarID,
  2434. KilnCarCode,
  2435. KilnCarName,
  2436. KilnCarBatchNo,
  2437. KilnCarPosition,
  2438. AccountID,
  2439. ValueFlag,
  2440. CreateUserID,
  2441. UpdateUserID,
  2442. SpecialRepairflag,
  2443. FlowProcedureID,
  2444. FlowProcedureTime,
  2445. ProcedureID,
  2446. ProcedureTime,
  2447. ProductionDataID,
  2448. logoid, ISREWORKFLAG, SEMICHECKID
  2449. )
  2450. select
  2451. BarCode,
  2452. ProductionLineID,
  2453. ProductionLineCode,
  2454. ProductionLineName,
  2455. ProcedureModel,
  2456. ModelType,
  2457. DefectFlag,
  2458. ReworkProcedureID,
  2459. IsPublicBody,
  2460. IsReFire,
  2461. :GoodsLevelID,
  2462. :GoodsLevelTypeID,
  2463. GoodsID,
  2464. GoodsCode,
  2465. GoodsName,
  2466. UserID,
  2467. GroutingDailyID,
  2468. GroutingDailyDetailID,
  2469. GroutingDate,
  2470. GroutingLineID,
  2471. GroutingLineCode,
  2472. GroutingLineName,
  2473. GMouldTypeID,
  2474. CanManyTimes,
  2475. GroutingLineDetailID,
  2476. GroutingMouldCode,
  2477. MouldCode,
  2478. GroutingUserID,
  2479. GroutingUserCode,
  2480. GroutingNum,
  2481. Remarks,
  2482. KilnID,
  2483. KilnCode,
  2484. KilnName,
  2485. KilnCarID,
  2486. KilnCarCode,
  2487. KilnCarName,
  2488. KilnCarBatchNo,
  2489. KilnCarPosition,
  2490. AccountID,
  2491. ValueFlag,
  2492. :CreateUserID,
  2493. :UpdateUserID,
  2494. SpecialRepairflag,
  2495. FlowProcedureID,
  2496. FlowProcedureTime,
  2497. ProcedureID,
  2498. ProcedureTime,
  2499. ProductionDataID,
  2500. logoid, ISREWORKFLAG, SEMICHECKID
  2501. from TP_PM_InProduction
  2502. where barcode='" + UpdateSProductEntity.BarCode + "'";
  2503. OracleParameter[] Paras2 = new OracleParameter[] {
  2504. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2505. userInfo.UserID,ParameterDirection.Input),
  2506. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2507. userInfo.UserID,ParameterDirection.Input),
  2508. new OracleParameter(":GoodsLevelID",OracleDbType.Int32,
  2509. UpdateSProductEntity.GoodsLevelID,ParameterDirection.Input),
  2510. new OracleParameter(":GoodsLevelTypeID",OracleDbType.Int32,
  2511. UpdateSProductEntity.GoodsLevelTypeID,ParameterDirection.Input)
  2512. };
  2513. DeleteRows = oracleTrConn.ExecuteNonQuery(sqlInsert, Paras2);
  2514. //20150714 modify wangx
  2515. if (UpdateSProductEntity.ProcedureID != null)//在生产线上报废的,
  2516. {
  2517. sbSql.Clear();
  2518. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2519. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2520. }
  2521. //20150714 modify wangx end
  2522. sbSql.Clear();
  2523. sbSql.Append("Delete from TP_PM_InProduction where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2524. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2525. //如果没有删除在产产品,那么要去删除成品表
  2526. if (DeleteRows == 0)
  2527. {
  2528. sbSql.Clear();
  2529. sbSql.Append("Update TP_PM_FinishedProduct set ValueFlag = 0 where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2530. DeleteRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2531. }
  2532. //并且要把该产品的生产数据的最终状态添加上
  2533. //sbSql.Clear();
  2534. //sbSql.Append("Update TP_PM_ProductionData set GoodsEnding=8 where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2535. //UpdateRows = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2536. }
  2537. else
  2538. {
  2539. //if (UpdateSProductEntity.ProcedureID != null)//在生产线上报废的,
  2540. //{
  2541. sbSql.Clear();
  2542. if (UpdateSProductEntity.AuditStatus == 0) //待审核
  2543. {
  2544. sbSql.Append("update TP_PM_InProduction set inscrapflag='1' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2545. }
  2546. else
  2547. {
  2548. sbSql.Append("update TP_PM_InProduction set inscrapflag='0' where BarCode='" + UpdateSProductEntity.BarCode + "'");
  2549. }
  2550. oracleTrConn.ExecuteNonQuery(sbSql.ToString(), null);
  2551. //}
  2552. }
  2553. //无论如何,要把原始的责任者数据删除
  2554. if (YSResponsibleList != null)
  2555. {
  2556. foreach (ScrapResponsibleEntity spFor in YSResponsibleList)
  2557. {
  2558. sbSql.Clear();
  2559. sbSql.Append("delete from TP_PM_ScrapResponsible");
  2560. sbSql.Append(" where ResponsibleID=:ResponsibleID ");
  2561. OracleParameter[] SPParas = new OracleParameter[] {
  2562. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2563. spFor.ResponsibleID,ParameterDirection.Input)
  2564. };
  2565. deleteRprocedureReturn += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2566. }
  2567. }
  2568. //判断一下责任类型,如果有责任工序的话,则修改责任工序信息
  2569. if (Convert.ToInt32(UpdateSProductEntity.ResponType) == 3)
  2570. {
  2571. if (UpdateRProcedureEntity != null)
  2572. {
  2573. if (UpdateRProcedureEntity.ResponProcedureID != null)
  2574. {
  2575. sbSql.Clear();
  2576. sbSql.Append("update TP_PM_ResponProcedure");
  2577. sbSql.Append(" set ProcedureID=:ProcedureID,");
  2578. sbSql.Append(" ProcedureCode=:ProcedureCode,");
  2579. sbSql.Append(" ProcedureName=:ProcedureName,");
  2580. sbSql.Append(" UserID=:UserID,");
  2581. sbSql.Append(" UserCode=:UserCode,");
  2582. sbSql.Append(" UserName=:UserName,");
  2583. sbSql.Append(" UpdateUserID=:UpdateUserID");
  2584. sbSql.Append(" where ResponProcedureID=:ResponProcedureID");
  2585. OracleParameter[] RPParas = new OracleParameter[] {
  2586. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  2587. UpdateRProcedureEntity.ProcedureID,ParameterDirection.Input),
  2588. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  2589. UpdateRProcedureEntity.ProcedureCode,ParameterDirection.Input),
  2590. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  2591. UpdateRProcedureEntity.ProcedureName,ParameterDirection.Input),
  2592. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  2593. UpdateRProcedureEntity.UserID,ParameterDirection.Input),
  2594. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2595. UpdateRProcedureEntity.UserCode,ParameterDirection.Input),
  2596. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  2597. UpdateRProcedureEntity.UserName,ParameterDirection.Input),
  2598. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  2599. userInfo.UserID,ParameterDirection.Input),
  2600. new OracleParameter(":ResponProcedureID",OracleDbType.Int32,
  2601. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input)
  2602. };
  2603. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2604. }
  2605. else
  2606. {
  2607. //插入产品废弃责任工序
  2608. sbSql.Clear();
  2609. sbSql.Append("select SEQ_PM_ResponProcedure_ID.nextval from dual");
  2610. UpdateRProcedureEntity.ResponProcedureID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2611. sbSql.Clear();
  2612. sbSql.Append("Insert into TP_PM_ResponProcedure");
  2613. sbSql.Append("(ResponProcedureID,ScrapProductID,Barcode,ProductionDataID,ProductionLineID,");
  2614. sbSql.Append("ProductionLineCode,ProductionLineName,");
  2615. sbSql.Append("ProcedureID,ProcedureCode,ProcedureName,UserID,UserCode,UserName,Remarks,AccountID,");
  2616. sbSql.Append("ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp)");
  2617. sbSql.Append("Values(:ResponProcedureID,:ScrapProductID,:Barcode,:ProductionDataID,:ProductionLineID,");
  2618. sbSql.Append(":ProductionLineCode,:ProductionLineName,");
  2619. sbSql.Append(":ProcedureID,:ProcedureCode,:ProcedureName,:UserID,:UserCode,:UserName,:Remarks,");
  2620. sbSql.Append(":AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID,systimestamp)");
  2621. OracleParameter[] RPParas = new OracleParameter[] {
  2622. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2623. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input),
  2624. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2625. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2626. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2627. UpdateRProcedureEntity.BarCode,ParameterDirection.Input),
  2628. new OracleParameter(":ProductionDataID",OracleDbType.NVarchar2,
  2629. UpdateRProcedureEntity.ProductionDataID,ParameterDirection.Input),
  2630. new OracleParameter(":ProductionLineID",OracleDbType.NVarchar2,
  2631. UpdateRProcedureEntity.ProductionLineID,ParameterDirection.Input),
  2632. new OracleParameter(":ProductionLineCode",OracleDbType.NVarchar2,
  2633. UpdateRProcedureEntity.ProductionLineCode,ParameterDirection.Input),
  2634. new OracleParameter(":ProductionLineName",OracleDbType.NVarchar2,
  2635. UpdateRProcedureEntity.ProductionLineName,ParameterDirection.Input),
  2636. new OracleParameter(":ProcedureID",OracleDbType.NVarchar2,
  2637. UpdateRProcedureEntity.ProcedureID,ParameterDirection.Input),
  2638. new OracleParameter(":ProcedureCode",OracleDbType.NVarchar2,
  2639. UpdateRProcedureEntity.ProcedureCode,ParameterDirection.Input),
  2640. new OracleParameter(":ProcedureName",OracleDbType.NVarchar2,
  2641. UpdateRProcedureEntity.ProcedureName,ParameterDirection.Input),
  2642. new OracleParameter(":UserID",OracleDbType.NVarchar2,
  2643. UpdateRProcedureEntity.UserID,ParameterDirection.Input),
  2644. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2645. UpdateRProcedureEntity.UserCode,ParameterDirection.Input),
  2646. new OracleParameter(":UserName",OracleDbType.NVarchar2,
  2647. UpdateRProcedureEntity.UserName,ParameterDirection.Input),
  2648. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  2649. UpdateRProcedureEntity.Remarks,ParameterDirection.Input),
  2650. new OracleParameter(":AccountID",OracleDbType.NVarchar2,
  2651. userInfo.AccountID,ParameterDirection.Input),
  2652. new OracleParameter(":CreateUserID",OracleDbType.NVarchar2,
  2653. userInfo.UserID,ParameterDirection.Input),
  2654. new OracleParameter(":UpdateUserID",OracleDbType.NVarchar2,
  2655. userInfo.UserID,ParameterDirection.Input)
  2656. };
  2657. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2658. }
  2659. }
  2660. }
  2661. else //责任类型改为不存在责任工序了,要把原来的删除
  2662. {
  2663. if (UpdateRProcedureEntity != null) //本来就没有的话就不用删了
  2664. {
  2665. if (UpdateRProcedureEntity.ValueFlag == 0) //直接删除即可
  2666. {
  2667. sbSql.Clear();
  2668. sbSql.Append("Delete from TP_PM_ResponProcedure");
  2669. sbSql.Append(" where ResponProcedureID=:ResponProcedureID");
  2670. OracleParameter[] RPParas = new OracleParameter[] {
  2671. new OracleParameter(":ResponProcedureID",OracleDbType.Int32,
  2672. UpdateRProcedureEntity.ResponProcedureID,ParameterDirection.Input)
  2673. };
  2674. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sbSql.ToString(), RPParas);
  2675. }
  2676. }
  2677. }
  2678. //如果存在修改的产品废弃责任者
  2679. if (Convert.ToInt32(UpdateSProductEntity.ResponType) != 1)
  2680. {
  2681. //计算每个责任人的报废扣罚
  2682. decimal scrapfine = 0;
  2683. if (UpdateSResponsibleList.Length > 0)
  2684. {
  2685. scrapfine = UpdateSProductEntity.ScrapFine / UpdateSResponsibleList.Length;
  2686. }
  2687. //循环插入产品废弃责任者
  2688. foreach (ScrapResponsibleEntity spFor in UpdateSResponsibleList)
  2689. {
  2690. sbSql.Clear();
  2691. sbSql.Append("select SEQ_PM_ScrapResponsible_ID.nextval from dual");
  2692. spFor.ResponsibleID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sbSql.ToString()));
  2693. int? ResponProcedureID = null;
  2694. if (UpdateRProcedureEntity != null)
  2695. {
  2696. if (UpdateRProcedureEntity.ValueFlag != 0)
  2697. {
  2698. ResponProcedureID = UpdateRProcedureEntity.ResponProcedureID;
  2699. }
  2700. }
  2701. sbSql.Clear();
  2702. sbSql.Append("Insert into TP_PM_ScrapResponsible");
  2703. sbSql.Append("(ResponsibleID,ResponType,ResponProcedureID,Barcode,ScrapProductID,StaffID,UserID,UserCode,UJobsID,SJobsID,");
  2704. sbSql.Append("StaffStatus,AccountID,CreateTime,CreateUserID,");
  2705. sbSql.Append("UpdateTime,UpdateUserID,OPTimeStamp,Scrapfine)");
  2706. sbSql.Append("values(:ResponsibleID,:ResponType,:ResponProcedureID,:Barcode,:ScrapProductID,:StaffID,:UserID,:UserCode,:UJobsID,:SJobsID,");
  2707. sbSql.Append(":StaffStatus,:AccountID,sysdate,:CreateUserID,");
  2708. sbSql.Append("sysdate,:UpdateUserID,systimestamp,:Scrapfine)");
  2709. OracleParameter[] SPParas = new OracleParameter[] {
  2710. new OracleParameter(":ResponsibleID",OracleDbType.Int32,
  2711. spFor.ResponsibleID,ParameterDirection.Input),
  2712. new OracleParameter(":ResponType",OracleDbType.Int32,
  2713. Convert.ToInt32(UpdateSProductEntity.ResponType),ParameterDirection.Input),
  2714. new OracleParameter(":ResponProcedureID",OracleDbType.NVarchar2,
  2715. ResponProcedureID,ParameterDirection.Input),
  2716. new OracleParameter(":Barcode",OracleDbType.NVarchar2,
  2717. spFor.BarCode,ParameterDirection.Input),
  2718. new OracleParameter(":ScrapProductID",OracleDbType.Int32,
  2719. UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2720. new OracleParameter(":StaffID",OracleDbType.Int32,
  2721. spFor.StaffID,ParameterDirection.Input),
  2722. new OracleParameter(":UserID",OracleDbType.Int32,
  2723. spFor.UserID,ParameterDirection.Input),
  2724. new OracleParameter(":UserCode",OracleDbType.NVarchar2,
  2725. spFor.UserCode,ParameterDirection.Input),
  2726. new OracleParameter(":UJobsID",OracleDbType.Int32,
  2727. spFor.UJobsID,ParameterDirection.Input),
  2728. new OracleParameter(":SJobsID",OracleDbType.Int32,
  2729. spFor.SJobsID,ParameterDirection.Input),
  2730. new OracleParameter(":StaffStatus",OracleDbType.Int32,
  2731. spFor.StaffStatus,ParameterDirection.Input),
  2732. new OracleParameter(":AccountID",OracleDbType.Int32,
  2733. userInfo.AccountID,ParameterDirection.Input),
  2734. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  2735. userInfo.UserID,ParameterDirection.Input),
  2736. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  2737. userInfo.UserID,ParameterDirection.Input),
  2738. new OracleParameter(":Scrapfine",OracleDbType.Decimal,
  2739. scrapfine,ParameterDirection.Input)
  2740. };
  2741. sresponsibleReturnRows += oracleTrConn.ExecuteNonQuery(sbSql.ToString(), SPParas);
  2742. }
  2743. }
  2744. #region 更新废弃责任工序的生产工序ID
  2745. string sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2746. " SET (SP.RESPONPROCEDUREPROCEDUREID) =\n" +
  2747. " (SELECT RP.PROCEDUREID\n" +
  2748. " FROM TP_PM_RESPONPROCEDURE RP\n" +
  2749. " WHERE RP.SCRAPPRODUCTID = SP.SCRAPPRODUCTID)\n" +
  2750. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2751. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2752. Paras = new OracleParameter[]
  2753. {
  2754. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2755. };
  2756. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, Paras);
  2757. #endregion
  2758. #region 更新废弃责任工序的责任者ID和编码
  2759. sql = "UPDATE TP_PM_SCRAPPRODUCT SP\n" +
  2760. " SET (SP.RESPONSIBLEUSERID, SP.RESPONSIBLEUSERCODE) =\n" +
  2761. " (SELECT SR.USERID, SR.USERCODE\n" +
  2762. " FROM TP_PM_SCRAPRESPONSIBLE SR\n" +
  2763. " WHERE SR.SCRAPPRODUCTID = SP.SCRAPPRODUCTID\n" +
  2764. " GROUP BY SR.USERID, SR.USERCODE)\n" +
  2765. " WHERE SP.SCRAPTYPE IN (0, 2, 3)\n" +
  2766. " AND SP.SCRAPPRODUCTID = :SCRAPPRODUCTID";
  2767. Paras = new OracleParameter[]
  2768. {
  2769. new OracleParameter(":SCRAPPRODUCTID",OracleDbType.Int32,UpdateSProductEntity.ScrapProductID,ParameterDirection.Input),
  2770. };
  2771. rprocedureReturn = oracleTrConn.ExecuteNonQuery(sql, Paras);
  2772. #endregion
  2773. if (returnRows == 0)
  2774. {
  2775. oracleTrConn.Rollback();
  2776. oracleTrConn.Disconnect();
  2777. }
  2778. else
  2779. {
  2780. oracleTrConn.Commit();
  2781. oracleTrConn.Disconnect();
  2782. }
  2783. }
  2784. catch (Exception ex)
  2785. {
  2786. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2787. {
  2788. oracleTrConn.Rollback();
  2789. oracleTrConn.Disconnect();
  2790. }
  2791. throw ex;
  2792. }
  2793. finally
  2794. {
  2795. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  2796. {
  2797. oracleTrConn.Disconnect();
  2798. }
  2799. }
  2800. return returnRows;
  2801. }
  2802. /// <summary>
  2803. /// 获取窑炉管理的全部数据
  2804. /// </summary>
  2805. /// <param name="sUserInfo">用户基本信息</param>
  2806. /// <returns>DataSet</returns>
  2807. /// <remarks>
  2808. /// 2014.10.31 任海 新建
  2809. /// </remarks>
  2810. public static DataSet GetAllKilntInfo(SUserInfo sUserInfo)
  2811. {
  2812. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2813. try
  2814. {
  2815. //获取窑炉管理数据
  2816. string sqlString = "Select KilnID,KilnCode,KilnName,KilnType,Remarks,AccountID,ValueFlag,CreateTime,CreateUserID,UpdateTime,UpdateUserID,OPTimeStamp "
  2817. + "from TP_MST_Kiln where AccountID = :AccountID and valueflag=1";
  2818. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2819. {
  2820. new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",sUserInfo.AccountID)
  2821. };
  2822. oracleConn.Open();
  2823. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2824. oracleConn.Close();
  2825. return result;
  2826. }
  2827. catch (Exception ex)
  2828. {
  2829. throw ex;
  2830. }
  2831. finally
  2832. {
  2833. if (oracleConn.ConnState == ConnectionState.Open)
  2834. {
  2835. oracleConn.Close();
  2836. }
  2837. }
  2838. }
  2839. /// <summary>
  2840. /// 获取次品产品条码允许编辑
  2841. /// </summary>
  2842. /// <param name="barcode">产品条码</param>
  2843. /// <returns>Datase</returns>
  2844. public static DataSet GetSubstandardInfo(string barcode)
  2845. {
  2846. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2847. try
  2848. {
  2849. //获取窑炉管理数据
  2850. string sqlString = "Select barcode from TP_PM_InProductionTrash where barcode=:barcode";
  2851. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2852. {
  2853. new Oracle.ManagedDataAccess.Client.OracleParameter(":barcode",barcode)
  2854. };
  2855. oracleConn.Open();
  2856. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2857. oracleConn.Close();
  2858. return result;
  2859. }
  2860. catch (Exception ex)
  2861. {
  2862. if (oracleConn.ConnState == ConnectionState.Open)
  2863. {
  2864. oracleConn.Close();
  2865. }
  2866. throw ex;
  2867. }
  2868. finally
  2869. {
  2870. if (oracleConn.ConnState == ConnectionState.Open)
  2871. {
  2872. oracleConn.Close();
  2873. }
  2874. }
  2875. }
  2876. /// <summary>
  2877. /// 获取产品条码是否重烧
  2878. /// </summary>
  2879. /// <param name="barcode">产品条码</param>
  2880. /// <returns>Datase</returns>
  2881. public static DataSet GetReFine(string barcode)
  2882. {
  2883. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2884. try
  2885. {
  2886. string sqlString = "select IsReFire from tp_PM_ProductionData where ProductionDataid=(select max(ProductionDataid) from tp_PM_ProductionData where barcode=:barcode)";
  2887. //获取窑炉管理数据
  2888. //string sqlString = "Select IsReFire from TP_PM_InProduction where barcode=:barcode";
  2889. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  2890. {
  2891. new Oracle.ManagedDataAccess.Client.OracleParameter(":barcode",barcode)
  2892. };
  2893. oracleConn.Open();
  2894. DataSet result = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  2895. oracleConn.Close();
  2896. return result;
  2897. }
  2898. catch (Exception ex)
  2899. {
  2900. if (oracleConn.ConnState == ConnectionState.Open)
  2901. {
  2902. oracleConn.Close();
  2903. }
  2904. throw ex;
  2905. }
  2906. finally
  2907. {
  2908. if (oracleConn.ConnState == ConnectionState.Open)
  2909. {
  2910. oracleConn.Close();
  2911. }
  2912. }
  2913. }
  2914. /// <summary>
  2915. /// 获取登陆帐户有无报损权限
  2916. /// </summary>
  2917. /// <param name="usercode">工号编码</param>
  2918. /// <returns></returns>
  2919. public static int GetFinishedProductEditFuntion(SUserInfo userInfo)
  2920. {
  2921. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2922. try
  2923. {
  2924. con.Open();
  2925. string strSql = "";
  2926. strSql = @"SELECT F.Functionlevel,
  2927. F.FunctionCode,
  2928. F.FunctionName,
  2929. F.FullName,
  2930. F.FunctionFlag,
  2931. F.FunctionButtonFlag,
  2932. F.FormName,
  2933. F.ButtonName
  2934. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2935. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2936. WHERE F.ValueFlag = 1
  2937. AND F.FunctionCode NOT LIKE '0101%'
  2938. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060701') = 1 /*F.FunctionCode='060701'*/";
  2939. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2940. DataSet ds = con.GetSqlResultToDs(strSql);
  2941. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2942. {
  2943. return 1;
  2944. }
  2945. return 0;
  2946. }
  2947. catch (Exception ex)
  2948. {
  2949. throw ex;
  2950. }
  2951. finally
  2952. {
  2953. if (con.ConnState == ConnectionState.Open)
  2954. {
  2955. con.Close();
  2956. }
  2957. }
  2958. }
  2959. /// <summary>
  2960. /// 获取登陆帐户有无报损审批权限
  2961. /// </summary>
  2962. /// <param name="usercode">工号编码</param>
  2963. /// <returns></returns>
  2964. public static int GetScrapProductFuntion(SUserInfo userInfo)
  2965. {
  2966. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2967. try
  2968. {
  2969. con.Open();
  2970. string strSql = "";
  2971. strSql = @"SELECT F.Functionlevel,
  2972. F.FunctionCode,
  2973. F.FunctionName,
  2974. F.FullName,
  2975. F.FunctionFlag,
  2976. F.FunctionButtonFlag,
  2977. F.FormName,
  2978. F.ButtonName
  2979. FROM TP_MST_UserRight R LEFT OUTER JOIN
  2980. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  2981. WHERE F.ValueFlag = 1
  2982. AND F.FunctionCode NOT LIKE '0101%'
  2983. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '06040103') = 1 /*F.FunctionCode='06040103'*/";
  2984. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  2985. DataSet ds = con.GetSqlResultToDs(strSql);
  2986. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2987. {
  2988. return 1;
  2989. }
  2990. return 0;
  2991. }
  2992. catch (Exception ex)
  2993. {
  2994. throw ex;
  2995. }
  2996. finally
  2997. {
  2998. if (con.ConnState == ConnectionState.Open)
  2999. {
  3000. con.Close();
  3001. }
  3002. }
  3003. }
  3004. /// <summary>
  3005. /// 获取登陆帐户有变更条码权限
  3006. /// </summary>
  3007. /// <returns></returns>
  3008. public static int GetBarCodeRecordFuntion(SUserInfo userInfo)
  3009. {
  3010. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3011. try
  3012. {
  3013. con.Open();
  3014. string strSql = "";
  3015. strSql = @"SELECT F.Functionlevel,
  3016. F.FunctionCode,
  3017. F.FunctionName,
  3018. F.FullName,
  3019. F.FunctionFlag,
  3020. F.FunctionButtonFlag,
  3021. F.FormName,
  3022. F.ButtonName
  3023. FROM TP_MST_UserRight R LEFT OUTER JOIN
  3024. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  3025. WHERE F.ValueFlag = 1
  3026. AND F.FunctionCode NOT LIKE '0101%'
  3027. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060202') = 1 /*F.FunctionCode='060202'*/";
  3028. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  3029. DataSet ds = con.GetSqlResultToDs(strSql);
  3030. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3031. {
  3032. return 1;
  3033. }
  3034. return 0;
  3035. }
  3036. catch (Exception ex)
  3037. {
  3038. throw ex;
  3039. }
  3040. finally
  3041. {
  3042. if (con.ConnState == ConnectionState.Open)
  3043. {
  3044. con.Close();
  3045. }
  3046. }
  3047. }
  3048. /// <summary>
  3049. /// 成检-校验生产工号
  3050. /// </summary>
  3051. /// <returns></returns>
  3052. public static DataSet GetUserCode(string usercode, SUserInfo userInfo)
  3053. {
  3054. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3055. try
  3056. {
  3057. con.Open();
  3058. DataSet dsReturn = new DataSet();
  3059. string strSql = "";
  3060. strSql = @"select userid,username,usercode from tp_mst_user where tp_mst_user.isworker=1 and valueflag=1 and accountid=:accountid and usercode=:usercode";
  3061. Oracle.ManagedDataAccess.Client.OracleParameter[] oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  3062. {
  3063. new Oracle.ManagedDataAccess.Client.OracleParameter(":accountid",userInfo.AccountID),
  3064. new Oracle.ManagedDataAccess.Client.OracleParameter(":usercode",usercode)
  3065. };
  3066. DataSet ds = con.GetSqlResultToDs(strSql, oracleParameter);
  3067. ds.Tables[0].TableName = "TUser";
  3068. //strSql = "Select DictionaryID,DictionaryValue"
  3069. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  3070. //oracleParameter = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  3071. // {
  3072. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",userInfo.AccountID),
  3073. // };
  3074. //DataSet ds2 = con.GetSqlResultToDs(strSql, oracleParameter);
  3075. //ds2.Tables[0].TableName = "TDataDictionary";
  3076. if (!dsReturn.Tables.Contains("TUser"))
  3077. {
  3078. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3079. }
  3080. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  3081. //{
  3082. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  3083. //}
  3084. return dsReturn;
  3085. }
  3086. catch (Exception ex)
  3087. {
  3088. throw ex;
  3089. }
  3090. finally
  3091. {
  3092. if (con.ConnState == ConnectionState.Open)
  3093. {
  3094. con.Close();
  3095. }
  3096. }
  3097. }
  3098. /// <summary>
  3099. /// 保存班次配置信息
  3100. /// </summary>
  3101. /// <param name="setEntity">班次配置实体</param>
  3102. /// <param name="dtClassesSetting">班次配置明细table</param>
  3103. /// <param name="sUserInfo">用户基本信息</param>
  3104. /// <returns>>0 保存成功 else 失败</returns>
  3105. /// <remarks>
  3106. /// 作者 日期 内容
  3107. /// 冯雪 2014-9-24 新建
  3108. /// </remarks>
  3109. public static int SaveClassesSetting(ClassesSettingEntity setEntity, ClassesDetailSettingEntity[] setDetailEntity, SUserInfo sUserInfo)
  3110. {
  3111. int returnRows = 0;
  3112. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3113. try
  3114. {
  3115. oracleTrConn.Connect();
  3116. // 查询新插入的生产数据ID
  3117. string sqlText = "SELECT SEQ_PC_ClassesSetting_ID.NextVAL FROM dual";
  3118. int classesSettingID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
  3119. // 插入班次配置表
  3120. string sqlString1 = " INSERT INTO TP_PC_ClassesSetting "
  3121. + " (ClassesSettingID,AccountDate,UserID,UserCode, "
  3122. + " Remarks,AccountID,CreateTime,CreateUserID,UpdateUserID) "
  3123. + " VALUES (:ClassesSettingID,:AccountDate,:userID,:userCode, "
  3124. + " :remarks,:accountID,sysdate,:createUserID,:updateUserID)";
  3125. OracleParameter[] parmeters1 = new OracleParameter[]
  3126. {
  3127. new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  3128. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3129. new OracleParameter(":userID",OracleDbType.Int32,setEntity.UserID,ParameterDirection.Input),
  3130. new OracleParameter(":userCode",OracleDbType.Varchar2,setEntity.UserCode,ParameterDirection.Input),
  3131. new OracleParameter(":AccountDate",OracleDbType.Date,Convert.ToDateTime(setEntity.AccountDatePDA),ParameterDirection.Input),
  3132. new OracleParameter(":remarks",OracleDbType.Varchar2,setEntity.Remarks,ParameterDirection.Input),
  3133. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3134. new OracleParameter(":createUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3135. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3136. };
  3137. returnRows = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
  3138. #region 保存班次配置明细信息
  3139. foreach (ClassesDetailSettingEntity entity in setDetailEntity)
  3140. {
  3141. if (entity.UJobsId.ToString() == "" && entity.StaffCode.ToString() == "")
  3142. {
  3143. continue;
  3144. }
  3145. string sqlInsertString = "INSERT INTO TP_PC_ClassesDetail "
  3146. + " (ClassesSettingID,AccountDate,userid,usercode,ujobsid,staffid,sjobsid,staffstatus,"
  3147. + " remarks,accountid,createtime,createuserid,UpdateUserID,UJobsNum) "
  3148. + "VALUES (:settingID,:AccountDate,:userid,:usercode,:ujobsid,:staffid,:sjobsid,:staffstatus,"
  3149. + " :remarks,:accountid,sysdate,:createuserid,:updateUserID,:uJobsNum)";
  3150. int UJobsNum = 0;//默认一个
  3151. foreach (ClassesDetailSettingEntity entitycount in setDetailEntity)
  3152. {
  3153. if (entitycount.UJobsId.ToString() == entity.UJobsId.ToString())
  3154. {
  3155. UJobsNum++;
  3156. }
  3157. }
  3158. OracleParameter[] oracleParameter = new OracleParameter[]
  3159. {
  3160. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  3161. new OracleParameter(":userid",OracleDbType.Int32,entity.Userid.ToString(),ParameterDirection.Input),
  3162. new OracleParameter(":usercode",OracleDbType.Varchar2,entity.Usercode.ToString(),ParameterDirection.Input),
  3163. new OracleParameter(":ujobsid",OracleDbType.Int32,entity.UJobsId.ToString(),ParameterDirection.Input),
  3164. new OracleParameter(":staffid",OracleDbType.Int32,entity.Staffid.ToString(),ParameterDirection.Input),
  3165. new OracleParameter(":sjobsid",OracleDbType.Int32,entity.Jobs.ToString(),ParameterDirection.Input),
  3166. new OracleParameter(":staffstatus",OracleDbType.Int32,entity.Staffstatus.ToString(),ParameterDirection.Input),
  3167. new OracleParameter(":remarks",OracleDbType.Varchar2,entity.Remarks,ParameterDirection.Input),
  3168. new OracleParameter(":AccountDate",OracleDbType.Date,Convert.ToDateTime(setEntity.AccountDatePDA),ParameterDirection.Input),
  3169. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3170. new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3171. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  3172. new OracleParameter(":uJobsNum",OracleDbType.Decimal,UJobsNum,ParameterDirection.Input)
  3173. };
  3174. returnRows = oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
  3175. }
  3176. #endregion
  3177. oracleTrConn.Commit();
  3178. oracleTrConn.Disconnect();
  3179. return returnRows;
  3180. }
  3181. catch (Exception ex)
  3182. {
  3183. oracleTrConn.Rollback();
  3184. oracleTrConn.Disconnect();
  3185. throw ex;
  3186. }
  3187. finally
  3188. {
  3189. // 释放资源
  3190. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  3191. {
  3192. oracleTrConn.Disconnect();
  3193. }
  3194. }
  3195. }
  3196. /// <summary>
  3197. /// 获取登陆帐户有班次配置权限
  3198. /// </summary>
  3199. /// <returns></returns>
  3200. public static int GetClassesSettingFuntion(SUserInfo userInfo)
  3201. {
  3202. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3203. try
  3204. {
  3205. con.Open();
  3206. string strSql = "";
  3207. strSql = @"SELECT F.Functionlevel,
  3208. F.FunctionCode,
  3209. F.FunctionName,
  3210. F.FullName,
  3211. F.FunctionFlag,
  3212. F.FunctionButtonFlag,
  3213. F.FormName,
  3214. F.ButtonName
  3215. FROM TP_MST_UserRight R LEFT OUTER JOIN
  3216. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  3217. WHERE F.ValueFlag = 1
  3218. AND F.FunctionCode NOT LIKE '0101%'
  3219. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '0404') = 1 /*F.FunctionCode='0404'*/";
  3220. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  3221. DataSet ds = con.GetSqlResultToDs(strSql);
  3222. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3223. {
  3224. return 1;
  3225. }
  3226. return 0;
  3227. }
  3228. catch (Exception ex)
  3229. {
  3230. throw ex;
  3231. }
  3232. finally
  3233. {
  3234. if (con.ConnState == ConnectionState.Open)
  3235. {
  3236. con.Close();
  3237. }
  3238. }
  3239. }
  3240. #region PDA报表
  3241. /// <summary>
  3242. /// 取得RPT040104画面(产成品质量分析表)的查询数据
  3243. /// </summary>
  3244. /// <param name="user">登录用户信息</param>
  3245. /// <param name="se">查询条件</param>
  3246. /// <returns>查询结果</returns>
  3247. public static ServiceResultEntity GetRPT040104SData(SUserInfo user, RPT040104_SE se)
  3248. {
  3249. IDBConnection conn = null;
  3250. try
  3251. {
  3252. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3253. List<OracleParameter> parameters = new List<OracleParameter>();
  3254. string sql = PDAModuleLogic.GetRPT040104SSQL(user, se, ref parameters);
  3255. DataTable data = conn.GetSqlResultToDt(sql, parameters.ToArray());
  3256. ServiceResultEntity sre = new ServiceResultEntity();
  3257. if (data == null || data.Rows.Count == 0)
  3258. {
  3259. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3260. return sre;
  3261. }
  3262. sre.Data = new DataSet();
  3263. sre.Data.Tables.Add(data.Copy());
  3264. return sre;
  3265. }
  3266. catch (Exception ex)
  3267. {
  3268. throw ex;
  3269. }
  3270. finally
  3271. {
  3272. if (conn != null &&
  3273. conn.ConnState == ConnectionState.Open)
  3274. {
  3275. conn.Close();
  3276. }
  3277. }
  3278. }
  3279. /// <summary>
  3280. /// 获取RPT040104画面(产成品质量分析表)的查询sql
  3281. /// </summary>
  3282. /// <returns>sql</returns>
  3283. private static string GetRPT040104SSQL(SUserInfo user, RPT040104_SE se, ref List<OracleParameter> parameters)
  3284. {
  3285. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3286. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, se.RptSProcedureID, ParameterDirection.Input));
  3287. // 2015-06-16 modify by chenxy
  3288. string sqlString = "\n" +
  3289. "select qdgroup.gid,\n" +
  3290. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3291. " decode(qdgroup.gid, 3, '总计', 1, '合计', qdgroup.kilncode) kilncode,\n" +
  3292. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3293. " decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') subgoodstypecode,\n" +
  3294. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3295. //" decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3296. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3297. //" qdgroup.GoodCount,\n" +
  3298. // 质量是合格率(正品+副品)
  3299. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3300. " to_char(((qdgroup.GoodCount + qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3301. //" qdgroup.SubstandardCount,\n" +
  3302. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3303. //" '990.00') || '%' SubstandardPercent,\n" +
  3304. //" qdgroup.BadCount\n" +
  3305. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3306. //" qdgroup.ReFireCount,\n" +
  3307. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3308. //" '990.00') || '%' ReFirePercent\n" +
  3309. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3310. " mstkiln.kilncode,\n" +
  3311. " mstgoodstype2.goodstypename) gid,\n" +
  3312. //" mstgoodstype.goodstypename,\n" +
  3313. //" mstgoods.goodscode) gid,\n" +
  3314. //" pcpl.productionlinename,\n" +
  3315. " --qd.kilnid,\n" +
  3316. " mstkiln.kilncode,\n" +
  3317. " mstgoodstype2.goodstypename goodstypename2,\n" +
  3318. //" mstgoodstype.goodstypename,\n" +
  3319. //" mstgoods.goodscode,\n" +
  3320. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3321. " sum(qd.GoodCount) GoodCount,\n" +
  3322. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3323. " sum(qd.BadCount) BadCount\n" +
  3324. //" sum(qd.ReFireCount) ReFireCount\n" +
  3325. " from (select --pdbc.barcode,\n" +
  3326. //" pdbc.productionlineid,\n" +
  3327. " pdbc.goodsid,\n" +
  3328. " pdbc.kilnid,\n" +
  3329. " --pdbc.kilncarid,\n" +
  3330. " --pdbc.kilncarbatchno,\n" +
  3331. " 1 OutKilnCount,\n" +
  3332. " case\n" +
  3333. " when glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3334. " 0\n" +
  3335. " else\n" +
  3336. " 1\n" +
  3337. " end GoodCount,\n" +
  3338. //" case\n" +
  3339. //" when glt.goodsleveltypeid = 7 then\n" +
  3340. //" 1\n" +
  3341. //" else\n" +
  3342. //" 0\n" +
  3343. //" end SubstandardCount,\n" +
  3344. //" case\n" +
  3345. //" when glt.goodsleveltypeid = 6 then\n" +
  3346. //" 1\n" +
  3347. //" else\n" +
  3348. //" 0\n" +
  3349. //" end ReFireCount,\n" +
  3350. " case\n" +
  3351. " when glt.goodsleveltypeid = 5 then\n" +
  3352. " 1\n" +
  3353. " else\n" +
  3354. " 0\n" +
  3355. " end BadCount\n" +
  3356. " from (select distinct pd.barcode,\n" +
  3357. " pd.productionlineid,\n" +
  3358. " pd.goodsid,\n" +
  3359. " pd.kilnid,\n" +
  3360. " --pd.kilncarid,\n" +
  3361. " pd.kilncarbatchno\n" +
  3362. " from tp_pm_productiondata pd\n" +
  3363. " where pd.valueflag = '1'\n" +
  3364. " and pd.procedureid = :in_rptSprocedureId \n" +
  3365. " and pd.AccountID = :AccountID\n";
  3366. StringBuilder selSql = new StringBuilder(sqlString);
  3367. if (se.CreateTimeStart.HasValue)
  3368. {
  3369. selSql.Append(" AND pd.createtime >= :CreateTimeStart\n");
  3370. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, se.CreateTimeStart.Value, ParameterDirection.Input));
  3371. }
  3372. if (se.CreateTimeEnd.HasValue)
  3373. {
  3374. selSql.Append(" AND pd.createtime < :CreateTimeEnd\n");
  3375. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, se.CreateTimeEnd.Value, ParameterDirection.Input));
  3376. }
  3377. //if (!string.IsNullOrEmpty(se.GoodsIDS))
  3378. //{
  3379. // selSql.Append(" AND instr(','||:GoodsIDS||',', ','||pd.GoodsId||',') > 0\n");
  3380. // parameters.Add(new OracleParameter(":GoodsIDS", OracleDbType.NVarchar2, se.GoodsIDS, ParameterDirection.Input));
  3381. //}
  3382. //if (se.ProductionLineID.HasValue)
  3383. //{
  3384. // selSql.Append(" AND pd.ProductionLineId = :ProductionLineID\n");
  3385. // parameters.Add(new OracleParameter(":ProductionLineID", OracleDbType.Int32, se.ProductionLineID, ParameterDirection.Input));
  3386. //}
  3387. //if (!string.IsNullOrEmpty(se.GroutingUserIDS))
  3388. //{
  3389. // selSql.Append(" AND instr(','||:GroutingUserIDS||',', ','||pd.groutinguserid||',') > 0\n");
  3390. // parameters.Add(new OracleParameter(":GroutingUserIDS", OracleDbType.NVarchar2, se.GroutingUserIDS, ParameterDirection.Input));
  3391. //}
  3392. //if (!string.IsNullOrEmpty(se.GroutingLineIDS))
  3393. //{
  3394. // selSql.Append(" AND instr(','||:GroutingLineIDS||',', ','||pd.groutinglineid||',') > 0\n");
  3395. // parameters.Add(new OracleParameter(":GroutingLineIDS", OracleDbType.NVarchar2, se.GroutingLineIDS, ParameterDirection.Input));
  3396. //}
  3397. //selSql.Append(" AND exists (Select 1 from TP_MST_UserPurview up where up.PurviewType= 7 and up.UserID = :UserID and (up.PurviewID=-1 or up.PurviewID= pd.ProductionLineId))");
  3398. //parameters.Add(new OracleParameter(":UserID", OracleDbType.NVarchar2, user.UserID, ParameterDirection.Input));
  3399. //if (se.KilnID.HasValue)
  3400. //{
  3401. // selSql.Append(" AND pd.KilnID = :KilnID\n");
  3402. // parameters.Add(new OracleParameter(":KilnID", OracleDbType.Int32, se.KilnID, ParameterDirection.Input));
  3403. //}
  3404. sqlString =
  3405. " ) pdbc\n" +
  3406. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid\n" +
  3407. " from (select pd.barcode,\n" +
  3408. " pd.kilncarbatchno,\n" +
  3409. " pd.goodsleveltypeid,\n" +
  3410. " pd.productiondataid,\n" +
  3411. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3412. " from tp_pm_productiondata pd\n" +
  3413. " where pd.valueflag = '1'\n" +
  3414. " and pd.AccountID = :AccountID\n" +
  3415. " and length(pd.kilncarbatchno) > 0\n" +
  3416. " AND pd.createtime >= :CreateTimeStart\n" +
  3417. " and pd.modeltype = -1) kcbc\n" +
  3418. " where kcbc.dataid = 1) glt\n" +
  3419. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3420. " and pdbc.barcode = glt.barcode) qd\n" +
  3421. //" inner join tp_pc_productionline pcpl\n" +
  3422. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3423. " inner join tp_mst_kiln mstkiln\n" +
  3424. " on mstkiln.kilnid = qd.kilnid\n" +
  3425. " inner join tp_mst_goods mstgoods\n" +
  3426. " on mstgoods.goodsid = qd.goodsid\n" +
  3427. " inner join tp_mst_goodstype mstgoodstype\n" +
  3428. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3429. " and mstgoodstype.accountid = mstgoods.accountid\n" +
  3430. " inner join tp_mst_goodstype mstgoodstype2\n" +
  3431. " on mstgoodstype2.goodstypecode =\n" +
  3432. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3433. " and mstgoodstype.accountid = mstgoodstype2.accountid\n" +
  3434. //" where 1=1\n";
  3435. //selSql.Append(sqlString);
  3436. //if (!string.IsNullOrEmpty(se.GoodsTypeIDS))
  3437. //{
  3438. // selSql.Append(" AND instr(','||:GoodsTypeIDS||',', ','||mstgoods.GOODSTYPEId||',') > 0\n");
  3439. // parameters.Add(new OracleParameter(":GoodsTypeIDS", OracleDbType.NVarchar2, se.GoodsTypeIDS, ParameterDirection.Input));
  3440. //}
  3441. //sqlString =
  3442. " group by grouping sets((mstkiln.kilncode,\n" +
  3443. " mstgoodstype2.goodstypename),\n" +
  3444. " mstkiln.kilncode,())\n" +
  3445. " order by --pcpl.productionlinename,\n" +
  3446. " mstkiln.kilncode,\n" +
  3447. " mstgoodstype2.goodstypename\n" +
  3448. " ) qdgroup\n";
  3449. selSql.Append(sqlString);
  3450. return selSql.ToString();
  3451. }
  3452. /// <summary>
  3453. /// 取得FP00002画面(工号产量质量分析表)的查询数据
  3454. /// </summary>
  3455. /// <param name="user">登录用户信息</param>
  3456. /// <param name="se">查询条件</param>
  3457. /// <returns>查询结果</returns>
  3458. public static ServiceResultEntity GetFP00002Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime date)
  3459. {
  3460. //if(string.IsNullOrWhiteSpace(usercode))
  3461. //{
  3462. // ServiceResultEntity sre = new ServiceResultEntity();
  3463. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3464. // return sre;
  3465. //}
  3466. IDBConnection conn = null;
  3467. try
  3468. {
  3469. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3470. List<OracleParameter> parameters = new List<OracleParameter>();
  3471. date = date.Date;
  3472. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3473. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, date, ParameterDirection.Input));
  3474. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, date.AddDays(1), ParameterDirection.Input));
  3475. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  3476. // 产量
  3477. string sqlString = "\n" +
  3478. "select qdgroup.gid,\n" +
  3479. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3480. " decode(qdgroup.gid, 3, '总计', 1, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3481. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3482. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3483. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3484. " decode(qdgroup.gid, 0, qdgroup.goodscode, '') goodscode,\n" +
  3485. " to_char(qdgroup.production) production\n" +
  3486. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3487. " pcp.procedurename,\n" +
  3488. //" mstgoodstype2.goodstypename,\n" +
  3489. //" --qd.usercode,\n" +
  3490. " mstgoods.goodscode) gid,\n" +
  3491. //" pcpl.productionlinename,\n" +
  3492. " pcp.procedurename,\n" +
  3493. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3494. " --qd.usercode,\n" +
  3495. //" mstgoodstype.goodstypename,\n" +
  3496. " mstgoods.goodscode,\n" +
  3497. " sum(qd.production) production\n" +
  3498. " from (select --pd.barcode,\n" +
  3499. //" pd.productionlineid,\n" +
  3500. " pd.procedureid,\n" +
  3501. " pd.goodsid,\n" +
  3502. " --pd.userid,\n" +
  3503. " --pd.usercode,\n" +
  3504. " 1 production\n" +
  3505. " from tp_pm_productiondata pd\n" +
  3506. " where pd.valueflag = '1'\n" +
  3507. " and ((pd.modeltype <> 5) or\n" +
  3508. " (pd.modeltype = 5 and pd.SpecialRepairFlag = '0'))\n" +
  3509. " and pd.Usercode = :Usercode\n" +
  3510. " and pd.AccountID = :AccountID\n" +
  3511. " AND pd.createtime >= :CreateTimeStart\n" +
  3512. " AND pd.createtime < :CreateTimeEnd) qd\n" +
  3513. //" left join tp_pc_productionline pcpl\n" +
  3514. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3515. " left join tp_pc_procedure pcp\n" +
  3516. " on pcp.procedureid = qd.procedureid\n" +
  3517. " left join tp_mst_goods mstgoods\n" +
  3518. " on mstgoods.goodsid = qd.goodsid\n" +
  3519. //" left join tp_mst_goodstype mstgoodstype\n" +
  3520. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3521. //" left join tp_mst_goodstype mstgoodstype2\n" +
  3522. //" on mstgoodstype2.goodstypecode =\n" +
  3523. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3524. " group by grouping sets((--pcpl.productionlinename,\n" +
  3525. " pcp.procedurename,\n" +
  3526. //" mstgoodstype2.goodstypename,\n" +
  3527. //" --qd.usercode,\n" +
  3528. //" mstgoodstype.goodstypename,\n" +
  3529. " mstgoods.goodscode),\n" +
  3530. " pcp.procedurename,())\n" +
  3531. " order by --pcpl.productionlinename,\n" +
  3532. " pcp.procedurename,\n" +
  3533. //" mstgoodstype2.goodstypename,\n" +
  3534. //" --qd.usercode,\n" +
  3535. //" mstgoodstype.goodstypename,\n" +
  3536. " mstgoods.goodscode) qdgroup";
  3537. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  3538. ServiceResultEntity sre = new ServiceResultEntity();
  3539. if (data == null || data.Rows.Count == 0)
  3540. {
  3541. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3542. return sre;
  3543. }
  3544. sre.Data = new DataSet();
  3545. sre.Data.Tables.Add(data);
  3546. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  3547. string sqlString1 = "\n" +
  3548. "select qdgroup.gid,\n" +
  3549. //" decode(qdgroup.gid, 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3550. " decode(qdgroup.gid, 7, '总计', 3, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3551. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.kilncode, '') kilncode,\n" +
  3552. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3553. " decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') goodstypename2,\n" +
  3554. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3555. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3556. //" decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3557. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3558. //" qdgroup.GoodCount,\n" +
  3559. // 合格率(正品+副品)
  3560. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3561. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3562. //" qdgroup.SubstandardCount,\n" +
  3563. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3564. //" '990.00') || '%' SubstandardPercent,\n" +
  3565. //" qdgroup.BadCount,\n" +
  3566. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3567. //" qdgroup.ReFireCount,\n" +
  3568. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3569. //" '990.00') || '%' ReFirePercent\n" +
  3570. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3571. " pcp.procedurename,\n" +
  3572. " mstkiln.kilncode,\n" +
  3573. " mstgoodstype2.goodstypename) gid,\n" +
  3574. //" --qd.usercode,\n" +
  3575. //" mstgoods.goodscode) gid,\n" +
  3576. //" pcpl.productionlinename,\n" +
  3577. " pcp.procedurename,\n" +
  3578. " mstkiln.kilncode,\n" +
  3579. " mstgoodstype2.goodstypename goodstypename2,\n" +
  3580. //" --qd.usercode,\n" +
  3581. //" mstgoodstype.goodstypename,\n" +
  3582. //" mstgoods.goodscode,\n" +
  3583. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3584. " sum(qd.GoodCount) GoodCount,\n" +
  3585. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3586. " sum(qd.BadCount) BadCount\n" +
  3587. //" sum(qd.ReFireCount) ReFireCount\n" +
  3588. " from (select --pdbc.barcode,\n" +
  3589. //" pdbc.productionlineid,\n" +
  3590. " pdata.procedureid,\n" +
  3591. //" --pdata.usercode,\n" +
  3592. " pdbc.goodsid,\n" +
  3593. " pdbc.kilnid,\n" +
  3594. " 1 OutKilnCount,\n" +
  3595. " case\n" +
  3596. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3597. " 0\n" +
  3598. " else\n" +
  3599. " 1\n" +
  3600. " end GoodCount,\n" +
  3601. //" case\n" +
  3602. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  3603. //" 1\n" +
  3604. //" else\n" +
  3605. //" 0\n" +
  3606. //" end SubstandardCount,\n" +
  3607. //" case\n" +
  3608. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  3609. //" 1\n" +
  3610. //" else\n" +
  3611. //" 0\n" +
  3612. //" end ReFireCount,\n" +
  3613. " case\n" +
  3614. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  3615. " 1\n" +
  3616. " else\n" +
  3617. " 0\n" +
  3618. " end BadCount\n" +
  3619. " from (select distinct pd.barcode,\n" +
  3620. //" pd.productionlineid,\n" +
  3621. " pd.goodsid,\n" +
  3622. " pd.kilnid,\n" +
  3623. " pd.kilncarbatchno\n" +
  3624. " from tp_pm_productiondata pd\n" +
  3625. " where pd.valueflag = '1'\n" +
  3626. " and pd.procedureid = :in_rptSprocedureId \n" +
  3627. " and pd.AccountID = :AccountID\n" +
  3628. " and pd.createtime >= :CreateTimeStart\n" +
  3629. " and pd.createtime < :CreateTimeEnd\n" +
  3630. " ) pdbc\n" +
  3631. " inner join (select pd.barcode,\n" +
  3632. //" --pd.userid,\n" +
  3633. //" --pd.usercode,\n" +
  3634. " pd.procedureid\n" +
  3635. " from tp_pm_productiondata pd\n" +
  3636. " where pd.valueflag = '1'\n" +
  3637. " and pd.AccountID = :AccountID\n" +
  3638. " and pd.usercode = :Usercode\n" +
  3639. // 公坯、干补不算交坯工序的质量。
  3640. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  3641. // 干补不算交坯工序的质量。
  3642. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  3643. " ) pdata\n" +
  3644. " on pdata.barcode = pdbc.barcode\n" +
  3645. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  3646. " from (select pd.barcode,\n" +
  3647. " pd.kilncarbatchno,\n" +
  3648. " pd.goodsleveltypeid,\n" +
  3649. " pd.productiondataid,\n" +
  3650. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3651. " from tp_pm_productiondata pd\n" +
  3652. " where pd.valueflag = '1'\n" +
  3653. " and pd.AccountID = :AccountID\n" +
  3654. " and length(pd.kilncarbatchno) > 0\n" +
  3655. " AND pd.createtime >= :CreateTimeStart\n" +
  3656. " and pd.modeltype = -1) kcbc\n" +
  3657. " where kcbc.dataid = 1) glt\n" +
  3658. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3659. " and pdbc.barcode = glt.barcode\n" +
  3660. " left join (select distinct productiondataid, defectprocedureid" +
  3661. " from tp_pm_defect def " +
  3662. " where def.valueflag='1'" +
  3663. " and def.AccountID = :AccountID\n" +
  3664. " AND def.createtime >= :CreateTimeStart) defect\n" +
  3665. " on defect.productiondataid = glt.productiondataid\n" +
  3666. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  3667. //" inner join tp_pc_productionline pcpl\n" +
  3668. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3669. " inner join tp_pc_procedure pcp\n" +
  3670. " on pcp.procedureid = qd.procedureid\n" +
  3671. " inner join tp_mst_kiln mstkiln\n" +
  3672. " on mstkiln.kilnid = qd.kilnid\n" +
  3673. " inner join tp_mst_goods mstgoods\n" +
  3674. " on mstgoods.goodsid = qd.goodsid\n" +
  3675. " inner join tp_mst_goodstype mstgoodstype\n" +
  3676. " on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3677. " inner join tp_mst_goodstype mstgoodstype2\n" +
  3678. " on mstgoodstype2.goodstypecode =\n" +
  3679. " substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3680. " and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  3681. " group by grouping sets((--pcpl.productionlinename,\n" +
  3682. " pcp.procedurename,\n" +
  3683. " mstkiln.kilncode,\n" +
  3684. " mstgoodstype2.goodstypename),\n" +
  3685. //" --qd.usercode,\n" +
  3686. //" mstgoodstype.goodstypename,\n" +
  3687. //" mstgoods.goodscode),\n" +
  3688. " (--pcpl.productionlinename,\n" +
  3689. " pcp.procedurename,\n" +
  3690. " mstkiln.kilncode),\n" +
  3691. //" mstgoodstype2.goodstypename),\n" +
  3692. " (--pcpl.productionlinename,\n" +
  3693. " pcp.procedurename),\n" +
  3694. //" mstkiln.kilncode),\n" +
  3695. " ())\n" +
  3696. " order by --pcpl.productionlinename,\n" +
  3697. " pcp.procedurename,\n" +
  3698. " mstkiln.kilncode,\n" +
  3699. " mstgoodstype2.goodstypename\n" +
  3700. //" --qd.usercode,\n" +
  3701. //" mstgoodstype.goodstypename,\n" +
  3702. //" mstgoods.goodscode\n" +
  3703. " ) qdgroup\n";
  3704. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  3705. if (data1 == null || data1.Rows.Count == 0)
  3706. {
  3707. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3708. return sre;
  3709. }
  3710. sre.Data.Tables.Add(data1);
  3711. return sre;
  3712. }
  3713. catch (Exception ex)
  3714. {
  3715. throw ex;
  3716. }
  3717. finally
  3718. {
  3719. if (conn != null &&
  3720. conn.ConnState == ConnectionState.Open)
  3721. {
  3722. conn.Close();
  3723. }
  3724. }
  3725. }
  3726. /// <summary>
  3727. /// 取得FP00002_1画面(工号产量质量分析表-中陶)的查询数据
  3728. /// </summary>
  3729. /// <param name="user">登录用户信息</param>
  3730. /// <param name="se">查询条件</param>
  3731. /// <returns>查询结果</returns>
  3732. public static ServiceResultEntity GetFP00002_1Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime date, string goodscode)
  3733. {
  3734. //if(string.IsNullOrWhiteSpace(usercode))
  3735. //{
  3736. // ServiceResultEntity sre = new ServiceResultEntity();
  3737. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3738. // return sre;
  3739. //}
  3740. IDBConnection conn = null;
  3741. try
  3742. {
  3743. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3744. List<OracleParameter> parameters = new List<OracleParameter>();
  3745. date = date.Date;
  3746. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  3747. parameters.Add(new OracleParameter(":CreateTimeStart", OracleDbType.Date, date, ParameterDirection.Input));
  3748. parameters.Add(new OracleParameter(":CreateTimeEnd", OracleDbType.Date, date.AddDays(1), ParameterDirection.Input));
  3749. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  3750. parameters.Add(new OracleParameter(":goodscode", OracleDbType.Varchar2, goodscode, ParameterDirection.Input));
  3751. #region
  3752. // 产量
  3753. string sqlString = "\n" +
  3754. "select qdgroup.gid,\n" +
  3755. //" decode(qdgroup.gid, 7, '总计', 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3756. " decode(qdgroup.gid, 3, '总计', 1, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3757. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3758. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3759. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3760. " decode(qdgroup.gid, 0, qdgroup.goodscode, '') goodscode,\n" +
  3761. " to_char(qdgroup.production) production\n" +
  3762. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3763. " pcp.procedurename,\n" +
  3764. //" mstgoodstype2.goodstypename,\n" +
  3765. //" --qd.usercode,\n" +
  3766. " mstgoods.goodscode) gid,\n" +
  3767. //" pcpl.productionlinename,\n" +
  3768. " pcp.procedurename,\n" +
  3769. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3770. " --qd.usercode,\n" +
  3771. //" mstgoodstype.goodstypename,\n" +
  3772. " mstgoods.goodscode,\n" +
  3773. " sum(qd.production) production\n" +
  3774. " from (select --pd.barcode,\n" +
  3775. //" pd.productionlineid,\n" +
  3776. " pd.procedureid,\n" +
  3777. " pd.goodsid,\n" +
  3778. " --pd.userid,\n" +
  3779. " --pd.usercode,\n" +
  3780. " 1 production\n" +
  3781. " from tp_pm_productiondata pd\n" +
  3782. " where pd.valueflag = '1'\n" +
  3783. " and ((pd.modeltype <> 5) or\n" +
  3784. " (pd.modeltype = 5 and pd.SpecialRepairFlag = '0'))\n" +
  3785. " and pd.Usercode = :Usercode\n" +
  3786. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3787. " and pd.AccountID = :AccountID\n" +
  3788. " AND pd.createtime >= :CreateTimeStart\n" +
  3789. " AND pd.createtime < :CreateTimeEnd) qd\n" +
  3790. //" left join tp_pc_productionline pcpl\n" +
  3791. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3792. " left join tp_pc_procedure pcp\n" +
  3793. " on pcp.procedureid = qd.procedureid\n" +
  3794. " left join tp_mst_goods mstgoods\n" +
  3795. " on mstgoods.goodsid = qd.goodsid\n" +
  3796. //" left join tp_mst_goodstype mstgoodstype\n" +
  3797. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3798. //" left join tp_mst_goodstype mstgoodstype2\n" +
  3799. //" on mstgoodstype2.goodstypecode =\n" +
  3800. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3801. " group by grouping sets((--pcpl.productionlinename,\n" +
  3802. " pcp.procedurename,\n" +
  3803. //" mstgoodstype2.goodstypename,\n" +
  3804. //" --qd.usercode,\n" +
  3805. //" mstgoodstype.goodstypename,\n" +
  3806. " mstgoods.goodscode),\n" +
  3807. " pcp.procedurename,())\n" +
  3808. " order by --pcpl.productionlinename,\n" +
  3809. " pcp.procedurename,\n" +
  3810. //" mstgoodstype2.goodstypename,\n" +
  3811. //" --qd.usercode,\n" +
  3812. //" mstgoodstype.goodstypename,\n" +
  3813. " mstgoods.goodscode) qdgroup";
  3814. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  3815. ServiceResultEntity sre = new ServiceResultEntity();
  3816. if (data == null)
  3817. {
  3818. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3819. return sre;
  3820. }
  3821. sre.Data = new DataSet();
  3822. sre.Data.Tables.Add(data);
  3823. #endregion
  3824. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  3825. #region
  3826. string sqlString1 = "\n" +
  3827. "select qdgroup.gid,\n" +
  3828. //" decode(qdgroup.gid, 0, qdgroup.productionlinename, '--') productionlinename,\n" +
  3829. " decode(qdgroup.gid, 7, '总计', 3, '合计', 0, qdgroup.procedurename, '') procedurename,\n" +
  3830. " decode(qdgroup.gid, 1, '小计', 0, qdgroup.kilncode, '') kilncode,\n" +
  3831. //" decode(qdgroup.gid, 1, '小计', 0, qdgroup.goodstypename2, '--') goodstypename2,\n" +
  3832. //" decode(qdgroup.gid, 0, qdgroup.goodstypename2, '') goodstypename2,\n" +
  3833. //" --decode(qdgroup.gid, 0, qdgroup.usercode, '--') usercode,\n" +
  3834. //" decode(qdgroup.gid, 0, qdgroup.goodstypename, '--') goodstypename,\n" +
  3835. " decode(qdgroup.gid, 0, qdgroup.goodscode, '--') goodscode,\n" +
  3836. " to_char(qdgroup.OutKilnCount) OutKilnCount,\n" +
  3837. //" qdgroup.GoodCount,\n" +
  3838. // 合格率(正品+副品)
  3839. //" to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3840. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent\n" +
  3841. //" qdgroup.SubstandardCount,\n" +
  3842. //" to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  3843. //" '990.00') || '%' SubstandardPercent,\n" +
  3844. //" qdgroup.BadCount,\n" +
  3845. //" to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  3846. //" qdgroup.ReFireCount,\n" +
  3847. //" to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  3848. //" '990.00') || '%' ReFirePercent\n" +
  3849. " from (select grouping_id(--pcpl.productionlinename,\n" +
  3850. " pcp.procedurename,\n" +
  3851. " mstkiln.kilncode,\n" +
  3852. //" mstgoodstype2.goodstypename) gid,\n" +
  3853. //" --qd.usercode,\n" +
  3854. " mstgoods.goodscode) gid,\n" +
  3855. //" pcpl.productionlinename,\n" +
  3856. " pcp.procedurename,\n" +
  3857. " mstkiln.kilncode,\n" +
  3858. //" mstgoodstype2.goodstypename goodstypename2,\n" +
  3859. //" --qd.usercode,\n" +
  3860. //" mstgoodstype.goodstypename,\n" +
  3861. " mstgoods.goodscode,\n" +
  3862. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  3863. " sum(qd.GoodCount) GoodCount,\n" +
  3864. //" sum(qd.SubstandardCount) SubstandardCount,\n" +
  3865. " sum(qd.BadCount) BadCount\n" +
  3866. //" sum(qd.ReFireCount) ReFireCount\n" +
  3867. " from (select --pdbc.barcode,\n" +
  3868. //" pdbc.productionlineid,\n" +
  3869. " pdata.procedureid,\n" +
  3870. //" --pdata.usercode,\n" +
  3871. " pdbc.goodsid,\n" +
  3872. " pdbc.kilnid,\n" +
  3873. " 1 OutKilnCount,\n" +
  3874. " case\n" +
  3875. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  3876. " 0\n" +
  3877. " else\n" +
  3878. " 1\n" +
  3879. " end GoodCount,\n" +
  3880. //" case\n" +
  3881. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  3882. //" 1\n" +
  3883. //" else\n" +
  3884. //" 0\n" +
  3885. //" end SubstandardCount,\n" +
  3886. //" case\n" +
  3887. //" when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  3888. //" 1\n" +
  3889. //" else\n" +
  3890. //" 0\n" +
  3891. //" end ReFireCount,\n" +
  3892. " case\n" +
  3893. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  3894. " 1\n" +
  3895. " else\n" +
  3896. " 0\n" +
  3897. " end BadCount\n" +
  3898. " from (select distinct pd.barcode,\n" +
  3899. //" pd.productionlineid,\n" +
  3900. " pd.goodsid,\n" +
  3901. " pd.kilnid,\n" +
  3902. " pd.kilncarbatchno\n" +
  3903. " from tp_pm_productiondata pd\n" +
  3904. " where pd.valueflag = '1'\n" +
  3905. " and pd.procedureid = :in_rptSprocedureId \n" +
  3906. " and pd.AccountID = :AccountID\n" +
  3907. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3908. " and pd.checktime >= :CreateTimeStart\n" +
  3909. " and pd.checktime < :CreateTimeEnd\n" +
  3910. " ) pdbc\n" +
  3911. " inner join (select pd.barcode,\n" +
  3912. //" --pd.userid,\n" +
  3913. //" --pd.usercode,\n" +
  3914. " pd.procedureid\n" +
  3915. " from tp_pm_productiondata pd\n" +
  3916. " where pd.valueflag = '1'\n" +
  3917. " and pd.AccountID = :AccountID\n" +
  3918. " and pd.usercode = :Usercode\n" +
  3919. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3920. // 公坯、干补不算交坯工序的质量。
  3921. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  3922. // 干补不算交坯工序的质量。
  3923. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  3924. " ) pdata\n" +
  3925. " on pdata.barcode = pdbc.barcode\n" +
  3926. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  3927. " from (select pd.barcode,\n" +
  3928. " pd.kilncarbatchno,\n" +
  3929. " pd.goodsleveltypeid,\n" +
  3930. " pd.productiondataid,\n" +
  3931. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  3932. " from tp_pm_productiondata pd\n" +
  3933. " where pd.valueflag = '1'\n" +
  3934. " and pd.AccountID = :AccountID\n" +
  3935. " and (:goodscode is null or instr(pd.goodscode, :goodscode) > 0)\n" +
  3936. " and length(pd.kilncarbatchno) > 0\n" +
  3937. " AND pd.createtime >= :CreateTimeStart\n" +
  3938. " and pd.modeltype = -1) kcbc\n" +
  3939. " where kcbc.dataid = 1) glt\n" +
  3940. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  3941. " and pdbc.barcode = glt.barcode\n" +
  3942. " left join (select distinct productiondataid, defectprocedureid" +
  3943. " from tp_pm_defect def " +
  3944. " where def.valueflag='1'" +
  3945. " and def.AccountID = :AccountID\n" +
  3946. " and (:goodscode is null or instr(def.goodscode, :goodscode) > 0)\n" +
  3947. " AND def.createtime >= :CreateTimeStart) defect\n" +
  3948. " on defect.productiondataid = glt.productiondataid\n" +
  3949. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  3950. //" inner join tp_pc_productionline pcpl\n" +
  3951. //" on pcpl.productionlineid = qd.productionlineid\n" +
  3952. " inner join tp_pc_procedure pcp\n" +
  3953. " on pcp.procedureid = qd.procedureid\n" +
  3954. " inner join tp_mst_kiln mstkiln\n" +
  3955. " on mstkiln.kilnid = qd.kilnid\n" +
  3956. " inner join tp_mst_goods mstgoods\n" +
  3957. " on mstgoods.goodsid = qd.goodsid\n" +
  3958. //" inner join tp_mst_goodstype mstgoodstype\n" +
  3959. //" on mstgoodstype.goodstypeid = mstgoods.goodstypeid\n" +
  3960. //" inner join tp_mst_goodstype mstgoodstype2\n" +
  3961. //" on mstgoodstype2.goodstypecode =\n" +
  3962. //" substr(mstgoodstype.goodstypecode, 0, 6)\n" +
  3963. //" and mstgoodstype.AccountID = mstgoodstype2.AccountID\n" +
  3964. " group by grouping sets((--pcpl.productionlinename,\n" +
  3965. " pcp.procedurename,\n" +
  3966. " mstkiln.kilncode,\n" +
  3967. //" mstgoodstype2.goodstypename),\n" +
  3968. //" --qd.usercode,\n" +
  3969. //" mstgoodstype.goodstypename,\n" +
  3970. " mstgoods.goodscode),\n" +
  3971. " (--pcpl.productionlinename,\n" +
  3972. " pcp.procedurename,\n" +
  3973. " mstkiln.kilncode),\n" +
  3974. //" mstgoodstype2.goodstypename),\n" +
  3975. " (--pcpl.productionlinename,\n" +
  3976. " pcp.procedurename),\n" +
  3977. //" mstkiln.kilncode),\n" +
  3978. " ())\n" +
  3979. " order by --pcpl.productionlinename,\n" +
  3980. " pcp.procedurename,\n" +
  3981. " mstkiln.kilncode,\n" +
  3982. //" mstgoodstype2.goodstypename\n" +
  3983. //" --qd.usercode,\n" +
  3984. //" mstgoodstype.goodstypename,\n" +
  3985. " mstgoods.goodscode\n" +
  3986. " ) qdgroup\n";
  3987. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  3988. if (data1 == null)
  3989. {
  3990. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  3991. return sre;
  3992. }
  3993. sre.Data.Tables.Add(data1);
  3994. return sre;
  3995. #endregion
  3996. }
  3997. catch (Exception ex)
  3998. {
  3999. throw ex;
  4000. }
  4001. finally
  4002. {
  4003. if (conn != null &&
  4004. conn.ConnState == ConnectionState.Open)
  4005. {
  4006. conn.Close();
  4007. }
  4008. }
  4009. }
  4010. /// <summary>
  4011. /// 取得RPT000001画面(半检数据统计表)的查询数据
  4012. /// </summary>
  4013. /// <param name="user">登录用户信息</param>
  4014. /// <param name="se">查询条件</param>
  4015. /// <returns>查询结果</returns>
  4016. public static ServiceResultEntity GetPDARPT000001Data(SUserInfo user, string usercode, DateTime datebegin, DateTime dateend)
  4017. {
  4018. IDBConnection conn = null;
  4019. try
  4020. {
  4021. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4022. List<OracleParameter> parameters = new List<OracleParameter>();
  4023. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4024. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4025. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4026. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4027. // 返工
  4028. string sqlString =
  4029. "SELECT p.procedurename, op.procedurename overprocedurename, sc.goodscode, COUNT(sc.semicheckid) reworkcount\n" +
  4030. " FROM TP_PM_SemiCheck sc\n" +
  4031. " INNER JOIN tp_pc_procedure p\n" +
  4032. " ON p.procedureid = sc.ReworkProcedureID\n" +
  4033. " INNER JOIN tp_pc_procedure op\n" +
  4034. " ON op.procedureid = sc.ProcedureID\n" +
  4035. " WHERE sc.accountid = :accountid\n" +
  4036. " AND sc.ValueFlag = '1'\n" +
  4037. " AND sc.BackOutFlag = '0'\n" +
  4038. " AND sc.SemiCheckType = 1\n" +
  4039. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4040. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4041. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4042. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode, sc.goodsid\n" +
  4043. " ORDER BY p.displayno, sc.goodscode";
  4044. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  4045. ServiceResultEntity sre = new ServiceResultEntity();
  4046. //if (data == null || data.Rows.Count == 0)
  4047. //{
  4048. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4049. // return sre;
  4050. //}
  4051. data.TableName = "rework";
  4052. sre.Data = new DataSet();
  4053. sre.Data.Tables.Add(data);
  4054. // 复检
  4055. string sqlString1 =
  4056. "SELECT p.procedurename, op.procedurename overprocedurename\n" +
  4057. " ,sc.goodscode\n" +
  4058. " ,SUM(decode(sc.ReSemiCheckType, 1, 1, 0)) qcount\n" +
  4059. " ,SUM(decode(sc.ReSemiCheckType, 2, 1, 0)) unqcount\n" +
  4060. " FROM TP_PM_SemiCheck sc\n" +
  4061. " INNER JOIN tp_pc_procedure p\n" +
  4062. " ON p.procedureid = sc.ReworkProcedureID\n" +
  4063. " INNER JOIN tp_pc_procedure op\n" +
  4064. " ON op.procedureid = sc.ProcedureID\n" +
  4065. " WHERE sc.accountid = :accountid\n" +
  4066. " AND sc.ValueFlag = '1'\n" +
  4067. " AND sc.BackOutFlag = '0'\n" +
  4068. " AND sc.SemiCheckType = 1\n" +
  4069. " AND sc.ReSemiCheckType <> 0\n" +
  4070. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4071. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4072. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4073. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode\n" +
  4074. " ORDER BY p.displayno, sc.goodscode";
  4075. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4076. //if (data1 == null || data1.Rows.Count == 0)
  4077. //{
  4078. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4079. // return sre;
  4080. //}
  4081. data1.TableName = "ReSemiCheck";
  4082. sre.Data.Tables.Add(data1);
  4083. // 未复检(总)
  4084. string sqlString2 =
  4085. "SELECT p.procedurename, op.procedurename overprocedurename\n" +
  4086. " ,sc.goodscode\n" +
  4087. //" ,SUM(decode(sc.ReSemiCheckType, 1, 1, 0)) qcount\n" +
  4088. //" ,SUM(decode(sc.ReSemiCheckType, 2, 1, 0)) unqcount\n" +
  4089. " ,COUNT(sc.semicheckid) renocountsum\n" +
  4090. " FROM TP_PM_SemiCheck sc\n" +
  4091. " INNER JOIN tp_pc_procedure p\n" +
  4092. " ON p.procedureid = sc.ReworkProcedureID\n" +
  4093. " INNER JOIN tp_pc_procedure op\n" +
  4094. " ON op.procedureid = sc.ProcedureID\n" +
  4095. " WHERE sc.accountid = :accountid\n" +
  4096. " AND sc.ValueFlag = '1'\n" +
  4097. " AND sc.BackOutFlag = '0'\n" +
  4098. " AND sc.SemiCheckType = 1\n" +
  4099. " AND sc.ReSemiCheckType = 0\n" +
  4100. " AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4101. //" AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4102. //" AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4103. " GROUP BY p.procedurename, op.procedurename, p.displayno, sc.goodscode\n" +
  4104. " ORDER BY p.displayno, sc.goodscode";
  4105. parameters.Clear();
  4106. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4107. //parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4108. //parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4109. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4110. DataTable data2 = conn.GetSqlResultToDt(sqlString2, parameters.ToArray());
  4111. //if (data1 == null || data1.Rows.Count == 0)
  4112. //{
  4113. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4114. // return sre;
  4115. //}
  4116. data2.TableName = "NoReSemiCheck";
  4117. sre.Data.Tables.Add(data2);
  4118. // 半检不合格
  4119. string sqlString3 =
  4120. "SELECT scdp.procedurename, op.procedurename overprocedurename\n" +
  4121. " ,sc.goodscode\n" +
  4122. " ,COUNT(distinct sc.semicheckid) badcountsum\n" +
  4123. " FROM TP_PM_SemiCheck sc\n" +
  4124. //" INNER JOIN tp_pc_procedure p\n" +
  4125. //" ON p.procedureid = sc.ReworkProcedureID\n" +
  4126. " INNER JOIN tp_pc_procedure op\n" +
  4127. " ON op.procedureid = sc.ProcedureID\n" +
  4128. " LEFT JOIN TP_PM_SemiCheckDefect scd\n" +
  4129. " ON sc.semicheckid = scd.semicheckid\n" +
  4130. " LEFT JOIN tp_pc_procedure scdp\n" +
  4131. " ON scdp.procedureid = scd.defectprocedureid\n" +
  4132. " WHERE sc.accountid = :accountid\n" +
  4133. " AND sc.ValueFlag = '1'\n" +
  4134. " AND sc.BackOutFlag = '0'\n" +
  4135. " AND sc.SemiCheckType = 2\n" +
  4136. " AND sc.ReSemiCheckType = 0\n" +
  4137. //" AND (:usercode IS NULL OR sc.reworkusercode = :usercode)\n" +
  4138. " AND (:usercode IS NULL OR scd.defectusercode = :usercode)\n" +
  4139. " AND (:datebegin IS NULL OR sc.semichecktime >= :datebegin)\n" +
  4140. " AND (:dateend IS NULL OR sc.semichecktime <= :dateend)\n" +
  4141. " GROUP BY scdp.procedurename, op.procedurename, scdp.displayno, sc.goodscode\n" +
  4142. " ORDER BY scdp.displayno, sc.goodscode";
  4143. parameters.Clear();
  4144. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4145. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4146. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4147. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4148. DataTable data3 = conn.GetSqlResultToDt(sqlString3, parameters.ToArray());
  4149. //if (data1 == null || data1.Rows.Count == 0)
  4150. //{
  4151. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4152. // return sre;
  4153. //}
  4154. data3.TableName = "SemiCheckBad";
  4155. sre.Data.Tables.Add(data3);
  4156. return sre;
  4157. }
  4158. catch (Exception ex)
  4159. {
  4160. throw ex;
  4161. }
  4162. finally
  4163. {
  4164. if (conn != null &&
  4165. conn.ConnState == ConnectionState.Open)
  4166. {
  4167. conn.Close();
  4168. }
  4169. }
  4170. }
  4171. /// <summary>
  4172. /// 取得RPT000002画面(工号质量统计表)的查询数据
  4173. /// </summary>
  4174. /// <param name="user">登录用户信息</param>
  4175. /// <param name="se">查询条件</param>
  4176. /// <returns>查询结果</returns>
  4177. public static ServiceResultEntity GetPDARPT000002Data(SUserInfo user, int rptSProcedureID, string usercode, DateTime datebegin, DateTime dateend)
  4178. {
  4179. IDBConnection conn = null;
  4180. try
  4181. {
  4182. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4183. List<OracleParameter> parameters = new List<OracleParameter>();
  4184. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4185. parameters.Add(new OracleParameter(":DateBegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4186. parameters.Add(new OracleParameter(":DateEnd", OracleDbType.Date, dateend, ParameterDirection.Input));
  4187. parameters.Add(new OracleParameter(":Usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4188. parameters.Add(new OracleParameter(":in_rptSprocedureId", OracleDbType.Int32, rptSProcedureID, ParameterDirection.Input));
  4189. string sqlString1 =
  4190. "select qdgroup.GoodsCode,\n" +
  4191. " qdgroup.OutKilnCount OutKilnCount,\n" +
  4192. // 合格品(正品+副品)
  4193. " qdgroup.GoodCount + qdgroup.BadCount as pcount,\n" +
  4194. // 合格率(正品+副品)
  4195. " to_char(((qdgroup.GoodCount +qdgroup.BadCount) / qdgroup.OutKilnCount) * 100, '990.00') || '%' PPercent,\n" +
  4196. // 正品
  4197. " qdgroup.GoodCount,\n" +
  4198. " to_char((qdgroup.GoodCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' GoodPercent,\n" +
  4199. // 副品
  4200. " qdgroup.BadCount,\n" +
  4201. " to_char((qdgroup.BadCount / qdgroup.OutKilnCount) * 100, '990.00') || '%' BadPercent,\n" +
  4202. // 次品
  4203. " qdgroup.SubstandardCount,\n" +
  4204. " to_char((qdgroup.SubstandardCount / qdgroup.OutKilnCount) * 100,\n" +
  4205. " '990.00') || '%' SubstandardPercent,\n" +
  4206. // 重烧
  4207. " qdgroup.ReFireCount,\n" +
  4208. " to_char((qdgroup.ReFireCount / qdgroup.OutKilnCount) * 100,\n" +
  4209. " '990.00') || '%' ReFirePercent\n" +
  4210. " from (select qd.goodscode || '【' || pcp.procedurename || '】' as GoodsCode,\n" +
  4211. //" pcp.procedurename,\n" +
  4212. " sum(qd.OutKilnCount) OutKilnCount,\n" +
  4213. " sum(qd.GoodCount) GoodCount,\n" +
  4214. " sum(qd.SubstandardCount) SubstandardCount,\n" +
  4215. " sum(qd.BadCount) BadCount,\n" +
  4216. " sum(qd.ReFireCount) ReFireCount\n" +
  4217. " from (select --pdbc.barcode,\n" +
  4218. " pdata.procedureid,\n" +
  4219. " pdbc.goodscode,\n" +
  4220. " 1 OutKilnCount,\n" +
  4221. " case\n" +
  4222. " when defect.defectprocedureid is not null and glt.goodsleveltypeid in (5, 6, 7) then\n" +
  4223. " 0\n" +
  4224. " else\n" +
  4225. " 1\n" +
  4226. " end GoodCount,\n" +
  4227. " case\n" +
  4228. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 7 then\n" +
  4229. " 1\n" +
  4230. " else\n" +
  4231. " 0\n" +
  4232. " end SubstandardCount,\n" +
  4233. " case\n" +
  4234. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 6 then\n" +
  4235. " 1\n" +
  4236. " else\n" +
  4237. " 0\n" +
  4238. " end ReFireCount,\n" +
  4239. " case\n" +
  4240. " when defect.defectprocedureid is not null and glt.goodsleveltypeid = 5 then\n" +
  4241. " 1\n" +
  4242. " else\n" +
  4243. " 0\n" +
  4244. " end BadCount\n" +
  4245. " from (select distinct pd.barcode,\n" +
  4246. " pd.goodscode,\n" +
  4247. " pd.kilncarbatchno\n" +
  4248. " from tp_pm_productiondata pd\n" +
  4249. " where pd.valueflag = '1'\n" +
  4250. " and pd.procedureid = :in_rptSprocedureId \n" +
  4251. " and pd.AccountID = :AccountID\n" +
  4252. " and pd.createtime >= :DateBegin\n" +
  4253. " and pd.createtime <= :DateEnd\n" +
  4254. " ) pdbc\n" +
  4255. " inner join (select pd.barcode,\n" +
  4256. " pd.procedureid\n" +
  4257. " from tp_pm_productiondata pd\n" +
  4258. " where pd.valueflag = '1'\n" +
  4259. " and pd.AccountID = :AccountID\n" +
  4260. " and pd.usercode = :Usercode\n" +
  4261. // 公坯、干补不算交坯工序的质量。
  4262. //" and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.IsPublicBody = '0' and pd.SpecialRepairFlag = '0')) \n" +
  4263. // 干补不算交坯工序的质量。
  4264. " and ((pd.modeltype <> 5) or (pd.modeltype = 5 and pd.SpecialRepairFlag = '0')) \n" +
  4265. " ) pdata\n" +
  4266. " on pdata.barcode = pdbc.barcode\n" +
  4267. " left join (select kcbc.barcode, kcbc.kilncarbatchno, kcbc.goodsleveltypeid, kcbc.productiondataid\n" +
  4268. " from (select pd.barcode,\n" +
  4269. " pd.kilncarbatchno,\n" +
  4270. " pd.goodsleveltypeid,\n" +
  4271. " pd.productiondataid,\n" +
  4272. " ROW_NUMBER() OVER(PARTITION BY pd.barcode, pd.kilncarbatchno ORDER BY pd.productiondataid desc) AS dataid\n" +
  4273. " from tp_pm_productiondata pd\n" +
  4274. " where pd.valueflag = '1'\n" +
  4275. " and pd.AccountID = :AccountID\n" +
  4276. " and length(pd.kilncarbatchno) > 0\n" +
  4277. " AND pd.createtime >= :DateBegin\n" +
  4278. " and pd.modeltype = -1) kcbc\n" +
  4279. " where kcbc.dataid = 1) glt\n" +
  4280. " on pdbc.kilncarbatchno = glt.kilncarbatchno\n" +
  4281. " and pdbc.barcode = glt.barcode\n" +
  4282. " left join (select distinct productiondataid, defectprocedureid\n" +
  4283. " from tp_pm_defect def\n" +
  4284. " where def.valueflag='1'\n" +
  4285. " and def.AccountID = :AccountID\n" +
  4286. " AND def.createtime >= :DateBegin) defect\n" +
  4287. " on defect.productiondataid = glt.productiondataid\n" +
  4288. " and pdata.procedureid = defect.defectprocedureid) qd\n" +
  4289. " inner join tp_pc_procedure pcp\n" +
  4290. " on pcp.procedureid = qd.procedureid\n" +
  4291. " group by qd.goodscode, pcp.procedurename, pcp.displayno\n" +
  4292. " order by pcp.displayno,\n" +
  4293. " qd.goodscode\n" +
  4294. " ) qdgroup\n";
  4295. ServiceResultEntity sre = new ServiceResultEntity();
  4296. sre.Data = new DataSet();
  4297. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4298. //if (data1 == null || data1.Rows.Count == 0)
  4299. //{
  4300. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4301. // return sre;
  4302. //}
  4303. sre.Data.Tables.Add(data1);
  4304. return sre;
  4305. }
  4306. catch (Exception ex)
  4307. {
  4308. throw ex;
  4309. }
  4310. finally
  4311. {
  4312. if (conn != null &&
  4313. conn.ConnState == ConnectionState.Open)
  4314. {
  4315. conn.Close();
  4316. }
  4317. }
  4318. }
  4319. /// <summary>
  4320. /// 取得RPT000003画面(损坯数据统计表)的查询数据
  4321. /// </summary>
  4322. /// <param name="user">登录用户信息</param>
  4323. /// <param name="se">查询条件</param>
  4324. /// <returns>查询结果</returns>
  4325. public static ServiceResultEntity GetPDARPT000003Data(SUserInfo user, string usercode, DateTime datebegin, DateTime dateend)
  4326. {
  4327. IDBConnection conn = null;
  4328. try
  4329. {
  4330. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4331. List<OracleParameter> parameters = new List<OracleParameter>();
  4332. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  4333. parameters.Add(new OracleParameter(":datebegin", OracleDbType.Date, datebegin, ParameterDirection.Input));
  4334. parameters.Add(new OracleParameter(":dateend", OracleDbType.Date, dateend, ParameterDirection.Input));
  4335. parameters.Add(new OracleParameter(":usercode", OracleDbType.NVarchar2, usercode, ParameterDirection.Input));
  4336. // 本工号损坯
  4337. string sqlString =
  4338. "SELECT spp.procedurename sppname\n" +
  4339. " ,rpp.procedurename rppname\n" +
  4340. " ,sp.goodscode\n" +
  4341. " ,COUNT(sp.barcode) scount\n" +
  4342. " FROM TP_PM_ScrapProduct sp\n" +
  4343. " INNER JOIN tp_pc_procedure spp\n" +
  4344. " ON spp.ProcedureID = sp.procedureid\n" +
  4345. " LEFT JOIN TP_PM_ResponProcedure rp\n" +
  4346. " ON rp.scrapproductid = sp.scrapproductid\n" +
  4347. " LEFT JOIN tp_pc_procedure rpp\n" +
  4348. " ON rp.procedureid = rpp.procedureid\n" +
  4349. " WHERE sp.accountid = :accountid\n" +
  4350. " AND sp.auditstatus = 1\n" +
  4351. " AND sp.valueflag = '1'\n" +
  4352. " AND sp.GoodsLevelTypeID IN (8, 9)\n" +
  4353. " AND sp.ScrapType = '0'\n" +
  4354. // 重烧后报损,不算后道损
  4355. //" AND sp.IsReFire = '0'\n" +
  4356. " AND EXISTS (SELECT 1\n" +
  4357. " FROM TP_PM_ScrapResponsible sr\n" +
  4358. " WHERE sr.scrapproductid = sp.scrapproductid\n" +
  4359. " AND sr.usercode = :usercode)\n" +
  4360. " AND sp.AuditDate >= :datebegin\n" +
  4361. " AND sp.AuditDate <= :dateend\n" +
  4362. " GROUP BY spp.procedurename\n" +
  4363. " ,rpp.procedurename\n" +
  4364. " ,spp.displayno\n" +
  4365. " ,rpp.displayno\n" +
  4366. " ,sp.goodscode\n" +
  4367. " ORDER BY spp.displayno, rpp.displayno, sp.goodscode";
  4368. DataTable data = conn.GetSqlResultToDt(sqlString, parameters.ToArray());
  4369. ServiceResultEntity sre = new ServiceResultEntity();
  4370. //if (data == null || data.Rows.Count == 0)
  4371. //{
  4372. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4373. // return sre;
  4374. //}
  4375. data.TableName = "this";
  4376. sre.Data = new DataSet();
  4377. sre.Data.Tables.Add(data);
  4378. // 后道损坯
  4379. // 后道工序损坯,应该经本工序生产后,非本工序责任损坯
  4380. string sqlString1 =
  4381. "SELECT spp.procedurename sppname\n" +
  4382. " ,rpp.procedurename rppname\n" +
  4383. " ,sp.goodscode\n" +
  4384. " ,COUNT(DISTINCT sp.barcode) scount\n" +
  4385. " FROM TP_PM_ScrapProduct sp\n" +
  4386. " INNER JOIN tp_pc_procedure spp\n" +
  4387. " ON spp.ProcedureID = sp.procedureid\n" +
  4388. " LEFT JOIN TP_PM_ResponProcedure rp\n" +
  4389. " ON rp.scrapproductid = sp.scrapproductid\n" +
  4390. " LEFT JOIN tp_pc_procedure rpp\n" +
  4391. " ON rp.procedureid = rpp.procedureid\n" +
  4392. " WHERE sp.accountid = :accountid\n" +
  4393. " AND sp.auditstatus = 1\n" +
  4394. " AND sp.valueflag = '1'\n" +
  4395. " AND sp.GoodsLevelTypeID IN (8, 9)\n" +
  4396. " AND sp.ScrapType = '0'\n" +
  4397. // 重烧后报损,不算后道损
  4398. " AND sp.IsReFire = '0'\n" +
  4399. // 非本工序责任损坯
  4400. " AND NOT EXISTS (SELECT 1\n" +
  4401. " FROM TP_PM_ScrapResponsible sr\n" +
  4402. " WHERE sr.scrapproductid = sp.scrapproductid\n" +
  4403. " AND sr.usercode = :usercode)\n" +
  4404. // 经本工序生产后
  4405. " AND EXISTS (SELECT 1\n" +
  4406. " FROM tp_pm_productiondata pd\n" +
  4407. " WHERE pd.barcode = sp.barcode\n" +
  4408. " AND pd.productiondataid <= sp.productiondataid\n" +
  4409. " AND pd.usercode = :usercode)\n" +
  4410. " AND sp.AuditDate >= :datebegin\n" +
  4411. " AND sp.AuditDate <= :dateend\n" +
  4412. " GROUP BY spp.procedurename\n" +
  4413. " ,rpp.procedurename\n" +
  4414. " ,spp.displayno\n" +
  4415. " ,rpp.displayno\n" +
  4416. " ,sp.goodscode\n" +
  4417. " ORDER BY spp.displayno, rpp.displayno, sp.goodscode";
  4418. DataTable data1 = conn.GetSqlResultToDt(sqlString1, parameters.ToArray());
  4419. //if (data1 == null || data1.Rows.Count == 0)
  4420. //{
  4421. // sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4422. // return sre;
  4423. //}
  4424. data1.TableName = "next";
  4425. sre.Data.Tables.Add(data1);
  4426. return sre;
  4427. }
  4428. catch (Exception ex)
  4429. {
  4430. throw ex;
  4431. }
  4432. finally
  4433. {
  4434. if (conn != null &&
  4435. conn.ConnState == ConnectionState.Open)
  4436. {
  4437. conn.Close();
  4438. }
  4439. }
  4440. }
  4441. #endregion
  4442. /// <summary>
  4443. /// 获取用户是否有统计产成品权限
  4444. /// </summary>
  4445. /// <returns></returns>
  4446. public static int GetStatisticsFinishedProductFuntion(SUserInfo userInfo)
  4447. {
  4448. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4449. try
  4450. {
  4451. con.Open();
  4452. string strSql = "";
  4453. strSql = @"SELECT F.Functionlevel,
  4454. F.FunctionCode,
  4455. F.FunctionName,
  4456. F.FullName,
  4457. F.FunctionFlag,
  4458. F.FunctionButtonFlag,
  4459. F.FormName,
  4460. F.ButtonName
  4461. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4462. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4463. WHERE F.ValueFlag = 1
  4464. AND F.FunctionCode NOT LIKE '0101%'
  4465. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '070205') = 1 /*F.FunctionCode='070205'*/";
  4466. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4467. DataSet ds = con.GetSqlResultToDs(strSql);
  4468. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4469. {
  4470. return 1;
  4471. }
  4472. return 0;
  4473. }
  4474. catch (Exception ex)
  4475. {
  4476. throw ex;
  4477. }
  4478. finally
  4479. {
  4480. if (con.ConnState == ConnectionState.Open)
  4481. {
  4482. con.Close();
  4483. }
  4484. }
  4485. }
  4486. /// <summary>
  4487. /// 获取用户是否有盘点权限
  4488. /// </summary>
  4489. /// <returns></returns>
  4490. public static int GetInCheckedFuntion(SUserInfo userInfo)
  4491. {
  4492. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4493. try
  4494. {
  4495. con.Open();
  4496. string strSql = "";
  4497. strSql = @"SELECT F.Functionlevel,
  4498. F.FunctionCode,
  4499. F.FunctionName,
  4500. F.FullName,
  4501. F.FunctionFlag,
  4502. F.FunctionButtonFlag,
  4503. F.FormName,
  4504. F.ButtonName
  4505. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4506. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4507. WHERE F.ValueFlag = 1
  4508. AND F.FunctionCode NOT LIKE '0101%'
  4509. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '060802') = 1 /*F.FunctionCode='060802'*/";
  4510. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4511. DataSet ds = con.GetSqlResultToDs(strSql);
  4512. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4513. {
  4514. return 1;
  4515. }
  4516. return 0;
  4517. }
  4518. catch (Exception ex)
  4519. {
  4520. throw ex;
  4521. }
  4522. finally
  4523. {
  4524. if (con.ConnState == ConnectionState.Open)
  4525. {
  4526. con.Close();
  4527. }
  4528. }
  4529. }
  4530. /// <summary>
  4531. /// 获取主表盘点信息
  4532. /// </summary>
  4533. /// <param name="entity">盘点类</param>
  4534. /// <param name="sUserInfo">用户基本信息</param>
  4535. /// <returns></returns>
  4536. public static DataSet GetAllInChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  4537. {
  4538. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4539. try
  4540. {
  4541. oracleConn.Open();
  4542. OracleParameter[] paras = new OracleParameter[]{
  4543. new OracleParameter("in_inCheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  4544. new OracleParameter("in_inCheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  4545. new OracleParameter("in_remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  4546. new OracleParameter("in_begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  4547. new OracleParameter("in_enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  4548. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  4549. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  4550. new OracleParameter("in_userID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  4551. };
  4552. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_GetInCheckedPDA", paras);
  4553. return returnDataSet;
  4554. }
  4555. catch (Exception ex)
  4556. {
  4557. throw ex;
  4558. }
  4559. finally
  4560. {
  4561. if (oracleConn.ConnState == ConnectionState.Open)
  4562. {
  4563. oracleConn.Close();
  4564. }
  4565. }
  4566. }
  4567. /// <summary>
  4568. /// 根据查询非工号下的员工档案信息
  4569. /// </summary>
  4570. /// <param name="searchStaffEntity">员工查询实体</param>
  4571. /// <param name="sUserInfo">用户基本信息</param>
  4572. /// <returns>DataSet</returns>
  4573. public static DataSet SearchStaffInfo(SearchStaffEntity searchStaffEntity, SUserInfo sUserInfo)
  4574. {
  4575. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4576. try
  4577. {
  4578. con.Open();
  4579. string strSql = " SELECT Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  4580. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode, Staff.Post,"
  4581. + " (CASE Staff.staffStatus"
  4582. + " WHEN 0 THEN '未入职'"
  4583. + " WHEN 1 THEN '试用 '"
  4584. + " WHEN 2 THEN '转正'"
  4585. + " WHEN 3 THEN '离职'"
  4586. + " ELSE '' END) AS staffStatusName,"
  4587. + " Jobs.Jobsname,Org.Organizationname,Org.OrganizationFullName,Post.PostName,0 Sel"
  4588. + " FROM TP_HR_Staff Staff"
  4589. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  4590. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  4591. + " LEFT JOIN TP_MST_Post Post on Post.Postid = Staff.Post "
  4592. + " WHERE Staff.Accountid = :accountID "
  4593. + " AND Staff.Staffstatus in(1,2)"
  4594. + " AND (Staff.Jobs = :jobs OR :jobs is null)";
  4595. if (!string.IsNullOrEmpty(searchStaffEntity.StaffCode))
  4596. {
  4597. //strSql += " AND Staff.Staffcode like '%" + searchStaffEntity.StaffCode + "%'";
  4598. strSql += " AND Staff.Staffcode ='" + searchStaffEntity.StaffCode + "'";
  4599. }
  4600. if (!string.IsNullOrEmpty(searchStaffEntity.StaffName))
  4601. {
  4602. strSql += " AND Staff.Staffname like '%" + searchStaffEntity.StaffName + "%'";
  4603. }
  4604. OracleParameter[] paras = new OracleParameter[]{
  4605. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4606. new OracleParameter(":jobs", OracleDbType.Int32, searchStaffEntity.Jobs, ParameterDirection.Input),
  4607. new OracleParameter(":jobs", OracleDbType.Int32, searchStaffEntity.Jobs, ParameterDirection.Input),
  4608. };
  4609. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  4610. return ds;
  4611. }
  4612. catch (Exception ex)
  4613. {
  4614. throw ex;
  4615. }
  4616. finally
  4617. {
  4618. if (con.ConnState == ConnectionState.Open)
  4619. {
  4620. con.Close();
  4621. }
  4622. }
  4623. }
  4624. /// <summary>
  4625. /// 根据条件查询是否存在班次配置
  4626. /// </summary>
  4627. /// <param name="userCode">工号编码</param>
  4628. /// <param name="sUserInfo">用户基本信息</param>
  4629. /// <returns>DataSet</returns>
  4630. public static DataSet GetClassesSetting(string uCode, SUserInfo sUserInfo)
  4631. {
  4632. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4633. try
  4634. {
  4635. con.Open();
  4636. DataSet dsReturn = new DataSet();
  4637. string strSql = @"select userid,username,usercode,fun_cmn_getaccountdate(:accountid) as accountdate,
  4638. (select tp_pc_classessetting.remarks from tp_pc_classessetting where tp_pc_classessetting.classessettingid in
  4639. (select nvl(max(classessettingID),0) classessettingID from tp_pc_classessetting where tp_pc_classessetting.usercode=:usercode
  4640. and tp_pc_classessetting.accountdate=fun_cmn_getaccountdate(:accountid))) as remarks
  4641. from tp_mst_user where usercode=:usercode and accountid=:accountid";
  4642. OracleParameter[] paras = new OracleParameter[]{
  4643. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  4644. new OracleParameter(":usercode",OracleDbType.Varchar2,uCode,ParameterDirection.Input),
  4645. };
  4646. DataSet ds = con.GetSqlResultToDs(strSql, paras);
  4647. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4648. {
  4649. ds.Tables[0].TableName = "Table1";
  4650. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4651. }
  4652. strSql = " SELECT classesDetail.ClassesSettingID,"
  4653. + " classesDetail.StaffID,classesDetail.Createtime,"
  4654. + " classesDetail.UjobsId UjobsId,classesDetail.SjobsId jobs,classesDetail.Remarks,classesDetail.CreateUserID,"
  4655. + " classesDetail.UpdateTime,CUser.Username createUserName,"
  4656. + " Jobs.Jobsname,Muser.Organizationid,Org.Organizationname,Staff.Staffname,Staff.Staffcode,"
  4657. + " status.staffstatusname AS staffStatusName,classesDetail.staffStatus,UJobs.JobsName as UJobsName,classesDetail.Ujobsid as UJobsId "
  4658. + " FROM TP_PC_ClassesDetail classesDetail "
  4659. + " LEFT JOIN TP_MST_User MUser ON MUser.UserId = classesDetail.UserID "
  4660. + " LEFT JOIN TP_MST_User CUser ON CUser.UserId = classesDetail.CreateUserID "
  4661. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = classesDetail.SjobsId "
  4662. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Muser.Organizationid "
  4663. + " LEFT JOIN TP_HR_Staff Staff ON staff.staffid = classesDetail.Staffid "
  4664. + " LEFT JOIN TP_MST_UserStaff userStaff ON classesDetail.STAFFID = userStaff.Staffid and classesDetail.Userid = userStaff.UserId"
  4665. + " LEFT JOIN TP_MST_JOBS UJobs ON classesDetail.Ujobsid = UJobs.Jobsid"
  4666. + " Inner JOIN TP_SYS_StaffStatus status on classesDetail.Staffstatus = status.staffstatusid"
  4667. + " WHERE classesDetail.AccountID = :accountID "
  4668. + " AND classesDetail.ClassesSettingID = (select nvl(max(classessettingID),0) classessettingID from tp_pc_classessetting where tp_pc_classessetting.usercode=:usercode and tp_pc_classessetting.accountdate=fun_cmn_getaccountdate(:accountID))";
  4669. paras = new OracleParameter[]{
  4670. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  4671. new OracleParameter(":usercode",OracleDbType.Varchar2,uCode,ParameterDirection.Input),
  4672. };
  4673. ds = con.GetSqlResultToDs(strSql, paras);
  4674. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4675. {
  4676. ds.Tables[0].TableName = "Table2";
  4677. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4678. return dsReturn;
  4679. }
  4680. strSql = " SELECT Staff.Staffid,Staff.Staffname,Staff.Organizationid,"
  4681. + " Staff.Jobs,Staff.Staffstatus,Staff.Staffcode,'' Remarks,"
  4682. + " (CASE Staff.staffStatus"
  4683. + " WHEN 0 THEN '未入职'"
  4684. + " WHEN 1 THEN '试用 '"
  4685. + " WHEN 2 THEN '转正'"
  4686. + " WHEN 3 THEN '离职'"
  4687. + " ELSE '' END) AS staffStatusName,"
  4688. + " Jobs.Jobsname,Org.Organizationname,TUserJobs.Jobsname as UJobsName,TUserJobs.JobsId as UJobsId"
  4689. + " FROM TP_HR_Staff Staff "
  4690. + " LEFT JOIN TP_MST_Jobs Jobs ON Jobs.Jobsid = Staff.Jobs "
  4691. + " LEFT JOIN TP_MST_Organization Org ON Org.Organizationid = Staff.Organizationid "
  4692. + " LEFT JOIN TP_MST_UserStaff TUserStaff on TUserStaff.StaffID = Staff.StaffID "
  4693. + " LEFT JOIN TP_MST_User TUser on TUserStaff.Userid = TUser.Userid"
  4694. + " LEFT JOIN TP_MST_Jobs TUserJobs on TUserJobs.Jobsid = TUserStaff.Ujobsid"
  4695. + " WHERE Staff.Accountid = :accountID "
  4696. + " AND TUser.UserCode = :UserCode"
  4697. + " AND Staff.Staffstatus in(1,2)";
  4698. paras = new OracleParameter[]{
  4699. new OracleParameter(":accountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4700. new OracleParameter(":UserCode", OracleDbType.Varchar2, uCode, ParameterDirection.Input),
  4701. };
  4702. ds = con.GetSqlResultToDs(strSql, paras);
  4703. ds.Tables[0].TableName = "Table2";
  4704. dsReturn.Tables.Add(ds.Tables[0].Copy());
  4705. return dsReturn;
  4706. }
  4707. catch (Exception ex)
  4708. {
  4709. throw ex;
  4710. }
  4711. finally
  4712. {
  4713. if (con.ConnState == ConnectionState.Open)
  4714. {
  4715. con.Close();
  4716. }
  4717. }
  4718. }
  4719. /*
  4720. /// <summary>
  4721. /// 获取用户是否有撤销包装权限
  4722. /// </summary>
  4723. /// <returns></returns>
  4724. public static int GetChancelFinishedproductFuntion(SUserInfo userInfo)
  4725. {
  4726. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4727. try
  4728. {
  4729. con.Open();
  4730. string strSql = "";
  4731. strSql = @"SELECT F.Functionlevel,
  4732. F.FunctionCode,
  4733. F.FunctionName,
  4734. F.FullName,
  4735. F.FunctionFlag,
  4736. F.FunctionButtonFlag,
  4737. F.FormName,
  4738. F.ButtonName
  4739. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4740. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4741. WHERE F.ValueFlag = 1
  4742. AND F.FunctionCode NOT LIKE '0101%'
  4743. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0609'";
  4744. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4745. DataSet ds = con.GetSqlResultToDs(strSql);
  4746. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4747. {
  4748. return 1;
  4749. }
  4750. return 0;
  4751. }
  4752. catch (Exception ex)
  4753. {
  4754. throw ex;
  4755. }
  4756. finally
  4757. {
  4758. if (con.ConnState == ConnectionState.Open)
  4759. {
  4760. con.Close();
  4761. }
  4762. }
  4763. }
  4764. /// <summary>
  4765. /// 获取用户是否有撤销权限
  4766. /// </summary>
  4767. /// <returns></returns>
  4768. public static int GetCancelScrapProductionFuntion(SUserInfo userInfo)
  4769. {
  4770. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4771. try
  4772. {
  4773. con.Open();
  4774. string strSql = "";
  4775. strSql = @"SELECT F.Functionlevel,
  4776. F.FunctionCode,
  4777. F.FunctionName,
  4778. F.FullName,
  4779. F.FunctionFlag,
  4780. F.FunctionButtonFlag,
  4781. F.FormName,
  4782. F.ButtonName
  4783. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4784. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4785. WHERE F.ValueFlag = 1
  4786. AND F.FunctionCode NOT LIKE '0101%'
  4787. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0610'";
  4788. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4789. DataSet ds = con.GetSqlResultToDs(strSql);
  4790. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4791. {
  4792. return 1;
  4793. }
  4794. return 0;
  4795. }
  4796. catch (Exception ex)
  4797. {
  4798. throw ex;
  4799. }
  4800. finally
  4801. {
  4802. if (con.ConnState == ConnectionState.Open)
  4803. {
  4804. con.Close();
  4805. }
  4806. }
  4807. }
  4808. /// <summary>
  4809. /// 获取用户是否有公坯设定权限
  4810. /// </summary>
  4811. /// <returns></returns>
  4812. public static int GetPublicBodyProductFuntion(SUserInfo userInfo)
  4813. {
  4814. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4815. try
  4816. {
  4817. con.Open();
  4818. string strSql = "";
  4819. strSql = @"SELECT F.Functionlevel,
  4820. F.FunctionCode,
  4821. F.FunctionName,
  4822. F.FullName,
  4823. F.FunctionFlag,
  4824. F.FunctionButtonFlag,
  4825. F.FormName,
  4826. F.ButtonName
  4827. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4828. TP_SYS_Function F ON R.FunctionCode = F.FunctionCode
  4829. WHERE F.ValueFlag = 1
  4830. AND F.FunctionCode NOT LIKE '0101%'
  4831. AND F.FunctionCode NOT LIKE '0102%' and F.FunctionCode='0611'";
  4832. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4833. DataSet ds = con.GetSqlResultToDs(strSql);
  4834. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4835. {
  4836. return 1;
  4837. }
  4838. return 0;
  4839. }
  4840. catch (Exception ex)
  4841. {
  4842. throw ex;
  4843. }
  4844. finally
  4845. {
  4846. if (con.ConnState == ConnectionState.Open)
  4847. {
  4848. con.Close();
  4849. }
  4850. }
  4851. }
  4852. */
  4853. /// <summary>
  4854. /// 获取用户是否有公坯设定权限
  4855. /// </summary>
  4856. /// <returns></returns>
  4857. public static DataSet GetUserAllFunction(SUserInfo userInfo)
  4858. {
  4859. // 产品报损
  4860. if (userInfo.UserCode.ToUpper() == "SYSTEM" ||
  4861. userInfo.UserCode.ToUpper() == "ADMIN")
  4862. {
  4863. return null;
  4864. }
  4865. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4866. try
  4867. {
  4868. con.Open();
  4869. OracleParameter[] parameters = new OracleParameter[]
  4870. {
  4871. new OracleParameter(":UserID", OracleDbType.Int32, userInfo.UserID, ParameterDirection.Input),
  4872. };
  4873. string strSql =
  4874. "SELECT F.FunctionCode, f.functionlevel, " +
  4875. " CASE WHEN F.FunctionCode='060401' THEN '产品报损'" +
  4876. " WHEN F.FunctionCode='060202' THEN '条码变更'" +
  4877. " WHEN F.FunctionCode='0404' THEN '班次配置'" +
  4878. " WHEN F.FunctionCode='060802' THEN '在产盘点'" +
  4879. " WHEN F.FunctionCode='06230103' THEN '成型盘点'" +
  4880. " WHEN F.FunctionCode='0609' THEN '成品撤销'" +
  4881. " WHEN F.FunctionCode='0610' THEN '损坯撤销'" +
  4882. " WHEN F.FunctionCode='0611' THEN '公坯设定'" +
  4883. " WHEN F.FunctionCode='070205' THEN '产成品质量分析表'" +
  4884. " WHEN F.FunctionCode='0615' THEN '计件撤销'" +
  4885. " WHEN F.FunctionCode='061601' THEN '交坯撤销'" +
  4886. " WHEN F.FunctionCode='070205' THEN '产成品质量分析表'" +
  4887. " WHEN F.FunctionCode='060203' THEN '商标设定'" +
  4888. " WHEN F.FunctionCode='062001' THEN '半成品检验'" +
  4889. " WHEN F.FunctionCode='06200101' THEN '半检登记'" +
  4890. " WHEN F.FunctionCode='06200102' THEN '复检登记'" +
  4891. " WHEN F.FunctionCode='06200103' THEN '撤销复检'" +
  4892. " WHEN F.FunctionCode='0614' THEN '条码恢复'" +
  4893. " WHEN F.FunctionCode='0622' THEN '产成品交接'" +
  4894. " WHEN F.FunctionCode='062201' THEN '交接'" +
  4895. " WHEN F.FunctionCode='062202' THEN '撤销'" +
  4896. " WHEN F.FunctionCode='062203' THEN '变更单号'" +
  4897. " WHEN F.FunctionCode='060204' THEN '条码补打'" +
  4898. " WHEN F.FunctionCode='0626' THEN '抽查记录'" +
  4899. " WHEN F.FunctionCode='062601' THEN '品保抽查'" +
  4900. " ELSE to_char(f.functionname) END functionname " +
  4901. " FROM TP_SYS_Function F " +
  4902. "WHERE F.ValueFlag = '1'" +
  4903. " AND F.IS_PDA = '1' " +
  4904. " AND EXISTS (SELECT 1" +
  4905. " FROM TP_MST_UserRight R" +
  4906. " WHERE R.UserID = :UserID" +
  4907. //" AND (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]'))" +
  4908. " AND (instr(R.FunctionCode , F.FunctionCode) = 1 OR R.FunctionCode = '[ALL]'))" +
  4909. //" AND (F.FunctionCode='060401'" +
  4910. //" OR F.FunctionCode='060202'" +
  4911. //" OR F.FunctionCode='0404'" +
  4912. //" OR F.FunctionCode='060802'" +
  4913. //" OR F.FunctionCode='06230103'" +
  4914. //" OR F.FunctionCode='0609'" +
  4915. //" OR F.FunctionCode='0610'" +
  4916. //" OR F.FunctionCode='0611'" +
  4917. //" OR F.FunctionCode='070205'" +
  4918. //" OR F.FunctionCode='0615'" +
  4919. //" OR F.FunctionCode='061601'" +
  4920. //" OR F.FunctionCode='070205'" +
  4921. //" OR F.FunctionCode='060203'" +
  4922. //" OR F.FunctionCode='062001'" +
  4923. //" OR F.FunctionCode='06200101'" +
  4924. //" OR F.FunctionCode='06200102'" +
  4925. //" OR F.FunctionCode='06200103'" +
  4926. //" OR F.FunctionCode='0614'" +
  4927. //" OR F.FunctionCode='0622'" +
  4928. //" OR F.FunctionCode='062201'" +
  4929. //" OR F.FunctionCode='062202'" +
  4930. //" OR F.FunctionCode='062203'" +
  4931. //" OR F.FunctionCode='060204'" +
  4932. //// 成型报损,撤销报损
  4933. //" OR F.FunctionCode='060106'" +
  4934. //" OR F.FunctionCode='060107'" +
  4935. //// 模具管理相关
  4936. //" OR F.FunctionCode in ('M04','M0401','M040103','M040104','M040105','M040106','M040107','M040108','M0402')" +
  4937. //" OR F.FunctionCode='070303'" +
  4938. //" OR F.FunctionCode='0402'" +
  4939. //" OR F.FunctionCode in ('0624', '062401', '062402', '070713','0625','9001','9002')" +
  4940. //" OR F.FunctionCode in ('0626','062601')" +
  4941. //" OR F.FunctionCode like 'PDA%'" +
  4942. //" )" +
  4943. " Order by f.functionlevel";
  4944. DataSet ds = con.GetSqlResultToDs(strSql, parameters);
  4945. return ds;
  4946. //if (ds != null && ds.Tables[0].Rows.Count > 0)
  4947. //{
  4948. // return 1;
  4949. //}
  4950. //return 0;
  4951. }
  4952. catch (Exception ex)
  4953. {
  4954. throw ex;
  4955. }
  4956. finally
  4957. {
  4958. if (con.ConnState == ConnectionState.Open)
  4959. {
  4960. con.Close();
  4961. }
  4962. }
  4963. }
  4964. /// <summary>
  4965. /// 获取登陆帐户有无入窑前检验数据编辑权限
  4966. /// </summary>
  4967. /// <param name="usercode">工号编码</param>
  4968. /// <returns></returns>
  4969. public static int GetIntoKilnCheckEditFuntion(SUserInfo userInfo)
  4970. {
  4971. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4972. try
  4973. {
  4974. con.Open();
  4975. string strSql = "";
  4976. strSql = @"SELECT F.Functionlevel,
  4977. F.FunctionCode,
  4978. F.FunctionName,
  4979. F.FullName,
  4980. F.FunctionFlag,
  4981. F.FunctionButtonFlag,
  4982. F.FormName,
  4983. F.ButtonName
  4984. FROM TP_MST_UserRight R LEFT OUTER JOIN
  4985. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  4986. WHERE F.ValueFlag = 1
  4987. AND F.FunctionCode NOT LIKE '0101%'
  4988. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '061801') = 1 /*F.FunctionCode='061801'*/";
  4989. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  4990. DataSet ds = con.GetSqlResultToDs(strSql);
  4991. if (ds != null && ds.Tables[0].Rows.Count > 0)
  4992. {
  4993. return 1;
  4994. }
  4995. return 0;
  4996. }
  4997. catch (Exception ex)
  4998. {
  4999. throw ex;
  5000. }
  5001. finally
  5002. {
  5003. if (con.ConnState == ConnectionState.Open)
  5004. {
  5005. con.Close();
  5006. }
  5007. }
  5008. }
  5009. /// <summary>
  5010. /// 获取登陆帐户有无半检验数据编辑权限
  5011. /// </summary>
  5012. /// <param name="usercode">工号编码</param>
  5013. /// <returns></returns>
  5014. public static int GetNormalCheckEditFuntion(SUserInfo userInfo)
  5015. {
  5016. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5017. try
  5018. {
  5019. con.Open();
  5020. string strSql = "";
  5021. strSql = @"SELECT F.Functionlevel,
  5022. F.FunctionCode,
  5023. F.FunctionName,
  5024. F.FullName,
  5025. F.FunctionFlag,
  5026. F.FunctionButtonFlag,
  5027. F.FormName,
  5028. F.ButtonName
  5029. FROM TP_MST_UserRight R LEFT OUTER JOIN
  5030. TP_SYS_Function F ON (R.FunctionCode = F.FunctionCode OR R.FunctionCode = '[ALL]')
  5031. WHERE F.ValueFlag = 1
  5032. AND F.FunctionCode NOT LIKE '0101%'
  5033. AND F.FunctionCode NOT LIKE '0102%' and instr(F.FunctionCode, '061901') = 1 /*F.FunctionCode='061901'*/";
  5034. strSql = strSql + " AND R.UserID = " + userInfo.UserID;
  5035. DataSet ds = con.GetSqlResultToDs(strSql);
  5036. if (ds != null && ds.Tables[0].Rows.Count > 0)
  5037. {
  5038. return 1;
  5039. }
  5040. return 0;
  5041. }
  5042. catch (Exception ex)
  5043. {
  5044. throw ex;
  5045. }
  5046. finally
  5047. {
  5048. if (con.ConnState == ConnectionState.Open)
  5049. {
  5050. con.Close();
  5051. }
  5052. }
  5053. }
  5054. #region 质量登记
  5055. /// <summary>
  5056. /// 通过条码查出责任工序
  5057. /// </summary>
  5058. /// <param name="barcode">产品条码</param>
  5059. /// <param name="defectid">缺陷ID</param>
  5060. /// <returns>DataSet</returns>
  5061. public static DataSet GetDutyProcedureByBarCode(string barcode, int defectid, int accountid)
  5062. {
  5063. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5064. try
  5065. {
  5066. con.Open();
  5067. DataSet dsReturn = new DataSet();
  5068. string sqlString =
  5069. "SELECT pdin.ProductionDataID\n" +
  5070. " ,pdin.ProcedureID AS DutyProcedureID\n" +
  5071. " ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  5072. " ,pdin.ProcedureName AS DutyProcedureName\n" +
  5073. " ,pdin.NodeType\n" +
  5074. " ,pdin.ModelType\n" +
  5075. " ,pdin.classessettingid\n" +
  5076. " ,pdin.userid\n" +
  5077. " ,pdin.usercode\n" +
  5078. " ,pdin.username\n" +
  5079. " FROM TP_PM_ProductionDataIn pdin\n" +
  5080. " WHERE pdin.valueflag = '1'\n" +
  5081. " AND pdin.accountid = :accountid\n" +
  5082. " AND pdin.Barcode = :Barcode\n" +
  5083. " AND EXISTS (SELECT 1\n" +
  5084. " FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  5085. " WHERE dpJobs.DefectID = :DefectID\n" +
  5086. " AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  5087. " ORDER BY pdin.ProductionDataID";
  5088. OracleParameter[] paras = new OracleParameter[]{
  5089. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  5090. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  5091. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  5092. };
  5093. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  5094. ds.Tables[0].TableName = "TProcedure";
  5095. //sqlString = "Select DictionaryID,DictionaryValue"
  5096. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  5097. //paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  5098. // {
  5099. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",accountid),
  5100. // };
  5101. //DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  5102. //ds2.Tables[0].TableName = "TDataDictionary";
  5103. sqlString = "select procedureid,jobsid from TP_PC_DefectProcedureJobs where TP_PC_DefectProcedureJobs.Defectid=:Defectid";
  5104. paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  5105. {
  5106. new Oracle.ManagedDataAccess.Client.OracleParameter(":Defectid",defectid),
  5107. };
  5108. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  5109. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  5110. if (!dsReturn.Tables.Contains("TProcedure"))
  5111. {
  5112. dsReturn.Tables.Add(ds.Tables[0].Copy());
  5113. }
  5114. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  5115. //{
  5116. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  5117. //}
  5118. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  5119. {
  5120. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  5121. }
  5122. return dsReturn;
  5123. }
  5124. catch (Exception ex)
  5125. {
  5126. throw ex;
  5127. }
  5128. finally
  5129. {
  5130. if (con.ConnState == ConnectionState.Open)
  5131. {
  5132. con.Close();
  5133. }
  5134. }
  5135. }
  5136. /// <summary>
  5137. /// 获取责任工种
  5138. /// </summary>
  5139. /// <param name="classesSettingID"></param>
  5140. /// <param name="defectid"></param>
  5141. /// <param name="procedureID"></param>
  5142. /// <returns></returns>
  5143. public static DataSet GetDutyJobsCodeByUser(int classesSettingID, int defectid, int procedureID)
  5144. {
  5145. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5146. try
  5147. {
  5148. con.Open();
  5149. string sqlString = "SELECT DISTINCT cd.UserID, jobs.JobsID, jobs.JobsName, jobs.JobsCode\n" +
  5150. " FROM TP_PC_DefectProcedureJobs dpjobs\n" +
  5151. " INNER JOIN tp_pc_classesdetail cd\n" +
  5152. " ON cd.ujobsid = dpjobs.jobsid AND cd.valueflag = '1'\n" +
  5153. " LEFT JOIN TP_MST_Jobs jobs\n" +
  5154. " ON cd.UJobsID = jobs.JobsID\n" +
  5155. " WHERE dpjobs.procedureid = :procedureid\n" +
  5156. " AND dpjobs.defectid = :defectid\n" +
  5157. " AND cd.classessettingid = :classessettingid\n" +
  5158. " order by jobs.JobsCode";
  5159. OracleParameter[] paras = new OracleParameter[]{
  5160. new OracleParameter(":procedureid",OracleDbType.Int32, procedureID,ParameterDirection.Input),
  5161. new OracleParameter(":defectid",OracleDbType.Int32, defectid,ParameterDirection.Input),
  5162. new OracleParameter(":classessettingid",OracleDbType.Int32, classesSettingID,ParameterDirection.Input),
  5163. };
  5164. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  5165. return ds;
  5166. }
  5167. catch (Exception ex)
  5168. {
  5169. throw ex;
  5170. }
  5171. finally
  5172. {
  5173. if (con.ConnState == ConnectionState.Open)
  5174. {
  5175. con.Close();
  5176. }
  5177. }
  5178. }
  5179. /// <summary>
  5180. /// 获取责任员工
  5181. /// </summary>
  5182. /// <param name="productionDataID">生产数据ID</param>
  5183. /// <param name="userID">用户ID</param>
  5184. /// <param name="jobs">工种ID</param>
  5185. /// <returns>DataSet</returns>
  5186. public static DataSet GetDutyStaffByUserIDAndJobs(int classesSettingID, int jobsID)
  5187. {
  5188. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5189. try
  5190. {
  5191. con.Open();
  5192. string sqlString = @"select TP_HR_Staff.StaffID,
  5193. TP_HR_Staff.StaffCode,
  5194. TP_HR_Staff.StaffName,
  5195. TP_HR_Staff.StaffStatus,
  5196. tp_pc_classesdetail.SJobsID
  5197. from tp_pc_classesdetail
  5198. inner join TP_HR_Staff on tp_pc_classesdetail.StaffID =
  5199. TP_HR_Staff.StaffID
  5200. where tp_pc_classesdetail.ClassesSettingID=:classesSettingID
  5201. and tp_pc_classesdetail.valueflag = '1'
  5202. and TP_HR_Staff.valueflag = '1'
  5203. and tp_pc_classesdetail.UJobsID = :JobsID
  5204. order by TP_HR_Staff.StaffCode
  5205. ";
  5206. // --and TP_HR_Staff.StaffStatus in (1,2)
  5207. OracleParameter[] paras = new OracleParameter[]{
  5208. new OracleParameter(":classesSettingID",OracleDbType.Int32, classesSettingID,ParameterDirection.Input),
  5209. new OracleParameter(":JobsID",OracleDbType.Int32, jobsID,ParameterDirection.Input),
  5210. };
  5211. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  5212. return ds;
  5213. }
  5214. catch (Exception ex)
  5215. {
  5216. throw ex;
  5217. }
  5218. finally
  5219. {
  5220. if (con.ConnState == ConnectionState.Open)
  5221. {
  5222. con.Close();
  5223. }
  5224. }
  5225. }
  5226. #endregion
  5227. #region 注浆盘点
  5228. /// <summary>
  5229. /// 获取注浆盘点信息
  5230. /// </summary>
  5231. /// <param name="entity">盘点类</param>
  5232. /// <param name="sUserInfo">用户基本信息</param>
  5233. /// <returns></returns>
  5234. public static DataSet GetAllGBChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  5235. {
  5236. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5237. try
  5238. {
  5239. oracleConn.Open();
  5240. string sqlString =
  5241. "SELECT gbc.GBCheckedID\n" +
  5242. " ,gbc.GBCheckedNo\n" +
  5243. " ,gbc.GBcheckname\n" +
  5244. " ,gbc.AccountDate\n" +
  5245. " ,gbc.Remarks\n" +
  5246. " ,gbc.CreateTime\n" +
  5247. " ,u.UserName AS CreateUserName\n" +
  5248. " ,u.UserCode AS CreateUserCode\n" +
  5249. " FROM Tp_Pm_Groutingchecked gbc\n" +
  5250. " LEFT JOIN TP_MST_USER u\n" +
  5251. " ON gbc.Createuserid = u.userid\n" +
  5252. " WHERE gbc.valueflag = '1'\n" +
  5253. " AND gbc.accountid = :accountid\n" +
  5254. " AND (:CheckedNo IS NULL OR instr(gbc.GBCheckedNo, :CheckedNo) > 0)\n" +
  5255. " AND gbc.CreateTime >= :begindate\n" +
  5256. " AND gbc.CreateTime <= :enddate\n" +
  5257. " AND (:CheckedName IS NULL OR instr(gbc.gbcheckname, :CheckedName) > 0)\n" +
  5258. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)\n" +
  5259. " AND EXISTS (SELECT 1\n" +
  5260. " FROM tp_pm_gbcheckeduser\n" +
  5261. " WHERE userid = :userid\n" +
  5262. " AND GBCheckedID = gbc.gbCheckedID)\n" +
  5263. " ORDER BY gbc.gbCheckedID DESC";
  5264. OracleParameter[] paras = new OracleParameter[]{
  5265. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  5266. new OracleParameter(":CheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  5267. new OracleParameter(":remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  5268. new OracleParameter(":begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  5269. new OracleParameter(":enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  5270. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  5271. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  5272. };
  5273. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sqlString, paras);
  5274. return returnDataSet;
  5275. }
  5276. catch (Exception ex)
  5277. {
  5278. throw ex;
  5279. }
  5280. finally
  5281. {
  5282. if (oracleConn.ConnState == ConnectionState.Open)
  5283. {
  5284. oracleConn.Close();
  5285. }
  5286. }
  5287. }
  5288. #endregion
  5289. #region 模具盘点
  5290. /// <summary>
  5291. /// 获取模具盘点信息
  5292. /// </summary>
  5293. /// <param name="entity">盘点类</param>
  5294. /// <param name="sUserInfo">用户基本信息</param>
  5295. /// <returns></returns>
  5296. public static DataSet GetAllMouldChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  5297. {
  5298. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5299. try
  5300. {
  5301. oracleConn.Open();
  5302. string sqlString =
  5303. "SELECT gbc.CheckedID\n" +
  5304. " ,gbc.CheckedNo\n" +
  5305. " ,gbc.checkname\n" +
  5306. " ,gbc.AccountDate\n" +
  5307. " ,gbc.Remarks\n" +
  5308. " ,gbc.CreateTime\n" +
  5309. " ,u.UserName AS CreateUserName\n" +
  5310. " ,u.UserCode AS CreateUserCode\n" +
  5311. " FROM tp_pc_mouldchecked gbc\n" +
  5312. " LEFT JOIN TP_MST_USER u\n" +
  5313. " ON gbc.Createuserid = u.userid\n" +
  5314. " WHERE gbc.valueflag = '1'\n" +
  5315. " AND gbc.accountid = :accountid\n" +
  5316. " AND (:CheckedNo IS NULL OR instr(gbc.CheckedNo, :CheckedNo) > 0)\n" +
  5317. " AND gbc.CreateTime >= :begindate\n" +
  5318. " AND gbc.CreateTime <= :enddate\n" +
  5319. " AND (:CheckedName IS NULL OR instr(gbc.checkname, :CheckedName) > 0)\n" +
  5320. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)\n" +
  5321. " AND EXISTS (SELECT 1\n" +
  5322. " FROM tp_pc_mouldcheckeduser\n" +
  5323. " WHERE userid = :userid\n" +
  5324. " AND CheckedID = gbc.CheckedID)\n" +
  5325. " ORDER BY gbc.CheckedID DESC";
  5326. OracleParameter[] paras = new OracleParameter[]{
  5327. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  5328. new OracleParameter(":CheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  5329. new OracleParameter(":remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  5330. new OracleParameter(":begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  5331. new OracleParameter(":enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  5332. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  5333. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  5334. };
  5335. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sqlString, paras);
  5336. return returnDataSet;
  5337. }
  5338. catch (Exception ex)
  5339. {
  5340. throw ex;
  5341. }
  5342. finally
  5343. {
  5344. if (oracleConn.ConnState == ConnectionState.Open)
  5345. {
  5346. oracleConn.Close();
  5347. }
  5348. }
  5349. }
  5350. #endregion
  5351. #region 模具管理
  5352. /// <summary>
  5353. /// 验证模具管理生产工号
  5354. /// </summary>
  5355. /// <param name="sUserInfo"></param>
  5356. /// <returns></returns>
  5357. public static DataTable GetUserCodeOnMould(SUserInfo sUserInfo, string userCode)
  5358. {
  5359. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5360. try
  5361. {
  5362. con.Open();
  5363. string sqlString = "SELECT g.userid, g.usercode\n" +
  5364. " FROM tp_mst_user g\n" +
  5365. " WHERE g.usercode = :usercode";
  5366. OracleParameter[] parameters = new OracleParameter[]
  5367. {
  5368. new OracleParameter(":usercode", OracleDbType.NVarchar2,
  5369. userCode, ParameterDirection.Input),
  5370. };
  5371. return con.GetSqlResultToDt(sqlString, parameters);
  5372. }
  5373. catch (Exception ex)
  5374. {
  5375. throw ex;
  5376. }
  5377. finally
  5378. {
  5379. if (con.ConnState == ConnectionState.Open)
  5380. {
  5381. con.Close();
  5382. }
  5383. }
  5384. }
  5385. /// <summary>
  5386. /// 获取模具编辑信息
  5387. /// </summary>
  5388. /// <param name="sUserInfo"></param>
  5389. /// <returns></returns>
  5390. public static DataTable GetMouldEditInfo(SUserInfo sUserInfo, string mouldbarcode)
  5391. {
  5392. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5393. try
  5394. {
  5395. con.Open();
  5396. string sqlString = "SELECT m.mouldid\n" +
  5397. " ,m.mouldbarcode\n" +
  5398. " ,m.mouldtype\n" +
  5399. " ,dd.dictionaryvalue mouldtypeName\n" +
  5400. " ,m.materialsupplier\n" +
  5401. " ,mms.suppliername\n" +
  5402. " ,ms.mouldstatusname\n" +
  5403. " ,m.productiondate\n" +
  5404. " ,m.goodsid\n" +
  5405. " ,m.goodscode\n" +
  5406. " ,m.userid\n" +
  5407. " ,m.usercode\n" +
  5408. " ,m.weight\n" +
  5409. " ,m.cost\n" +
  5410. " ,m.standardgroutingnum\n" +
  5411. " ,m.remarks\n" +
  5412. " FROM tp_pc_mould m\n" +
  5413. " LEFT JOIN tp_mst_datadictionary dd\n" +
  5414. " ON dd.dictionaryid = m.mouldtype\n" +
  5415. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  5416. " ON mms.supplierid = m.materialsupplier\n" +
  5417. " LEFT JOIN tp_sys_mouldstatus ms\n" +
  5418. " ON ms.mouldstatusid = m.mouldstatus\n" +
  5419. " WHERE m.mouldbarcode = :mouldbarcode";
  5420. OracleParameter[] parameters = new OracleParameter[]
  5421. {
  5422. new OracleParameter(":mouldbarcode", OracleDbType.Varchar2, mouldbarcode, ParameterDirection.Input),
  5423. };
  5424. return con.GetSqlResultToDt(sqlString, parameters);
  5425. }
  5426. catch (Exception ex)
  5427. {
  5428. throw ex;
  5429. }
  5430. finally
  5431. {
  5432. if (con.ConnState == ConnectionState.Open)
  5433. {
  5434. con.Close();
  5435. }
  5436. }
  5437. }
  5438. #endregion
  5439. #region 成型模具管理
  5440. /// <summary>
  5441. /// 获取当前用户成型线模具管理权限
  5442. /// </summary>
  5443. /// <param name="sUserInfo"></param>
  5444. /// <param name="mouldbarcode"></param>
  5445. /// <returns></returns>
  5446. public static DataTable GetGMouldStatusRight(SUserInfo sUserInfo)
  5447. {
  5448. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5449. try
  5450. {
  5451. con.Open();
  5452. string sqlString =
  5453. "SELECT f.functioncode, f.functionname\n" +
  5454. " FROM tp_sys_function f\n" +
  5455. " WHERE f.valueflag = '1'\n" +
  5456. " AND f.functionprogram = '1'\n" +
  5457. " AND f.functionflag = '0'\n" +
  5458. " AND f.functionbuttonflag = '1'\n" +
  5459. " AND f.functioncode LIKE '0402%'\n" +
  5460. " AND EXISTS (SELECT 1\n" +
  5461. " FROM tp_mst_userright ur\n" +
  5462. " WHERE (ur.functioncode = '[ALL]' OR\n" +
  5463. " f.functioncode = ur.functioncode)\n" +
  5464. " AND ur.userid = :userid)\n" +
  5465. " ORDER BY f.functionlevel";
  5466. OracleParameter[] parameters = new OracleParameter[]
  5467. {
  5468. new OracleParameter(":userid", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  5469. };
  5470. return con.GetSqlResultToDt(sqlString, parameters);
  5471. }
  5472. catch (Exception ex)
  5473. {
  5474. throw ex;
  5475. }
  5476. finally
  5477. {
  5478. if (con.ConnState == ConnectionState.Open)
  5479. {
  5480. con.Close();
  5481. }
  5482. }
  5483. }
  5484. /// <summary>
  5485. /// 获取成型线状态等信息,和成型模具信息
  5486. /// </summary>
  5487. /// <param name="sUserInfo"></param>
  5488. /// <param name="mouldbarcode"></param>
  5489. /// <returns></returns>
  5490. public static DataSet GetGroutingLineMould(SUserInfo sUserInfo, string groutingLineCode, int? groutingLineID)
  5491. {
  5492. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5493. try
  5494. {
  5495. con.Open();
  5496. string sqlString =
  5497. "SELECT gl.groutinglineid\n" +
  5498. " ,gl.groutinglinecode\n" +
  5499. " ,gl.gmouldstatus GroutingLineStatus\n" +
  5500. " ,gs.gmouldstatusname GroutingLineStatusName\n" +
  5501. " ,to_char(gl.optimestamp, 'yyyy-mm-dd hh24:mi:ss.ff') LineOPTimeStamp\n" +
  5502. " FROM tp_pc_groutingline gl\n" +
  5503. " INNER JOIN tp_sys_gmouldstatus gs\n" +
  5504. " ON gs.gmouldstatusid = gl.gmouldstatus\n" +
  5505. " WHERE gl.valueflag = '1'\n" +
  5506. " AND gl.gmouldstatus > 0\n" +
  5507. " AND ((:lineID IS NULL AND gl.groutinglinecode = :lineCode) OR\n" +
  5508. " gl.groutinglineid = :lineID)";
  5509. OracleParameter[] parameters = new OracleParameter[]
  5510. {
  5511. new OracleParameter(":lineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  5512. new OracleParameter(":lineCode", OracleDbType.Varchar2, groutingLineCode, ParameterDirection.Input),
  5513. };
  5514. DataTable line = con.GetSqlResultToDt(sqlString, parameters);
  5515. if (line == null || line.Rows.Count == 0)
  5516. {
  5517. return null;
  5518. }
  5519. if (groutingLineID == null)
  5520. {
  5521. groutingLineID = Convert.ToInt32(line.Rows[0]["groutinglineid"]);
  5522. }
  5523. sqlString =
  5524. "SELECT gld.groutinglinedetailid GLineDetailID\n" +
  5525. " ,gld.groutinglineid\n" +
  5526. " ,gld.groutingmouldcode GLineDetailCode\n" +
  5527. " ,gld.MouldID\n" +
  5528. " ,gld.MouldCode\n" +
  5529. " ,nvl(gld.MouldOutputNo,0) MouldOutputNo\n" +
  5530. " ,m.MouldBarcode\n" +
  5531. " ,gld.GMouldStatus\n" +
  5532. " ,gms.GMouldStatusName\n" +
  5533. " ,gld.goodsid\n" +
  5534. " ,g.goodscode\n" +
  5535. " ,g.GOODSSPECIFICATION\n" +
  5536. " ,gld.standardgroutingcount\n" +
  5537. " ,gld.groutingcount\n" +
  5538. " ,gld.beginuseddate\n" +
  5539. " ,gld.remarks DetailRemarks\n" +
  5540. " ,gmr.remarks RecordRemarks\n" +
  5541. " ,to_char(gld.optimestamp, 'yyyy-mm-dd hh24:mi:ss.ff') OPTimeStamp\n" +
  5542. " FROM tp_pc_groutinglinedetail gld\n" +
  5543. " INNER JOIN tp_mst_goods g\n" +
  5544. " ON g.goodsid = gld.goodsid\n" +
  5545. " LEFT JOIN tp_pc_mould m\n" +
  5546. " ON (gld.mouldid is not null and gld.mouldid = m.mouldid) or (gld.mouldcode = m.mouldcode)\n" +
  5547. " INNER JOIN tp_sys_gmouldstatus gms\n" +
  5548. " ON gms.gmouldstatusid = gld.gmouldstatus\n" +
  5549. " LEFT JOIN tp_pc_gmouldrecord gmr\n" +
  5550. " ON gmr.gmouldrecordid = gld.lastgmouldrecordid\n" +
  5551. " WHERE gld.valueflag = '1'\n" +
  5552. " AND gld.groutinglineid = :lineID\n" +
  5553. " ORDER BY gld.groutingmouldcode";
  5554. parameters = new OracleParameter[]
  5555. {
  5556. new OracleParameter(":lineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  5557. };
  5558. DataTable lineDetail = con.GetSqlResultToDt(sqlString, parameters);
  5559. DataSet ds = new DataSet();
  5560. line.TableName = "GroutingLineInfo";
  5561. lineDetail.TableName = "GMouldInfo";
  5562. ds.Tables.Add(line);
  5563. ds.Tables.Add(lineDetail);
  5564. return ds;
  5565. }
  5566. catch (Exception ex)
  5567. {
  5568. throw ex;
  5569. }
  5570. finally
  5571. {
  5572. if (con.ConnState == ConnectionState.Open)
  5573. {
  5574. con.Close();
  5575. }
  5576. }
  5577. }
  5578. /// <summary>
  5579. /// 获取成型线状态等信息,和成型模具信息
  5580. /// </summary>
  5581. /// <param name="sUserInfo"></param>
  5582. /// <param name="mouldbarcode"></param>
  5583. /// <returns></returns>
  5584. public static DataTable GetGroutingMouldOperationInit(SUserInfo sUserInfo, int groutingMouldOperationType)
  5585. {
  5586. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5587. try
  5588. {
  5589. con.Open();
  5590. // 结束换模、结束变产
  5591. if (groutingMouldOperationType == 6)
  5592. {
  5593. string sqlString =
  5594. "SELECT s.settingcode, s.settingvalue\n" +
  5595. " FROM tp_mst_systemsetting s\n" +
  5596. " WHERE s.accountid = :accountid\n" +
  5597. " AND s.settingcode = :settingcode";
  5598. OracleParameter[] parameters = new OracleParameter[]
  5599. {
  5600. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5601. new OracleParameter(":settingcode", OracleDbType.Varchar2, "S_PC_001", ParameterDirection.Input),
  5602. };
  5603. return con.GetSqlResultToDt(sqlString, parameters);
  5604. }
  5605. return null;
  5606. }
  5607. catch (Exception ex)
  5608. {
  5609. throw ex;
  5610. }
  5611. finally
  5612. {
  5613. if (con.ConnState == ConnectionState.Open)
  5614. {
  5615. con.Close();
  5616. }
  5617. }
  5618. }
  5619. #endregion
  5620. #region 成型月度结算表
  5621. /// <summary>
  5622. /// 成型月度结算表(总表)
  5623. /// </summary>
  5624. /// <returns></returns>
  5625. public static ServiceResultEntity GetGroutingSettlementInfo(SUserInfo sUserInfo, DateTime month)
  5626. {
  5627. IDBTransaction tran = null;
  5628. try
  5629. {
  5630. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5631. tran.Connect();
  5632. // 只限成型工查询
  5633. string sqlString = "select u.userid, u.isgroutingworker from tp_mst_user u where u.AccountID = :AccountID and u.usercode = :usercode";
  5634. OracleParameter[] paraUser = new OracleParameter[]
  5635. {
  5636. new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5637. new OracleParameter(":usercode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5638. };
  5639. DataTable dt = tran.GetSqlResultToDt(sqlString, paraUser);
  5640. if (dt == null || dt.Rows.Count == 0)
  5641. {
  5642. ServiceResultEntity sreUser = new ServiceResultEntity();
  5643. sreUser.Status = Constant.ServiceResultStatus.Other;
  5644. sreUser.Message = "系统中不存在此成型工号";
  5645. return sreUser;
  5646. }
  5647. if ("1" != (dt.Rows[0]["isgroutingworker"] + ""))
  5648. {
  5649. ServiceResultEntity sreUser = new ServiceResultEntity();
  5650. sreUser.Status = Constant.ServiceResultStatus.Other;
  5651. sreUser.Message = "此工号不是成型工号";
  5652. return sreUser;
  5653. }
  5654. OracleParameter[] parameters = new OracleParameter[]
  5655. {
  5656. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5657. new OracleParameter("in_UserCode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5658. new OracleParameter("in_MonthBegin", OracleDbType.Date, month, ParameterDirection.Input),
  5659. new OracleParameter("in_NextMonth", OracleDbType.Date, month.AddMonths(1), ParameterDirection.Input),
  5660. new OracleParameter("out_DataM", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5661. };
  5662. DataSet data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByMonth", parameters);
  5663. ServiceResultEntity sre = new ServiceResultEntity();
  5664. if (data != null)
  5665. {
  5666. data.Tables[0].TableName = "DataM";
  5667. }
  5668. tran.Commit();
  5669. sre.Data = data;
  5670. return sre;
  5671. }
  5672. catch (Exception ex)
  5673. {
  5674. //if (tran != null)
  5675. //{
  5676. // tran.Rollback();
  5677. //}
  5678. throw ex;
  5679. }
  5680. finally
  5681. {
  5682. if (tran != null &&
  5683. tran.ConnState == ConnectionState.Open)
  5684. {
  5685. tran.Disconnect();
  5686. }
  5687. }
  5688. }
  5689. /// <summary>
  5690. /// 成型月度结算表(明细)
  5691. /// </summary>
  5692. /// <returns></returns>
  5693. public static ServiceResultEntity GetGroutingSettlementDetail(SUserInfo sUserInfo, DateTime month, string goodsCode, DateTime? date)
  5694. {
  5695. IDBTransaction tran = null;
  5696. try
  5697. {
  5698. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5699. tran.Connect();
  5700. // 只限成型工查询
  5701. string sqlString = "select u.userid, u.isgroutingworker from tp_mst_user u where u.AccountID = :AccountID and u.usercode = :usercode";
  5702. OracleParameter[] paraUser = new OracleParameter[]
  5703. {
  5704. new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5705. new OracleParameter(":usercode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5706. };
  5707. DataTable dt = tran.GetSqlResultToDt(sqlString, paraUser);
  5708. if (dt == null || dt.Rows.Count == 0)
  5709. {
  5710. ServiceResultEntity sreUser = new ServiceResultEntity();
  5711. sreUser.Status = Constant.ServiceResultStatus.Other;
  5712. sreUser.Message = "系统中不存在此成型工号";
  5713. return sreUser;
  5714. }
  5715. if ("1" != (dt.Rows[0]["isgroutingworker"] + ""))
  5716. {
  5717. ServiceResultEntity sreUser = new ServiceResultEntity();
  5718. sreUser.Status = Constant.ServiceResultStatus.Other;
  5719. sreUser.Message = "此工号不是成型工号";
  5720. return sreUser;
  5721. }
  5722. OracleParameter[] parameters = new OracleParameter[]
  5723. {
  5724. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5725. new OracleParameter("in_UserCode", OracleDbType.NVarchar2, sUserInfo.UserCode, ParameterDirection.Input),
  5726. new OracleParameter("in_GoodsCode", OracleDbType.NVarchar2, goodsCode, ParameterDirection.Input),
  5727. new OracleParameter("in_MonthBegin", OracleDbType.Date, (date != null ? date.Value : month), ParameterDirection.Input),
  5728. new OracleParameter("in_NextMonth", OracleDbType.Date, (date != null ? date.Value.AddDays(1) :month.AddMonths(1)), ParameterDirection.Input),
  5729. new OracleParameter("out_DataCC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5730. new OracleParameter("out_DataNS", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5731. new OracleParameter("out_DataSC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5732. new OracleParameter("out_DataRC", OracleDbType.RefCursor, null, ParameterDirection.Output),
  5733. };
  5734. //,out_DataCC OUT SYS_REFCURSOR -- 成检明细
  5735. //,out_DataNS OUT SYS_REFCURSOR -- 后损明细
  5736. //,out_DataSC OUT SYS_REFCURSOR -- 半检不合格
  5737. //,out_DataRC OUT SYS_REFCURSOR -- 返工合格
  5738. DataSet data = tran.ExecStoredProcedure("PRO_P2_GetGUserPInfoByDetail", parameters);
  5739. ServiceResultEntity sre = new ServiceResultEntity();
  5740. if (data != null)
  5741. {
  5742. data.Tables[0].TableName = "DataCC"; // 成检明细
  5743. data.Tables[1].TableName = "DataNS"; // 后损明细
  5744. data.Tables[2].TableName = "DataSC"; // 半检不合格
  5745. data.Tables[3].TableName = "DataRC"; // 返工合格
  5746. }
  5747. tran.Commit();
  5748. sre.Data = data;
  5749. return sre;
  5750. }
  5751. catch (Exception ex)
  5752. {
  5753. //if (tran != null)
  5754. //{
  5755. // tran.Rollback();
  5756. //}
  5757. throw ex;
  5758. }
  5759. finally
  5760. {
  5761. if (tran != null &&
  5762. tran.ConnState == ConnectionState.Open)
  5763. {
  5764. tran.Disconnect();
  5765. }
  5766. }
  5767. }
  5768. #endregion
  5769. #region 产成品质量改判
  5770. /// <summary>
  5771. /// 获取产成品信息及缺陷数据
  5772. /// </summary>
  5773. /// <param name="barcode"></param>
  5774. /// <param name="sUserInfo"></param>
  5775. /// <returns></returns>
  5776. public static ServiceResultEntity GetDefectData(string barcode, SUserInfo sUserInfo)
  5777. {
  5778. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5779. try
  5780. {
  5781. oracleConn.Open();
  5782. ServiceResultEntity sre = new ServiceResultEntity();
  5783. string gbarcode = null;
  5784. #region 数据验证
  5785. // 1、获得注浆条码
  5786. string sqlString = @"select FUN_CMN_GetBarCode(:barcode, null, :accountid) From DUAL";
  5787. OracleParameter[] paras = new OracleParameter[]
  5788. {
  5789. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  5790. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input)
  5791. };
  5792. DataSet dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5793. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5794. {
  5795. gbarcode = dsResult.Tables[0].Rows[0][0].ToString();
  5796. }
  5797. // 2.判断产品是否在产成品表中
  5798. sqlString = @"SELECT 1 FROM TP_PM_FINISHEDPRODUCT F WHERE F.VALUEFLAG = 1 AND F.GOODSLEVELTYPEID IN(4,5) AND F.BARCODE = :BARCODE";
  5799. paras = new OracleParameter[]
  5800. {
  5801. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  5802. };
  5803. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5804. if (dsResult == null || dsResult.Tables.Count == 0 || dsResult.Tables[0].Rows.Count == 0)
  5805. {
  5806. sre.Status = Constant.ServiceResultStatus.Other;
  5807. sre.OtherStatus = -11;
  5808. sre.Message = "条码【" + barcode + "】,不符合条件";
  5809. return sre;
  5810. }
  5811. #endregion
  5812. #region 查询产品相关信息
  5813. // 查询总表
  5814. sqlString = "SELECT GD.BARCODE,\n" +
  5815. " GOODSTYPE.GOODSTYPENAME,\n" +
  5816. " GD.GOODSID,\n" +
  5817. " GD.GOODSCODE,\n" +
  5818. " L.LOGONAME || '[' || L.LOGOCODE || ']' AS LOGONAME,\n" +
  5819. " TO_CHAR(GD.GROUTINGDATE, 'yyyy-mm-dd') || '(' || GD.GROUTINGBATCHNO || ')' AS GROUTINGDATE,\n" +
  5820. " GD.USERCODE,\n" +
  5821. " GD.GROUTINGMOULDCODE\n" +
  5822. " FROM TP_PM_GROUTINGDAILYDETAIL GD\n" +
  5823. " INNER JOIN TP_MST_LOGO L\n" +
  5824. " ON GD.LOGOID = L.LOGOID\n" +
  5825. " INNER JOIN TP_MST_GOODS GOODS\n" +
  5826. " ON GD.GOODSID = GOODS.GOODSID\n" +
  5827. " INNER JOIN TP_MST_GOODSTYPE GOODSTYPE\n" +
  5828. " ON GOODSTYPE.GOODSTYPEID = GOODS.GOODSTYPEID\n" +
  5829. " WHERE GD.VALUEFLAG = '1'\n" +
  5830. " AND GD.BARCODE = :BARCODE";
  5831. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5832. // 查询缺陷
  5833. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5834. {
  5835. PDADefectData defectData = new PDADefectData();
  5836. defectData.PDAGoodsDataTotal = dsResult.Tables[0];
  5837. sqlString = "SELECT PD.PRODUCTIONDATAID,\n" +
  5838. " PD.PROCEDUREID,\n" +
  5839. " PD.PROCEDURENAME,\n" +
  5840. " PD.USERCODE AS PROCEDUREUSERCODE,\n" +
  5841. " TO_CHAR(PD.CREATETIME, 'yyyy-mm-dd') AS PROCEDURETIME,\n" +
  5842. " GLT.GOODSLEVELTYPENAME,\n" +
  5843. " PD.ISREFIRE,\n" +
  5844. " PD.SPECIALREPAIRFLAG\n" +
  5845. " FROM TP_PM_PRODUCTIONDATA PD\n" +
  5846. " LEFT JOIN TP_SYS_GOODSLEVELTYPE GLT\n" +
  5847. " ON PD.GOODSLEVELTYPEID = GLT.GOODSLEVELTYPEID\n" +
  5848. " WHERE PD.MODELTYPE = -1\n" +
  5849. " AND PD.VALUEFLAG = '1'\n" +
  5850. " AND PD.GOODSLEVELTYPEID IN (5, 6)\n" +
  5851. " AND PD.BARCODE = :BARCODE";
  5852. dsResult = oracleConn.GetSqlResultToDs(sqlString, paras);
  5853. // 查询缺陷明细
  5854. if (dsResult != null && dsResult.Tables[0].Rows.Count > 0)
  5855. {
  5856. PDADefectDataDetail defectDataDetail;
  5857. foreach (DataRow row in dsResult.Tables[0].Rows)
  5858. {
  5859. // 转实体
  5860. defectDataDetail = DataConvert.DataRowConvertToObject<PDADefectDataDetail>(row);
  5861. sqlString = "SELECT D.PRODUCTIONDEFECTID,\n" +
  5862. " D.DEFECTID,\n" +
  5863. " D.DEFECTCODE,\n" +
  5864. " D.DEFECTNAME,\n" +
  5865. " D.DEFECTPOSITIONID,\n" +
  5866. " D.DEFECTPOSITIONCODE,\n" +
  5867. " D.DEFECTPOSITIONNAME,\n" +
  5868. " D.DEFECTPROCEDUREID,\n" +
  5869. " D.DEFECTPROCEDURECODE,\n" +
  5870. " D.DEFECTPROCEDURENAME,\n" +
  5871. " D.DEFECTUSERID,\n" +
  5872. " D.DEFECTUSERCODE,\n" +
  5873. " D.DEFECTUSERNAME,\n" +
  5874. " D.DEFECTJOBS,\n" +
  5875. " J.JOBSNAME AS DEFECTJOBSNAME,\n" +
  5876. " D.DEFECTFINE,\n" +
  5877. " DF.DEFECTFINECODE,\n" +
  5878. " D.DEFECTDEDUCTIONNUM,\n" +
  5879. " D.SPECIALDEFECT\n" +
  5880. " FROM TP_PM_PRODUCTIONDATA PD\n" +
  5881. " INNER JOIN TP_PM_DEFECT D\n" +
  5882. " ON PD.PRODUCTIONDATAID = D.PRODUCTIONDATAID\n" +
  5883. " LEFT JOIN TP_MST_JOBS J\n" +
  5884. " ON J.JOBSID = D.DEFECTJOBS\n" +
  5885. " LEFT JOIN TP_MST_DEFECTFINE DF\n" +
  5886. " ON DF.DEFECTFINEID = D.DEFECTFINE\n" +
  5887. " WHERE PD.MODELTYPE = -1\n" +
  5888. " AND PD.VALUEFLAG = '1'\n" +
  5889. " AND PD.GOODSLEVELTYPEID IN (4, 5, 6)\n" +
  5890. " AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  5891. paras = new OracleParameter[]
  5892. {
  5893. new OracleParameter(":PRODUCTIONDATAID", OracleDbType.NVarchar2, defectDataDetail.ProductionDataID, ParameterDirection.Input)
  5894. };
  5895. DataTable dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  5896. defectDataDetail.ProductionDefects = DataConvert.TableConvertToObject<PDADefectEntity>(dtResult);
  5897. // 查询缺陷责任者和缺陷图片
  5898. if (dtResult != null && dtResult.Rows.Count > 0)
  5899. {
  5900. int productionDefectID = 0;
  5901. List<PDADefectEntity> productionDefects = new List<PDADefectEntity>();
  5902. PDADefectEntity productionDefect;
  5903. for (int i = 0; i < dtResult.Rows.Count; i++)
  5904. {
  5905. productionDefect = new PDADefectEntity();
  5906. productionDefectID = int.Parse(dtResult.Rows[i]["PRODUCTIONDEFECTID"] + "");
  5907. sqlString = "SELECT D.PRODUCTIONDEFECTID,\n" +
  5908. " D.STAFFID,\n" +
  5909. " S.STAFFNAME,\n" +
  5910. " D.USERID,\n" +
  5911. " D.USERCODE,\n" +
  5912. " D.STAFFSTATUS,\n" +
  5913. " D.UJOBSID,\n" +
  5914. " D.SJOBSID\n" +
  5915. " FROM TP_PM_DEFECTRESPONSIBLE D\n" +
  5916. " LEFT JOIN TP_HR_STAFF S\n" +
  5917. " ON D.STAFFID = S.STAFFID\n" +
  5918. " WHERE PRODUCTIONDEFECTID = :PRODUCTIONDEFECTID";
  5919. paras = new OracleParameter[]
  5920. {
  5921. new OracleParameter(":PRODUCTIONDEFECTID", OracleDbType.Int32, productionDefectID, ParameterDirection.Input)
  5922. };
  5923. DataTable dtDefectResponsible = oracleConn.GetSqlResultToDt(sqlString, paras);
  5924. defectDataDetail.ProductionDefects[i].DefectResponsibles = DataConvert.TableConvertToObject<DefectResponsibleEntity>(dtDefectResponsible);
  5925. }
  5926. }
  5927. defectData.PDADefectDataDetailList.Add(defectDataDetail);
  5928. }
  5929. sre.Status = Constant.ServiceResultStatus.Success;
  5930. sre.Message = "条码【" + barcode + "】,查询成功";
  5931. }
  5932. sre.Result = defectData;
  5933. }
  5934. else
  5935. {
  5936. sre.Status = Constant.ServiceResultStatus.Other;
  5937. sre.OtherStatus = -12;
  5938. sre.Message = "条码【" + barcode + "】,未查到相应的产品信息";
  5939. return sre;
  5940. }
  5941. #endregion
  5942. return sre;
  5943. }
  5944. catch (Exception ex)
  5945. {
  5946. throw ex;
  5947. }
  5948. finally
  5949. {
  5950. if (oracleConn.ConnState == ConnectionState.Open)
  5951. {
  5952. oracleConn.Close();
  5953. }
  5954. }
  5955. }
  5956. /// <summary>
  5957. /// 成品改判
  5958. /// </summary>
  5959. /// <param name="procedureID">工序ID</param>
  5960. /// <param name="productionDataEntitys">生产数据集</param>
  5961. /// <param name="sUserInfo">用户基本信息</param>
  5962. /// <returns>string</returns>
  5963. public static ServiceResultEntity SaveDefectData(ProductionDataEntity productionDataEntity, SUserInfo sUserInfo)
  5964. {
  5965. string errMsg = "";
  5966. ServiceResultEntity sre = new ServiceResultEntity();
  5967. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5968. try
  5969. {
  5970. oracleTrConn.Connect();
  5971. #region 验证数据是否已经被修改
  5972. string sqlString = "SELECT 1 FROM TP_PM_PRODUCTIONDATA PD WHERE PD.VALUEFLAG = '1' AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  5973. OracleParameter[] paras = new OracleParameter[]
  5974. {
  5975. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  5976. };
  5977. DataSet dsResult = oracleTrConn.GetSqlResultToDs(sqlString, paras);
  5978. if (dsResult == null || dsResult.Tables.Count == 0 || dsResult.Tables[0].Rows.Count == 0)
  5979. {
  5980. sre.Status = Constant.ServiceResultStatus.Other;
  5981. sre.Message = "【此条码生产数据已被修改,请重新扫描此条码】";
  5982. return sre;
  5983. }
  5984. #endregion
  5985. #region 查询新插入的生产数据ID
  5986. sqlString = "SELECT SEQ_PM_PRODUCTIONDATA_ID.NEXTVAL FROM DUAL";
  5987. string idStr = oracleTrConn.GetSqlResultToStr(sqlString);
  5988. int newProductionDataID = 0;
  5989. if (string.IsNullOrEmpty(idStr) || !int.TryParse(idStr, out newProductionDataID))
  5990. {
  5991. sre.Status = Constant.ServiceResultStatus.Other;
  5992. sre.Message = string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  5993. return sre;
  5994. }
  5995. #endregion
  5996. #region 插入生产数据
  5997. sqlString =
  5998. " SELECT BARCODE,\n" +
  5999. " CENTRALIZEDBATCHNO,\n" +
  6000. " PRODUCTIONLINEID,\n" +
  6001. " PRODUCTIONLINECODE,\n" +
  6002. " PRODUCTIONLINENAME,\n" +
  6003. " PROCEDUREID,\n" +
  6004. " PROCEDURECODE,\n" +
  6005. " PROCEDURENAME,\n" +
  6006. " PROCEDUREMODEL,\n" +
  6007. " MODELTYPE,\n" +
  6008. " PIECETYPE,\n" +
  6009. " ISREWORKED,\n" +
  6010. " NODETYPE,\n" +
  6011. " ISPUBLICBODY,\n" +
  6012. " ISREFIRE,\n" +
  6013. " ORGANIZATIONID,\n" +
  6014. " GOODSID,\n" +
  6015. " GOODSCODE,\n" +
  6016. " GOODSNAME,\n" +
  6017. " KILNID,\n" +
  6018. " KILNCODE,\n" +
  6019. " KILNNAME,\n" +
  6020. " KILNCARID,\n" +
  6021. " KILNCARCODE,\n" +
  6022. " KILNCARNAME,\n" +
  6023. " KILNCARBATCHNO,\n" +
  6024. " KILNCARPOSITION,\n" +
  6025. " REWORKPROCEDUREID,\n" +
  6026. " REWORKPROCEDURECODE,\n" +
  6027. " REWORKPROCEDURENAME,\n" +
  6028. " REMARKS,\n" +
  6029. " ACCOUNTDATE,\n" +
  6030. " SETTLEMENTFLAG,\n" +
  6031. " ACCOUNTID,\n" +
  6032. " CREATETIME,\n" +
  6033. " UPDATETIME,\n" +
  6034. " GOODSLEVELID,\n" +
  6035. " GOODSLEVELTYPEID,\n" +
  6036. " GROUTINGDATE,\n" +
  6037. " GROUTINGMOULDCODE,\n" +
  6038. " MOULDCODE,\n" +
  6039. " GROUTINGUSERID,\n" +
  6040. " GROUTINGUSERCODE,\n" +
  6041. " GROUTINGNUM,\n" +
  6042. " GROUTINGDAILYID,\n" +
  6043. " GROUTINGDAILYDETAILID,\n" +
  6044. " GROUTINGLINEID,\n" +
  6045. " GROUTINGLINECODE,\n" +
  6046. " GROUTINGLINENAME,\n" +
  6047. " GMOULDTYPEID,\n" +
  6048. " CANMANYTIMES,\n" +
  6049. " GROUTINGLINEDETAILID,\n" +
  6050. " SPECIALREPAIRFLAG,\n" +
  6051. " CLASSESSETTINGID,\n" +
  6052. " LOGOID,\n" +
  6053. " BACKOUTTIME,\n" +
  6054. " BACKOUTUSERID,\n" +
  6055. " BACKOUTUSERCODE,\n" +
  6056. " CHECKTIME\n" +
  6057. " FROM TP_PM_PRODUCTIONDATA\n" +
  6058. " WHERE VALUEFLAG = '1'\n" +
  6059. " AND PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6060. paras = new OracleParameter[]
  6061. {
  6062. new OracleParameter(":PRODUCTIONDATAID", OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6063. };
  6064. DataTable data = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  6065. if (data == null || data.Rows.Count == 0)
  6066. {
  6067. errMsg = "无成检数据";
  6068. sre.Status = Constant.ServiceResultStatus.Other;
  6069. sre.Message = errMsg;
  6070. return sre;
  6071. }
  6072. #region
  6073. /*
  6074. sqlString = "INSERT INTO TP_PM_PRODUCTIONDATA(\n" +
  6075. " PRODUCTIONDATAID,\n" +
  6076. " BARCODE,\n" +
  6077. " CENTRALIZEDBATCHNO,\n" +
  6078. " PRODUCTIONLINEID,\n" +
  6079. " PRODUCTIONLINECODE,\n" +
  6080. " PRODUCTIONLINENAME,\n" +
  6081. " PROCEDUREID,\n" +
  6082. " PROCEDURECODE,\n" +
  6083. " PROCEDURENAME,\n" +
  6084. " PROCEDUREMODEL,\n" +
  6085. " MODELTYPE,\n" +
  6086. " PIECETYPE,\n" +
  6087. " ISREWORKED,\n" +
  6088. " NODETYPE,\n" +
  6089. " ISPUBLICBODY,\n" +
  6090. " ISREFIRE,\n" +
  6091. " ORGANIZATIONID,\n" +
  6092. " GOODSID,\n" +
  6093. " GOODSCODE,\n" +
  6094. " GOODSNAME,\n" +
  6095. " USERID,\n" +
  6096. " USERCODE,\n" +
  6097. " USERNAME,\n" +
  6098. " KILNID,\n" +
  6099. " KILNCODE,\n" +
  6100. " KILNNAME,\n" +
  6101. " KILNCARID,\n" +
  6102. " KILNCARCODE,\n" +
  6103. " KILNCARNAME,\n" +
  6104. " KILNCARBATCHNO,\n" +
  6105. " KILNCARPOSITION,\n" +
  6106. " REWORKPROCEDUREID,\n" +
  6107. " REWORKPROCEDURECODE,\n" +
  6108. " REWORKPROCEDURENAME,\n" +
  6109. " REMARKS,\n" +
  6110. " ACCOUNTDATE,\n" +
  6111. " SETTLEMENTFLAG,\n" +
  6112. " ACCOUNTID,\n" +
  6113. " VALUEFLAG,\n" +
  6114. " CREATETIME,\n" +
  6115. " CREATEUSERID,\n" +
  6116. " UPDATETIME,\n" +
  6117. " UPDATEUSERID,\n" +
  6118. //" OPTIMESTAMP,\n" +
  6119. " GOODSLEVELID,\n" +
  6120. " GOODSLEVELTYPEID,\n" +
  6121. " GROUTINGDATE,\n" +
  6122. " GROUTINGMOULDCODE,\n" +
  6123. " MOULDCODE,\n" +
  6124. " GROUTINGUSERID,\n" +
  6125. " GROUTINGUSERCODE,\n" +
  6126. " GROUTINGNUM,\n" +
  6127. " GROUTINGDAILYID,\n" +
  6128. " GROUTINGDAILYDETAILID,\n" +
  6129. " GROUTINGLINEID,\n" +
  6130. " GROUTINGLINECODE,\n" +
  6131. " GROUTINGLINENAME,\n" +
  6132. " GMOULDTYPEID,\n" +
  6133. " CANMANYTIMES,\n" +
  6134. " GROUTINGLINEDETAILID,\n" +
  6135. " SPECIALREPAIRFLAG,\n" +
  6136. " CLASSESSETTINGID,\n" +
  6137. " LOGOID,\n" +
  6138. " BACKOUTTIME,\n" +
  6139. " BACKOUTUSERID,\n" +
  6140. " BACKOUTUSERCODE,\n" +
  6141. " CHECKTIME,\n" +
  6142. " TAMPERTIME)\n" +
  6143. " SELECT :NEWPRODUCTIONDATAID,\n" +
  6144. " BARCODE,\n" +
  6145. " CENTRALIZEDBATCHNO,\n" +
  6146. " PRODUCTIONLINEID,\n" +
  6147. " PRODUCTIONLINECODE,\n" +
  6148. " PRODUCTIONLINENAME,\n" +
  6149. " PROCEDUREID,\n" +
  6150. " PROCEDURECODE,\n" +
  6151. " PROCEDURENAME,\n" +
  6152. " PROCEDUREMODEL,\n" +
  6153. " MODELTYPE,\n" +
  6154. " PIECETYPE,\n" +
  6155. " ISREWORKED,\n" +
  6156. " NODETYPE,\n" +
  6157. " ISPUBLICBODY,\n" +
  6158. " ISREFIRE,\n" +
  6159. " ORGANIZATIONID,\n" +
  6160. " GOODSID,\n" +
  6161. " GOODSCODE,\n" +
  6162. " GOODSNAME,\n" +
  6163. " :USERID,\n" +
  6164. " :USERCODE,\n" +
  6165. " :USERNAME,\n" +
  6166. " KILNID,\n" +
  6167. " KILNCODE,\n" +
  6168. " KILNNAME,\n" +
  6169. " KILNCARID,\n" +
  6170. " KILNCARCODE,\n" +
  6171. " KILNCARNAME,\n" +
  6172. " KILNCARBATCHNO,\n" +
  6173. " KILNCARPOSITION,\n" +
  6174. " REWORKPROCEDUREID,\n" +
  6175. " REWORKPROCEDURECODE,\n" +
  6176. " REWORKPROCEDURENAME,\n" +
  6177. " REMARKS,\n" +
  6178. " ACCOUNTDATE,\n" +
  6179. " SETTLEMENTFLAG,\n" +
  6180. " ACCOUNTID,\n" +
  6181. " '1',\n" +
  6182. " CREATETIME,\n" +
  6183. " :CREATEUSERID,\n" +
  6184. " UPDATETIME,\n" +
  6185. " :UPDATEUSERID,\n" +
  6186. //" OPTIMESTAMP,\n" +
  6187. " GOODSLEVELID,\n" +
  6188. " GOODSLEVELTYPEID,\n" +
  6189. " GROUTINGDATE,\n" +
  6190. " GROUTINGMOULDCODE,\n" +
  6191. " MOULDCODE,\n" +
  6192. " GROUTINGUSERID,\n" +
  6193. " GROUTINGUSERCODE,\n" +
  6194. " GROUTINGNUM,\n" +
  6195. " GROUTINGDAILYID,\n" +
  6196. " GROUTINGDAILYDETAILID,\n" +
  6197. " GROUTINGLINEID,\n" +
  6198. " GROUTINGLINECODE,\n" +
  6199. " GROUTINGLINENAME,\n" +
  6200. " GMOULDTYPEID,\n" +
  6201. " CANMANYTIMES,\n" +
  6202. " GROUTINGLINEDETAILID,\n" +
  6203. " SPECIALREPAIRFLAG,\n" +
  6204. " CLASSESSETTINGID,\n" +
  6205. " LOGOID,\n" +
  6206. " BACKOUTTIME,\n" +
  6207. " BACKOUTUSERID,\n" +
  6208. " BACKOUTUSERCODE,\n" +
  6209. " CHECKTIME,\n" +
  6210. " SYSDATE\n" +
  6211. " FROM TP_PM_PRODUCTIONDATA\n" +
  6212. " WHERE VALUEFLAG = '1'\n" +
  6213. " AND PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6214. paras = new OracleParameter[]
  6215. {
  6216. new OracleParameter(":NEWPRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input),
  6217. new OracleParameter(":USERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6218. new OracleParameter(":USERCODE",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6219. new OracleParameter(":USERNAME",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6220. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6221. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6222. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6223. };*/
  6224. #endregion
  6225. sqlString = "INSERT INTO TP_PM_PRODUCTIONDATA(\n" +
  6226. " PRODUCTIONDATAID,\n" +
  6227. " BARCODE,\n" +
  6228. " CENTRALIZEDBATCHNO,\n" +
  6229. " PRODUCTIONLINEID,\n" +
  6230. " PRODUCTIONLINECODE,\n" +
  6231. " PRODUCTIONLINENAME,\n" +
  6232. " PROCEDUREID,\n" +
  6233. " PROCEDURECODE,\n" +
  6234. " PROCEDURENAME,\n" +
  6235. " PROCEDUREMODEL,\n" +
  6236. " MODELTYPE,\n" +
  6237. " PIECETYPE,\n" +
  6238. " ISREWORKED,\n" +
  6239. " NODETYPE,\n" +
  6240. " ISPUBLICBODY,\n" +
  6241. " ISREFIRE,\n" +
  6242. " ORGANIZATIONID,\n" +
  6243. " GOODSID,\n" +
  6244. " GOODSCODE,\n" +
  6245. " GOODSNAME,\n" +
  6246. " USERID,\n" +
  6247. " USERCODE,\n" +
  6248. " USERNAME,\n" +
  6249. " KILNID,\n" +
  6250. " KILNCODE,\n" +
  6251. " KILNNAME,\n" +
  6252. " KILNCARID,\n" +
  6253. " KILNCARCODE,\n" +
  6254. " KILNCARNAME,\n" +
  6255. " KILNCARBATCHNO,\n" +
  6256. " KILNCARPOSITION,\n" +
  6257. " REWORKPROCEDUREID,\n" +
  6258. " REWORKPROCEDURECODE,\n" +
  6259. " REWORKPROCEDURENAME,\n" +
  6260. " REMARKS,\n" +
  6261. " ACCOUNTDATE,\n" +
  6262. " SETTLEMENTFLAG,\n" +
  6263. " ACCOUNTID,\n" +
  6264. " VALUEFLAG,\n" +
  6265. " CREATETIME,\n" +
  6266. " CREATEUSERID,\n" +
  6267. " UPDATETIME,\n" +
  6268. " UPDATEUSERID,\n" +
  6269. //" OPTIMESTAMP,\n" +
  6270. " GOODSLEVELID,\n" +
  6271. " GOODSLEVELTYPEID,\n" +
  6272. " GROUTINGDATE,\n" +
  6273. " GROUTINGMOULDCODE,\n" +
  6274. " MOULDCODE,\n" +
  6275. " GROUTINGUSERID,\n" +
  6276. " GROUTINGUSERCODE,\n" +
  6277. " GROUTINGNUM,\n" +
  6278. " GROUTINGDAILYID,\n" +
  6279. " GROUTINGDAILYDETAILID,\n" +
  6280. " GROUTINGLINEID,\n" +
  6281. " GROUTINGLINECODE,\n" +
  6282. " GROUTINGLINENAME,\n" +
  6283. " GMOULDTYPEID,\n" +
  6284. " CANMANYTIMES,\n" +
  6285. " GROUTINGLINEDETAILID,\n" +
  6286. " SPECIALREPAIRFLAG,\n" +
  6287. " CLASSESSETTINGID,\n" +
  6288. " LOGOID,\n" +
  6289. " BACKOUTTIME,\n" +
  6290. " BACKOUTUSERID,\n" +
  6291. " BACKOUTUSERCODE,\n" +
  6292. " CHECKTIME,\n" +
  6293. " TAMPERTIME)\n" +
  6294. " VALUES( :NEWPRODUCTIONDATAID,\n" +
  6295. " :BARCODE,\n" +
  6296. " :CENTRALIZEDBATCHNO,\n" +
  6297. " :PRODUCTIONLINEID,\n" +
  6298. " :PRODUCTIONLINECODE,\n" +
  6299. " :PRODUCTIONLINENAME,\n" +
  6300. " :PROCEDUREID,\n" +
  6301. " :PROCEDURECODE,\n" +
  6302. " :PROCEDURENAME,\n" +
  6303. " :PROCEDUREMODEL,\n" +
  6304. " :MODELTYPE,\n" +
  6305. " :PIECETYPE,\n" +
  6306. " :ISREWORKED,\n" +
  6307. " :NODETYPE,\n" +
  6308. " :ISPUBLICBODY,\n" +
  6309. " :ISREFIRE,\n" +
  6310. " :ORGANIZATIONID,\n" +
  6311. " :GOODSID,\n" +
  6312. " :GOODSCODE,\n" +
  6313. " :GOODSNAME,\n" +
  6314. " :USERID,\n" +
  6315. " :USERCODE,\n" +
  6316. " :USERNAME,\n" +
  6317. " :KILNID,\n" +
  6318. " :KILNCODE,\n" +
  6319. " :KILNNAME,\n" +
  6320. " :KILNCARID,\n" +
  6321. " :KILNCARCODE,\n" +
  6322. " :KILNCARNAME,\n" +
  6323. " :KILNCARBATCHNO,\n" +
  6324. " :KILNCARPOSITION,\n" +
  6325. " :REWORKPROCEDUREID,\n" +
  6326. " :REWORKPROCEDURECODE,\n" +
  6327. " :REWORKPROCEDURENAME,\n" +
  6328. " :REMARKS,\n" +
  6329. " :ACCOUNTDATE,\n" +
  6330. " :SETTLEMENTFLAG,\n" +
  6331. " :ACCOUNTID,\n" +
  6332. " '1',\n" +
  6333. " :CREATETIME,\n" +
  6334. " :CREATEUSERID,\n" +
  6335. " :UPDATETIME,\n" +
  6336. " :UPDATEUSERID,\n" +
  6337. //" OPTIMESTAMP,\n" +
  6338. " :GOODSLEVELID,\n" +
  6339. " :GOODSLEVELTYPEID,\n" +
  6340. " :GROUTINGDATE,\n" +
  6341. " :GROUTINGMOULDCODE,\n" +
  6342. " :MOULDCODE,\n" +
  6343. " :GROUTINGUSERID,\n" +
  6344. " :GROUTINGUSERCODE,\n" +
  6345. " :GROUTINGNUM,\n" +
  6346. " :GROUTINGDAILYID,\n" +
  6347. " :GROUTINGDAILYDETAILID,\n" +
  6348. " :GROUTINGLINEID,\n" +
  6349. " :GROUTINGLINECODE,\n" +
  6350. " :GROUTINGLINENAME,\n" +
  6351. " :GMOULDTYPEID,\n" +
  6352. " :CANMANYTIMES,\n" +
  6353. " :GROUTINGLINEDETAILID,\n" +
  6354. " :SPECIALREPAIRFLAG,\n" +
  6355. " :CLASSESSETTINGID,\n" +
  6356. " :LOGOID,\n" +
  6357. " :BACKOUTTIME,\n" +
  6358. " :BACKOUTUSERID,\n" +
  6359. " :BACKOUTUSERCODE,\n" +
  6360. " :CHECKTIME,\n" +
  6361. " SYSDATE)\n";
  6362. DataRow row = data.Rows[0];
  6363. paras = new OracleParameter[]
  6364. {
  6365. new OracleParameter(":NEWPRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input),
  6366. new OracleParameter(":USERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6367. new OracleParameter(":USERCODE",OracleDbType.Varchar2, sUserInfo.UserCode,ParameterDirection.Input),
  6368. new OracleParameter(":USERNAME",OracleDbType.Varchar2, sUserInfo.UserName,ParameterDirection.Input),
  6369. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6370. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6371. //new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6372. new OracleParameter(":BARCODE",OracleDbType.NVarchar2, row["BARCODE"],ParameterDirection.Input),
  6373. new OracleParameter(":CENTRALIZEDBATCHNO",OracleDbType.Varchar2, row["CENTRALIZEDBATCHNO"],ParameterDirection.Input),
  6374. new OracleParameter(":PRODUCTIONLINEID",OracleDbType.Int32, row["PRODUCTIONLINEID"],ParameterDirection.Input),
  6375. new OracleParameter(":PRODUCTIONLINECODE",OracleDbType.NVarchar2, row["PRODUCTIONLINECODE"],ParameterDirection.Input),
  6376. new OracleParameter(":PRODUCTIONLINENAME",OracleDbType.NVarchar2, row["PRODUCTIONLINENAME"],ParameterDirection.Input),
  6377. new OracleParameter(":PROCEDUREID",OracleDbType.Int32, row["PROCEDUREID"],ParameterDirection.Input),
  6378. new OracleParameter(":PROCEDURECODE",OracleDbType.NVarchar2, row["PROCEDURECODE"],ParameterDirection.Input),
  6379. new OracleParameter(":PROCEDURENAME",OracleDbType.NVarchar2, row["PROCEDURENAME"],ParameterDirection.Input),
  6380. new OracleParameter(":PROCEDUREMODEL",OracleDbType.Char, row["PROCEDUREMODEL"],ParameterDirection.Input),
  6381. new OracleParameter(":MODELTYPE",OracleDbType.Int32, row["MODELTYPE"],ParameterDirection.Input),
  6382. new OracleParameter(":PIECETYPE",OracleDbType.Char, row["PIECETYPE"],ParameterDirection.Input),
  6383. new OracleParameter(":ISREWORKED",OracleDbType.Char, row["ISREWORKED"],ParameterDirection.Input),
  6384. new OracleParameter(":NODETYPE",OracleDbType.Char, row["NODETYPE"],ParameterDirection.Input),
  6385. new OracleParameter(":ISPUBLICBODY",OracleDbType.Char, row["ISPUBLICBODY"],ParameterDirection.Input),
  6386. new OracleParameter(":ISREFIRE",OracleDbType.Char, row["ISREFIRE"],ParameterDirection.Input),
  6387. new OracleParameter(":ORGANIZATIONID",OracleDbType.Int32, row["ORGANIZATIONID"],ParameterDirection.Input),
  6388. new OracleParameter(":GOODSID",OracleDbType.Int32, row["GOODSID"],ParameterDirection.Input),
  6389. new OracleParameter(":GOODSCODE",OracleDbType.NVarchar2, row["GOODSCODE"],ParameterDirection.Input),
  6390. new OracleParameter(":GOODSNAME",OracleDbType.NVarchar2, row["GOODSNAME"],ParameterDirection.Input),
  6391. new OracleParameter(":KILNID",OracleDbType.Int32, row["KILNID"],ParameterDirection.Input),
  6392. new OracleParameter(":KILNCODE",OracleDbType.NVarchar2, row["KILNCODE"],ParameterDirection.Input),
  6393. new OracleParameter(":KILNNAME",OracleDbType.NVarchar2, row["KILNNAME"],ParameterDirection.Input),
  6394. new OracleParameter(":KILNCARID",OracleDbType.Int32, row["KILNCARID"],ParameterDirection.Input),
  6395. new OracleParameter(":KILNCARCODE",OracleDbType.NVarchar2, row["KILNCARCODE"],ParameterDirection.Input),
  6396. new OracleParameter(":KILNCARNAME",OracleDbType.NVarchar2, row["KILNCARNAME"],ParameterDirection.Input),
  6397. new OracleParameter(":KILNCARBATCHNO",OracleDbType.NVarchar2, row["KILNCARBATCHNO"],ParameterDirection.Input),
  6398. new OracleParameter(":KILNCARPOSITION",OracleDbType.Int32, row["KILNCARPOSITION"],ParameterDirection.Input),
  6399. new OracleParameter(":REWORKPROCEDUREID",OracleDbType.Int32, row["REWORKPROCEDUREID"],ParameterDirection.Input),
  6400. new OracleParameter(":REWORKPROCEDURECODE",OracleDbType.NVarchar2, row["REWORKPROCEDURECODE"],ParameterDirection.Input),
  6401. new OracleParameter(":REWORKPROCEDURENAME",OracleDbType.NVarchar2, row["REWORKPROCEDURENAME"],ParameterDirection.Input),
  6402. new OracleParameter(":REMARKS",OracleDbType.NVarchar2, row["REMARKS"],ParameterDirection.Input),
  6403. new OracleParameter(":ACCOUNTDATE",OracleDbType.Date, row["ACCOUNTDATE"],ParameterDirection.Input),
  6404. new OracleParameter(":SETTLEMENTFLAG",OracleDbType.Char, row["SETTLEMENTFLAG"],ParameterDirection.Input),
  6405. new OracleParameter(":ACCOUNTID",OracleDbType.Int32, row["ACCOUNTID"],ParameterDirection.Input),
  6406. new OracleParameter(":CREATETIME",OracleDbType.Date, row["CREATETIME"],ParameterDirection.Input),
  6407. new OracleParameter(":UPDATETIME",OracleDbType.Date, row["UPDATETIME"],ParameterDirection.Input),
  6408. new OracleParameter(":GOODSLEVELID",OracleDbType.Int32, row["GOODSLEVELID"],ParameterDirection.Input),
  6409. new OracleParameter(":GOODSLEVELTYPEID",OracleDbType.Int32, row["GOODSLEVELTYPEID"],ParameterDirection.Input),
  6410. new OracleParameter(":GROUTINGDATE",OracleDbType.Date, row["GROUTINGDATE"],ParameterDirection.Input),
  6411. new OracleParameter(":GROUTINGMOULDCODE",OracleDbType.NVarchar2, row["GROUTINGMOULDCODE"],ParameterDirection.Input),
  6412. new OracleParameter(":MOULDCODE",OracleDbType.NVarchar2, row["MOULDCODE"],ParameterDirection.Input),
  6413. new OracleParameter(":GROUTINGUSERID",OracleDbType.Int32, row["GROUTINGUSERID"],ParameterDirection.Input),
  6414. new OracleParameter(":GROUTINGUSERCODE",OracleDbType.NVarchar2, row["GROUTINGUSERCODE"],ParameterDirection.Input),
  6415. new OracleParameter(":GROUTINGNUM",OracleDbType.Decimal, row["GROUTINGNUM"],ParameterDirection.Input),
  6416. new OracleParameter(":GROUTINGDAILYID",OracleDbType.Int32, row["GROUTINGDAILYID"],ParameterDirection.Input),
  6417. new OracleParameter(":GROUTINGDAILYDETAILID",OracleDbType.Int32, row["GROUTINGDAILYDETAILID"],ParameterDirection.Input),
  6418. new OracleParameter(":GROUTINGLINEID",OracleDbType.Int32, row["GROUTINGLINEID"],ParameterDirection.Input),
  6419. new OracleParameter(":GROUTINGLINECODE",OracleDbType.NVarchar2, row["GROUTINGLINECODE"],ParameterDirection.Input),
  6420. new OracleParameter(":GROUTINGLINENAME",OracleDbType.NVarchar2, row["GROUTINGLINENAME"],ParameterDirection.Input),
  6421. new OracleParameter(":GMOULDTYPEID",OracleDbType.Int32, row["GMOULDTYPEID"],ParameterDirection.Input),
  6422. new OracleParameter(":CANMANYTIMES",OracleDbType.Char, row["CANMANYTIMES"],ParameterDirection.Input),
  6423. new OracleParameter(":GROUTINGLINEDETAILID",OracleDbType.Int32, row["GROUTINGLINEDETAILID"],ParameterDirection.Input),
  6424. new OracleParameter(":SPECIALREPAIRFLAG",OracleDbType.Char, row["SPECIALREPAIRFLAG"],ParameterDirection.Input),
  6425. new OracleParameter(":CLASSESSETTINGID",OracleDbType.Int32, row["CLASSESSETTINGID"],ParameterDirection.Input),
  6426. new OracleParameter(":LOGOID",OracleDbType.Int32, row["LOGOID"],ParameterDirection.Input),
  6427. new OracleParameter(":BACKOUTTIME",OracleDbType.Date, row["BACKOUTTIME"],ParameterDirection.Input),
  6428. new OracleParameter(":BACKOUTUSERID",OracleDbType.Int32, row["BACKOUTUSERID"],ParameterDirection.Input),
  6429. new OracleParameter(":BACKOUTUSERCODE",OracleDbType.NVarchar2, row["BACKOUTUSERCODE"],ParameterDirection.Input),
  6430. new OracleParameter(":CHECKTIME",OracleDbType.Date, row["CHECKTIME"],ParameterDirection.Input),
  6431. };
  6432. int returnRows = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6433. #endregion
  6434. #region 查询刚插入得数据
  6435. sqlString = "SELECT * FROM TP_PM_PRODUCTIONDATA PD WHERE PD.VALUEFLAG = '1' AND PD.PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6436. paras = new OracleParameter[]
  6437. {
  6438. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, newProductionDataID,ParameterDirection.Input)
  6439. };
  6440. DataTable dtResult = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  6441. ProductionDataEntity newProductionDataEntity;
  6442. if (dtResult != null && dtResult.Rows.Count > 0)
  6443. {
  6444. newProductionDataEntity = DataConvert.DataRowConvertToObject<ProductionDataEntity>(dtResult.Rows[0]);
  6445. }
  6446. else
  6447. {
  6448. sre.Status = Constant.ServiceResultStatus.Other;
  6449. sre.Message = "【此条码生产数据已被修改,请重新扫描此条码】";
  6450. return sre;
  6451. }
  6452. #endregion
  6453. #region 删除原数据
  6454. // 删除生产数据
  6455. sqlString = "UPDATE TP_PM_PRODUCTIONDATA\n" +
  6456. " SET VALUEFLAG = '0'\n" +
  6457. " , BACKOUTTIME = sysdate\n" +
  6458. " , BACKOUTUSERID = " + sUserInfo.UserID + "\n" +
  6459. " , BACKOUTUSERCODE = '"+ sUserInfo.UserCode+ "'\n" +
  6460. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6461. paras = new OracleParameter[]
  6462. {
  6463. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6464. };
  6465. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6466. // 删除缺陷
  6467. sqlString = "UPDATE TP_PM_DEFECT\n" +
  6468. " SET VALUEFLAG = '0'\n" +
  6469. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID";
  6470. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6471. // 删除缺陷责任人
  6472. sqlString = "UPDATE TP_PM_DEFECTRESPONSIBLE A\n" +
  6473. " SET A.VALUEFLAG = '0'\n" +
  6474. " WHERE A.PRODUCTIONDEFECTID IN\n" +
  6475. " (SELECT PRODUCTIONDEFECTID\n" +
  6476. " FROM TP_PM_DEFECT\n" +
  6477. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID)";
  6478. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6479. #endregion
  6480. #region 条码有缺陷
  6481. // 存在缺陷 插入缺陷表
  6482. if (productionDataEntity.ProductionDefects != null)
  6483. {
  6484. #region 查询工序信息
  6485. ProcedureEntity procedure = GetProcedurByID(oracleTrConn, productionDataEntity.ProcedureID);
  6486. #endregion
  6487. #region 取最近一条缺陷记录
  6488. sqlString = "SELECT PRODUCTIONDEFECTID\n" +
  6489. " FROM TP_PM_DEFECT\n" +
  6490. " WHERE PRODUCTIONDATAID = :PRODUCTIONDATAID\n" +
  6491. " ORDER BY PRODUCTIONDEFECTID DESC";
  6492. paras = new OracleParameter[]
  6493. {
  6494. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32, productionDataEntity.ProductionDataID,ParameterDirection.Input)
  6495. };
  6496. string productionDefectID = oracleTrConn.GetSqlResultToStr(sqlString, paras);
  6497. int originalProductionDefectID = 0;
  6498. if (!string.IsNullOrEmpty(productionDefectID))
  6499. {
  6500. originalProductionDefectID = int.Parse(productionDefectID);
  6501. }
  6502. #endregion
  6503. foreach (ProductionDefectEntity productionDefect in productionDataEntity.ProductionDefects)
  6504. {
  6505. #region 保存缺陷
  6506. productionDefect.ProductionDataID = newProductionDataID;
  6507. productionDefect.BarCode = newProductionDataEntity.Barcode;
  6508. productionDefect.ProductionLineID = procedure.ProductionLineID;
  6509. productionDefect.ProductionLineCode = procedure.ProductionlineCode;
  6510. productionDefect.ProductionLineName = procedure.ProductionlineName;
  6511. productionDefect.ProcedureID = procedure.ProcedureID;
  6512. productionDefect.ProcedureCode = procedure.ProcedureCode;
  6513. productionDefect.ProcedureName = procedure.ProcedureName;
  6514. productionDefect.UserID = newProductionDataEntity.UserID;
  6515. productionDefect.UserCode = newProductionDataEntity.UserCode;
  6516. productionDefect.UserName = newProductionDataEntity.UserName;
  6517. productionDefect.GoodsID = newProductionDataEntity.GoodsID;
  6518. productionDefect.GoodsCode = newProductionDataEntity.GoodsCode;
  6519. productionDefect.GoodsName = newProductionDataEntity.GoodsName;
  6520. productionDefect.Remarks = newProductionDataEntity.Remarks;
  6521. productionDefect.ScrapResponFlag
  6522. = string.IsNullOrEmpty(productionDefect.ScrapResponFlag) ? "0" : productionDefect.ScrapResponFlag;
  6523. productionDefect.ProductionDefectID = productionDefect.ProductionDefectID == 0 ?
  6524. originalProductionDefectID : productionDefect.ProductionDefectID;
  6525. productionDefect.CreateTime = newProductionDataEntity.CreateTime == null
  6526. ? DateTime.Now : DateTime.Parse(newProductionDataEntity.CreateTime + "");
  6527. productionDefect.CheckTime = newProductionDataEntity.CheckTime;
  6528. // 保存缺陷
  6529. errMsg = AddDefect(oracleTrConn, productionDefect, sUserInfo);
  6530. if (!string.IsNullOrEmpty(errMsg))
  6531. {
  6532. sre.Status = Constant.ServiceResultStatus.Other;
  6533. sre.Message = errMsg;
  6534. return sre;
  6535. }
  6536. #endregion
  6537. }
  6538. }
  6539. #endregion
  6540. // 没有错误 提交事务
  6541. if (string.IsNullOrEmpty(errMsg))
  6542. {
  6543. oracleTrConn.Commit();
  6544. }
  6545. else
  6546. {
  6547. oracleTrConn.Rollback();
  6548. }
  6549. }
  6550. catch (Exception ex)
  6551. {
  6552. oracleTrConn.Rollback();
  6553. throw ex;
  6554. }
  6555. finally
  6556. {
  6557. // 释放资源
  6558. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6559. {
  6560. oracleTrConn.Disconnect();
  6561. }
  6562. }
  6563. return sre;
  6564. }
  6565. /// <summary>
  6566. /// 查询工序信息
  6567. /// </summary>
  6568. /// <param name="oracleTrConn">连接对象</param>
  6569. /// <param name="procedureID">工序ID</param>
  6570. /// <returns>工序实体</returns>
  6571. private static ProcedureEntity GetProcedurByID(IDBTransaction oracleTrConn, int procedureID)
  6572. {
  6573. ProcedureEntity procedureEntity = new ProcedureEntity();
  6574. string procsql = "pro_pm_searchProcedurbyID";
  6575. try
  6576. {
  6577. IDataParameter[] paras = new OracleParameter[]
  6578. {
  6579. new OracleParameter("in_procedureID", OracleDbType.Int32, procedureID, ParameterDirection.Input),
  6580. new OracleParameter("out_result", OracleDbType.RefCursor, ParameterDirection.Output)
  6581. };
  6582. DataSet returnDs = oracleTrConn.ExecStoredProcedure(procsql, paras);
  6583. if (returnDs != null
  6584. && returnDs.Tables.Count > Constant.INT_IS_ZERO
  6585. && returnDs.Tables[0].Rows.Count > Constant.INT_IS_ZERO)
  6586. {
  6587. DataRow row = returnDs.Tables[0].Rows[0];
  6588. // 转实体
  6589. procedureEntity = DataConvert.DataRowConvertToObject<ProcedureEntity>(row);
  6590. return procedureEntity;
  6591. }
  6592. else
  6593. {
  6594. return null;
  6595. }
  6596. }
  6597. catch (Exception ex)
  6598. {
  6599. throw ex;
  6600. }
  6601. }
  6602. /// <summary>
  6603. /// 保存缺陷
  6604. /// </summary>
  6605. /// <param name="oracleTrConn">连接对象</param>
  6606. /// <param name="productionDefect">缺陷数据</param>
  6607. /// <param name="sUserInfo">用户基本信息</param>
  6608. /// <returns>string</returns>
  6609. private static string AddDefect(IDBTransaction oracleTrConn, ProductionDefectEntity productionDefect, SUserInfo sUserInfo)
  6610. {
  6611. // 查询新插入的生产缺陷ID
  6612. string sqlString = "select SEQ_PM_Defect_DefectID.nextval from dual";
  6613. string idStr = oracleTrConn.GetSqlResultToStr(sqlString);
  6614. int newProductionDefectID = 0;
  6615. if (!string.IsNullOrEmpty(idStr))
  6616. {
  6617. newProductionDefectID = int.Parse(idStr);
  6618. }
  6619. else
  6620. {
  6621. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6622. }
  6623. OracleParameter[] paras = null;
  6624. if (productionDefect.ProductionDefectID != 0)
  6625. {
  6626. #region SQL
  6627. sqlString = "INSERT INTO TP_PM_DEFECT\n" +
  6628. " (PRODUCTIONDEFECTID,\n" +
  6629. " PRODUCTIONDATAID,\n" +
  6630. " BARCODE,\n" +
  6631. " PRODUCTIONLINEID,\n" +
  6632. " PRODUCTIONLINECODE,\n" +
  6633. " PRODUCTIONLINENAME,\n" +
  6634. " PROCEDUREID,\n" +
  6635. " PROCEDURECODE,\n" +
  6636. " PROCEDURENAME,\n" +
  6637. " USERID,\n" +
  6638. " USERCODE,\n" +
  6639. " USERNAME,\n" +
  6640. " GOODSID,\n" +
  6641. " GOODSCODE,\n" +
  6642. " GOODSNAME,\n" +
  6643. " DEFECTID,\n" +
  6644. " DEFECTCODE,\n" +
  6645. " DEFECTNAME,\n" +
  6646. " DEFECTPOSITIONID,\n" +
  6647. " DEFECTPOSITIONCODE,\n" +
  6648. " DEFECTPOSITIONNAME,\n" +
  6649. " DEFECTPRODUCTIONDATAID,\n" +
  6650. " DEFECTPROCEDUREID,\n" +
  6651. " DEFECTPROCEDURECODE,\n" +
  6652. " DEFECTPROCEDURENAME,\n" +
  6653. " DEFECTUSERID,\n" +
  6654. " DEFECTUSERCODE,\n" +
  6655. " DEFECTUSERNAME,\n" +
  6656. " DEFECTJOBS,\n" +
  6657. " REMARKS,\n" +
  6658. " ACCOUNTID,\n" +
  6659. " VALUEFLAG,\n" +
  6660. " CREATETIME,\n" +
  6661. " CREATEUSERID,\n" +
  6662. " UPDATETIME,\n" +
  6663. " UPDATEUSERID,\n" +
  6664. " SCRAPRESPONFLAG,\n" +
  6665. " DEFECTFINE,\n" +
  6666. " MISSEDUSERID,\n" +
  6667. " MISSEDUSERCODE,\n" +
  6668. " MISSEDUSERNAME,\n" +
  6669. " SPECIALDEFECT,\n" +
  6670. " DEFECTDEDUCTIONNUM,\n" +
  6671. " CHECKTIME)\n" +
  6672. " SELECT :NEWPRODUCTIONDEFECTID,\n" +
  6673. " :PRODUCTIONDATAID,\n" +
  6674. " BARCODE,\n" +
  6675. " PRODUCTIONLINEID,\n" +
  6676. " PRODUCTIONLINECODE,\n" +
  6677. " PRODUCTIONLINENAME,\n" +
  6678. " PROCEDUREID,\n" +
  6679. " PROCEDURECODE,\n" +
  6680. " PROCEDURENAME,\n" +
  6681. " USERID,\n" +
  6682. " USERCODE,\n" +
  6683. " USERNAME,\n" +
  6684. " GOODSID,\n" +
  6685. " GOODSCODE,\n" +
  6686. " GOODSNAME,\n" +
  6687. " :DEFECTID,\n" +
  6688. " :DEFECTCODE,\n" +
  6689. " :DEFECTNAME,\n" +
  6690. " :DEFECTPOSITIONID,\n" +
  6691. " :DEFECTPOSITIONCODE,\n" +
  6692. " :DEFECTPOSITIONNAME,\n" +
  6693. " DEFECTPRODUCTIONDATAID,\n" +
  6694. " :DEFECTPROCEDUREID,\n" +
  6695. " :DEFECTPROCEDURECODE,\n" +
  6696. " :DEFECTPROCEDURENAME,\n" +
  6697. " :DEFECTUSERID,\n" +
  6698. " :DEFECTUSERCODE,\n" +
  6699. " :DEFECTUSERNAME,\n" +
  6700. " :DEFECTJOBS,\n" +
  6701. " REMARKS,\n" +
  6702. " ACCOUNTID,\n" +
  6703. " '1',\n" +
  6704. " CREATETIME,\n" +
  6705. " :CREATEUSERID,\n" +
  6706. " UPDATETIME,\n" +
  6707. " :UPDATEUSERID,\n" +
  6708. " SCRAPRESPONFLAG,\n" +
  6709. " :DEFECTFINE,\n" +
  6710. " MISSEDUSERID,\n" +
  6711. " MISSEDUSERCODE,\n" +
  6712. " MISSEDUSERNAME,\n" +
  6713. " SPECIALDEFECT,\n" +
  6714. " :DEFECTDEDUCTIONNUM,\n" +
  6715. " CHECKTIME\n" +
  6716. " FROM TP_PM_DEFECT\n" +
  6717. " WHERE PRODUCTIONDEFECTID = :PRODUCTIONDEFECTID";
  6718. #endregion
  6719. #region 参数
  6720. paras = new OracleParameter[]
  6721. {
  6722. new OracleParameter(":NEWPRODUCTIONDEFECTID",OracleDbType.Int32,newProductionDefectID,ParameterDirection.Input),
  6723. new OracleParameter(":PRODUCTIONDATAID",OracleDbType.Int32,productionDefect.ProductionDataID,ParameterDirection.Input),
  6724. new OracleParameter(":DEFECTID",OracleDbType.Int32,productionDefect.DefectID,ParameterDirection.Input),
  6725. new OracleParameter(":DEFECTCODE",OracleDbType.Varchar2,productionDefect.DefectCode,ParameterDirection.Input),
  6726. new OracleParameter(":DEFECTNAME",OracleDbType.Varchar2,productionDefect.DefectName,ParameterDirection.Input),
  6727. new OracleParameter(":DEFECTPOSITIONID",OracleDbType.Int32,productionDefect.DefectPositionID,ParameterDirection.Input),
  6728. new OracleParameter(":DEFECTPOSITIONCODE",OracleDbType.Varchar2,productionDefect.DefectPositionCode,ParameterDirection.Input),
  6729. new OracleParameter(":DEFECTPOSITIONNAME",OracleDbType.Varchar2,productionDefect.DefectPositionName,ParameterDirection.Input),
  6730. new OracleParameter(":DEFECTPROCEDUREID",OracleDbType.Int32,productionDefect.DefectProcedureID,ParameterDirection.Input),
  6731. new OracleParameter(":DEFECTPROCEDURECODE",OracleDbType.Varchar2,productionDefect.DefectProcedureCode,ParameterDirection.Input),
  6732. new OracleParameter(":DEFECTPROCEDURENAME",OracleDbType.Varchar2,productionDefect.DefectProcedureName,ParameterDirection.Input),
  6733. new OracleParameter(":DEFECTUSERID",OracleDbType.Int32,productionDefect.DefectUserID,ParameterDirection.Input),
  6734. new OracleParameter(":DEFECTUSERCODE",OracleDbType.Varchar2,productionDefect.DefectUserCode,ParameterDirection.Input),
  6735. new OracleParameter(":DEFECTUSERNAME",OracleDbType.Varchar2,productionDefect.DefectUserName,ParameterDirection.Input),
  6736. new OracleParameter(":DEFECTJOBS",OracleDbType.Int32,productionDefect.DefectJobs,ParameterDirection.Input),
  6737. new OracleParameter(":CREATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6738. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6739. new OracleParameter(":DEFECTFINE",OracleDbType.Int32,productionDefect.DefectFine,ParameterDirection.Input),
  6740. new OracleParameter(":DefectDeductionNum",OracleDbType.Decimal,productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum,ParameterDirection.Input),
  6741. new OracleParameter(":PRODUCTIONDEFECTID",OracleDbType.Int32,productionDefect.ProductionDefectID,ParameterDirection.Input)
  6742. };
  6743. #endregion
  6744. }
  6745. else
  6746. {
  6747. #region SQL
  6748. sqlString = "insert into tp_pm_defect"
  6749. + " ( ProductionDefectID,"
  6750. + " productiondataid,"
  6751. + " barcode,"
  6752. + " productionlineid,"
  6753. + " productionlinecode,"
  6754. + " productionlinename,"
  6755. + " procedureid,"
  6756. + " procedurecode,"
  6757. + " procedurename,"
  6758. + " userid,"
  6759. + " usercode,"
  6760. + " username,"
  6761. + " goodsid,"
  6762. + " goodscode,"
  6763. + " goodsname,"
  6764. + " defectid,"
  6765. + " defectcode,"
  6766. + " defectname,"
  6767. + " defectpositionid,"
  6768. + " defectpositioncode,"
  6769. + " defectpositionname,"
  6770. + " scrapResponFlag,"
  6771. + " defectproductiondataid,"
  6772. + " defectprocedureid,"
  6773. + " defectprocedurecode,"
  6774. + " defectprocedurename,"
  6775. + " defectuserid,"
  6776. + " defectusercode,"
  6777. + " defectusername,"
  6778. + " defectjobs,"
  6779. + " remarks,"
  6780. + " accountid,"
  6781. + " createuserid,"
  6782. + " CREATETIME,"
  6783. + " defectfine,"
  6784. + " misseduserid,"
  6785. + " missedusercode,"
  6786. + " missedusername,"
  6787. + " updateuserid,SpecialDefect,DefectDeductionNum,CheckTime)"
  6788. + " values"
  6789. + " ("
  6790. + " :ProductionDefectID,"
  6791. + " :productiondataid,"
  6792. + " :barcode,"
  6793. + " :productionlineid,"
  6794. + " :productionlinecode,"
  6795. + " :productionlinename,"
  6796. + " :procedureid,"
  6797. + " :procedurecode,"
  6798. + " :procedurename,"
  6799. + " :userid,"
  6800. + " :usercode,"
  6801. + " :username,"
  6802. + " :goodsid,"
  6803. + " :goodscode,"
  6804. + " :goodsname,"
  6805. + " :defectid,"
  6806. + " :defectcode,"
  6807. + " :defectname,"
  6808. + " :defectpositionid,"
  6809. + " :defectpositioncode,"
  6810. + " :defectpositionname,"
  6811. + " :scrapResponFlag,"
  6812. + " :defectproductiondataid,"
  6813. + " :defectprocedureid,"
  6814. + " :defectprocedurecode,"
  6815. + " :defectprocedurename,"
  6816. + " :defectuserid,"
  6817. + " :defectusercode,"
  6818. + " :defectusername,"
  6819. + " :defectjobs,"
  6820. + " :remarks,"
  6821. + " :accountid,"
  6822. + " :createuserid,"
  6823. + " :createtime,"
  6824. + " :defectfine,"
  6825. + " :misseduserid,"
  6826. + " :missedusercode,"
  6827. + " :missedusername,"
  6828. + " :updateuserid,:SpecialDefect,:DefectDeductionNum,:CheckTime)";
  6829. #endregion
  6830. #region 参数
  6831. paras = new OracleParameter[]
  6832. {
  6833. new OracleParameter(":ProductionDefectID",newProductionDefectID),
  6834. new OracleParameter(":productiondataid",productionDefect.ProductionDataID),
  6835. new OracleParameter(":barcode",productionDefect.BarCode),
  6836. new OracleParameter(":productionlineid",productionDefect.ProductionLineID),
  6837. new OracleParameter(":productionlinecode",productionDefect.ProductionLineCode),
  6838. new OracleParameter(":productionlinename",productionDefect.ProductionLineName),
  6839. new OracleParameter(":procedureid",productionDefect.ProcedureID),
  6840. new OracleParameter(":procedurecode",productionDefect.ProcedureCode),
  6841. new OracleParameter(":procedurename",productionDefect.ProcedureName),
  6842. new OracleParameter(":userid",productionDefect.UserID),
  6843. new OracleParameter(":usercode",productionDefect.UserCode),
  6844. new OracleParameter(":username",productionDefect.UserName),
  6845. new OracleParameter(":goodsid",productionDefect.GoodsID),
  6846. new OracleParameter(":goodscode",productionDefect.GoodsCode),
  6847. new OracleParameter(":goodsname",productionDefect.GoodsName),
  6848. new OracleParameter(":defectid",productionDefect.DefectID),
  6849. new OracleParameter(":defectcode",productionDefect.DefectCode),
  6850. new OracleParameter(":defectname",productionDefect.DefectName),
  6851. new OracleParameter(":defectpositionid",productionDefect.DefectPositionID),
  6852. new OracleParameter(":defectpositioncode",productionDefect.DefectPositionCode),
  6853. new OracleParameter(":defectpositionname",productionDefect.DefectPositionName),
  6854. new OracleParameter(":scrapResponFlag",productionDefect.ScrapResponFlag),
  6855. new OracleParameter(":defectproductiondataid",productionDefect.DefectProductionDataID),
  6856. new OracleParameter(":defectprocedureid",productionDefect.DefectProcedureID),
  6857. new OracleParameter(":defectprocedurecode",productionDefect.DefectProcedureCode),
  6858. new OracleParameter(":defectprocedurename",productionDefect.DefectProcedureName),
  6859. new OracleParameter(":defectuserid",productionDefect.DefectUserID),
  6860. new OracleParameter(":defectusercode",productionDefect.DefectUserCode),
  6861. new OracleParameter(":defectusername",productionDefect.DefectUserName),
  6862. new OracleParameter(":defectjobs",productionDefect.DefectJobs),
  6863. new OracleParameter(":remarks",productionDefect.Remarks),
  6864. new OracleParameter(":accountid",sUserInfo.AccountID),
  6865. new OracleParameter(":createuserid",sUserInfo.UserID),
  6866. new OracleParameter(":createtime",productionDefect.CreateTime),
  6867. new OracleParameter(":defectfine",productionDefect.DefectFine),
  6868. new OracleParameter(":misseduserid",productionDefect.MissedUserID),
  6869. new OracleParameter(":missedusercode",productionDefect.MissedUserCode),
  6870. new OracleParameter(":missedusername",productionDefect.MissedUserName),
  6871. new OracleParameter(":updateuserid",sUserInfo.UserID),
  6872. new OracleParameter(":SpecialDefect",productionDefect.SpecialDefect==null?"0":productionDefect.SpecialDefect),
  6873. new OracleParameter(":DefectDeductionNum",productionDefect.DefectDeductionNum==null?0:productionDefect.DefectDeductionNum),
  6874. new OracleParameter(":CheckTime",productionDefect.CheckTime)
  6875. };
  6876. #endregion
  6877. }
  6878. int result = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6879. // 保存失败
  6880. if (result < 1)
  6881. {
  6882. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6883. }
  6884. #region 插入生产缺陷责任者
  6885. if (productionDefect.DefectResponsibles != null)
  6886. {
  6887. foreach (DefectResponsibleEntity DefectResponsible in productionDefect.DefectResponsibles)
  6888. {
  6889. #region SQL
  6890. sqlString = "insert into tp_pm_defectresponsible"
  6891. + " (productiondefectid,"
  6892. + " staffid,"
  6893. + " userid,"
  6894. + " usercode,"
  6895. + " Ujobsid,"
  6896. + " SJobsID,"
  6897. + " staffstatus,"
  6898. + " accountid,"
  6899. + " createuserid,"
  6900. + " updateuserid)"
  6901. + " values"
  6902. + " (:productiondefectid,"
  6903. + " :staffid,"
  6904. + " :userid,"
  6905. + " :usercode,"
  6906. + " :ujobsid,"
  6907. + " :sjobsid,"
  6908. + " :staffstatus,"
  6909. + " :accountid,"
  6910. + " :createuserid,"
  6911. + " :updateuserid)";
  6912. #endregion
  6913. #region 参数
  6914. paras = new OracleParameter[]
  6915. {
  6916. new OracleParameter(":productiondefectid",OracleDbType.Int32,newProductionDefectID,ParameterDirection.Input),
  6917. new OracleParameter(":staffid",OracleDbType.Int32,DefectResponsible.StaffID,ParameterDirection.Input),
  6918. new OracleParameter(":userid",OracleDbType.Int32,DefectResponsible.UserID,ParameterDirection.Input),
  6919. new OracleParameter(":usercode",OracleDbType.Varchar2,DefectResponsible.UserCode,ParameterDirection.Input),
  6920. new OracleParameter(":ujobsid",OracleDbType.Int32,DefectResponsible.UJobsID,ParameterDirection.Input),
  6921. new OracleParameter(":sjobsid",OracleDbType.Int32,DefectResponsible.SJobsID,ParameterDirection.Input),
  6922. new OracleParameter(":staffstatus",OracleDbType.Int32,DefectResponsible.StaffStatus,ParameterDirection.Input),
  6923. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  6924. new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  6925. new OracleParameter(":updateuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input)
  6926. };
  6927. #endregion
  6928. result = oracleTrConn.ExecuteNonQuery(sqlString, paras);
  6929. // 保存失败
  6930. if (result < 1)
  6931. {
  6932. return string.Format(Messages.MSG_CMN_W001, "条码", "保存");
  6933. }
  6934. }
  6935. }
  6936. #endregion
  6937. return null;
  6938. }
  6939. /// <summary>
  6940. /// 通过条码查出责任工序(成品改判用)
  6941. /// </summary>
  6942. /// <param name="barcode">产品条码</param>
  6943. /// <param name="defectid">缺陷ID</param>
  6944. /// <returns>DataSet</returns>
  6945. public static ServiceResultEntity GetDutyProcedureByBarCodeForTamper(string barcode, int defectid, int accountid)
  6946. {
  6947. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6948. try
  6949. {
  6950. con.Open();
  6951. ServiceResultEntity sre = new ServiceResultEntity();
  6952. DataSet dsReturn = new DataSet();
  6953. //string sqlString = "SELECT pdin.ProductionDataID\n" +
  6954. // " ,pdin.ProcedureID AS DutyProcedureID\n" +
  6955. // " ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  6956. // " ,pdin.ProcedureName AS DutyProcedureName\n" +
  6957. // " ,pdin.NodeType\n" +
  6958. // " ,pdin.ModelType\n" +
  6959. // " ,pdin.classessettingid\n" +
  6960. // " ,pdin.userid\n" +
  6961. // " ,pdin.usercode\n" +
  6962. // " ,pdin.username\n" +
  6963. // " FROM TP_PM_ProductionData pdin\n" +
  6964. // " WHERE pdin.valueflag = '1'\n" +
  6965. // " AND pdin.accountid = :accountid\n" +
  6966. // " AND pdin.Barcode = :Barcode\n" +
  6967. // " AND EXISTS (SELECT 1\n" +
  6968. // " FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  6969. // " WHERE dpJobs.DefectID = :DefectID\n" +
  6970. // " AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  6971. // " ORDER BY pdin.ProductionDataID";
  6972. // 去掉重复工序(取最后一个)
  6973. string sqlString = "select pdin.ProductionDataID\n" +
  6974. " ,pdin.ProcedureID as DutyProcedureID\n" +
  6975. " ,pdin.ProcedureCode as DutyProcedureCode\n" +
  6976. " ,pdin.ProcedureName as DutyProcedureName\n" +
  6977. " ,pdin.NodeType\n" +
  6978. " ,pdin.ModelType\n" +
  6979. " ,pdin.classessettingid\n" +
  6980. " ,pdin.userid\n" +
  6981. " ,pdin.usercode\n" +
  6982. " ,pdin.username\n" +
  6983. " from TP_PM_ProductionDataIn pdin\n" +
  6984. " where pdin.productiondataid in\n" +
  6985. " (select max(pdi.productiondataid) pdid\n" +
  6986. " from TP_PM_ProductionDataIn pdi\n" +
  6987. " where pdi.valueflag = '1'\n" +
  6988. " and pdi.accountid = :accountid\n" +
  6989. " and pdi.Barcode = :Barcode\n" +
  6990. " and exists\n" +
  6991. " (select 1\n" +
  6992. " from TP_PC_DefectProcedureJobs dpJobs\n" +
  6993. " where dpJobs.DefectID = :DefectID\n" +
  6994. " and pdi.ProcedureID = dpJobs.ProcedureID)\n" +
  6995. " group by pdi.ProcedureID)\n" +
  6996. " order by pdin.ProductionDataID";
  6997. OracleParameter[] paras = new OracleParameter[]{
  6998. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  6999. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  7000. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  7001. };
  7002. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  7003. ds.Tables[0].TableName = "TProcedure";
  7004. sqlString = "select procedureid,jobsid from TP_PC_DefectProcedureJobs where TP_PC_DefectProcedureJobs.Defectid=:Defectid";
  7005. paras = new OracleParameter[]
  7006. {
  7007. new OracleParameter(":Defectid",defectid),
  7008. };
  7009. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  7010. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  7011. if (!dsReturn.Tables.Contains("TProcedure"))
  7012. {
  7013. dsReturn.Tables.Add(ds.Tables[0].Copy());
  7014. }
  7015. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  7016. {
  7017. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  7018. }
  7019. sre.Status = Constant.ServiceResultStatus.Success;
  7020. sre.Data = dsReturn;
  7021. return sre;
  7022. }
  7023. catch (Exception ex)
  7024. {
  7025. throw ex;
  7026. }
  7027. finally
  7028. {
  7029. if (con.ConnState == ConnectionState.Open)
  7030. {
  7031. con.Close();
  7032. }
  7033. }
  7034. }
  7035. #endregion
  7036. #region 水效标识
  7037. public static ServiceResultEntity GetGoodsByBarCode(string barcode, SUserInfo sUserInfo)
  7038. {
  7039. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  7040. try
  7041. {
  7042. oracleConn.Open();
  7043. ServiceResultEntity sre = new ServiceResultEntity();
  7044. string gbarcode = null;
  7045. #region 获得注浆条码
  7046. string sqlString = @"select FUN_CMN_GetBarCode(:barcode, null, :accountid) From DUAL";
  7047. OracleParameter[] paras = new OracleParameter[]
  7048. {
  7049. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  7050. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input)
  7051. };
  7052. DataTable dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7053. if (dtResult != null && dtResult.Rows.Count > 0)
  7054. {
  7055. gbarcode = dtResult.Rows[0][0].ToString();
  7056. }
  7057. else
  7058. {
  7059. sre.Status = Constant.ServiceResultStatus.Other;
  7060. sre.OtherStatus = -11;
  7061. sre.Message = "条码【" + barcode + "】,不符合条件。";
  7062. return sre;
  7063. }
  7064. //// 2.判断产品是否在产成品表中
  7065. //sqlString = @"SELECT 1 FROM TP_PM_FINISHEDPRODUCT F WHERE F.VALUEFLAG = 1 AND F.GOODSLEVELTYPEID IN(4,5) AND F.BARCODE = :BARCODE";
  7066. //paras = new OracleParameter[]
  7067. //{
  7068. // new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  7069. //};
  7070. //dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7071. //if (dtResult != null && dtResult.Rows.Count > 0)
  7072. //{
  7073. // sre.Status = Constant.ServiceResultStatus.Other;
  7074. // sre.OtherStatus = -11;
  7075. // sre.Message = "条码【" + barcode + "】,已经是产成品。";
  7076. // return sre;
  7077. //}
  7078. #endregion
  7079. #region 查询产品相关信息
  7080. sqlString = "SELECT GD.BARCODE,\n" +
  7081. //" (GOODS.MATERIALCODE || L.TAGCODE || GD.ONLYCODE) AS FINISHEDBARCODE,\n" +
  7082. " nvl(GD.outlabelcode, (GOODS.MATERIALCODE || (select a.workcode from tp_mst_account a where a.accountid = gd.accountid) || L.TAGCODE || GD.ONLYCODE)) AS FINISHEDBARCODE,\n" +
  7083. " L.LOGONAME || '[' || L.LOGOCODE || ']' AS LOGONAME,\n" +
  7084. " GD.GOODSCODE,\n" +
  7085. " GOODS.GOODSMODEL,\n" +
  7086. //" GOODS.WATERLABELCODE\n" +
  7087. " nvl((select gls.WATERLABELCODE\n" +
  7088. " from TP_MST_GOODSLOGOSAP gls\n" +
  7089. " where gls.goodsid = GD.goodsid\n" +
  7090. " and gls.logoid = GD.LOGOID)\n" +
  7091. " ,GOODS.WATERLABELCODE) WATERLABELCODE\n" +
  7092. " FROM TP_PM_GROUTINGDAILYDETAIL GD\n" +
  7093. " INNER JOIN TP_MST_LOGO L\n" +
  7094. " ON GD.LOGOID = L.LOGOID\n" +
  7095. " INNER JOIN TP_MST_GOODS GOODS\n" +
  7096. " ON GD.GOODSID = GOODS.GOODSID\n" +
  7097. " WHERE GD.VALUEFLAG = '1'\n" +
  7098. " AND GD.BARCODE = :BARCODE";
  7099. paras = new OracleParameter[]
  7100. {
  7101. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, gbarcode, ParameterDirection.Input)
  7102. };
  7103. dtResult = oracleConn.GetSqlResultToDt(sqlString, paras);
  7104. if (dtResult != null && dtResult.Rows.Count > 0)
  7105. {
  7106. sre.Status = Constant.ServiceResultStatus.Success;
  7107. sre.Result = dtResult;
  7108. }
  7109. else
  7110. {
  7111. sre.Status = Constant.ServiceResultStatus.Other;
  7112. sre.OtherStatus = -11;
  7113. sre.Message = "条码【" + barcode + "】,不符合条件。";
  7114. }
  7115. #endregion
  7116. return sre;
  7117. }
  7118. catch (Exception ex)
  7119. {
  7120. throw ex;
  7121. }
  7122. finally
  7123. {
  7124. if (oracleConn.ConnState == ConnectionState.Open)
  7125. {
  7126. oracleConn.Close();
  7127. }
  7128. }
  7129. }
  7130. #endregion
  7131. #region 试验留瓷标记
  7132. /// <summary>
  7133. /// 验证留瓷条码
  7134. /// </summary>
  7135. /// <param name="barcode"></param>
  7136. /// <param name="user"></param>
  7137. /// <param name="saveFlag"></param>
  7138. /// <returns></returns>
  7139. public static ServiceResultEntity CheckRetainBarcode(string barcode, SUserInfo user, string saveFlag)
  7140. {
  7141. IDBConnection conn = null;
  7142. try
  7143. {
  7144. conn = ClsDbFactory.CreateDBConnection(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  7145. conn.Open();
  7146. string sqlString =
  7147. "SELECT gdd.barcode\n" +
  7148. " ,gdd.groutingmouldcode\n" +
  7149. " ,gdd.groutingdate\n" +
  7150. " ,gdd.goodscode\n" +
  7151. " ,gdd.usercode\n" +
  7152. " ,gdd.retainflag\n" +
  7153. " FROM tp_pm_groutingdailydetail gdd\n" +
  7154. " WHERE gdd.accountid = :accountid\n" +
  7155. " AND gdd.barcode = :barcode";
  7156. IDataParameter[] paras = new OracleParameter[]
  7157. {
  7158. new OracleParameter(":accountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  7159. new OracleParameter(":barcode", OracleDbType.NVarchar2, barcode, ParameterDirection.Input),
  7160. };
  7161. DataSet data = conn.GetSqlResultToDs(sqlString, paras);
  7162. ServiceResultEntity sre = new ServiceResultEntity();
  7163. if (data == null || data.Tables.Count == 0 || data.Tables[0].Rows.Count == 0)
  7164. {
  7165. sre.OtherStatus = -1;
  7166. sre.Message = "无效条码";
  7167. return sre;
  7168. }
  7169. DataRow row = data.Tables[0].Rows[0];
  7170. if (saveFlag == "1" && row["retainflag"] + "" == "1")
  7171. {
  7172. sre.OtherStatus = -1;
  7173. sre.Message = "此条码已经留瓷";
  7174. return sre;
  7175. }
  7176. if (saveFlag == "0" && (row["retainflag"] + "" == "0" || string.IsNullOrEmpty(row["retainflag"] + "")))
  7177. {
  7178. sre.OtherStatus = -1;
  7179. sre.Message = "此条码已经撤销留瓷";
  7180. return sre;
  7181. }
  7182. sre.Data = data;
  7183. return sre;
  7184. }
  7185. catch (Exception ex)
  7186. {
  7187. throw ex;
  7188. }
  7189. finally
  7190. {
  7191. if (conn != null &&
  7192. conn.ConnState == ConnectionState.Open)
  7193. {
  7194. conn.Close();
  7195. }
  7196. }
  7197. }
  7198. /// <summary>
  7199. /// 保存留瓷标识
  7200. /// </summary>
  7201. /// <param name="barcode"></param>
  7202. /// <param name="saveFlag"></param>
  7203. /// <returns></returns>
  7204. public static ServiceResultEntity SaveRetainFlag(string[] barcodes, string saveFlag)
  7205. {
  7206. IDBTransaction oracleConn = ClsDbFactory.CreateDBTransaction(Basics.DataAccess.DataBaseType.ORACLE, DataManager.ConnectionString);
  7207. try
  7208. {
  7209. ServiceResultEntity sre = new ServiceResultEntity();
  7210. string sqlString = string.Empty;
  7211. foreach (string barcode in barcodes)
  7212. {
  7213. sqlString = "SELECT gdd.retainflag\n" +
  7214. " FROM tp_pm_groutingdailydetail gdd\n" +
  7215. " WHERE gdd.barcode = :barcode";
  7216. OracleParameter[] paras = new OracleParameter[]
  7217. {
  7218. new OracleParameter(":barcode", barcode)
  7219. };
  7220. string retainflag = oracleConn.GetSqlResultToStr(sqlString, paras);
  7221. // 设为留瓷
  7222. if (saveFlag == "1")
  7223. {
  7224. // 已经留瓷
  7225. if ("1".Equals(retainflag))
  7226. {
  7227. sre.OtherStatus = -1;
  7228. sre.Message = "【"+ barcode + "】已留瓷";
  7229. return sre;
  7230. }
  7231. }
  7232. // 取消留瓷
  7233. else
  7234. {
  7235. // 已经取消留瓷
  7236. if ("0".Equals(retainflag) || string.IsNullOrEmpty(retainflag))
  7237. {
  7238. sre.OtherStatus = -1;
  7239. sre.Message = "【" + barcode + "】已取消留瓷";
  7240. return sre;
  7241. }
  7242. }
  7243. sqlString =
  7244. "UPDATE tp_pm_groutingdailydetail gdd\n" +
  7245. " SET gdd.retainflag = :retainflag\n" +
  7246. " WHERE gdd.barcode = :barcode";
  7247. paras = new OracleParameter[]
  7248. {
  7249. new OracleParameter(":retainflag", saveFlag),
  7250. new OracleParameter(":barcode", barcode)
  7251. };
  7252. sre.OtherStatus += oracleConn.ExecuteNonQuery(sqlString, paras);
  7253. }
  7254. oracleConn.Commit();
  7255. return sre;
  7256. }
  7257. catch (Exception ex)
  7258. {
  7259. throw ex;
  7260. }
  7261. finally
  7262. {
  7263. if (oracleConn.ConnState == ConnectionState.Open)
  7264. {
  7265. oracleConn.Disconnect();
  7266. }
  7267. }
  7268. }
  7269. #endregion
  7270. }
  7271. }