PCModuleLogic.cs 367 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PCModuleLogic.cs
  5. * 2.功能描述:生产配置服务端业务逻辑
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈晓野 2015/03/30 1.00 新建
  9. *******************************************************************************/
  10. using Dongke.IBOSS.PRD.Basics.BaseResources;
  11. using Dongke.IBOSS.PRD.Basics.DataAccess;
  12. using Dongke.IBOSS.PRD.Service.CMNModuleService;
  13. using Dongke.IBOSS.PRD.Service.DataModels;
  14. using Dongke.IBOSS.PRD.WCF.DataModels;
  15. using Dongke.WinForm.Utilities;
  16. using Oracle.ManagedDataAccess.Client;
  17. using SAP.Middleware.Connector;
  18. using System;
  19. using System.Collections.Generic;
  20. using System.Data;
  21. using System.Text;
  22. using System.Configuration;
  23. using Dongke.IBOSS.PRD.Basics.Library;
  24. namespace Dongke.IBOSS.PRD.Service.PCModuleService
  25. {
  26. /// <summary>
  27. /// 生产配置服务端业务逻辑
  28. /// </summary>
  29. public static class PCModuleLogic
  30. {
  31. //SAP服务器配置参数
  32. //public static string appServerHost = ConfigurationManager.AppSettings["SapAppServerHost"].ToString();
  33. //public static string systemNumber = ConfigurationManager.AppSettings["SapSystemNumber"].ToString();
  34. //public static string user = ConfigurationManager.AppSettings["SapUser"].ToString();
  35. //public static string password = ConfigurationManager.AppSettings["SapPassword"].ToString();
  36. //public static string client = ConfigurationManager.AppSettings["SapClient"].ToString();
  37. //SAP服务器配置参数
  38. public static Basics.Library.INIUtility ini = Basics.Library.INIUtility.Instance(Basics.Library.INIUtility.IniFile.SAP_HEGII);
  39. public static string appServerHost = ini.ReadIniData("SAP_RFC_INFO", "SapAppServerHost");
  40. public static string systemNumber = ini.ReadIniData("SAP_RFC_INFO", "SapSystemNumber");
  41. public static string user = ini.ReadIniData("SAP_RFC_INFO", "SapUser");
  42. public static string password = ini.ReadIniData("SAP_RFC_INFO", "SapPassword");
  43. public static string client = ini.ReadIniData("SAP_RFC_INFO", "SapClient");
  44. #region 成型线管理
  45. #region 成型线一览
  46. /// <summary>
  47. /// 取得FPC0101画面(成型线管理)的初始化数据
  48. /// </summary>
  49. /// <param name="user">登录用户信息</param>
  50. /// <returns>初始化数据</returns>
  51. public static ServiceResultEntity GetFPC0101IData(SUserInfo user)
  52. {
  53. IDBConnection conn = null;
  54. try
  55. {
  56. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  57. DataTable type = CMNModuleLogic.GetTP_MST_GMouldType(conn, user, Constant.ValueFlag.Effective);
  58. DataTable status = CMNModuleLogic.GetTP_SYS_GMouldStatus(conn, true);
  59. ServiceResultEntity sre = new ServiceResultEntity();
  60. sre.Data = new DataSet();
  61. sre.Data.Tables.Add(type);
  62. sre.Data.Tables.Add(status);
  63. return sre;
  64. }
  65. catch (Exception ex)
  66. {
  67. throw ex;
  68. }
  69. finally
  70. {
  71. if (conn != null &&
  72. conn.ConnState == ConnectionState.Open)
  73. {
  74. conn.Close();
  75. }
  76. }
  77. }
  78. /// <summary>
  79. /// 取得FPC0101画面(成型线管理)的查询数据
  80. /// </summary>
  81. /// <param name="user">登录用户信息</param>
  82. /// <param name="se">查询条件</param>
  83. /// <returns>查询结果</returns>
  84. public static ServiceResultEntity GetFPC0101SData(SUserInfo user, FPC0101_SE se)
  85. {
  86. IDBConnection conn = null;
  87. try
  88. {
  89. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  90. List<OracleParameter> parameters = new List<OracleParameter>();
  91. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  92. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  93. if (se != null)
  94. {
  95. // 成型线范围权限
  96. if (se.PurviewType.HasValue)
  97. {
  98. sql.Append(" AND EXISTS (SELECT UP.PurviewID");
  99. sql.Append(" FROM TP_MST_UserPurview UP");
  100. sql.Append(" WHERE UP.PurviewType = '" + (se.PurviewType.Value ? (int)Constant.PurviewType.OperateGroutingLine : (int)Constant.PurviewType.ViewGroutingLine) + "'");
  101. sql.Append(" AND (UP.PurviewID = -1 OR UP.PurviewID = gl.GroutingLineID)");
  102. sql.Append(" AND UP.UserId = :UPUserId) ");
  103. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  104. }
  105. // 楼号
  106. if (!string.IsNullOrEmpty(se.BuildingNo))
  107. {
  108. sql.Append(" AND INSTR(gl.BuildingNo, :BuildingNo) > 0");
  109. parameters.Add(new OracleParameter(":BuildingNo", OracleDbType.NVarchar2, se.BuildingNo, ParameterDirection.Input));
  110. }
  111. // 楼层
  112. if (!string.IsNullOrEmpty(se.FloorNo))
  113. {
  114. sql.Append(" AND INSTR(gl.FloorNo, :FloorNo) > 0");
  115. parameters.Add(new OracleParameter(":FloorNo", OracleDbType.NVarchar2, se.FloorNo, ParameterDirection.Input));
  116. }
  117. // 线号
  118. if (!string.IsNullOrEmpty(se.GroutingLineNo))
  119. {
  120. sql.Append(" AND INSTR(gl.GroutingLineNo, :GroutingLineNo) > 0");
  121. parameters.Add(new OracleParameter(":GroutingLineNo", OracleDbType.NVarchar2, se.GroutingLineNo, ParameterDirection.Input));
  122. }
  123. // 成型线编码
  124. if (!string.IsNullOrEmpty(se.GroutingLineCode))
  125. {
  126. sql.Append(" AND INSTR(gl.GroutingLineCode, :GroutingLineCode) > 0");
  127. parameters.Add(new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, se.GroutingLineCode, ParameterDirection.Input));
  128. }
  129. // 成型线名称
  130. if (!string.IsNullOrEmpty(se.GroutingLineName))
  131. {
  132. sql.Append(" AND INSTR(gl.GroutingLineName, :GroutingLineName) > 0");
  133. parameters.Add(new OracleParameter(":GroutingLineName", OracleDbType.NVarchar2, se.GroutingLineName, ParameterDirection.Input));
  134. }
  135. // 成型线类别
  136. if (se.GMouldTypeID.HasValue)
  137. {
  138. sql.Append(" AND gl.GMouldTypeID = :GMouldTypeID");
  139. parameters.Add(new OracleParameter(":GMouldTypeID", OracleDbType.Int32, se.GMouldTypeID.Value, ParameterDirection.Input));
  140. }
  141. // 成型线状态
  142. if (se.GMouldStatus.HasValue)
  143. {
  144. sql.Append(" AND gl.GMouldStatus = :GMouldStatus");
  145. parameters.Add(new OracleParameter(":GMouldStatus", OracleDbType.Int32, se.GMouldStatus.Value, ParameterDirection.Input));
  146. }
  147. // 成型工号
  148. if (!string.IsNullOrEmpty(se.GUserCode))
  149. {
  150. sql.Append(" AND INSTR(U.UserCode, :GroutingUserCode) > 0");
  151. parameters.Add(new OracleParameter(":GroutingUserCode", OracleDbType.NVarchar2, se.GUserCode, ParameterDirection.Input));
  152. }
  153. // 开始使用日期-开始
  154. if (se.BeginUsedDateBegin.HasValue)
  155. {
  156. sql.Append(" AND gl.BeginUsedDate >= :BeginUsedDateBegin");
  157. parameters.Add(new OracleParameter(":BeginUsedDateBegin", OracleDbType.Date, se.BeginUsedDateBegin.Value, ParameterDirection.Input));
  158. }
  159. // 开始使用日期-结束
  160. if (se.BeginUsedDateEnd.HasValue)
  161. {
  162. sql.Append(" AND gl.BeginUsedDate <= :BeginUsedDateEnd");
  163. parameters.Add(new OracleParameter(":BeginUsedDateEnd", OracleDbType.Date, se.BeginUsedDateEnd.Value, ParameterDirection.Input));
  164. }
  165. // 结束使用日期-开始
  166. if (se.EndUsedDateBegin.HasValue)
  167. {
  168. sql.Append(" AND gl.EndUsedDate >= :EndUsedDateBegin");
  169. parameters.Add(new OracleParameter(":EndUsedDateBegin", OracleDbType.Date, se.EndUsedDateBegin.Value, ParameterDirection.Input));
  170. }
  171. // 结束使用日期-结束
  172. if (se.EndUsedDateEnd.HasValue)
  173. {
  174. sql.Append(" AND gl.EndUsedDate <= :EndUsedDateEnd");
  175. parameters.Add(new OracleParameter(":EndUsedDateEnd", OracleDbType.Date, se.EndUsedDateEnd.Value, ParameterDirection.Input));
  176. }
  177. // 产品编号
  178. if (!string.IsNullOrEmpty(se.GoodsCode))
  179. {
  180. sql.Append(" AND EXISTS(SELECT 1");
  181. sql.Append(" FROM tp_pc_groutinglinedetail gdd");
  182. sql.Append(" INNER JOIN tp_mst_goods g");
  183. sql.Append(" ON g.goodsid = gdd.goodsid");
  184. sql.Append(" WHERE gdd.groutinglineid = gl.groutinglineid");
  185. sql.Append(" AND INSTR(g.GoodsCode, :GoodsCode) > 0");
  186. sql.Append(" )");
  187. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, se.GoodsCode, ParameterDirection.Input));
  188. }
  189. // 备注
  190. if (!string.IsNullOrEmpty(se.Remarks))
  191. {
  192. sql.Append(" AND INSTR(gl.Remarks, :Remarks) > 0");
  193. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  194. }
  195. }
  196. sql.Append(" ORDER BY gl.GroutingLineCode");
  197. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  198. ServiceResultEntity sre = new ServiceResultEntity();
  199. if (data == null || data.Rows.Count == 0)
  200. {
  201. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  202. return sre;
  203. }
  204. sre.Data = new DataSet();
  205. sre.Data.Tables.Add(data);
  206. OracleParameter[] paras = new OracleParameter[]
  207. {
  208. new OracleParameter(":GroutingLineID", OracleDbType.Int32, data.Rows[0]["GroutingLineID"], ParameterDirection.Input),
  209. };
  210. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  211. if (dData != null)
  212. {
  213. sre.Data.Tables.Add(dData);
  214. }
  215. return sre;
  216. }
  217. catch (Exception ex)
  218. {
  219. throw ex;
  220. }
  221. finally
  222. {
  223. if (conn != null &&
  224. conn.ConnState == ConnectionState.Open)
  225. {
  226. conn.Close();
  227. }
  228. }
  229. }
  230. /// <summary>
  231. /// 取得FPC0101画面(成型线管理)的查询数据
  232. /// </summary>
  233. /// <param name="user">登录用户信息</param>
  234. /// <param name="ids">多个注浆id(用[,]分开)</param>
  235. /// <returns>查询结果</returns>
  236. public static ServiceResultEntity GetFPC0101SData(SUserInfo user, string ids)
  237. {
  238. IDBConnection conn = null;
  239. try
  240. {
  241. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  242. List<OracleParameter> parameters = new List<OracleParameter>();
  243. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  244. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  245. //if (!string.IsNullOrWhiteSpace(ids))
  246. {
  247. ids = "," + ids + ",";
  248. sql.Append(" AND INSTR(:GroutingLineIDs, ',' || gl.GroutingLineID || ',') > 0");
  249. parameters.Add(new OracleParameter(":GroutingLineIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input));
  250. }
  251. sql.Append(" ORDER BY gl.GroutingLineCode");
  252. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  253. ServiceResultEntity sre = new ServiceResultEntity();
  254. if (data == null || data.Rows.Count == 0)
  255. {
  256. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  257. return sre;
  258. }
  259. sre.Data = new DataSet();
  260. sre.Data.Tables.Add(data);
  261. OracleParameter[] paras = new OracleParameter[]
  262. {
  263. new OracleParameter(":GroutingLineID", OracleDbType.Int32, data.Rows[0]["GroutingLineID"], ParameterDirection.Input),
  264. };
  265. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  266. if (dData != null)
  267. {
  268. sre.Data.Tables.Add(dData);
  269. }
  270. return sre;
  271. }
  272. catch (Exception ex)
  273. {
  274. throw ex;
  275. }
  276. finally
  277. {
  278. if (conn != null &&
  279. conn.ConnState == ConnectionState.Open)
  280. {
  281. conn.Close();
  282. }
  283. }
  284. }
  285. /// <summary>
  286. /// 取得FPC0101画面(成型线管理)的查询成型线明细数据
  287. /// </summary>
  288. /// <param name="user">登录用户信息</param>
  289. /// <param name="id">成型线ID</param>
  290. /// <returns>成型线明细数据</returns>
  291. public static ServiceResultEntity GetFPC0101SDData(SUserInfo user, int id)
  292. {
  293. IDBConnection conn = null;
  294. try
  295. {
  296. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  297. OracleParameter[] paras = new OracleParameter[]
  298. {
  299. new OracleParameter(":GroutingLineID", OracleDbType.Int32, id, ParameterDirection.Input),
  300. };
  301. ServiceResultEntity sre = new ServiceResultEntity();
  302. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  303. return sre;
  304. }
  305. catch (Exception ex)
  306. {
  307. throw ex;
  308. }
  309. finally
  310. {
  311. if (conn != null &&
  312. conn.ConnState == ConnectionState.Open)
  313. {
  314. conn.Close();
  315. }
  316. }
  317. }
  318. /// <summary>
  319. /// 获取查询sql
  320. /// </summary>
  321. /// <returns>sql</returns>
  322. private static string GetGroutingLineSQL()
  323. {
  324. string selSql =
  325. "SELECT gl.GroutingLineID," +
  326. " gl.BuildingNo," +
  327. " gl.FloorNo," +
  328. " gl.GroutingLineNo," +
  329. " gl.GroutingLineCode," +
  330. " gl.GroutingLineName," +
  331. " gl.MouldQuantity," +
  332. " gl.userid," +
  333. " u.usercode," +
  334. " u.username," +
  335. " gl.gmouldtypeid," +
  336. " gmt.gmouldtypename," +
  337. " gl.gmouldstatus," +
  338. " gms.gmouldstatusname," +
  339. " gl.beginuseddate," +
  340. " gl.enduseddate," +
  341. " gl.remarks," +
  342. " gl.OPTimeStamp" +
  343. " FROM tp_pc_groutingline gl" +
  344. " INNER JOIN tp_mst_gmouldtype gmt" +
  345. " ON gl.gmouldtypeid = gmt.gmouldtypeid" +
  346. " INNER JOIN tp_sys_gmouldstatus gms" +
  347. " ON gl.gmouldstatus = gms.gmouldstatusid" +
  348. " INNER JOIN tp_mst_user u" +
  349. " ON u.userid = gl.userid" +
  350. // 账套
  351. " WHERE gl.AccountID = :AccountID" +
  352. " AND gl.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  353. return selSql;
  354. }
  355. /// <summary>
  356. /// 获取查询sql
  357. /// </summary>
  358. /// <returns>sql</returns>
  359. private static string GetGroutingLineDetailSQL()
  360. {
  361. string selSql =
  362. "select gld.groutinglinedetailid," +
  363. " gld.groutinglineid," +
  364. " gld.groutingmouldcode," +
  365. " gld.goodsid," +
  366. " g.goodscode," +
  367. " g.goodsname," +
  368. " g.goodsspecification," +
  369. " gld.groutingcount," +
  370. " gld.gmouldstatus," +
  371. " gms.gmouldstatusname," +
  372. " gld.beginuseddate," +
  373. " gld.mouldcode," +
  374. " gld.remarks" +
  375. " from tp_pc_groutinglinedetail gld" +
  376. " inner join tp_mst_goods g" +
  377. " on g.goodsid = gld.goodsid" +
  378. " inner join tp_mst_goodstype gt" +
  379. " on gt.goodstypeid = g.goodstypeid" +
  380. " inner join tp_sys_gmouldstatus gms" +
  381. " on gld.gmouldstatus = gms.gmouldstatusid" +
  382. " where gld.groutinglineid = :GroutingLineID" +
  383. " and gld.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  384. " order by gld.groutingmouldcode";
  385. return selSql;
  386. }
  387. /// <summary>
  388. /// FPC0101画面(成型线管理)停用、启用成型线
  389. /// </summary>
  390. /// <param name="user">登录用户信息</param>
  391. /// <param name="groutingLineID">成型线ID</param>
  392. /// <param name="opTimeStamp">时间戳</param>
  393. /// <param name="valueFlag">有效标识</param>
  394. /// <returns>操作结果</returns>
  395. public static ServiceResultEntity SetFPC0101DataStatus(SUserInfo user, int groutingLineID, object opTimeStamp, Constant.ValueFlag valueFlag)
  396. {
  397. IDBTransaction tran = null;
  398. try
  399. {
  400. ServiceResultEntity sre = new ServiceResultEntity();
  401. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  402. int executeResult = 0;
  403. #region 校验时间戳
  404. // 校验时间戳
  405. string checkSql =
  406. "SELECT GroutingLineID" +
  407. " FROM TP_PC_GroutingLine" +
  408. " WHERE GroutingLineID = :GroutingLineID" +
  409. " AND OPTimeStamp = :OPTimeStamp" +
  410. " AND ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  411. OracleParameter[] checkParas = new OracleParameter[]
  412. {
  413. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  414. new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, opTimeStamp, ParameterDirection.Input),
  415. };
  416. object checkResult = tran.GetSqlResultToObj(checkSql, checkParas);
  417. if (checkResult == null)
  418. {
  419. sre.Status = Constant.ServiceResultStatus.DataChanged;
  420. return sre;
  421. }
  422. #endregion 校验时间戳
  423. StringBuilder sql = new StringBuilder("UPDATE TP_PC_GroutingLine");
  424. if (valueFlag == Constant.ValueFlag.Invalid)
  425. {
  426. sql.Append(" SET GMouldStatus = '" + (int)Constant.GMouldStatus.Disable + "',");
  427. sql.Append(" EndUsedDate = to_date(sysdate, 'yyyy-mm-dd')");
  428. sql.Append(" WHERE GMouldStatus = '" + (int)Constant.GMouldStatus.Normal + "'");
  429. }
  430. else if (valueFlag == Constant.ValueFlag.Effective)
  431. {
  432. sql.Append(" SET GMouldStatus = '" + (int)Constant.GMouldStatus.Normal + "',");
  433. sql.Append(" BeginUsedDate = to_date(sysdate, 'yyyy-mm-dd'),");
  434. sql.Append(" EndUsedDate = null");
  435. sql.Append(" WHERE GMouldStatus = '" + (int)Constant.GMouldStatus.Disable + "'");
  436. }
  437. sql.Append(" AND GroutingLineID = :GroutingLine");
  438. OracleParameter[] paras = new OracleParameter[]
  439. {
  440. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  441. };
  442. executeResult = tran.ExecuteNonQuery(sql.ToString(), paras);
  443. if (executeResult <= 0)
  444. {
  445. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  446. return sre;
  447. }
  448. tran.Commit();
  449. return sre;
  450. }
  451. catch (Exception ex)
  452. {
  453. if (tran != null &&
  454. tran.ConnState == ConnectionState.Open)
  455. {
  456. tran.Rollback();
  457. }
  458. throw ex;
  459. }
  460. finally
  461. {
  462. if (tran != null &&
  463. tran.ConnState == ConnectionState.Open)
  464. {
  465. tran.Disconnect();
  466. }
  467. }
  468. }
  469. #endregion 成型线一览
  470. #region 成型线
  471. /// <summary>
  472. /// 取得FPC0102画面(成型线管理)的查询数据
  473. /// </summary>
  474. /// <param name="user">登录用户信息</param>
  475. /// <param name="groutingLineID">成型线ID</param>
  476. /// <returns>查询结果</returns>
  477. public static ServiceResultEntity GetFPC0102Data(SUserInfo user, int groutingLineID)
  478. {
  479. IDBConnection conn = null;
  480. try
  481. {
  482. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  483. List<OracleParameter> parameters = new List<OracleParameter>();
  484. StringBuilder sql = new StringBuilder(PCModuleLogic.GetGroutingLineSQL());
  485. sql.Append(" AND gl.GroutingLineID = :GroutingLineID");
  486. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  487. parameters.Add(new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input));
  488. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  489. ServiceResultEntity sre = new ServiceResultEntity();
  490. sre.Data = new DataSet();
  491. if (data != null)
  492. {
  493. sre.Data.Tables.Add(data);
  494. }
  495. OracleParameter[] paras = new OracleParameter[]
  496. {
  497. new OracleParameter(":GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
  498. };
  499. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetGroutingLineDetailSQL(), paras);
  500. if (dData != null)
  501. {
  502. dData.Columns["GroutingMouldCode"].Unique = true;
  503. sre.Data.Tables.Add(dData);
  504. }
  505. return sre;
  506. }
  507. catch (Exception ex)
  508. {
  509. throw ex;
  510. }
  511. finally
  512. {
  513. if (conn != null &&
  514. conn.ConnState == ConnectionState.Open)
  515. {
  516. conn.Close();
  517. }
  518. }
  519. }
  520. /// <summary>
  521. /// 保存FPC0102画面(成型线管理)的数据
  522. /// </summary>
  523. /// <param name="user">登录用户信息</param>
  524. /// <param name="groutingLineInfo">成型线数据</param>
  525. /// <returns>保存结果</returns>
  526. public static ServiceResultEntity SetFPC0102Data(SUserInfo user, DataSet groutingLineInfo)
  527. {
  528. IDBTransaction tran = null;
  529. try
  530. {
  531. ServiceResultEntity sre = new ServiceResultEntity();
  532. if (groutingLineInfo == null ||
  533. groutingLineInfo.Tables.Count != 2 ||
  534. groutingLineInfo.Tables[0].Rows.Count < 1 ||
  535. groutingLineInfo.Tables[1].Rows.Count < 1)
  536. {
  537. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  538. return sre;
  539. }
  540. DataRow line = groutingLineInfo.Tables[0].Rows[0];
  541. DataTable detail = groutingLineInfo.Tables[1];
  542. int lineID = 0;
  543. object id = line["GroutingLine"];
  544. if (id != null && id != DBNull.Value)
  545. {
  546. lineID = Convert.ToInt32(id);
  547. }
  548. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  549. int executeResult = 0;
  550. // 新建成型线
  551. if (lineID < 1)
  552. {
  553. #region 数据校验 成型线编码唯一
  554. // 成型线编码唯一
  555. string checkLineCodeSql =
  556. "SELECT GL.GroutingLineCode" +
  557. " FROM TP_PM_GroutingLine GL" +
  558. " WHERE GL.AccountID = :AccountID" +
  559. " AND GL.GroutingLineCode = :GroutingLineCode";
  560. OracleParameter[] checkLineCodeParas = new OracleParameter[]
  561. {
  562. new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  563. new OracleParameter(":GroutingLineCode", OracleDbType.NVarchar2, line["GroutingLineCode"], ParameterDirection.Input),
  564. };
  565. DataTable checkLineCodeData = tran.GetSqlResultToDt(checkLineCodeSql, checkLineCodeParas);
  566. if (checkLineCodeData != null && checkLineCodeData.Rows.Count > 0)
  567. {
  568. sre.Status = Constant.ServiceResultStatus.DataDuplicated;
  569. sre.Message = string.Format("(成型线编码:{0})", line["GroutingLineCode"]);
  570. }
  571. #endregion 数据校验 成型线编码唯一
  572. #region 新建成型线
  573. // 新建成型线
  574. #region SQL
  575. string seqGroutingLineSql =
  576. "select SEQ_PC_GroutingLine_ID.Nextval from dual;";
  577. #region LineSQL
  578. string insertLineSQL =
  579. "insert into tp_pc_groutingline" +
  580. " (groutinglineid," +
  581. " buildingno," +
  582. " floorno," +
  583. " groutinglineno," +
  584. " groutinglinecode," +
  585. " groutinglinename," +
  586. " mouldquantity," +
  587. " gmouldtypeid," +
  588. " userid," +
  589. //" MonitorID," +
  590. " beginuseddate," +
  591. " enduseddate," +
  592. " gmouldstatus," +
  593. " remarks," +
  594. " accountid," +
  595. " valueflag," +
  596. " createtime," +
  597. " createuserid," +
  598. " updatetime," +
  599. " updateuserid," +
  600. " optimestamp)" +
  601. "values" +
  602. " (:groutinglineid," +
  603. " :buildingno," +
  604. " :floorno," +
  605. " :groutinglineno," +
  606. " :groutinglinecode," +
  607. " :groutinglinename," +
  608. " :mouldquantity," +
  609. " :gmouldtypeid," +
  610. " :userid," +
  611. //" :MonitorID," +
  612. " to_date(sysdate, 'yyyy-mm-dd')," +
  613. " null," +
  614. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  615. " :remarks," +
  616. " :accountid," +
  617. " '" + (int)Constant.ValueFlag.Effective + "'," +
  618. " sysdate," +
  619. " :opuserid," +
  620. " sysdate," +
  621. " :opuserid," +
  622. " systimestamp);";
  623. #endregion LineSQL
  624. #region DetailSQL
  625. string insertDetailSQL =
  626. "insert into tp_pc_groutinglinedetail" +
  627. " (groutinglineid," +
  628. " groutingmouldcode," +
  629. " mouldcode," +
  630. " userid," +
  631. " goodsid," +
  632. " groutingcount," +
  633. " gmouldstatus," +
  634. " beginuseddate," +
  635. " enduseddate," +
  636. " remarks," +
  637. " accountid," +
  638. " valueflag," +
  639. " createtime," +
  640. " createuserid," +
  641. " updatetime," +
  642. " updateuserid," +
  643. " optimestamp)" +
  644. "values" +
  645. " (:groutinglineid," +
  646. " :groutingmouldcode," +
  647. " :mouldcode," +
  648. " :userid," +
  649. " :goodsid," +
  650. " 0," +
  651. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  652. " to_date(sysdate, 'yyyy-mm-dd')," +
  653. " null," +
  654. " :remarks," +
  655. " :accountid," +
  656. " '" + (int)Constant.ValueFlag.Effective + "'," +
  657. " sysdate," +
  658. " :opuserid," +
  659. " sysdate," +
  660. " :opuserid," +
  661. " systimestamp);";
  662. #endregion DetailSQL
  663. #endregion SQL
  664. object glSeq = tran.GetSqlResultToObj(seqGroutingLineSql);
  665. OracleParameter[] insertLineParas = new OracleParameter[]
  666. {
  667. new OracleParameter(":groutinglineid", OracleDbType.Int32, glSeq, ParameterDirection.Input),
  668. new OracleParameter(":buildingno", OracleDbType.NVarchar2, line["buildingno"], ParameterDirection.Input),
  669. new OracleParameter(":floorno", OracleDbType.NVarchar2, line["floorno"], ParameterDirection.Input),
  670. new OracleParameter(":groutinglineno", OracleDbType.NVarchar2, line["groutinglineno"], ParameterDirection.Input),
  671. new OracleParameter(":groutinglinecode", OracleDbType.NVarchar2, line["groutinglinecode"], ParameterDirection.Input),
  672. new OracleParameter(":groutinglinename", OracleDbType.NVarchar2, line["groutinglinename"], ParameterDirection.Input),
  673. new OracleParameter(":mouldquantity", OracleDbType.Decimal, line["mouldquantity"], ParameterDirection.Input),
  674. new OracleParameter(":gmouldtypeid", OracleDbType.Int32, line["gmouldtypeid"], ParameterDirection.Input),
  675. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  676. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  677. new OracleParameter(":remarks", OracleDbType.NVarchar2, line["remarks"], ParameterDirection.Input),
  678. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  679. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  680. };
  681. executeResult = tran.ExecuteNonQuery(insertLineSQL, insertLineParas);
  682. if (executeResult <= 0)
  683. {
  684. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  685. return sre;
  686. }
  687. foreach (DataRow row in detail.Rows)
  688. {
  689. if (row.RowState != DataRowState.Added)
  690. {
  691. continue;
  692. }
  693. OracleParameter[] insertDetailParas = new OracleParameter[]
  694. {
  695. new OracleParameter(":groutinglineid", OracleDbType.Int32, glSeq, ParameterDirection.Input),
  696. new OracleParameter(":groutingmouldcode", OracleDbType.NVarchar2, row["groutingmouldcode"], ParameterDirection.Input),
  697. new OracleParameter(":mouldcode", OracleDbType.NVarchar2, row["mouldcode"], ParameterDirection.Input),
  698. new OracleParameter(":userid", OracleDbType.Int32, row["userid"], ParameterDirection.Input),
  699. new OracleParameter(":goodsid", OracleDbType.Int32, row["goodsid"], ParameterDirection.Input),
  700. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  701. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  702. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  703. };
  704. executeResult = tran.ExecuteNonQuery(insertDetailSQL, insertDetailParas);
  705. if (executeResult <= 0)
  706. {
  707. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  708. return sre;
  709. }
  710. }
  711. #endregion 新建成型线
  712. }
  713. // 编辑成型线
  714. else
  715. {
  716. #region 校验时间戳
  717. string checkSql =
  718. "SELECT GroutingLineID" +
  719. " FROM TP_PC_GroutingLine" +
  720. " WHERE GroutingLineID = :GroutingLineID" +
  721. " AND OPTimeStamp = :OPTimeStamp" +
  722. " AND ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'";
  723. OracleParameter[] checkParas = new OracleParameter[]
  724. {
  725. new OracleParameter(":GroutingLineID", OracleDbType.Int32, lineID, ParameterDirection.Input),
  726. new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, line["OPTimeStamp"], ParameterDirection.Input),
  727. };
  728. object checkResult = tran.GetSqlResultToObj(checkSql, checkParas);
  729. if (checkResult == null)
  730. {
  731. sre.Status = Constant.ServiceResultStatus.DataChanged;
  732. return sre;
  733. }
  734. #endregion 校验时间戳
  735. #region 编辑成型线
  736. #region LineSQL
  737. string updateLineSQL =
  738. "update tp_pc_groutingline" +
  739. " set groutinglinename = :groutinglinename," +
  740. " mouldquantity = :mouldquantity," +
  741. " gmouldtypeid = :gmouldtypeid," +
  742. " userid = :userid," +
  743. " remarks = :remarks," +
  744. " updateuserid = :opuserid" +
  745. " where groutinglineid = :groutinglineid;";
  746. #endregion LineSQL
  747. #region DetailSQL
  748. string insertDetailSQL =
  749. "insert into tp_pc_groutinglinedetail" +
  750. " (groutinglineid," +
  751. " groutingmouldcode," +
  752. " mouldcode," +
  753. " userid," +
  754. " goodsid," +
  755. " groutingcount," +
  756. " gmouldstatus," +
  757. " beginuseddate," +
  758. " enduseddate," +
  759. " remarks," +
  760. " accountid," +
  761. " valueflag," +
  762. " createtime," +
  763. " createuserid," +
  764. " updatetime," +
  765. " updateuserid," +
  766. " optimestamp)" +
  767. "values" +
  768. " (:groutinglineid," +
  769. " :groutingmouldcode," +
  770. " :mouldcode," +
  771. " :userid," +
  772. " :goodsid," +
  773. " 0," +
  774. " '" + (int)Constant.GMouldStatus.Normal + "'," +
  775. " to_date(sysdate, 'yyyy-mm-dd')," +
  776. " null," +
  777. " :remarks," +
  778. " :accountid," +
  779. " '" + (int)Constant.ValueFlag.Effective + "'," +
  780. " sysdate," +
  781. " :opuserid," +
  782. " sysdate," +
  783. " :opuserid," +
  784. " systimestamp);";
  785. string updateDetailSQL =
  786. "update tp_pc_groutinglinedetail" +
  787. " set remarks = :remarks, updateuserid = :opuserid" +
  788. " where groutinglinedetailid = :groutinglinedetailid;";
  789. #endregion DetailSQL
  790. OracleParameter[] updateLineParas = new OracleParameter[]
  791. {
  792. new OracleParameter(":groutinglineid", OracleDbType.Int32, lineID, ParameterDirection.Input),
  793. new OracleParameter(":mouldquantity", OracleDbType.Decimal, line["mouldquantity"], ParameterDirection.Input),
  794. new OracleParameter(":gmouldtypeid", OracleDbType.Int32, line["gmouldtypeid"], ParameterDirection.Input),
  795. new OracleParameter(":userid", OracleDbType.Int32, line["userid"], ParameterDirection.Input),
  796. new OracleParameter(":remarks", OracleDbType.NVarchar2, line["remarks"], ParameterDirection.Input),
  797. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  798. };
  799. executeResult = tran.ExecuteNonQuery(updateLineSQL, updateLineParas);
  800. if (executeResult <= 0)
  801. {
  802. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  803. return sre;
  804. }
  805. foreach (DataRow row in detail.Rows)
  806. {
  807. if (row.RowState == DataRowState.Added)
  808. {
  809. OracleParameter[] insertDetailParas = new OracleParameter[]
  810. {
  811. new OracleParameter(":groutinglineid", OracleDbType.Int32, lineID, ParameterDirection.Input),
  812. new OracleParameter(":groutingmouldcode", OracleDbType.NVarchar2, row["groutingmouldcode"], ParameterDirection.Input),
  813. new OracleParameter(":mouldcode", OracleDbType.NVarchar2, row["mouldcode"], ParameterDirection.Input),
  814. new OracleParameter(":userid", OracleDbType.Int32, row["userid"], ParameterDirection.Input),
  815. new OracleParameter(":goodsid", OracleDbType.Int32, row["goodsid"], ParameterDirection.Input),
  816. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  817. new OracleParameter(":accountid", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  818. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  819. };
  820. executeResult = tran.ExecuteNonQuery(insertDetailSQL, insertDetailParas);
  821. if (executeResult <= 0)
  822. {
  823. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  824. return sre;
  825. }
  826. }
  827. if (row.RowState == DataRowState.Modified)
  828. {
  829. OracleParameter[] updateDetailParas = new OracleParameter[]
  830. {
  831. new OracleParameter(":groutinglinedetailid", OracleDbType.Int32, row["groutinglinedetailid"], ParameterDirection.Input),
  832. new OracleParameter(":remarks", OracleDbType.NVarchar2, row["remarks"], ParameterDirection.Input),
  833. new OracleParameter(":opuserid", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  834. };
  835. executeResult = tran.ExecuteNonQuery(updateDetailSQL, updateDetailParas);
  836. if (executeResult <= 0)
  837. {
  838. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  839. return sre;
  840. }
  841. }
  842. }
  843. #endregion 编辑成型线
  844. }
  845. tran.Commit();
  846. return sre;
  847. }
  848. catch (Exception ex)
  849. {
  850. if (tran != null &&
  851. tran.ConnState == ConnectionState.Open)
  852. {
  853. tran.Rollback();
  854. }
  855. throw ex;
  856. }
  857. finally
  858. {
  859. if (tran != null &&
  860. tran.ConnState == ConnectionState.Open)
  861. {
  862. tran.Disconnect();
  863. }
  864. }
  865. }
  866. #endregion 成型线
  867. #region 模具管理
  868. #endregion 模具管理
  869. #endregion 成型线管理
  870. #region 班次配置管理
  871. /// <summary>
  872. /// 取得FPC0401画面(班次配置)的查询数据
  873. /// </summary>
  874. /// <param name="user">登录用户信息</param>
  875. /// <param name="se">查询条件</param>
  876. /// <returns>查询结果</returns>
  877. public static ServiceResultEntity GetFPC0401SData(SUserInfo user, FPC0401_SE se)
  878. {
  879. IDBConnection conn = null;
  880. try
  881. {
  882. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  883. StringBuilder sql = new StringBuilder(PCModuleLogic.GetClassesSettingSQL());
  884. List<OracleParameter> parameters = new List<OracleParameter>();
  885. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  886. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  887. if (se != null)
  888. {
  889. // 员工工号
  890. if (!string.IsNullOrEmpty(se.UserCode))
  891. {
  892. sql.Append(" AND INSTR(U.UserCode, :UserCode) > 0");
  893. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, se.UserCode, ParameterDirection.Input));
  894. }
  895. // 开始时间
  896. if (se.DateBegin.HasValue)
  897. {
  898. sql.Append(" AND C.AccountDate >= :DateBegin");
  899. parameters.Add(new OracleParameter(":DateBegin", OracleDbType.Date, se.DateBegin, ParameterDirection.Input));
  900. }
  901. // 结束时间
  902. if (se.DateEnd.HasValue)
  903. {
  904. sql.Append(" AND C.AccountDate <= :DateEnd");
  905. parameters.Add(new OracleParameter(":DateEnd", OracleDbType.Date, se.DateEnd, ParameterDirection.Input));
  906. }
  907. // 员工工号
  908. if (!string.IsNullOrEmpty(se.Remarks))
  909. {
  910. sql.Append(" AND INSTR(C.Remarks, :Remarks) > 0");
  911. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  912. }
  913. }
  914. sql.Append(" ORDER BY C.AccountDate, U.UserCode, C.ClassesSettingID");
  915. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  916. ServiceResultEntity sre = new ServiceResultEntity();
  917. if (data == null || data.Rows.Count == 0)
  918. {
  919. //sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  920. return sre;
  921. }
  922. sre.Data = new DataSet();
  923. sre.Data.Tables.Add(data);
  924. OracleParameter[] paras = new OracleParameter[]
  925. {
  926. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, data.Rows[0]["ClassesSettingID"], ParameterDirection.Input),
  927. };
  928. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetClassesDetailSQL(), paras);
  929. if (dData != null)
  930. {
  931. sre.Data.Tables.Add(dData);
  932. }
  933. return sre;
  934. }
  935. catch (Exception ex)
  936. {
  937. throw ex;
  938. }
  939. finally
  940. {
  941. if (conn != null &&
  942. conn.ConnState == ConnectionState.Open)
  943. {
  944. conn.Close();
  945. }
  946. }
  947. }
  948. /// <summary>
  949. /// 取得FPC0401画面(班次配置)的查询数据
  950. /// </summary>
  951. /// <param name="user">登录用户信息</param>
  952. /// <param name="ids">班次配置ID(多个用【,】隔开)</param>
  953. /// <returns>查询结果</returns>
  954. public static ServiceResultEntity GetFPC0401SData(SUserInfo user, string ids)
  955. {
  956. IDBConnection conn = null;
  957. try
  958. {
  959. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  960. StringBuilder sql = new StringBuilder(PCModuleLogic.GetClassesSettingSQL());
  961. List<OracleParameter> parameters = new List<OracleParameter>();
  962. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  963. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  964. //if (string.IsNullOrWhiteSpace(ids))
  965. {
  966. ids = "," + ids + ",";
  967. sql.Append(" AND INSTR(:ClassesSettingIDs, ',' || C.ClassesSettingID || ',') > 0");
  968. parameters.Add(new OracleParameter(":ClassesSettingIDs", OracleDbType.Varchar2, ids, ParameterDirection.Input));
  969. }
  970. sql.Append(" ORDER BY C.AccountDate, U.UserCode, C.ClassesSettingID");
  971. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  972. ServiceResultEntity sre = new ServiceResultEntity();
  973. if (data == null || data.Rows.Count == 0)
  974. {
  975. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  976. return sre;
  977. }
  978. sre.Data = new DataSet();
  979. sre.Data.Tables.Add(data);
  980. OracleParameter[] paras = new OracleParameter[]
  981. {
  982. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, data.Rows[0]["ClassesSettingID"], ParameterDirection.Input),
  983. };
  984. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetClassesDetailSQL(), paras);
  985. if (dData != null)
  986. {
  987. sre.Data.Tables.Add(data);
  988. }
  989. return sre;
  990. }
  991. catch (Exception ex)
  992. {
  993. throw ex;
  994. }
  995. finally
  996. {
  997. if (conn != null &&
  998. conn.ConnState == ConnectionState.Open)
  999. {
  1000. conn.Close();
  1001. }
  1002. }
  1003. }
  1004. /// <summary>
  1005. /// 取得FPC0401画面(班次配置明细)的查询数据
  1006. /// </summary>
  1007. /// <param name="user">登录用户信息</param>
  1008. /// <param name="id">班次配置ID</param>
  1009. /// <returns>班次配置明细</returns>
  1010. public static ServiceResultEntity GetFPC0401SDData(SUserInfo user, int id)
  1011. {
  1012. IDBConnection conn = null;
  1013. try
  1014. {
  1015. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1016. OracleParameter[] paras = new OracleParameter[]
  1017. {
  1018. new OracleParameter(":ClassesSettingID", OracleDbType.Int32, id, ParameterDirection.Input),
  1019. };
  1020. ServiceResultEntity sre = new ServiceResultEntity();
  1021. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetClassesDetailSQL(), paras);
  1022. return sre;
  1023. }
  1024. catch (Exception ex)
  1025. {
  1026. throw ex;
  1027. }
  1028. finally
  1029. {
  1030. if (conn != null &&
  1031. conn.ConnState == ConnectionState.Open)
  1032. {
  1033. conn.Close();
  1034. }
  1035. }
  1036. }
  1037. /// <summary>
  1038. /// 取得FPC0402画面(班次配置)的查询数据
  1039. /// </summary>
  1040. /// <param name="user">登录用户信息</param>
  1041. /// <param name="id">班次配置ID</param>
  1042. /// <returns>班次配置明细</returns>
  1043. public static ServiceResultEntity GetFPC0402SData(SUserInfo user, int id)
  1044. {
  1045. IDBConnection conn = null;
  1046. try
  1047. {
  1048. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1049. OracleParameter[] paras = new OracleParameter[]
  1050. {
  1051. new OracleParameter(":userid", OracleDbType.Int32, id, ParameterDirection.Input),
  1052. };
  1053. ServiceResultEntity sre = new ServiceResultEntity();
  1054. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetClassUserStaffSQL(), paras);
  1055. return sre;
  1056. }
  1057. catch (Exception ex)
  1058. {
  1059. throw ex;
  1060. }
  1061. finally
  1062. {
  1063. if (conn != null &&
  1064. conn.ConnState == ConnectionState.Open)
  1065. {
  1066. conn.Close();
  1067. }
  1068. }
  1069. }
  1070. /// <summary>
  1071. /// 取得FPC0401画面,班次配置查询SQL
  1072. /// </summary>
  1073. /// <returns>班次配置查询SQL</returns>
  1074. private static string GetClassesSettingSQL()
  1075. {
  1076. string sqlString =
  1077. "SELECT C.ClassesSettingID, " +
  1078. " C.AccountDate, " +
  1079. " U.UserID," +
  1080. " U.UserCode, " +
  1081. " U.UserName, " +
  1082. " O.OrganizationCode, " +
  1083. " O.OrganizationName, " +
  1084. " C.Remarks, " +
  1085. " C.ValueFlag, " +
  1086. " C.CreateTime, " +
  1087. " CU.UserName AS CreateUserName " +
  1088. " FROM TP_PC_ClassesSetting C " +
  1089. " INNER JOIN TP_MST_User U " +
  1090. " ON U.UserID = C.UserID " +
  1091. " INNER JOIN TP_MST_Organization O " +
  1092. " ON O.OrganizationID = C.OrganizationID " +
  1093. " INNER JOIN TP_MST_User CU " +
  1094. " ON CU.UserID = C.CreateUserID " +
  1095. " WHERE C.AccountID = :AccountID " +
  1096. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1097. // 工号操作权限
  1098. " AND EXISTS (SELECT UP.PurviewID" +
  1099. " FROM TP_MST_UserPurview UP" +
  1100. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1101. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1102. " AND UP.UserId = :UPUserId)";
  1103. return sqlString;
  1104. }
  1105. /// <summary>
  1106. /// 取得FPC0401画面,班次配置明细查询SQL
  1107. /// </summary>
  1108. /// <returns>班次配置明细查询SQL</returns>
  1109. private static string GetClassesDetailSQL()
  1110. {
  1111. string sqlString =
  1112. "SELECT CD.ClassesDetailID, " +
  1113. " CD.userid," +
  1114. " CD.usercode," +
  1115. " UJ.JobsCode AS UJobsCode, " +
  1116. " UJ.JobsName AS UJobsName, " +
  1117. " UJ.JobsId AS UJobsId, " +
  1118. " CD.StaffID," +
  1119. " S.StaffCode, " +
  1120. " S.StaffName, " +
  1121. " CD.SOrganizationID," +
  1122. " SO.OrganizationCode AS SOrganizationCode, " +
  1123. " SO.OrganizationName AS SOrganizationName, " +
  1124. " CD.SJobsID," +
  1125. " CD.SJobsID as jobs," +
  1126. " SJ.JobsCode AS SJobsCode, " +
  1127. " SJ.JobsName AS SJobsName, " +
  1128. " CD.StaffStatus," +
  1129. " SSS.StaffStatusName, " +
  1130. " CD.Remarks " +
  1131. " FROM TP_PC_ClassesDetail CD " +
  1132. " INNER JOIN TP_MST_Jobs UJ " +
  1133. " ON UJ.JobsID = CD.UJobsID " +
  1134. " INNER JOIN TP_MST_Jobs SJ " +
  1135. " ON SJ.JobsID = CD.SJobsID " +
  1136. " INNER JOIN TP_HR_Staff S " +
  1137. " ON S.StaffID = CD.StaffID " +
  1138. " INNER JOIN TP_MST_Organization SO " +
  1139. " ON SO.OrganizationID = CD.SOrganizationID " +
  1140. " INNER JOIN TP_SYS_StaffStatus SSS " +
  1141. " ON SSS.StaffStatusID = CD.StaffStatus " +
  1142. " WHERE CD.ClassesSettingID = :ClassesSettingID" +
  1143. " ORDER BY S.StaffCode";
  1144. return sqlString;
  1145. }
  1146. /// <summary>
  1147. /// 取得FPC0402画面,工号对应的员工信息SQL
  1148. /// </summary>
  1149. /// <returns></returns>
  1150. private static string GetClassUserStaffSQL()
  1151. {
  1152. string sqlString = " " +
  1153. "SELECT usf.userstaffid AS infoid, " +
  1154. " usf.UserID, " +
  1155. " usr.UserCode, " +
  1156. " usf.ujobsid AS UJobsID, " +
  1157. " usf.StaffID, " +
  1158. " usf.optimestamp, " +
  1159. " j.jobsname AS UJobsName, " +
  1160. " j.jobscode AS UJobsCode, " +
  1161. " s.StaffCode, " +
  1162. " s.StaffName, " +
  1163. " s.jobs, " +
  1164. " sj.jobsname as SJobsName, " +
  1165. " sj.jobscode as SJobsCode , " +
  1166. " s.organizationid as SOrganizationid, " +
  1167. " og.organizationcode as SOrganizationCode, " +
  1168. " og.organizationname as SOrganizationName, " +
  1169. " og.organizationfullname as SOrganizationFullName, " +
  1170. " s.staffstatus, " +
  1171. " ss.staffstatusname, " +
  1172. " s.remarks " +
  1173. " FROM tp_mst_userstaff usf " +
  1174. " inner join tp_mst_user usr on usf.userid=usr.userid" +
  1175. " INNER JOIN tp_mst_jobs j ON usf.ujobsid = j.jobsid " +
  1176. " INNER JOIN tp_hr_staff s ON usf.staffid = s.staffid " +
  1177. " INNER JOIN tp_mst_jobs sj ON s.jobs = sj.jobsid " +
  1178. " inner join TP_MST_ORGANIZATION og on s.organizationid=og.organizationid " +
  1179. " inner join tp_sys_staffstatus ss on ss.staffstatusid=s.staffstatus " +
  1180. " WHERE usf.userid = :userid " +
  1181. " order by sj.jobscode";
  1182. return sqlString;
  1183. }
  1184. /// <summary>
  1185. /// 保存班次配置信息
  1186. /// </summary>
  1187. /// <param name="sUserInfo"></param>
  1188. /// <param name="se">班次配置实体</param>
  1189. /// <param name="editStatus">配置情况,0--新增,1--更新</param>
  1190. /// <param name="dtClassesSettingDetail"></param>
  1191. /// <returns></returns>
  1192. public static ServiceResultEntity SetFPC0402SData(SUserInfo sUserInfo, FPC0402_SE se, int editStatus, DataTable dtClassesSettingDetail)
  1193. {
  1194. IDBTransaction tran = null;
  1195. try
  1196. {
  1197. ServiceResultEntity sre = new ServiceResultEntity();
  1198. //if (dsClassesSettingDetailInfo == null ||
  1199. // dsClassesSettingDetailInfo.Tables.Count != 1 ||
  1200. // dsClassesSettingDetailInfo.Tables[0].Rows.Count < 1)
  1201. //{
  1202. // sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1203. // return sre;
  1204. //}
  1205. //DataTable dtClassesSettingDetail = dsClassesSettingDetailInfo.Tables[0];
  1206. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1207. int executeResult = 0;
  1208. if (editStatus == 0)//新增
  1209. {
  1210. // 查询新插入的配置数据ID
  1211. string sqlText = "SELECT SEQ_PC_ClassesSetting_ID.NextVAL FROM dual";
  1212. int classesSettingID = int.Parse(tran.GetSqlResultToStr(sqlText));
  1213. // 插入班次配置表
  1214. string sqlInsMainString = " INSERT INTO TP_PC_ClassesSetting "
  1215. + " (ClassesSettingID,AccountDate,UserID,UserCode, "
  1216. + " Remarks,AccountID,CreateTime,CreateUserID,UpdateUserID) "
  1217. + " VALUES (:ClassesSettingID,:AccountDate,:userID,:userCode, "
  1218. + " :remarks,:accountID,sysdate,:createUserID,:updateUserID)";
  1219. OracleParameter[] paramMain = new OracleParameter[]
  1220. {
  1221. new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1222. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1223. new OracleParameter(":userID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1224. new OracleParameter(":userCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1225. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1226. new OracleParameter(":remarks",OracleDbType.Varchar2,se.ClassRemarks,ParameterDirection.Input),
  1227. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1228. new OracleParameter(":createUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1229. new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1230. };
  1231. executeResult = tran.ExecuteNonQuery(sqlInsMainString, paramMain);
  1232. //明细
  1233. foreach (DataRow drFor in dtClassesSettingDetail.Rows)
  1234. {
  1235. if (drFor["StaffID"] == DBNull.Value)
  1236. {
  1237. continue;
  1238. }
  1239. string sqlInsStr = "insert into TP_PC_ClassesDetail(ClassesSettingID,AccountDate,userid,usercode,staffid," +
  1240. "staffstatus,remarks,accountid,valueflag,createtime,createuserid,updatetime,updateuserid," +
  1241. "ujobsid,sjobsid,uorganizationid,sorganizationid)" +
  1242. "values(:settingID,:AccountDate,:UserID,:UserCode,:StaffID," +
  1243. ":StaffStatus,:StaffRemarks,:AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID," +
  1244. ":UserJobsID,:StaffJobsID,:UserOrganizationID,:StaffOrganizationID)";
  1245. OracleParameter[] oracleParameter = new OracleParameter[]
  1246. {
  1247. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1248. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1249. new OracleParameter(":UserID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1250. new OracleParameter(":UserCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1251. new OracleParameter(":StaffID",OracleDbType.Int32,drFor["staffid"].ToString(),ParameterDirection.Input),
  1252. new OracleParameter(":StaffStatus",OracleDbType.Int32,drFor["staffstatus"].ToString(),ParameterDirection.Input),
  1253. new OracleParameter(":StaffRemarks",OracleDbType.Varchar2,drFor["remarks"].ToString(),ParameterDirection.Input),
  1254. new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1255. new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1256. new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1257. new OracleParameter(":UserJobsID",OracleDbType.Int32,drFor["ujobsid"].ToString(),ParameterDirection.Input),
  1258. new OracleParameter(":StaffJobsID",OracleDbType.Int32,drFor["jobs"].ToString(),ParameterDirection.Input),
  1259. new OracleParameter(":UserOrganizationID",OracleDbType.Int32,se.UserOrganizationID,ParameterDirection.Input),
  1260. new OracleParameter(":StaffOrganizationID",OracleDbType.Int32,drFor["sorganizationid"].ToString(),ParameterDirection.Input)
  1261. };
  1262. executeResult = tran.ExecuteNonQuery(sqlInsStr, oracleParameter);
  1263. }
  1264. }
  1265. else
  1266. {
  1267. //更新主表
  1268. string sqlUpMainString = "update TP_PC_ClassesSetting set Remarks=:remarks where CLASSESSETTINGID=:classSettingID";
  1269. OracleParameter[] paramMain = new OracleParameter[]
  1270. {
  1271. new OracleParameter(":remarks",OracleDbType.Varchar2,se.ClassRemarks,ParameterDirection.Input),
  1272. new OracleParameter(":classSettingID",OracleDbType.Int32,se.ClassSettingID,ParameterDirection.Input)
  1273. };
  1274. executeResult = tran.ExecuteNonQuery(sqlUpMainString, paramMain);
  1275. int classesSettingID = se.ClassSettingID;
  1276. //明细
  1277. foreach (DataRow drFor in dtClassesSettingDetail.Rows)
  1278. {
  1279. if (drFor.RowState == DataRowState.Added)
  1280. {
  1281. if (drFor["StaffID"] == DBNull.Value)
  1282. {
  1283. continue;
  1284. }
  1285. string sqlInsStr = "insert into TP_PC_ClassesDetail(ClassesSettingID,AccountDate,userid,usercode,staffid," +
  1286. "staffstatus,remarks,accountid,valueflag,createtime,createuserid,updatetime,updateuserid," +
  1287. "ujobsid,sjobsid,uorganizationid,sorganizationid)" +
  1288. "values(:settingID,:AccountDate,:UserID,:UserCode,:StaffID," +
  1289. ":StaffStatus,:StaffRemarks,:AccountID,1,sysdate,:CreateUserID,sysdate,:UpdateUserID," +
  1290. ":UserJobsID,:StaffJobsID,:UserOrganizationID,:StaffOrganizationID)";
  1291. OracleParameter[] oracleParameter = new OracleParameter[]
  1292. {
  1293. new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
  1294. new OracleParameter(":AccountDate",OracleDbType.Date,se.AccountDate,ParameterDirection.Input),
  1295. new OracleParameter(":UserID",OracleDbType.Int32,se.UserID,ParameterDirection.Input),
  1296. new OracleParameter(":UserCode",OracleDbType.Varchar2,se.UserCode,ParameterDirection.Input),
  1297. new OracleParameter(":StaffID",OracleDbType.Int32,drFor["staffid"].ToString(),ParameterDirection.Input),
  1298. new OracleParameter(":StaffStatus",OracleDbType.Int32,drFor["staffstatus"].ToString(),ParameterDirection.Input),
  1299. new OracleParameter(":StaffRemarks",OracleDbType.Varchar2,drFor["remarks"].ToString(),ParameterDirection.Input),
  1300. new OracleParameter(":AccountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1301. new OracleParameter(":CreateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1302. new OracleParameter(":UpdateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  1303. new OracleParameter(":UserJobsID",OracleDbType.Int32,drFor["ujobsid"].ToString(),ParameterDirection.Input),
  1304. new OracleParameter(":StaffJobsID",OracleDbType.Int32,drFor["jobs"].ToString(),ParameterDirection.Input),
  1305. new OracleParameter(":UserOrganizationID",OracleDbType.Int32,se.UserOrganizationID,ParameterDirection.Input),
  1306. new OracleParameter(":StaffOrganizationID",OracleDbType.Int32,drFor["sorganizationid"].ToString(),ParameterDirection.Input)
  1307. };
  1308. executeResult = tran.ExecuteNonQuery(sqlInsStr, oracleParameter);
  1309. }
  1310. else if (drFor.RowState == DataRowState.Deleted)
  1311. {
  1312. string sqlstring = @"Delete from TP_PC_ClassesDetail Where CLASSESDETAILID=:ClassesDetailID";
  1313. OracleParameter[] parmeters = new OracleParameter[]
  1314. {
  1315. new OracleParameter(":ClassesDetailID",drFor["ClassesDetailID",DataRowVersion.Original].ToString()),
  1316. };
  1317. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1318. }
  1319. else if (drFor.RowState == DataRowState.Modified)
  1320. {
  1321. string sqlstring = @"update TP_PC_ClassesDetail
  1322. set STAFFID=:StaffID,
  1323. STAFFSTATUS=:StaffStatus,
  1324. REMARKS=:Remarks,
  1325. UPDATETIME=sysdate,
  1326. UPDATEUSERID=:UserID,
  1327. SJOBSID=:SJobID,
  1328. SORGANIZATIONID=:SorganizationID
  1329. where CLASSESDETAILID=:ClassesDetailID ";
  1330. OracleParameter[] parmeters = new OracleParameter[]
  1331. {
  1332. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1333. new OracleParameter(":StaffStatus",drFor["StaffStatus"].ToString()),
  1334. new OracleParameter(":Remarks",drFor["Remarks"].ToString()),
  1335. new OracleParameter(":UserID",sUserInfo.UserID),
  1336. new OracleParameter(":SJobID",drFor["Jobs"].ToString()),
  1337. new OracleParameter(":SorganizationID",drFor["SorganizationID"].ToString()),
  1338. new OracleParameter(":ClassesDetailID",drFor["ClassesDetailID"].ToString()),
  1339. };
  1340. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1341. }
  1342. }
  1343. }
  1344. tran.Commit();
  1345. return sre;
  1346. }
  1347. catch (Exception ex)
  1348. {
  1349. if (tran != null &&
  1350. tran.ConnState == ConnectionState.Open)
  1351. {
  1352. tran.Rollback();
  1353. }
  1354. throw ex;
  1355. }
  1356. finally
  1357. {
  1358. if (tran != null &&
  1359. tran.ConnState == ConnectionState.Open)
  1360. {
  1361. tran.Disconnect();
  1362. }
  1363. }
  1364. }
  1365. #endregion 班次配置管理
  1366. #region 人员关联
  1367. /// <summary>
  1368. /// 取得FPC0601画面(人员关联)的查询数据
  1369. /// </summary>
  1370. /// <param name="user">登录用户信息</param>
  1371. /// <param name="se">查询条件</param>
  1372. /// <returns>查询结果</returns>
  1373. public static ServiceResultEntity GetFPC0601SData(SUserInfo user, FPC0601_SE se)
  1374. {
  1375. IDBConnection conn = null;
  1376. try
  1377. {
  1378. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1379. StringBuilder sql = new StringBuilder(PCModuleLogic.GetFPC0601UserSQL());
  1380. List<OracleParameter> parameters = new List<OracleParameter>();
  1381. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  1382. parameters.Add(new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input));
  1383. if (se != null)
  1384. {
  1385. // 员工工号
  1386. if (!string.IsNullOrEmpty(se.UserCode))
  1387. {
  1388. sql.Append(" AND INSTR(U.UserCode, :UserCode) > 0");
  1389. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, se.UserCode, ParameterDirection.Input));
  1390. }
  1391. // 员工工号备注
  1392. if (!string.IsNullOrEmpty(se.Remarks))
  1393. {
  1394. sql.Append(" AND INSTR(U.Remarks, :Remarks) > 0");
  1395. parameters.Add(new OracleParameter(":Remarks", OracleDbType.NVarchar2, se.Remarks, ParameterDirection.Input));
  1396. }
  1397. }
  1398. sql.Append(" ORDER BY U.UserCode");
  1399. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  1400. ServiceResultEntity sre = new ServiceResultEntity();
  1401. if (data == null || data.Rows.Count == 0)
  1402. {
  1403. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  1404. return sre;
  1405. }
  1406. sre.Data = new DataSet();
  1407. sre.Data.Tables.Add(data);
  1408. OracleParameter[] paras = new OracleParameter[]
  1409. {
  1410. new OracleParameter(":userid", OracleDbType.Int32, data.Rows[0]["userid"], ParameterDirection.Input),
  1411. };
  1412. DataTable dData = conn.GetSqlResultToDt(PCModuleLogic.GetFPC0601UserStaffSQL(), paras);
  1413. if (dData != null)
  1414. {
  1415. sre.Data.Tables.Add(dData);
  1416. }
  1417. return sre;
  1418. }
  1419. catch (Exception ex)
  1420. {
  1421. throw ex;
  1422. }
  1423. finally
  1424. {
  1425. if (conn != null &&
  1426. conn.ConnState == ConnectionState.Open)
  1427. {
  1428. conn.Close();
  1429. }
  1430. }
  1431. }
  1432. /// <summary>
  1433. /// 取得FPC0601画面(人员关联)的查询数据
  1434. /// </summary>
  1435. /// <param name="user">登录用户信息</param>
  1436. /// <param name="id">工号人员关联ID</param>
  1437. /// <returns>工号人员关联明细</returns>
  1438. public static ServiceResultEntity GetFPC0601SNData(SUserInfo user, int userid)
  1439. {
  1440. IDBConnection conn = null;
  1441. try
  1442. {
  1443. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1444. OracleParameter[] paras = new OracleParameter[]
  1445. {
  1446. new OracleParameter(":userid", OracleDbType.Int32, userid, ParameterDirection.Input),
  1447. };
  1448. ServiceResultEntity sre = new ServiceResultEntity();
  1449. sre.Data = conn.GetSqlResultToDs(PCModuleLogic.GetFPC0601UserStaffSQL(), paras);
  1450. return sre;
  1451. }
  1452. catch (Exception ex)
  1453. {
  1454. throw ex;
  1455. }
  1456. finally
  1457. {
  1458. if (conn != null &&
  1459. conn.ConnState == ConnectionState.Open)
  1460. {
  1461. conn.Close();
  1462. }
  1463. }
  1464. }
  1465. /// <summary>
  1466. /// 取得FPC0601画面,工号查询SQL
  1467. /// </summary>
  1468. /// <returns>工号查询SQL</returns>
  1469. private static string GetFPC0601UserSQL()
  1470. {
  1471. string sqlString =
  1472. "SELECT 0 AS sel, " +
  1473. " U.userid, " +
  1474. " U.usercode, " +
  1475. " U.limitmac, " +
  1476. " U.username, " +
  1477. " U.valueflag, " +
  1478. " U.valueflag AS checkvalueflag, " +
  1479. " U.organizationid, " +
  1480. " tp_mst_organization.organizationname, " +
  1481. " tp_mst_organization.organizationfullname, " +
  1482. " tp_mst_userlogin.islocked, " +
  1483. " U.remarks " +
  1484. " FROM tp_mst_user u LEFT JOIN tp_mst_organization ON u.organizationid = tp_mst_organization.organizationid " +
  1485. " INNER JOIN tp_mst_userlogin ON u.userid = tp_mst_userlogin.userid " +
  1486. " WHERE u.accountid = :AccountID " +
  1487. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1488. // 工号操作权限
  1489. " AND EXISTS (SELECT UP.PurviewID" +
  1490. " FROM TP_MST_UserPurview UP" +
  1491. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1492. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1493. " AND UP.UserId = :UPUserId)";
  1494. return sqlString;
  1495. }
  1496. /// <summary>
  1497. /// 取得FPC0601画面,关联人员查询SQL
  1498. /// </summary>
  1499. /// <returns>关联人员查询SQL</returns>
  1500. private static string GetFPC0601UserStaffSQL()
  1501. {
  1502. string sqlString = " " +
  1503. "SELECT usf.userstaffid AS infoid, " +
  1504. " usf.UserID, " +
  1505. " usf.ujobsid AS UserJobsID, " +
  1506. " usf.StaffID, " +
  1507. " usf.optimestamp, " +
  1508. " j.jobsname AS UserJobsName, " +
  1509. " j.jobscode AS UserJobsCode, " +
  1510. " s.StaffCode, " +
  1511. " s.StaffName, " +
  1512. " sj.jobsname, " +
  1513. " sj.jobscode , " +
  1514. " s.organizationid, " +
  1515. " og.organizationcode, " +
  1516. " og.organizationname, " +
  1517. " og.organizationfullname, " +
  1518. " s.staffstatus, " +
  1519. " ss.staffstatusname, " +
  1520. " s.remarks " +
  1521. " FROM tp_mst_userstaff usf INNER JOIN tp_mst_jobs j ON usf.ujobsid = j.jobsid " +
  1522. " INNER JOIN tp_hr_staff s ON usf.staffid = s.staffid " +
  1523. " INNER JOIN tp_mst_jobs sj ON s.jobs = sj.jobsid " +
  1524. " inner join TP_MST_ORGANIZATION og on s.organizationid=og.organizationid " +
  1525. " inner join tp_sys_staffstatus ss on ss.staffstatusid=s.staffstatus " +
  1526. " WHERE userid = :userid " +
  1527. " order by sj.jobscode";
  1528. return sqlString;
  1529. }
  1530. /// <summary>
  1531. /// 保存FPC0602画面(班次配置管理)的数据
  1532. /// </summary>
  1533. /// <param name="userInfo"></param>
  1534. /// <param name="UserId"></param>
  1535. /// <param name="StaffTable"></param>
  1536. /// <returns></returns>
  1537. public static ServiceResultEntity SetFPC0602Data(SUserInfo userInfo, int UserId, DataSet StaffInfo)
  1538. {
  1539. IDBTransaction tran = null;
  1540. try
  1541. {
  1542. ServiceResultEntity sre = new ServiceResultEntity();
  1543. if (StaffInfo == null ||
  1544. StaffInfo.Tables.Count != 1 ||
  1545. StaffInfo.Tables[0].Rows.Count < 1)
  1546. {
  1547. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  1548. return sre;
  1549. }
  1550. DataTable StaffTable = StaffInfo.Tables[0];
  1551. tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1552. int executeResult = 0;
  1553. foreach (DataRow drFor in StaffTable.Rows)
  1554. {
  1555. if (drFor.RowState == DataRowState.Added)
  1556. {
  1557. if (drFor["StaffID"] == DBNull.Value)
  1558. {
  1559. continue;
  1560. }
  1561. string sqlstring = @"Insert into TP_MST_UserStaff(UserID,UJobsID,StaffID,AccountID,CreateUserID,UpdateUserID)
  1562. Values(:UserID,:UJobsID,:StaffID,:AccountID,:CreateUserID,:UpdateUserID)";
  1563. OracleParameter[] parmeters = new OracleParameter[]
  1564. {
  1565. new OracleParameter(":UserID",UserId),
  1566. new OracleParameter(":UJobsID",drFor["UserJobsID"].ToString()),
  1567. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1568. new OracleParameter(":AccountID",userInfo.AccountID),
  1569. new OracleParameter(":CreateUserID",userInfo.UserID),
  1570. new OracleParameter(":UpdateUserID",userInfo.UserID),
  1571. };
  1572. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1573. }
  1574. else if (drFor.RowState == DataRowState.Deleted)
  1575. {
  1576. string sqlstring = @"Delete from TP_MST_UserStaff Where UserStaffID=:UserStaffID";
  1577. OracleParameter[] parmeters = new OracleParameter[]
  1578. {
  1579. new OracleParameter(":UserStaffID",drFor["InfoID",DataRowVersion.Original].ToString()),
  1580. };
  1581. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1582. }
  1583. else if (drFor.RowState == DataRowState.Modified)
  1584. {
  1585. string sqlstring = @"Update TP_MST_UserStaff
  1586. Set UJobsID=:UJobsID,
  1587. StaffID=:StaffID,
  1588. UpdateUserID=:UpdateUserID
  1589. Where UserStaffID=:UserStaffID";
  1590. OracleParameter[] parmeters = new OracleParameter[]
  1591. {
  1592. new OracleParameter(":UJobsID",drFor["UserJobsId"].ToString()),
  1593. new OracleParameter(":StaffID",drFor["StaffID"].ToString()),
  1594. new OracleParameter(":UpdateUserID",userInfo.UserID),
  1595. new OracleParameter(":UserStaffID",drFor["InfoID"].ToString())
  1596. };
  1597. executeResult = tran.ExecuteNonQuery(sqlstring, parmeters);
  1598. }
  1599. }
  1600. tran.Commit();
  1601. return sre;
  1602. }
  1603. catch (Exception ex)
  1604. {
  1605. if (tran != null &&
  1606. tran.ConnState == ConnectionState.Open)
  1607. {
  1608. tran.Rollback();
  1609. }
  1610. throw ex;
  1611. }
  1612. finally
  1613. {
  1614. if (tran != null &&
  1615. tran.ConnState == ConnectionState.Open)
  1616. {
  1617. tran.Disconnect();
  1618. }
  1619. }
  1620. }
  1621. /// <summary>
  1622. /// 根据工号ID获取该工号的工种关联
  1623. /// </summary>
  1624. /// <param name="UserId">用户ID</param>
  1625. /// <returns>DataSet</returns>
  1626. public static ServiceResultEntity GetJobByUserId(int UserId)
  1627. {
  1628. IDBConnection conn = null;
  1629. try
  1630. {
  1631. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1632. StringBuilder sbSql = new StringBuilder();
  1633. sbSql.Append(@"Select JobsID as UserJobsID,JobsCode as UserJobsCode,JobsName as UserJobsName,JobsCode||'-'|| JobsName as UserJobsCodeName
  1634. from TP_MST_Jobs where JobsID in
  1635. (Select JobsID From TP_MST_UserJobs where UserID=:UserID) ");
  1636. OracleParameter[] paras = new OracleParameter[]
  1637. {
  1638. new OracleParameter(":UserID", OracleDbType.Int32, UserId, ParameterDirection.Input),
  1639. };
  1640. ServiceResultEntity sre = new ServiceResultEntity();
  1641. sre.Data = conn.GetSqlResultToDs(sbSql.ToString(), paras);
  1642. return sre;
  1643. }
  1644. catch (Exception ex)
  1645. {
  1646. throw ex;
  1647. }
  1648. finally
  1649. {
  1650. if (conn != null &&
  1651. conn.ConnState == ConnectionState.Open)
  1652. {
  1653. conn.Close();
  1654. }
  1655. }
  1656. }
  1657. /// <summary>
  1658. /// 根据工号ID获取该工号的基础信息
  1659. /// </summary>
  1660. /// <param name="UserId">用户ID</param>
  1661. /// <returns>DataSet</returns>
  1662. public static ServiceResultEntity GetUserInfo(SUserInfo user, int UserId)
  1663. {
  1664. IDBConnection conn = null;
  1665. try
  1666. {
  1667. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1668. StringBuilder sbSql = new StringBuilder(GetUserInfoSQL());
  1669. // List<OracleParameter> parameters = new List<OracleParameter>();
  1670. OracleParameter[] paras = new OracleParameter[]
  1671. {
  1672. new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
  1673. new OracleParameter(":UPUserId", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
  1674. new OracleParameter(":UserID", OracleDbType.Int32,UserId, ParameterDirection.Input)
  1675. };
  1676. ServiceResultEntity sre = new ServiceResultEntity();
  1677. sre.Data = conn.GetSqlResultToDs(sbSql.ToString(), paras);
  1678. return sre;
  1679. }
  1680. catch (Exception ex)
  1681. {
  1682. throw ex;
  1683. }
  1684. finally
  1685. {
  1686. if (conn != null &&
  1687. conn.ConnState == ConnectionState.Open)
  1688. {
  1689. conn.Close();
  1690. }
  1691. }
  1692. }
  1693. /// <summary>
  1694. /// 取得FPC0601画面,工号查询SQL
  1695. /// </summary>
  1696. /// <returns>工号查询SQL</returns>
  1697. private static string GetUserInfoSQL()
  1698. {
  1699. string sqlString =
  1700. "SELECT 0 AS sel, " +
  1701. " U.userid, " +
  1702. " U.usercode, " +
  1703. " U.limitmac, " +
  1704. " U.username, " +
  1705. " U.valueflag, " +
  1706. " U.valueflag AS checkvalueflag, " +
  1707. " U.organizationid, " +
  1708. " tp_mst_organization.organizationname, " +
  1709. " tp_mst_organization.organizationfullname, " +
  1710. " tp_mst_userlogin.islocked, " +
  1711. " U.remarks " +
  1712. " FROM tp_mst_user u LEFT JOIN tp_mst_organization ON u.organizationid = tp_mst_organization.organizationid " +
  1713. " INNER JOIN tp_mst_userlogin ON u.userid = tp_mst_userlogin.userid " +
  1714. " WHERE u.accountid = :AccountID " +
  1715. " AND U.ValueFlag = '" + (int)Constant.ValueFlag.Effective + "'" +
  1716. " and u.userid=:UserID " +
  1717. // 工号操作权限
  1718. " AND EXISTS (SELECT UP.PurviewID" +
  1719. " FROM TP_MST_UserPurview UP" +
  1720. " WHERE UP.PurviewType = '" + (int)Constant.PurviewType.OperateUser + "'" +
  1721. " AND (UP.PurviewID = U.UserID OR UP.PurviewID = -1)" +
  1722. " AND UP.UserId = :UPUserId)";
  1723. return sqlString;
  1724. }
  1725. #endregion 人员关联
  1726. #region 模具档案
  1727. /// <summary>
  1728. /// 获取模具档案一览画面期初数据
  1729. /// </summary>
  1730. /// <param name="sUserInfo"></param>
  1731. /// <returns></returns>
  1732. public static ServiceResultEntity GetFPC1001LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  1733. {
  1734. ServiceResultEntity sre = new ServiceResultEntity();
  1735. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1736. try
  1737. {
  1738. con.Open();
  1739. // 模具类型
  1740. string sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  1741. " FROM TP_MST_DataDictionary dd\n" +
  1742. " WHERE dd.DictionaryType = 'GMM002'\n" +
  1743. " AND dd.valueflag = '1'\n" +
  1744. " AND dd.accountid = :accountid\n" +
  1745. " ORDER BY dd.displayno";
  1746. OracleParameter[] parameters = new OracleParameter[]
  1747. {
  1748. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1749. };
  1750. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1751. sre.Data.Tables[0].TableName = "MouldType";
  1752. // 材料供应商
  1753. sqlString = "SELECT mms.supplierid, mms.suppliername, mms.displayno\n" +
  1754. " FROM TP_MST_MouldMaterialSuppliers mms\n" +
  1755. " WHERE mms.valueflag = '1'\n" +
  1756. " AND mms.accountid = :accountid\n" +
  1757. " ORDER BY mms.displayno";
  1758. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  1759. sre.Data.Tables[1].TableName = "Suppliers";
  1760. sqlString =
  1761. "SELECT ms.mouldstatusid, ms.mouldstatusname, ms.displayno\n" +
  1762. " FROM TP_SYS_MouldStatus ms\n" +
  1763. " WHERE ms.mouldstatusid > 0\n" +
  1764. " ORDER BY ms.displayno";
  1765. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString));
  1766. sre.Data.Tables[2].TableName = "MouldStatus";
  1767. return sre;
  1768. }
  1769. catch (Exception ex)
  1770. {
  1771. throw ex;
  1772. }
  1773. finally
  1774. {
  1775. if (con.ConnState == ConnectionState.Open)
  1776. {
  1777. con.Close();
  1778. }
  1779. }
  1780. }
  1781. /// <summary>
  1782. /// 获取模具档案一览查询数据
  1783. /// </summary>
  1784. /// <param name="sUserInfo"></param>
  1785. /// <returns></returns>
  1786. public static ServiceResultEntity GetFPC1001QueryData(SUserInfo sUserInfo, ClientRequestEntity cre)
  1787. {
  1788. ServiceResultEntity sre = new ServiceResultEntity();
  1789. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1790. try
  1791. {
  1792. con.Open();
  1793. string sqlString =
  1794. "SELECT 0 Sel, m.MouldID\n" +
  1795. " ,m.MouldCode\n" +
  1796. " ,m.MouldBarcode\n" +
  1797. " ,mtype.dictionaryvalue MouldTypeName\n" +
  1798. " ,mms.SupplierName\n" +
  1799. " ,m.ProductionDate\n" +
  1800. " ,m.GoodsID\n" +
  1801. " ,m.GoodsCode\n" +
  1802. " ,m.UserID\n" +
  1803. " ,m.UserCode\n" +
  1804. " ,m.Weight\n" +
  1805. " ,m.Cost\n" +
  1806. " ,m.StandardGroutingNum\n" +
  1807. " ,m.StandardGroutingSum\n" +
  1808. " ,m.GroutingNum GroutingNums\n" +
  1809. " ,case when m.OutputCount=1 then to_char(m.GroutingNum)\n" +
  1810. " else (select listagg(to_char(t.GroutingNum), ';') within GROUP(ORDER BY t.outputno) from TP_PC_MouldOutput t where t.MouldID=m.MouldID) end GroutingNum\n" +
  1811. " ,m.GroutingDateBegin\n" +
  1812. " ,m.GroutingDateEnd\n" +
  1813. " ,m.LastGroutingBatchNo\n" +
  1814. " ,m.MouldStatus\n" +
  1815. " ,ms.mouldstatusname\n" +
  1816. " ,m.RepairFlag\n" +
  1817. " ,m.ScrapDate\n" +
  1818. " ,m.ScrapUserID\n" +
  1819. " ,m.ScrapUserCode\n" +
  1820. " ,ScReason.dictionaryvalue ScrapReason\n" +
  1821. " ,m.ScrapResponsibility\n" +
  1822. " ,gl.groutinglinecode\n" +
  1823. //" ,gld.groutingmouldcode\n" +
  1824. " ,case when m.GroutingLineDetailID is null or m.OutputCount=1 then to_char(gld.groutingmouldcode) else \n" +
  1825. " (select listagg(to_char(gldd.groutingmouldcode), ',') within GROUP(ORDER BY gldd.groutinglinedetailid) from tp_pc_groutinglinedetail gldd where gldd.valueflag='1' and gldd.MouldID=m.MouldID) end groutingmouldcode\n" +
  1826. " ,m.Remarks\n" +
  1827. " ,m.CreateTime\n" +
  1828. " ,cu.usercode CreateUserCode\n" +
  1829. " ,m.OutputCount\n" +
  1830. " ,g.mouldmaterialcode\n" +
  1831. " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  1832. //2021年12月21日11:41:10 by fy modify 列表中增加一列【卸模线号】,显示他最后一次上线的线号
  1833. //begin
  1834. ",gl2.groutinglinecode UnloadingMouldLine\n" +
  1835. //end
  1836. ",mp.plan_code\n" + // add 夏常明 模具生产计划单号 2023-6-25
  1837. " FROM tp_pc_mould m\n" +
  1838. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  1839. " ON mtype.dictionaryid = m.mouldtype\n" +
  1840. " LEFT JOIN tp_mst_goods g\n" +
  1841. " ON g.goodsid = m.goodsid\n" +
  1842. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  1843. " ON mms.SupplierID = m.MaterialSupplier\n" +
  1844. " INNER JOIN tp_sys_mouldstatus ms\n" +
  1845. " ON ms.mouldstatusid = m.MouldStatus\n" +
  1846. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  1847. " ON ScReason.dictionaryid = m.ScrapReason\n" +
  1848. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  1849. " ON gld.groutinglinedetailid = m.GroutingLineDetailID\n" +
  1850. " LEFT JOIN tp_pc_groutingline gl\n" +
  1851. " ON gl.groutinglineid = gld.groutinglineid\n" +
  1852. " INNER JOIN tp_mst_user cu\n" +
  1853. " ON cu.userid = m.createuserid\n" +
  1854. //2021年12月21日11:41:10 by fy modify 列表中增加一列【卸模线号】,显示他最后一次上线的线号
  1855. //begin
  1856. "LEFT JOIN(\n" +
  1857. "SELECT\n" +
  1858. " t.groutinglinedetailid,\n" +
  1859. " t.mouldcode,\n" +
  1860. " t.rk\n" +
  1861. "FROM\n" +
  1862. " (\n" +
  1863. " SELECT\n" +
  1864. " t.groutinglinedetailid,\n" +
  1865. " t.mouldcode,\n" +
  1866. " rank ( ) over (PARTITION BY t.mouldcode ORDER BY t.createtime DESC) rk\n" +
  1867. " FROM\n" +
  1868. " tp_pc_mouldchangehistory t\n" +
  1869. " WHERE\n" +
  1870. " t.valueflag = 1\n" +
  1871. " AND t.mouldstatus IN( 2, 3 ) \n" +
  1872. " AND t.mouldstatusafter IN( 1, 4 ) \n" +
  1873. " ) t\n" +
  1874. "WHERE\n" +
  1875. " t.rk <= 1\n" +
  1876. ") mch ON mch.mouldcode = m.mouldcode\n" +
  1877. "LEFT JOIN tp_pc_groutinglinedetail gld2 ON gld2.GROUTINGLINEDETAILID = mch.GROUTINGLINEDETAILID\n" +
  1878. "LEFT JOIN tp_pc_groutingline gl2 ON gl2.groutinglineid = gld2.groutinglineid\n" +
  1879. //end
  1880. "left join t_mould_plan mp on m.MOULD_PLAN_ID = mp.plan_id \n" +//模具生产计划 add 夏常明 2023-6-25
  1881. " WHERE m.accountid = :accountid\n" +
  1882. " AND m.valueflag = '1'\n" +
  1883. " AND (:MouldBarcode IS NULL OR instr(m.MouldBarcode, :MouldBarcode) > 0)\n" +
  1884. " AND (:PDateBegin IS NULL OR m.ProductionDate >= :PDateBegin)\n" +
  1885. " AND (:PDateEnd IS NULL OR m.ProductionDate <= :PDateEnd)\n" +
  1886. " AND (:UserCode IS NULL OR instr(m.UserCode, :UserCode) > 0)\n" +
  1887. " AND (:GoodsCode IS NULL OR instr(m.GoodsCode, :GoodsCode) > 0)\n" +
  1888. " AND (:Remarks IS NULL OR instr(m.Remarks, :Remarks) > 0)\n" +
  1889. " AND (:MouldTypes IS NULL OR\n" +
  1890. " instr(',' || :MouldTypes || ',', ',' || m.MouldType || ',') > 0)\n" +
  1891. " AND (:Suppliers IS NULL OR\n" +
  1892. " instr(',' || :Suppliers || ',', ',' || m.MaterialSupplier || ',') > 0)\n" +
  1893. " AND (:MouldStatus IS NULL OR\n" +
  1894. " instr(',' || :MouldStatus || ',', ',' || m.MouldStatus || ',') > 0)\n" +
  1895. " AND (:SDateBegin IS NULL OR m.ScrapDate >= :SDateBegin)\n" +
  1896. " AND (:SDateEnd IS NULL OR m.ScrapDate <= :SDateEnd)\n" +
  1897. " AND (:MouldIDs IS NULL OR\n" +
  1898. " instr(',' || :MouldIDs || ',', ',' || m.MouldID || ',') > 0)\n" +
  1899. " ORDER BY m.MouldBarcode";
  1900. OracleParameter[] parameters = new OracleParameter[]
  1901. {
  1902. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1903. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1904. new OracleParameter(":PDateBegin", OracleDbType.Date, cre.Properties["PDateBegin"], ParameterDirection.Input),
  1905. new OracleParameter(":PDateEnd", OracleDbType.Date, cre.Properties["PDateEnd"], ParameterDirection.Input),
  1906. new OracleParameter(":MouldBarcode", OracleDbType.NVarchar2, cre.Properties["MouldBarcode"], ParameterDirection.Input),
  1907. new OracleParameter(":UserCode", OracleDbType.NVarchar2, cre.Properties["UserCode"], ParameterDirection.Input),
  1908. new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, cre.Properties["GoodsCode"], ParameterDirection.Input),
  1909. new OracleParameter(":Remarks", OracleDbType.NVarchar2, cre.Properties["Remarks"], ParameterDirection.Input),
  1910. new OracleParameter(":MouldTypes", OracleDbType.NVarchar2, cre.Properties["MouldTypes"], ParameterDirection.Input),
  1911. new OracleParameter(":Suppliers", OracleDbType.NVarchar2, cre.Properties["Suppliers"], ParameterDirection.Input),
  1912. new OracleParameter(":MouldStatus", OracleDbType.NVarchar2, cre.Properties["MouldStatus"], ParameterDirection.Input),
  1913. new OracleParameter(":SDateBegin", OracleDbType.Date, cre.Properties["ScrapDateBegin"], ParameterDirection.Input),
  1914. new OracleParameter(":SDateEnd", OracleDbType.Date, cre.Properties["ScrapDateEnd"], ParameterDirection.Input),
  1915. };
  1916. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1917. if (sre.Data == null || sre.Data.Tables.Count == 0 || sre.Data.Tables[0].Rows.Count == 0)
  1918. {
  1919. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  1920. }
  1921. return sre;
  1922. }
  1923. catch (Exception ex)
  1924. {
  1925. throw ex;
  1926. }
  1927. finally
  1928. {
  1929. if (con.ConnState == ConnectionState.Open)
  1930. {
  1931. con.Close();
  1932. }
  1933. }
  1934. }
  1935. /// <summary>
  1936. /// 查询模具是否报工
  1937. /// </summary>
  1938. /// <param name="sUserInfo"></param>
  1939. /// <param name="cre"></param>
  1940. /// <returns></returns>
  1941. public static ServiceResultEntity GetMouldPlan(SUserInfo sUserInfo, ClientRequestEntity cre)
  1942. {
  1943. ServiceResultEntity sre = new ServiceResultEntity();
  1944. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1945. try
  1946. {
  1947. con.Open();
  1948. string sqlString = "SELECT COUNT(1)\n" +
  1949. " FROM tp_pc_mould pm\n" +
  1950. " WHERE pm.mould_plan_id IS NOT NULL\n" +
  1951. " AND pm.accountid = :accountid\n" +
  1952. " AND instr(',' || :MouldIDs || ',', ',' || pm.mouldid || ',') > 0";
  1953. OracleParameter[] parameters = new OracleParameter[]
  1954. {
  1955. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1956. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1957. };
  1958. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1959. return sre;
  1960. }
  1961. catch (Exception ex)
  1962. {
  1963. throw ex;
  1964. }
  1965. finally
  1966. {
  1967. if (con.ConnState == ConnectionState.Open)
  1968. {
  1969. con.Close();
  1970. }
  1971. }
  1972. }
  1973. /// <summary>
  1974. /// 产品型号是否相同
  1975. /// </summary>
  1976. /// <param name="sUserInfo"></param>
  1977. /// <param name="cre"></param>
  1978. /// <returns></returns>
  1979. public static ServiceResultEntity GoodsIdSame(SUserInfo sUserInfo, ClientRequestEntity cre)
  1980. {
  1981. ServiceResultEntity sre = new ServiceResultEntity();
  1982. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1983. try
  1984. {
  1985. con.Open();
  1986. string sqlString = "SELECT DISTINCT pm.goodsid\n" +
  1987. " FROM tp_pc_mould pm\n" +
  1988. " WHERE pm.accountid = :accountid\n" +
  1989. " AND instr(',' || :MouldIDs || ',', ',' || pm.mouldid || ',') > 0";
  1990. OracleParameter[] parameters = new OracleParameter[]
  1991. {
  1992. new OracleParameter(":MouldIDs", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  1993. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  1994. };
  1995. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  1996. return sre;
  1997. }
  1998. catch (Exception ex)
  1999. {
  2000. throw ex;
  2001. }
  2002. finally
  2003. {
  2004. if (con.ConnState == ConnectionState.Open)
  2005. {
  2006. con.Close();
  2007. }
  2008. }
  2009. }
  2010. /// <summary>
  2011. /// 根据产品查询模具生产计划数据源
  2012. /// </summary>
  2013. /// <param name="sUserInfo"></param>
  2014. /// <param name="cre"></param>
  2015. /// <returns></returns>
  2016. public static ServiceResultEntity GetFPC1004MouldPlanData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2017. {
  2018. ServiceResultEntity sre = new ServiceResultEntity();
  2019. int goodsid = Convert.ToInt32(cre.Properties["goodsid"]);
  2020. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2021. try
  2022. {
  2023. string sqlString = "SELECT mp.plan_id\n" +
  2024. " ,mp.plan_code ||'('||TO_CHAR(mp.plan_qty-mp.make_qty,'fm9999')||')' as plan_code\n" +
  2025. " ,mp.plan_status\n" +
  2026. " FROM t_mould_plan mp\n" +
  2027. " WHERE mp.goodsid = :goodsid\n" +
  2028. " AND mp.plan_status <>3";
  2029. OracleParameter[] parameters = new OracleParameter[]
  2030. {
  2031. new OracleParameter(":goodsid", OracleDbType.Int32, goodsid, ParameterDirection.Input),
  2032. };
  2033. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2034. return sre;
  2035. }
  2036. catch (Exception ex)
  2037. {
  2038. throw ex;
  2039. }
  2040. finally
  2041. {
  2042. if (con.ConnState == ConnectionState.Open)
  2043. {
  2044. con.Close();
  2045. }
  2046. }
  2047. }
  2048. /// <summary>
  2049. /// 获取模具新建、编辑画面期初数据
  2050. /// </summary>
  2051. /// <param name="sUserInfo"></param>
  2052. /// <returns></returns>
  2053. public static ServiceResultEntity GetFPC1002LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2054. {
  2055. ServiceResultEntity sre = new ServiceResultEntity();
  2056. int mouldID = cre.Properties.GetValue<int>("MouldID");
  2057. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2058. try
  2059. {
  2060. con.Open();
  2061. // 模具类型
  2062. string sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  2063. " FROM TP_MST_DataDictionary dd\n" +
  2064. " WHERE dd.DictionaryType = 'GMM002'\n" +
  2065. " AND dd.valueflag = '1'\n" +
  2066. " AND dd.accountid = :accountid\n" +
  2067. " ORDER BY dd.displayno";
  2068. OracleParameter[] parameters = new OracleParameter[]
  2069. {
  2070. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2071. };
  2072. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2073. sre.Data.Tables[0].TableName = "MouldType";
  2074. // 材料供应商
  2075. sqlString = "SELECT mms.supplierid, mms.suppliername, mms.displayno\n" +
  2076. " FROM TP_MST_MouldMaterialSuppliers mms\n" +
  2077. " WHERE mms.valueflag = '1'\n" +
  2078. " AND mms.accountid = :accountid\n" +
  2079. " ORDER BY mms.displayno";
  2080. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2081. sre.Data.Tables[1].TableName = "Suppliers";
  2082. if (mouldID > 0)
  2083. {
  2084. sqlString = "SELECT m.mouldid\n" +
  2085. " ,m.mouldbarcode\n" +
  2086. " ,m.mouldtype\n" +
  2087. " ,dd.dictionaryvalue mouldtypeName\n" +
  2088. " ,m.materialsupplier\n" +
  2089. " ,mms.suppliername\n" +
  2090. " ,m.productiondate\n" +
  2091. " ,m.goodsid\n" +
  2092. " ,m.goodscode\n" +
  2093. " ,m.userid\n" +
  2094. " ,m.usercode\n" +
  2095. " ,m.weight\n" +
  2096. " ,m.cost\n" +
  2097. " ,m.standardgroutingnum\n" +
  2098. " ,m.remarks\n" +
  2099. " ,m.OutputCount\n" +
  2100. " ,m.MOULD_PLAN_ID\n" +
  2101. " FROM tp_pc_mould m\n" +
  2102. " LEFT JOIN tp_mst_datadictionary dd\n" +
  2103. " ON dd.dictionaryid = m.mouldtype\n" +
  2104. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  2105. " ON mms.supplierid = m.materialsupplier\n" +
  2106. " WHERE m.mouldid = :mouldid";
  2107. parameters = new OracleParameter[]
  2108. {
  2109. new OracleParameter(":mouldid", OracleDbType.Int32, mouldID, ParameterDirection.Input),
  2110. };
  2111. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2112. sre.Data.Tables[2].TableName = "InfoData";
  2113. //模具生产计划不为空 返回模具生产计划数据源
  2114. if (!string.IsNullOrEmpty(sre.Data.Tables[2].Rows[0]["MOULD_PLAN_ID"] + ""))
  2115. {
  2116. sqlString = "SELECT mp.plan_id\n" +
  2117. " ,mp.plan_code\n" +
  2118. " ,mp.plan_status\n" +
  2119. " FROM t_mould_plan mp\n" +
  2120. " WHERE mp.goodsid = :goodsid and mp.valueflag = 1 and mp.plan_status != 3";
  2121. parameters = new OracleParameter[]
  2122. {
  2123. new OracleParameter(":goodsid", OracleDbType.Int32, Convert.ToInt32(sre.Data.Tables[2].Rows[0]["goodsid"]), ParameterDirection.Input),
  2124. };
  2125. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  2126. sre.Data.Tables[3].TableName = "Mouldplan";
  2127. }
  2128. }
  2129. return sre;
  2130. }
  2131. catch (Exception ex)
  2132. {
  2133. throw ex;
  2134. }
  2135. finally
  2136. {
  2137. if (con.ConnState == ConnectionState.Open)
  2138. {
  2139. con.Close();
  2140. }
  2141. }
  2142. }
  2143. /// <summary>
  2144. /// 获取模具产品期初数据
  2145. /// </summary>
  2146. /// <param name="sUserInfo"></param>
  2147. /// <returns></returns>
  2148. public static ServiceResultEntity GetFPC1002GoodsData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2149. {
  2150. ServiceResultEntity sre = new ServiceResultEntity();
  2151. string mouldID = cre.Properties.GetValue<string>("GoodsCode");
  2152. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2153. try
  2154. {
  2155. con.Open();
  2156. string sqlString = "SELECT g.goodsid, g.goodscode,g.GOODSSPECIFICATION, g.mouldweight, g.mouldcost\n" +
  2157. " , g.StandardGroutingNum, g.MouldOutputCount" +
  2158. " FROM tp_mst_goods g\n" +
  2159. " WHERE g.goodscode = :goodscode";
  2160. OracleParameter[] parameters = new OracleParameter[]
  2161. {
  2162. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  2163. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2164. };
  2165. DataSet DS = con.GetSqlResultToDs(sqlString, parameters);
  2166. //获取未完成模具生产计划
  2167. sqlString = "SELECT mp.plan_id\n" +
  2168. " ,mp.plan_code ||'('||TO_CHAR(mp.plan_qty-mp.make_qty,'fm9999')||')' as plan_code\n" +
  2169. " FROM t_mould_plan mp\n" +
  2170. " INNER JOIN tp_mst_goods mg\n" +
  2171. " ON mp.goodsid = mg.goodsid\n" +
  2172. " WHERE mg.accountid = :accountid\n" +
  2173. " AND mg.goodscode = :goodscode\n" +
  2174. " AND mp.plan_status <>3";
  2175. parameters = new OracleParameter[]
  2176. {
  2177. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  2178. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2179. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2180. };
  2181. DataTable dt = con.GetSqlResultToDt(sqlString, parameters);
  2182. DS.Tables.Add(dt.Copy());
  2183. sre.Data = DS;
  2184. return sre;
  2185. }
  2186. catch (Exception ex)
  2187. {
  2188. throw ex;
  2189. }
  2190. finally
  2191. {
  2192. if (con.ConnState == ConnectionState.Open)
  2193. {
  2194. con.Close();
  2195. }
  2196. }
  2197. }
  2198. /// <summary>
  2199. /// 获取模具新建、编辑画面期初数据
  2200. /// </summary>
  2201. /// <param name="sUserInfo"></param>
  2202. /// <returns></returns>
  2203. public static ServiceResultEntity SetFPC1002Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2204. {
  2205. ServiceResultEntity sre = new ServiceResultEntity();
  2206. int mouldID = Convert.ToInt32(cre.Properties["MouldID"]);
  2207. int retrunRow = 0;
  2208. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2209. try
  2210. {
  2211. con.Connect();
  2212. if (mouldID == 0)
  2213. {
  2214. // 新建
  2215. //// 验证 条码是否重复
  2216. //string sql = "Select count(*) from TP_PC_Mould m where m.MouldBarcode = :MouldBarcode";
  2217. //OracleParameter[] paras = new OracleParameter[]
  2218. //{
  2219. // new OracleParameter(":MouldBarcode", OracleDbType.Varchar2,
  2220. // cre.Properties["MouldBarcode"], ParameterDirection.Input),
  2221. //};
  2222. //string count = con.GetSqlResultToStr(sql, paras);
  2223. //if ("0" != count)
  2224. //{
  2225. // sre.Status = Constant.ServiceResultStatus.Other;
  2226. // sre.Message = "模具条码【" + cre.Properties["MouldBarcode"] + "】已存在";
  2227. // return sre;
  2228. //}
  2229. string plan_code = string.Empty; //模具计划编码
  2230. //模具计划 未完成数量 模具数大小校验
  2231. if (cre.Properties["MOULD_PLAN_ID"] != null)
  2232. {
  2233. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  2234. " FROM t_mould_plan mp\n" +
  2235. " WHERE mp.plan_id = :mould_plan_id";
  2236. OracleParameter[] paras1 = new OracleParameter[]
  2237. {
  2238. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  2239. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),
  2240. };
  2241. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  2242. plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  2243. if (Convert.ToInt32(dt.Rows[0][0]) < Convert.ToInt32(cre.Properties["MCount"]))
  2244. {
  2245. sre.Message = " 模具个数不能大于模具生产计划未完成数量!";
  2246. sre.Status = Constant.ServiceResultStatus.Other;
  2247. return sre;
  2248. }
  2249. }
  2250. int mCount = 1;
  2251. if (cre.Properties["MCount"] != null)
  2252. {
  2253. mCount = Convert.ToInt32(cre.Properties["MCount"]);
  2254. }
  2255. mCount = (mCount < 1 ? 1 : mCount);
  2256. string sql = null;
  2257. OracleParameter[] paras = null;
  2258. for (int i = 0; i < mCount; i++)
  2259. {
  2260. mouldID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mould_id.nextval from dual "));
  2261. string mouldcode = con.GetSqlResultToStr("select fun_cmn_convertto36(" + mouldID + ", 6) from dual ");
  2262. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2263. int len = mouldcode.Length;
  2264. string mouldBarcode = DateTime.Now.ToString("yyMMdd") + (len > 6 ? mouldcode.Substring(len - 6) : mouldcode);
  2265. if (i > 0)
  2266. {
  2267. sre.Result += "," + mouldBarcode;
  2268. }
  2269. else
  2270. {
  2271. sre.Result = mouldBarcode;
  2272. }
  2273. //cre.Properties["MouldBarcode"] = mouldBarcode;
  2274. sql =
  2275. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2276. " (CHANGEID\n" +
  2277. " ,MOULDID\n" +
  2278. " ,MOULDCODE\n" +
  2279. " ,MOULDBARCODE\n" +
  2280. " ,GOODSID\n" +
  2281. " ,GOODSCODE\n" +
  2282. " ,OPERATIONTYPE\n" +
  2283. " ,MOULDSTATUS\n" +
  2284. " ,MOULDSTATUSAFTER\n" +
  2285. " ,GROUTINGNUM\n" +
  2286. " ,REMARKS\n" +
  2287. " ,CHANGEFLAG\n" +
  2288. " ,ACCOUNTID\n" +
  2289. " ,CREATEUSERID)\n" +
  2290. " Values( :changeID\n" +
  2291. " ,:MOULDID\n" +
  2292. " ,:MOULDCODE\n" +
  2293. " ,:MOULDBARCODE\n" +
  2294. " ,:GOODSID\n" +
  2295. " ,:GOODSCODE\n" +
  2296. " ,:OPERATIONTYPE\n" +
  2297. " ,0\n" +
  2298. " ,1\n" +
  2299. " ,0\n" +
  2300. " ,:REMARKS\n" +
  2301. " ,'1'\n" +
  2302. " ,:ACCOUNTID\n" +
  2303. " ,:CREATEUSERID\n" +
  2304. " )";
  2305. paras = new OracleParameter[]
  2306. {
  2307. new OracleParameter(":changeID", OracleDbType.Int32,
  2308. mouldHistoryID, ParameterDirection.Input),
  2309. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2310. mouldID, ParameterDirection.Input),
  2311. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2312. mouldcode, ParameterDirection.Input),
  2313. new OracleParameter(":MOULDBARCODE", OracleDbType.Varchar2,
  2314. mouldBarcode, ParameterDirection.Input),
  2315. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2316. cre.Properties["GoodsID"], ParameterDirection.Input),
  2317. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2318. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2319. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2320. (int)Constant.MouldOperationType.ToInv, ParameterDirection.Input),
  2321. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2322. cre.Properties["Remarks"], ParameterDirection.Input),
  2323. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2324. sUserInfo.AccountID, ParameterDirection.Input),
  2325. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,
  2326. sUserInfo.UserID, ParameterDirection.Input),
  2327. };
  2328. retrunRow += con.ExecuteNonQuery(sql, paras);
  2329. sql =
  2330. "INSERT INTO tp_pc_mould\n" +
  2331. " (MOULDID\n" +
  2332. " ,MOULDCODE\n" +
  2333. " ,MOULDBARCODE\n" +
  2334. " ,MOULDTYPE\n" +
  2335. " ,MATERIALSUPPLIER\n" +
  2336. " ,PRODUCTIONDATE\n" +
  2337. " ,GOODSID\n" +
  2338. " ,GOODSCODE\n" +
  2339. " ,USERID\n" +
  2340. " ,USERCODE\n" +
  2341. " ,WEIGHT\n" +
  2342. " ,COST\n" +
  2343. " ,STANDARDGROUTINGNUM\n" +
  2344. " ,OUTPUTCOUNT\n" +
  2345. " ,MOULDSTATUS\n" +
  2346. " ,PREMOULDSTATUS\n" +
  2347. " ,LASTCHANGEHISTORYID\n" +
  2348. " ,REMARKS\n" +
  2349. " ,MOULD_PLAN_ID\n" + //add 夏常明 模具生产计划id 2023-6-26
  2350. " ,ACCOUNTID\n" +
  2351. " ,CREATEUSERID\n" +
  2352. " ,UPDATEUSERID)\n" +
  2353. "VALUES\n" +
  2354. " (:MOULDID\n" +
  2355. " ,:MOULDCODE\n" +
  2356. " ,:MOULDBARCODE\n" +
  2357. " ,:MOULDTYPE\n" +
  2358. " ,:MATERIALSUPPLIER\n" +
  2359. " ,:PRODUCTIONDATE\n" +
  2360. " ,:GOODSID\n" +
  2361. " ,:GOODSCODE\n" +
  2362. " ,:USERID\n" +
  2363. " ,:USERCODE\n" +
  2364. " ,:WEIGHT\n" +
  2365. " ,:COST\n" +
  2366. " ,:STANDARDGROUTINGNUM\n" +
  2367. " ,:OUTPUTCOUNT\n" +
  2368. " ,:MOULDSTATUS\n" +
  2369. " ,:PREMOULDSTATUS\n" +
  2370. " ,:LASTCHANGEHISTORYID\n" +
  2371. " ,:REMARKS\n" +
  2372. " ,:MOULD_PLAN_ID\n" + //add 夏常明 模具生产计划id 2023-6-26
  2373. " ,:ACCOUNTID\n" +
  2374. " ,:CREATEUSERID\n" +
  2375. " ,:CREATEUSERID)";
  2376. paras = new OracleParameter[]
  2377. {
  2378. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2379. mouldcode, ParameterDirection.Input),
  2380. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  2381. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  2382. new OracleParameter(":PREMOULDSTATUS", OracleDbType.Int32,
  2383. (int)Constant.MouldStatus.Add, ParameterDirection.Input),
  2384. new OracleParameter(":LASTCHANGEHISTORYID", OracleDbType.Int32,
  2385. mouldHistoryID, ParameterDirection.Input),
  2386. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2387. mouldID, ParameterDirection.Input),
  2388. new OracleParameter(":MOULDBARCODE", OracleDbType.Varchar2,
  2389. mouldBarcode, ParameterDirection.Input),
  2390. new OracleParameter(":MOULDTYPE", OracleDbType.Int32,
  2391. cre.Properties["MouldType"], ParameterDirection.Input),
  2392. new OracleParameter(":MATERIALSUPPLIER", OracleDbType.Int32,
  2393. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2394. new OracleParameter(":PRODUCTIONDATE", OracleDbType.Date,
  2395. cre.Properties["ProductionDate"], ParameterDirection.Input),
  2396. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2397. cre.Properties["GoodsID"], ParameterDirection.Input),
  2398. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2399. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2400. new OracleParameter(":USERID", OracleDbType.Int32,
  2401. cre.Properties["UserID"], ParameterDirection.Input),
  2402. new OracleParameter(":USERCODE", OracleDbType.NVarchar2,
  2403. cre.Properties["UserCode"], ParameterDirection.Input),
  2404. new OracleParameter(":WEIGHT", OracleDbType.Decimal,
  2405. cre.Properties["Weight"], ParameterDirection.Input),
  2406. new OracleParameter(":COST", OracleDbType.Decimal,
  2407. cre.Properties["Cost"], ParameterDirection.Input),
  2408. new OracleParameter(":STANDARDGROUTINGNUM", OracleDbType.Decimal,
  2409. cre.Properties["StandardGroutingNum"], ParameterDirection.Input),
  2410. new OracleParameter(":OUTPUTCOUNT", OracleDbType.Decimal,
  2411. cre.Properties["OutputCount"], ParameterDirection.Input),
  2412. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2413. cre.Properties["Remarks"], ParameterDirection.Input),
  2414. new OracleParameter(":MOULD_PLAN_ID", OracleDbType.Int32,
  2415. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2416. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2417. sUserInfo.AccountID, ParameterDirection.Input),
  2418. new OracleParameter(":CREATEUSERID", OracleDbType.Int32,
  2419. sUserInfo.UserID, ParameterDirection.Input),
  2420. };
  2421. retrunRow += con.ExecuteNonQuery(sql, paras);
  2422. //更新模具生产计划完成数量 添加报工履历 add 夏常明 2023-6-26
  2423. if (!string.IsNullOrEmpty(cre.Properties["MOULD_PLAN_ID"] + ""))
  2424. {
  2425. //更新模具生产计划完成数量
  2426. string sqlString = "UPDATE t_mould_plan\n" +
  2427. " SET make_qty = make_qty + 1\n" +
  2428. " WHERE plan_id = :MOULD_PLAN_ID";
  2429. paras = new OracleParameter[]
  2430. {
  2431. new OracleParameter(":MOULD_PLAN_ID", OracleDbType.Int32,
  2432. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2433. };
  2434. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2435. //添加报工履历
  2436. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  2437. " (his_type\n" +
  2438. " ,plan_id\n" +
  2439. " ,plan_code\n" +
  2440. " ,mouldid\n" +
  2441. " ,goodsid\n" +
  2442. " ,materialsupplier\n" +
  2443. " ,CREATEUSER\n" +
  2444. " ,accountid)\n" +
  2445. "VALUES\n" +
  2446. " (1\n" +
  2447. " ,:plan_id\n" +
  2448. " ,:plan_code\n" +
  2449. " ,:mouldid\n" +
  2450. " ,:goodsid\n" +
  2451. " ,:materialsupplier\n" +
  2452. " ,:CREATEUSER\n" +
  2453. " ,:accountid)";
  2454. paras = new OracleParameter[]
  2455. {
  2456. new OracleParameter(":plan_id", OracleDbType.Int32,
  2457. cre.Properties["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  2458. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  2459. plan_code ,ParameterDirection.Input),
  2460. new OracleParameter(":mouldid", OracleDbType.Int32,
  2461. mouldID ,ParameterDirection.Input),
  2462. new OracleParameter(":goodsid", OracleDbType.Int32,
  2463. cre.Properties["GoodsID"] ,ParameterDirection.Input),
  2464. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  2465. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2466. new OracleParameter(":accountid", OracleDbType.Int32,
  2467. sUserInfo.AccountID, ParameterDirection.Input),
  2468. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  2469. sUserInfo.UserID, ParameterDirection.Input),
  2470. };
  2471. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2472. }
  2473. // 多胞胎
  2474. int outputcount = Convert.ToInt32(cre.Properties["OutputCount"]);
  2475. if (outputcount > 1)
  2476. {
  2477. string sqlString = "insert into TP_PC_MouldOutput\n" +
  2478. " (MouldID, MouldCode, OutputNo, OutputCount, GroutingNum, CreateUserID)\n" +
  2479. "values\n" +
  2480. " (:MouldID, :MouldCode, :OutputNo, :OutputCount, 0, :CreateUserID)";
  2481. for (int j = 1; j <= outputcount; j++)
  2482. {
  2483. paras = new OracleParameter[]
  2484. {
  2485. new OracleParameter(":MouldID", OracleDbType.Int32,
  2486. mouldID, ParameterDirection.Input),
  2487. new OracleParameter(":MouldCode", OracleDbType.Varchar2,
  2488. mouldcode, ParameterDirection.Input),
  2489. new OracleParameter(":OutputNo", OracleDbType.Int32,
  2490. j, ParameterDirection.Input),
  2491. new OracleParameter(":OutputCount", OracleDbType.Int32,
  2492. outputcount , ParameterDirection.Input),
  2493. new OracleParameter(":CreateUserID", OracleDbType.Int32,
  2494. sUserInfo.UserID, ParameterDirection.Input),
  2495. };
  2496. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  2497. }
  2498. }
  2499. }
  2500. }
  2501. else
  2502. {
  2503. sre.Result = cre.Properties["MouldBarcode"];
  2504. // 编辑
  2505. string sqlString = "UPDATE tp_pc_mould m\n" +
  2506. " SET m.mouldtype = :mouldtype\n" +
  2507. " ,m.materialsupplier = :materialsupplier\n" +
  2508. " ,m.productiondate = :productiondate\n" +
  2509. " ,m.userid = :userid\n" +
  2510. " ,m.usercode = :usercode\n" +
  2511. " ,m.weight = :weight\n" +
  2512. " ,m.cost = :cost\n" +
  2513. " ,m.standardgroutingnum = :standardgroutingnum\n" +
  2514. " ,m.remarks = :remarks\n" +
  2515. " ,m.UpdateUserID = :UpdateUserID\n" +
  2516. " WHERE m.mouldid = :mouldid";
  2517. OracleParameter[] parameters = new OracleParameter[]
  2518. {
  2519. new OracleParameter(":mouldtype", OracleDbType.Int32,
  2520. cre.Properties["MouldType"], ParameterDirection.Input),
  2521. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  2522. cre.Properties["MaterialSupplier"], ParameterDirection.Input),
  2523. new OracleParameter(":productiondate", OracleDbType.Date,
  2524. cre.Properties["ProductionDate"], ParameterDirection.Input),
  2525. new OracleParameter(":userid", OracleDbType.Int32,
  2526. cre.Properties["UserID"], ParameterDirection.Input),
  2527. new OracleParameter(":usercode", OracleDbType.NVarchar2,
  2528. cre.Properties["UserCode"], ParameterDirection.Input),
  2529. new OracleParameter(":weight", OracleDbType.Decimal,
  2530. cre.Properties["Weight"], ParameterDirection.Input),
  2531. new OracleParameter(":cost", OracleDbType.Decimal,
  2532. cre.Properties["Cost"], ParameterDirection.Input),
  2533. new OracleParameter(":standardgroutingnum", OracleDbType.Decimal,
  2534. cre.Properties["StandardGroutingNum"], ParameterDirection.Input),
  2535. new OracleParameter(":remarks", OracleDbType.NVarchar2,
  2536. cre.Properties["Remarks"], ParameterDirection.Input),
  2537. new OracleParameter(":mouldid", OracleDbType.Int32,
  2538. mouldID, ParameterDirection.Input),
  2539. new OracleParameter(":UpdateUserID", OracleDbType.Int32,
  2540. sUserInfo.UserID, ParameterDirection.Input),
  2541. };
  2542. retrunRow = con.ExecuteNonQuery(sqlString, parameters);
  2543. }
  2544. con.Commit();
  2545. return sre;
  2546. }
  2547. catch (Exception ex)
  2548. {
  2549. throw ex;
  2550. }
  2551. finally
  2552. {
  2553. if (con.ConnState == ConnectionState.Open)
  2554. {
  2555. con.Disconnect();
  2556. }
  2557. }
  2558. }
  2559. /// <summary>
  2560. /// 获取模具信息
  2561. /// </summary>
  2562. /// <param name="sUserInfo"></param>
  2563. /// <returns></returns>
  2564. public static ServiceResultEntity GetMouldData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2565. {
  2566. ServiceResultEntity sre = new ServiceResultEntity();
  2567. int? mouldID = null;
  2568. string mouldBarcode = null;
  2569. if (cre.Properties.ContainsKey("MouldID"))
  2570. {
  2571. mouldID = cre.Properties.GetValue<int?>("MouldID");
  2572. }
  2573. if (cre.Properties.ContainsKey("MouldBarcode"))
  2574. {
  2575. mouldBarcode = cre.Properties["MouldBarcode"].ToString();
  2576. }
  2577. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2578. try
  2579. {
  2580. con.Open();
  2581. string sqlString =
  2582. "SELECT m.MouldID\n" +
  2583. " ,m.MouldCode\n" +
  2584. " ,m.MouldBarcode\n" +
  2585. " ,mtype.dictionaryvalue MouldTypeName\n" +
  2586. " ,mms.SupplierName\n" +
  2587. " ,m.ProductionDate\n" +
  2588. " ,m.GoodsID\n" +
  2589. " ,m.GoodsCode\n" +
  2590. " ,g.GoodsName\n" +
  2591. " ,g.GoodsSpecification\n" +
  2592. " ,m.UserID\n" +
  2593. " ,m.UserCode\n" +
  2594. " ,m.Weight\n" +
  2595. " ,m.Cost\n" +
  2596. " ,m.StandardGroutingNum\n" +
  2597. " ,m.OutputCount\n" +
  2598. " ,m.GroutingNum GroutingNums\n" +
  2599. " ,m.GroutingDateBegin\n" +
  2600. " ,m.GroutingDateEnd\n" +
  2601. " ,m.LastGroutingBatchNo\n" +
  2602. " ,m.MouldStatus\n" +
  2603. " ,ms.mouldstatusname\n" +
  2604. " ,m.RepairFlag\n" +
  2605. " ,m.ScrapDate\n" +
  2606. " ,m.ScrapUserID\n" +
  2607. " ,m.ScrapUserCode\n" +
  2608. " ,ScReason.dictionaryvalue ScrapReason\n" +
  2609. " ,m.ScrapResponsibility\n" +
  2610. " ,gl.groutinglinecode\n" +
  2611. " ,gld.groutingmouldcode\n" +
  2612. " ,m.Remarks\n" +
  2613. " ,m.CreateTime\n" +
  2614. " ,cu.usercode CreateUserCode\n" +
  2615. " ,nvl(mo.OutputNo,0) OutputNo\n" +
  2616. " ,nvl(mo.GroutingNum, m.GroutingNum) GroutingNum\n" +
  2617. " FROM tp_pc_mould m\n" +
  2618. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  2619. " ON mtype.dictionaryid = m.mouldtype\n" +
  2620. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  2621. " ON mms.SupplierID = m.MaterialSupplier\n" +
  2622. " INNER JOIN tp_sys_mouldstatus ms\n" +
  2623. " ON ms.mouldstatusid = m.MouldStatus\n" +
  2624. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  2625. " ON ScReason.dictionaryid = m.ScrapReason\n" +
  2626. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  2627. " ON gld.groutinglinedetailid = m.GroutingLineDetailID\n" +
  2628. " LEFT JOIN tp_pc_groutingline gl\n" +
  2629. " ON gl.groutinglineid = gld.groutinglineid\n" +
  2630. " INNER JOIN tp_mst_user cu\n" +
  2631. " ON cu.userid = m.createuserid\n" +
  2632. " INNER JOIN tp_mst_goods g\n" +
  2633. " ON g.goodsid = m.goodsid\n" +
  2634. " LEFT JOIN TP_PC_MouldOutput mo\n" +
  2635. " ON mo.mouldid = m.mouldid\n" +
  2636. " WHERE m.accountid = :accountid\n" +
  2637. " AND m.valueflag = '1'\n" +
  2638. " AND (:MouldBarcode IS NULL OR m.MouldBarcode = :MouldBarcode)\n" +
  2639. " AND (:MouldStatus IS NULL OR\n" +
  2640. " instr(',' || :MouldStatus || ',', ',' || m.MouldStatus || ',') > 0)\n" +
  2641. " AND (:MouldID IS NULL OR m.MouldID = :MouldID)";
  2642. OracleParameter[] parameters = new OracleParameter[]
  2643. {
  2644. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2645. new OracleParameter(":MouldID", OracleDbType.Int32, mouldID, ParameterDirection.Input),
  2646. new OracleParameter(":MouldBarcode", OracleDbType.NVarchar2, mouldBarcode, ParameterDirection.Input),
  2647. new OracleParameter(":MouldStatus", OracleDbType.Varchar2, cre.Properties["MouldStatus"], ParameterDirection.Input),
  2648. };
  2649. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2650. sre.Data.Tables[0].TableName = "InfoData";
  2651. return sre;
  2652. }
  2653. catch (Exception ex)
  2654. {
  2655. throw ex;
  2656. }
  2657. finally
  2658. {
  2659. if (con.ConnState == ConnectionState.Open)
  2660. {
  2661. con.Close();
  2662. }
  2663. }
  2664. }
  2665. /// <summary>
  2666. /// 替换模具条码
  2667. /// </summary>
  2668. /// <param name="sUserInfo"></param>
  2669. /// <returns></returns>
  2670. public static ServiceResultEntity SetFPC1003Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2671. {
  2672. ServiceResultEntity sre = new ServiceResultEntity();
  2673. int mouldID = Convert.ToInt32(cre.Properties["MouldID"]);
  2674. string mouldBarcode = cre.Properties["MouldBarcode"].ToString();
  2675. string newMouldBarcode = cre.Properties["NewMouldBarcode"].ToString();
  2676. int retrunRow = 0;
  2677. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2678. try
  2679. {
  2680. con.Connect();
  2681. // 验证 条码是否重复
  2682. string sql = "Select count(*) from TP_PC_Mould m where m.MouldBarcode = :MouldBarcode";
  2683. OracleParameter[] paras = new OracleParameter[]
  2684. {
  2685. new OracleParameter(":MouldBarcode", OracleDbType.Varchar2,
  2686. newMouldBarcode, ParameterDirection.Input),
  2687. };
  2688. string count = con.GetSqlResultToStr(sql, paras);
  2689. if ("0" != count)
  2690. {
  2691. sre.Status = Constant.ServiceResultStatus.Other;
  2692. sre.Message = "新模具条码【" + newMouldBarcode + "】已存在";
  2693. return sre;
  2694. }
  2695. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2696. sql =
  2697. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2698. " (CHANGEID\n" +
  2699. " ,MOULDID\n" +
  2700. " ,MOULDCODE\n" +
  2701. " ,MOULDBARCODE\n" +
  2702. " ,GOODSID\n" +
  2703. " ,GOODSCODE\n" +
  2704. " ,OPERATIONTYPE\n" +
  2705. " ,GroutingLineDetailID\n" +
  2706. " ,MOULDSTATUS\n" +
  2707. " ,MOULDSTATUSAFTER\n" +
  2708. " ,GROUTINGNUM\n" +
  2709. " ,REMARKS\n" +
  2710. " ,CHANGEFLAG\n" +
  2711. " ,MouldBarcodeAfter\n" +
  2712. " ,ACCOUNTID\n" +
  2713. " ,CREATEUSERID)\n" +
  2714. " SELECT :changeID\n" +
  2715. " ,MOULDID\n" +
  2716. " ,MOULDCODE\n" +
  2717. " ,:MOULDBARCODE\n" +
  2718. " ,GOODSID\n" +
  2719. " ,GOODSCODE\n" +
  2720. " ,:OPERATIONTYPE\n" +
  2721. " ,GroutingLineDetailID\n" +
  2722. " ,MOULDSTATUS\n" +
  2723. " ,MOULDSTATUS\n" +
  2724. " ,GROUTINGNUM\n" +
  2725. " ,:REMARKS\n" +
  2726. " ,'0'\n" +
  2727. " ,:NEWMOULDBARCODE\n" +
  2728. " ,ACCOUNTID\n" +
  2729. " ,CREATEUSERID\n" +
  2730. " FROM tp_pc_mould m\n" +
  2731. " WHERE m.mouldID = :MouldID";
  2732. paras = new OracleParameter[]
  2733. {
  2734. new OracleParameter(":MouldID", OracleDbType.Int32,
  2735. mouldID, ParameterDirection.Input),
  2736. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2737. (int)Constant.MouldOperationType.ChangeBarcode, ParameterDirection.Input),
  2738. new OracleParameter(":changeID", OracleDbType.Int32,
  2739. mouldHistoryID, ParameterDirection.Input),
  2740. new OracleParameter(":NEWMOULDBARCODE", OracleDbType.NVarchar2,
  2741. newMouldBarcode, ParameterDirection.Input),
  2742. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  2743. mouldBarcode, ParameterDirection.Input),
  2744. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2745. cre.Properties["Remarks"], ParameterDirection.Input),
  2746. };
  2747. retrunRow += con.ExecuteNonQuery(sql, paras);
  2748. sql = "UPDATE tp_pc_mould m\n" +
  2749. " SET m.mouldbarcode = :newmouldbarcode\n" +
  2750. " ,m.updateuserid = :userid\n" +
  2751. " ,m.lastchangehistoryid = :changeid\n" +
  2752. " WHERE m.mouldid = :mouldid";
  2753. paras = new OracleParameter[]
  2754. {
  2755. new OracleParameter(":newmouldbarcode", OracleDbType.NVarchar2,
  2756. newMouldBarcode, ParameterDirection.Input),
  2757. new OracleParameter(":mouldid", OracleDbType.Int32,
  2758. mouldID, ParameterDirection.Input),
  2759. new OracleParameter(":changeid", OracleDbType.Int32,
  2760. mouldHistoryID, ParameterDirection.Input),
  2761. new OracleParameter(":userid", OracleDbType.Int32,
  2762. sUserInfo.UserID, ParameterDirection.Input),
  2763. };
  2764. retrunRow += con.ExecuteNonQuery(sql, paras);
  2765. con.Commit();
  2766. return sre;
  2767. }
  2768. catch (Exception ex)
  2769. {
  2770. throw ex;
  2771. }
  2772. finally
  2773. {
  2774. if (con.ConnState == ConnectionState.Open)
  2775. {
  2776. con.Disconnect();
  2777. }
  2778. }
  2779. }
  2780. /// <summary>
  2781. /// 获取模具操作画面期初数据
  2782. /// </summary>
  2783. /// <param name="sUserInfo"></param>
  2784. /// <returns></returns>
  2785. public static ServiceResultEntity GetFPC1004LoadData(SUserInfo sUserInfo, ClientRequestEntity cre)
  2786. {
  2787. ServiceResultEntity sre = new ServiceResultEntity();
  2788. int mouldOperationType = Convert.ToInt32(cre.Properties["MouldOperationType"]);
  2789. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2790. try
  2791. {
  2792. string sqlString = null;
  2793. OracleParameter[] parameters = null;
  2794. if (mouldOperationType == (int)Constant.MouldOperationType.InvToScrap ||
  2795. mouldOperationType == (int)Constant.MouldOperationType.OnLineToScrap ||
  2796. mouldOperationType == (int)Constant.MouldOperationType.OutToScrap)
  2797. {
  2798. // 报废原因
  2799. sqlString = "SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno\n" +
  2800. " FROM TP_MST_DataDictionary dd\n" +
  2801. " WHERE dd.DictionaryType = 'GMM001'\n" +
  2802. " AND dd.valueflag = '1'\n" +
  2803. " AND dd.accountid = :accountid\n" +
  2804. " ORDER BY dd.displayno";
  2805. parameters = new OracleParameter[]
  2806. {
  2807. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  2808. };
  2809. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  2810. }
  2811. return sre;
  2812. }
  2813. catch (Exception ex)
  2814. {
  2815. throw ex;
  2816. }
  2817. finally
  2818. {
  2819. if (con.ConnState == ConnectionState.Open)
  2820. {
  2821. con.Close();
  2822. }
  2823. }
  2824. }
  2825. /// <summary>
  2826. /// 模具操作
  2827. /// </summary>
  2828. /// <param name="sUserInfo"></param>
  2829. /// <returns></returns>
  2830. public static ServiceResultEntity SetFPC1004Data(SUserInfo sUserInfo, ClientRequestEntity cre)
  2831. {
  2832. ServiceResultEntity sre = new ServiceResultEntity();
  2833. int mouldOperationType = Convert.ToInt32(cre.Properties["MouldOperationType"]);
  2834. int retrunRow = 0;
  2835. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  2836. try
  2837. {
  2838. con.Connect();
  2839. OracleParameter[] paras = null;
  2840. object goods = cre.Properties["GoodsID"];
  2841. string sql =
  2842. "SELECT m.MouldID\n" +
  2843. " ,m.MouldCode\n" +
  2844. " ,m.MouldBarcode\n" +
  2845. " ,m.GoodsID\n" +
  2846. " ,m.GoodsCode\n" +
  2847. " ,m.GroutingNum\n" +
  2848. " ,m.MouldStatus\n" +
  2849. //" ,m.RepairFlag\n" +
  2850. //" ,m.ScrapDate\n" +
  2851. //" ,m.ScrapUserID\n" +
  2852. //" ,m.ScrapUserCode\n" +
  2853. " ,m.GroutingLineDetailID\n" +
  2854. " ,m.MaterialSupplier\n" +
  2855. " ,m.mould_plan_id\n" + //add 夏常明 模具生产计划id
  2856. " FROM tp_pc_mould m\n" +
  2857. " WHERE m.accountid = :accountid\n" +
  2858. " AND m.valueflag = '1'\n" +
  2859. " AND m.MouldID in (" + cre.Properties["MouldIDs"] + ")\n" +
  2860. " ORDER BY m.MouldBarcode for update";
  2861. paras = new OracleParameter[]
  2862. {
  2863. new OracleParameter(":accountid", OracleDbType.Int32,
  2864. sUserInfo.AccountID, ParameterDirection.Input),
  2865. };
  2866. DataTable mouldTable = con.GetSqlResultToDt(sql, paras);
  2867. // 变更型号
  2868. if (mouldOperationType == (int)Constant.MouldOperationType.ChangeGoodsCode)
  2869. {
  2870. #region
  2871. //校验是否存在已报工模具
  2872. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS NOT NULL", null);
  2873. if (mouldTable != null && mouldTable.Rows.Count > 0 && Convert.ToInt32(mouldTable.Rows[0]["MouldStatus"]) != 3 && mouldPlanDt.Length > 0)
  2874. {
  2875. sre.Message = "已报工模具,不能变更型号!";
  2876. sre.Status = Constant.ServiceResultStatus.Other;
  2877. return sre;
  2878. }
  2879. foreach (DataRow item in mouldTable.Rows)
  2880. {
  2881. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  2882. if (mouldStatus != 1 && mouldStatus != 2 && mouldStatus != 3)
  2883. {
  2884. continue;
  2885. }
  2886. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  2887. //操作类别
  2888. DataTable OPERATIONTYPE = con.GetSqlResultToDt(@"SELECT OPERATIONTYPE FROM TP_PC_MOULDCHANGEHISTORY
  2889. WHERE CREATETIME=(SELECT MAX(CREATETIME)
  2890. FROM TP_PC_MOULDCHANGEHISTORY WHERE MOULDID=" + item["MouldID"] + ") AND MOULDID = " + item["MouldID"] + "", null);
  2891. sql =
  2892. "INSERT INTO tp_pc_mouldchangehistory\n" +
  2893. " (CHANGEID\n" +
  2894. " ,MOULDID\n" +
  2895. " ,MOULDCODE\n" +
  2896. " ,MOULDBARCODE\n" +
  2897. " ,GOODSID\n" +
  2898. " ,GOODSCODE\n" +
  2899. " ,OPERATIONTYPE\n" +
  2900. " ,GroutingLineDetailID\n" +
  2901. " ,MOULDSTATUS\n" +
  2902. " ,MOULDSTATUSAFTER\n" +
  2903. " ,GROUTINGNUM\n" +
  2904. " ,REMARKS\n" +
  2905. " ,CHANGEFLAG\n" +
  2906. " ,GoodsIDAfter\n" +
  2907. " ,GoodsCodeAfter\n" +
  2908. " ,ACCOUNTID\n" +
  2909. " ,CREATEUSERID)\n" +
  2910. " Values( :changeID\n" +
  2911. " ,:MOULDID\n" +
  2912. " ,:MOULDCODE\n" +
  2913. " ,:MOULDBARCODE\n" +
  2914. " ,:GOODSID\n" +
  2915. " ,:GOODSCODE\n" +
  2916. " ,:OPERATIONTYPE\n" +
  2917. " ,:GroutingLineDetailID\n" +
  2918. " ,:MOULDSTATUS\n" +
  2919. " ,:MOULDSTATUS\n" +
  2920. " ,:GROUTINGNUM\n" +
  2921. " ,:REMARKS\n" +
  2922. " ,decode(:MOULDSTATUS,1,'3','0')\n" +
  2923. " ,:GoodsIDAfter\n" +
  2924. " ,:GoodsCodeAfter\n" +
  2925. " ,:ACCOUNTID\n" +
  2926. " ,:USERID\n" +
  2927. ")";
  2928. paras = new OracleParameter[]
  2929. {
  2930. new OracleParameter(":GroutingLineDetailID", OracleDbType.Int32,
  2931. item["GroutingLineDetailID"], ParameterDirection.Input),
  2932. new OracleParameter(":changeID", OracleDbType.Int32,
  2933. mouldHistoryID, ParameterDirection.Input),
  2934. new OracleParameter(":MOULDID", OracleDbType.Int32,
  2935. item["MouldID"], ParameterDirection.Input),
  2936. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  2937. item["MOULDCODE"], ParameterDirection.Input),
  2938. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  2939. item["MOULDBARCODE"], ParameterDirection.Input),
  2940. new OracleParameter(":GoodsCodeAfter", OracleDbType.NVarchar2,
  2941. cre.Properties["GoodsCode"], ParameterDirection.Input),
  2942. new OracleParameter(":GoodsIDAfter", OracleDbType.Int32,
  2943. cre.Properties["GoodsID"], ParameterDirection.Input),
  2944. new OracleParameter(":GOODSID", OracleDbType.Int32,
  2945. item["GOODSID"], ParameterDirection.Input),
  2946. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  2947. item["GOODSCODE"], ParameterDirection.Input),
  2948. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  2949. mouldOperationType, ParameterDirection.Input),
  2950. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  2951. item["MOULDSTATUS"], ParameterDirection.Input),
  2952. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  2953. item["GROUTINGNUM"], ParameterDirection.Input),
  2954. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  2955. cre.Properties["Remarks"], ParameterDirection.Input),
  2956. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  2957. sUserInfo.AccountID, ParameterDirection.Input),
  2958. new OracleParameter(":USERID", OracleDbType.Int32,
  2959. sUserInfo.UserID, ParameterDirection.Input),
  2960. };
  2961. retrunRow += con.ExecuteNonQuery(sql, paras);
  2962. if (mouldStatus == 2)
  2963. {
  2964. // 改成型线明细的产品型号
  2965. sql = "UPDATE TP_PC_GroutingLineDetail gld\n" +
  2966. " SET gld.goodsid = :goodsid\n" +
  2967. " ,gld.updateuserid = :userid\n" +
  2968. " WHERE gld.GroutingLineDetailID = :DetailID and gld.mouldid = :mouldid";
  2969. paras = new OracleParameter[]
  2970. {
  2971. new OracleParameter(":goodsid", OracleDbType.Int32,
  2972. cre.Properties["GoodsID"], ParameterDirection.Input),
  2973. new OracleParameter(":DetailID", OracleDbType.Int32,
  2974. item["GroutingLineDetailID"], ParameterDirection.Input),
  2975. new OracleParameter(":userid", OracleDbType.Int32,
  2976. sUserInfo.UserID, ParameterDirection.Input),
  2977. new OracleParameter(":mouldid", OracleDbType.Int32,
  2978. item["MouldID"], ParameterDirection.Input),
  2979. };
  2980. retrunRow += con.ExecuteNonQuery(sql, paras);
  2981. }
  2982. #region SAP模具变更接口传值
  2983. if (goods.ToString()!=item["GOODSID"].ToString() && (OPERATIONTYPE.Rows[0]["OPERATIONTYPE"].ToString() == "8" || OPERATIONTYPE.Rows[0]["OPERATIONTYPE"].ToString() == "-1"))
  2984. {
  2985. sql = @"SELECT
  2986. m.MouldID,
  2987. m.MOULDBARCODE,
  2988. (SELECT g.mouldmaterialcode FROM tp_mst_goods g WHERE g.goodsid = :goodsID ) AS 变更后,
  2989. g.mouldmaterialcode AS 变更前,
  2990. m.STANDARDGROUTINGSUM - m.GroutingNum as 剩余注浆次数,
  2991. CASE WHEN INSTR(GL.GROUTINGLINECODE, 'A') = 1 THEN '2110'
  2992. WHEN (INSTR(GL.GROUTINGLINECODE, 'B') = 1 OR INSTR(GL.GROUTINGLINECODE, 'D') = 1) THEN '2210'
  2993. WHEN INSTR(GL.GROUTINGLINECODE, 'C') = 1 THEN '2310'
  2994. ELSE '3001' END AS 库存地点
  2995. FROM tp_pc_mould m
  2996. left join tp_mst_goods g on m.goodsid = g.goodsid
  2997. LEFT JOIN TP_PC_MOULDCHANGEHISTORY mhis on mhis.MOULDID=m.MOULDID
  2998. LEFT JOIN TP_PC_GROUTINGLINEDETAIL gd on gd.GROUTINGLINEDETAILID=mhis.GROUTINGLINEDETAILID
  2999. LEFT JOIN TP_PC_GROUTINGLINE gl ON gl.GROUTINGLINEID=gd.GROUTINGLINEID
  3000. WHERE m.MouldID =:MouldIDs
  3001. AND m.ACCOUNTID=:accountid
  3002. AND m.VALUEFLAG='1'
  3003. AND (mhis.OPERATIONTYPE='8')
  3004. AND MHIS.CREATETIME=(SELECT MAX(CREATETIME) FROM TP_PC_MOULDCHANGEHISTORY WHERE MouldID =:MouldIDs AND ( OPERATIONTYPE='8')) ";
  3005. paras = new OracleParameter[]
  3006. {
  3007. new OracleParameter(":accountid", OracleDbType.NVarchar2, sUserInfo.AccountID, ParameterDirection.Input),
  3008. new OracleParameter(":MouldIDs", OracleDbType.NVarchar2, item["MouldID"], ParameterDirection.Input),
  3009. new OracleParameter(":goodsID", OracleDbType.NVarchar2, goods.ToString(), ParameterDirection.Input),
  3010. };
  3011. DataTable dt = con.GetSqlResultToDt(sql, paras);
  3012. string ZTYPE;
  3013. string ZMSG;
  3014. if (dt != null && dt.Rows.Count > 0)
  3015. {
  3016. ZPPFM050(DateTime.Now.Date.ToString("yyyyMMdd"), dt, out ZTYPE, out ZMSG);
  3017. string upsql = string.Empty;
  3018. if ("S".Equals(ZTYPE))
  3019. {
  3020. //数据库写入日志表名TP_SAP_MOULDCHANGELOG(成功);
  3021. upsql = @"INSERT INTO TP_SAP_MOULDCHANGELOG(WERKS,MOULDID,MOULDBARCODE,MATERIALCODEFORMER,MATERIALCODEAFTER,INVENTORYPLACE,MSGTY,MSGTX)
  3022. VALUES(5000,:MOULDID,:MOULDBARCODE,:MATERIALCODEFORMER,:MATERIALCODEAFTER,:INVENTORYPLACE,:MSGTY,:MSGTX)";
  3023. paras = new OracleParameter[]
  3024. {
  3025. new OracleParameter(":MOULDID", OracleDbType.NVarchar2, dt.Rows[0]["MouldID"].ToString(), ParameterDirection.Input),
  3026. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2, dt.Rows[0]["MOULDBARCODE"].ToString(), ParameterDirection.Input),
  3027. new OracleParameter(":MATERIALCODEFORMER", OracleDbType.NVarchar2, dt.Rows[0]["变更前"].ToString(), ParameterDirection.Input),
  3028. new OracleParameter(":MATERIALCODEAFTER", OracleDbType.NVarchar2, dt.Rows[0]["变更后"].ToString(), ParameterDirection.Input),
  3029. new OracleParameter(":INVENTORYPLACE", OracleDbType.NVarchar2, dt.Rows[0]["库存地点"].ToString(), ParameterDirection.Input),
  3030. new OracleParameter(":MSGTY", OracleDbType.NVarchar2, ZTYPE, ParameterDirection.Input),
  3031. new OracleParameter(":MSGTX", OracleDbType.NVarchar2, ZMSG, ParameterDirection.Input),
  3032. };
  3033. con.ExecuteNonQuery(upsql, paras);
  3034. sre.Message = "";
  3035. sre.Status = Constant.ServiceResultStatus.Success;
  3036. }
  3037. else if ("E".Equals(ZTYPE))
  3038. {
  3039. //数据库写入日志表名TP_SAP_MOULDCHANGELOG(失败);
  3040. upsql = @"INSERT INTO TP_SAP_MOULDCHANGELOG(WERKS,MOULDID,MOULDBARCODE,MATERIALCODEFORMER,MATERIALCODEAFTER,INVENTORYPLACE,MSGTY,MSGTX)
  3041. VALUES(5000,:MOULDID,:MOULDBARCODE,:MATERIALCODEFORMER,:MATERIALCODEAFTER,:INVENTORYPLACE,:MSGTY,:MSGTX)";
  3042. paras = new OracleParameter[]
  3043. {
  3044. new OracleParameter(":MOULDID", OracleDbType.NVarchar2, dt.Rows[0]["MouldID"].ToString(), ParameterDirection.Input),
  3045. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2, dt.Rows[0]["MOULDBARCODE"].ToString(), ParameterDirection.Input),
  3046. new OracleParameter(":MATERIALCODEFORMER", OracleDbType.NVarchar2, dt.Rows[0]["变更前"].ToString(), ParameterDirection.Input),
  3047. new OracleParameter(":MATERIALCODEAFTER", OracleDbType.NVarchar2, dt.Rows[0]["变更后"].ToString(), ParameterDirection.Input),
  3048. new OracleParameter(":INVENTORYPLACE", OracleDbType.NVarchar2, dt.Rows[0]["库存地点"].ToString(), ParameterDirection.Input),
  3049. new OracleParameter(":MSGTY", OracleDbType.NVarchar2, ZTYPE, ParameterDirection.Input),
  3050. new OracleParameter(":MSGTX", OracleDbType.NVarchar2, ZMSG, ParameterDirection.Input),
  3051. };
  3052. con.ExecuteNonQuery(upsql, paras);
  3053. con.Commit();
  3054. sre.Message = ZMSG;
  3055. sre.Status = Constant.ServiceResultStatus.Other;
  3056. return sre;
  3057. }
  3058. }
  3059. }
  3060. #endregion
  3061. //模具变更sql
  3062. sql = "UPDATE tp_pc_mould m\n" +
  3063. " SET m.goodsid = :goodsid\n" +
  3064. " ,m.goodscode = :goodscode\n" +
  3065. " ,m.updateuserid = :userid\n" +
  3066. " ,m.lastchangehistoryid = :changeid\n" +
  3067. " WHERE m.mouldid = :mouldid";
  3068. paras = new OracleParameter[]
  3069. {
  3070. new OracleParameter(":goodscode", OracleDbType.NVarchar2,
  3071. cre.Properties["GoodsCode"], ParameterDirection.Input),
  3072. new OracleParameter(":goodsid", OracleDbType.Int32,
  3073. cre.Properties["GoodsID"], ParameterDirection.Input),
  3074. new OracleParameter(":changeid", OracleDbType.Int32,
  3075. mouldHistoryID, ParameterDirection.Input),
  3076. new OracleParameter(":userid", OracleDbType.Int32,
  3077. sUserInfo.UserID, ParameterDirection.Input),
  3078. new OracleParameter(":mouldid", OracleDbType.Int32,
  3079. item["MouldID"], ParameterDirection.Input),
  3080. };
  3081. retrunRow += con.ExecuteNonQuery(sql, paras);
  3082. }
  3083. #region 转模具料号SAP
  3084. //待产
  3085. //sql = "SELECT m.MouldID\n" +
  3086. // " ,m.MouldCode\n" +
  3087. // " ,m.MouldBarcode\n" +
  3088. // " ,m.GoodsID\n" +
  3089. // " ,m.GoodsCode\n" +
  3090. // " ,m.GroutingNum\n" +
  3091. // " ,m.MouldStatus\n" +
  3092. // " ,m.GroutingLineDetailID\n" +
  3093. // " ,g.mouldmaterialcode\n" +
  3094. // " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  3095. // " FROM tp_pc_mould m\n" +
  3096. // " left join tp_mst_goods g on m.goodsid = g.goodsid\n" +
  3097. // " WHERE m.accountid = :accountid\n" +
  3098. // " AND m.valueflag = '1'\n" +
  3099. // " AND m.MouldID in (" + cre.Properties["MouldIDs"] + ")\n" +
  3100. // " AND m.MOULDSTATUS = 3\n";
  3101. //paras = new OracleParameter[]
  3102. //{
  3103. // new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  3104. //};
  3105. //mouldTable = con.GetSqlResultToDt(sql, paras);
  3106. //string ZTYPE;
  3107. //string ZMSG;
  3108. //DataTable dt = new DataTable();
  3109. //// 查询更新后的产品编码-物料编码
  3110. //string sqlString = "SELECT g.mouldmaterialcode FROM tp_mst_goods g WHERE g.goodscode = :goodsCode";
  3111. //paras = new OracleParameter[]
  3112. //{
  3113. // new OracleParameter(":goodsCode", OracleDbType.NVarchar2,cre.Properties["GoodsCode"].ToString(), ParameterDirection.Input),
  3114. //};
  3115. //DataTable newGoodsCodeTable = con.GetSqlResultToDt(sqlString, paras);
  3116. ////更新前的模具信息
  3117. //sqlString = "";
  3118. //DataTable dtResult = ZPPFM050(DateTime.Now.Date.ToString("yyyyMMdd"), dt, out ZTYPE, out ZMSG);
  3119. #endregion
  3120. #endregion
  3121. }
  3122. // 模具领用
  3123. else if (mouldOperationType == (int)Constant.MouldOperationType.InvToOut)
  3124. {
  3125. #region
  3126. foreach (DataRow item in mouldTable.Rows)
  3127. {
  3128. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3129. if (mouldStatus != 1)
  3130. {
  3131. continue;
  3132. }
  3133. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3134. sql =
  3135. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3136. " (CHANGEID\n" +
  3137. " ,MOULDID\n" +
  3138. " ,MOULDCODE\n" +
  3139. " ,MOULDBARCODE\n" +
  3140. " ,GOODSID\n" +
  3141. " ,GOODSCODE\n" +
  3142. " ,OPERATIONTYPE\n" +
  3143. " ,MOULDSTATUS\n" +
  3144. " ,MOULDSTATUSAFTER\n" +
  3145. " ,GROUTINGNUM\n" +
  3146. " ,REMARKS\n" +
  3147. " ,CHANGEFLAG\n" +
  3148. " ,ACCOUNTID\n" +
  3149. " ,CREATEUSERID)\n" +
  3150. " Values( :changeID\n" +
  3151. " ,:MOULDID\n" +
  3152. " ,:MOULDCODE\n" +
  3153. " ,:MOULDBARCODE\n" +
  3154. " ,:GOODSID\n" +
  3155. " ,:GOODSCODE\n" +
  3156. " ,:OPERATIONTYPE\n" +
  3157. " ,:MOULDSTATUS\n" +
  3158. " ,:MOULDSTATUSAFTER\n" +
  3159. " ,:GROUTINGNUM\n" +
  3160. " ,:REMARKS\n" +
  3161. " ,'2'\n" +
  3162. " ,:ACCOUNTID\n" +
  3163. " ,:USERID\n" +
  3164. ")";
  3165. paras = new OracleParameter[]
  3166. {
  3167. new OracleParameter(":changeID", OracleDbType.Int32,
  3168. mouldHistoryID, ParameterDirection.Input),
  3169. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3170. item["MouldID"], ParameterDirection.Input),
  3171. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3172. item["MOULDCODE"], ParameterDirection.Input),
  3173. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3174. item["MOULDBARCODE"], ParameterDirection.Input),
  3175. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3176. item["GOODSID"], ParameterDirection.Input),
  3177. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3178. item["GOODSCODE"], ParameterDirection.Input),
  3179. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3180. mouldOperationType, ParameterDirection.Input),
  3181. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3182. (int)Constant.MouldStatus.Out, ParameterDirection.Input),
  3183. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3184. item["MOULDSTATUS"], ParameterDirection.Input),
  3185. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3186. item["GROUTINGNUM"], ParameterDirection.Input),
  3187. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3188. cre.Properties["Remarks"], ParameterDirection.Input),
  3189. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3190. sUserInfo.AccountID, ParameterDirection.Input),
  3191. new OracleParameter(":USERID", OracleDbType.Int32,
  3192. sUserInfo.UserID, ParameterDirection.Input),
  3193. };
  3194. retrunRow += con.ExecuteNonQuery(sql, paras);
  3195. sql = "UPDATE tp_pc_mould m\n" +
  3196. " SET m.premouldstatus = m.mouldstatus\n" +
  3197. " ,m.mouldstatus = :mouldstatus\n" +
  3198. " ,m.updateuserid = :userid\n" +
  3199. " ,m.lastchangehistoryid = :changeid\n" +
  3200. " WHERE m.mouldid = :mouldid";
  3201. paras = new OracleParameter[]
  3202. {
  3203. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3204. (int)Constant.MouldStatus.Out, ParameterDirection.Input),
  3205. new OracleParameter(":changeid", OracleDbType.Int32,
  3206. mouldHistoryID, ParameterDirection.Input),
  3207. new OracleParameter(":userid", OracleDbType.Int32,
  3208. sUserInfo.UserID, ParameterDirection.Input),
  3209. new OracleParameter(":mouldid", OracleDbType.Int32,
  3210. item["MouldID"], ParameterDirection.Input),
  3211. };
  3212. retrunRow += con.ExecuteNonQuery(sql, paras);
  3213. }
  3214. #endregion
  3215. }
  3216. // 模具回收
  3217. else if (mouldOperationType == (int)Constant.MouldOperationType.OutToInv)
  3218. {
  3219. #region
  3220. foreach (DataRow item in mouldTable.Rows)
  3221. {
  3222. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3223. if (mouldStatus != 3)
  3224. {
  3225. continue;
  3226. }
  3227. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3228. sql =
  3229. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3230. " (CHANGEID\n" +
  3231. " ,MOULDID\n" +
  3232. " ,MOULDCODE\n" +
  3233. " ,MOULDBARCODE\n" +
  3234. " ,GOODSID\n" +
  3235. " ,GOODSCODE\n" +
  3236. " ,OPERATIONTYPE\n" +
  3237. " ,MOULDSTATUS\n" +
  3238. " ,MOULDSTATUSAFTER\n" +
  3239. " ,GROUTINGNUM\n" +
  3240. " ,REMARKS\n" +
  3241. " ,CHANGEFLAG\n" +
  3242. " ,ACCOUNTID\n" +
  3243. " ,CREATEUSERID)\n" +
  3244. " Values( :changeID\n" +
  3245. " ,:MOULDID\n" +
  3246. " ,:MOULDCODE\n" +
  3247. " ,:MOULDBARCODE\n" +
  3248. " ,:GOODSID\n" +
  3249. " ,:GOODSCODE\n" +
  3250. " ,:OPERATIONTYPE\n" +
  3251. " ,:MOULDSTATUS\n" +
  3252. " ,:MOULDSTATUSAFTER\n" +
  3253. " ,:GROUTINGNUM\n" +
  3254. " ,:REMARKS\n" +
  3255. " ,'1'\n" +
  3256. " ,:ACCOUNTID\n" +
  3257. " ,:USERID\n" +
  3258. ")";
  3259. paras = new OracleParameter[]
  3260. {
  3261. new OracleParameter(":changeID", OracleDbType.Int32,
  3262. mouldHistoryID, ParameterDirection.Input),
  3263. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3264. item["MouldID"], ParameterDirection.Input),
  3265. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3266. item["MOULDCODE"], ParameterDirection.Input),
  3267. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3268. item["MOULDBARCODE"], ParameterDirection.Input),
  3269. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3270. item["GOODSID"], ParameterDirection.Input),
  3271. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3272. item["GOODSCODE"], ParameterDirection.Input),
  3273. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3274. mouldOperationType, ParameterDirection.Input),
  3275. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3276. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3277. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3278. item["MOULDSTATUS"], ParameterDirection.Input),
  3279. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3280. item["GROUTINGNUM"], ParameterDirection.Input),
  3281. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3282. cre.Properties["Remarks"], ParameterDirection.Input),
  3283. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3284. sUserInfo.AccountID, ParameterDirection.Input),
  3285. new OracleParameter(":USERID", OracleDbType.Int32,
  3286. sUserInfo.UserID, ParameterDirection.Input),
  3287. };
  3288. retrunRow += con.ExecuteNonQuery(sql, paras);
  3289. sql = "UPDATE tp_pc_mould m\n" +
  3290. " SET m.premouldstatus = m.mouldstatus\n" +
  3291. " ,m.mouldstatus = :mouldstatus\n" +
  3292. " ,m.updateuserid = :userid\n" +
  3293. " ,m.lastchangehistoryid = :changeid\n" +
  3294. " WHERE m.mouldid = :mouldid";
  3295. paras = new OracleParameter[]
  3296. {
  3297. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3298. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3299. new OracleParameter(":changeid", OracleDbType.Int32,
  3300. mouldHistoryID, ParameterDirection.Input),
  3301. new OracleParameter(":userid", OracleDbType.Int32,
  3302. sUserInfo.UserID, ParameterDirection.Input),
  3303. new OracleParameter(":mouldid", OracleDbType.Int32,
  3304. item["MouldID"], ParameterDirection.Input),
  3305. };
  3306. retrunRow += con.ExecuteNonQuery(sql, paras);
  3307. }
  3308. #endregion
  3309. }
  3310. // 报废撤销
  3311. else if (mouldOperationType == (int)Constant.MouldOperationType.ScrapToInv)
  3312. {
  3313. #region
  3314. foreach (DataRow item in mouldTable.Rows)
  3315. {
  3316. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3317. if (mouldStatus != 4)
  3318. {
  3319. continue;
  3320. }
  3321. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3322. sql =
  3323. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3324. " (CHANGEID\n" +
  3325. " ,MOULDID\n" +
  3326. " ,MOULDCODE\n" +
  3327. " ,MOULDBARCODE\n" +
  3328. " ,GOODSID\n" +
  3329. " ,GOODSCODE\n" +
  3330. " ,OPERATIONTYPE\n" +
  3331. " ,MOULDSTATUS\n" +
  3332. " ,MOULDSTATUSAFTER\n" +
  3333. " ,GROUTINGNUM\n" +
  3334. " ,REMARKS\n" +
  3335. " ,CHANGEFLAG\n" +
  3336. " ,ACCOUNTID\n" +
  3337. " ,CREATEUSERID)\n" +
  3338. " Values( :changeID\n" +
  3339. " ,:MOULDID\n" +
  3340. " ,:MOULDCODE\n" +
  3341. " ,:MOULDBARCODE\n" +
  3342. " ,:GOODSID\n" +
  3343. " ,:GOODSCODE\n" +
  3344. " ,:OPERATIONTYPE\n" +
  3345. " ,:MOULDSTATUS\n" +
  3346. " ,:MOULDSTATUSAFTER\n" +
  3347. " ,:GROUTINGNUM\n" +
  3348. " ,:REMARKS\n" +
  3349. " ,'1'\n" +
  3350. " ,:ACCOUNTID\n" +
  3351. " ,:USERID\n" +
  3352. ")";
  3353. paras = new OracleParameter[]
  3354. {
  3355. new OracleParameter(":changeID", OracleDbType.Int32,
  3356. mouldHistoryID, ParameterDirection.Input),
  3357. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3358. item["MouldID"], ParameterDirection.Input),
  3359. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3360. item["MOULDCODE"], ParameterDirection.Input),
  3361. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3362. item["MOULDBARCODE"], ParameterDirection.Input),
  3363. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3364. item["GOODSID"], ParameterDirection.Input),
  3365. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3366. item["GOODSCODE"], ParameterDirection.Input),
  3367. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3368. mouldOperationType, ParameterDirection.Input),
  3369. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3370. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3371. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3372. item["MOULDSTATUS"], ParameterDirection.Input),
  3373. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3374. item["GROUTINGNUM"], ParameterDirection.Input),
  3375. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3376. cre.Properties["Remarks"], ParameterDirection.Input),
  3377. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3378. sUserInfo.AccountID, ParameterDirection.Input),
  3379. new OracleParameter(":USERID", OracleDbType.Int32,
  3380. sUserInfo.UserID, ParameterDirection.Input),
  3381. };
  3382. retrunRow += con.ExecuteNonQuery(sql, paras);
  3383. sql = "UPDATE tp_pc_mould m\n" +
  3384. " SET m.premouldstatus = m.mouldstatus\n" +
  3385. " ,m.mouldstatus = :mouldstatus\n" +
  3386. " ,m.updateuserid = :userid\n" +
  3387. " ,m.lastchangehistoryid = :changeid\n" +
  3388. " ,m.ScrapDate = null\n" +
  3389. " ,m.ScrapUserID = null\n" +
  3390. " ,m.ScrapUserCode = null\n" +
  3391. " ,m.ScrapReason = null\n" +
  3392. " ,m.ScrapResponsibility = null\n" +
  3393. " WHERE m.mouldid = :mouldid";
  3394. paras = new OracleParameter[]
  3395. {
  3396. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3397. (int)Constant.MouldStatus.Inv, ParameterDirection.Input),
  3398. new OracleParameter(":changeid", OracleDbType.Int32,
  3399. mouldHistoryID, ParameterDirection.Input),
  3400. new OracleParameter(":userid", OracleDbType.Int32,
  3401. sUserInfo.UserID, ParameterDirection.Input),
  3402. new OracleParameter(":mouldid", OracleDbType.Int32,
  3403. item["MouldID"], ParameterDirection.Input),
  3404. };
  3405. retrunRow += con.ExecuteNonQuery(sql, paras);
  3406. }
  3407. #endregion
  3408. }
  3409. // 报废
  3410. else if (mouldOperationType == (int)Constant.MouldOperationType.InvToScrap)
  3411. {
  3412. #region
  3413. foreach (DataRow item in mouldTable.Rows)
  3414. {
  3415. int mouldStatus = Convert.ToInt32(item["MouldStatus"]);
  3416. if (mouldStatus != 1 && mouldStatus != 3)
  3417. {
  3418. continue;
  3419. }
  3420. int mouldHistoryID = Convert.ToInt32(con.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  3421. sql =
  3422. "INSERT INTO tp_pc_mouldchangehistory\n" +
  3423. " (CHANGEID\n" +
  3424. " ,MOULDID\n" +
  3425. " ,MOULDCODE\n" +
  3426. " ,MOULDBARCODE\n" +
  3427. " ,GOODSID\n" +
  3428. " ,GOODSCODE\n" +
  3429. " ,OPERATIONTYPE\n" +
  3430. " ,MOULDSTATUS\n" +
  3431. " ,MOULDSTATUSAFTER\n" +
  3432. " ,GROUTINGNUM\n" +
  3433. " ,REMARKS\n" +
  3434. " ,CHANGEFLAG\n" +
  3435. " ,ScrapReason\n" +
  3436. " ,ScrapResponsibility\n" +
  3437. " ,ACCOUNTID\n" +
  3438. " ,CREATEUSERID)\n" +
  3439. " Values( :changeID\n" +
  3440. " ,:MOULDID\n" +
  3441. " ,:MOULDCODE\n" +
  3442. " ,:MOULDBARCODE\n" +
  3443. " ,:GOODSID\n" +
  3444. " ,:GOODSCODE\n" +
  3445. " ,:OPERATIONTYPE\n" +
  3446. " ,:MOULDSTATUS\n" +
  3447. " ,:MOULDSTATUSAFTER\n" +
  3448. " ,:GROUTINGNUM\n" +
  3449. " ,:REMARKS\n" +
  3450. " ,:CHANGEFLAG\n" +
  3451. " ,:ScrapReason\n" +
  3452. " ,:ScrapResponsibility\n" +
  3453. " ,:ACCOUNTID\n" +
  3454. " ,:USERID\n" +
  3455. ")";
  3456. paras = new OracleParameter[]
  3457. {
  3458. new OracleParameter(":changeID", OracleDbType.Int32,
  3459. mouldHistoryID, ParameterDirection.Input),
  3460. new OracleParameter(":MOULDID", OracleDbType.Int32,
  3461. item["MouldID"], ParameterDirection.Input),
  3462. new OracleParameter(":MOULDCODE", OracleDbType.Varchar2,
  3463. item["MOULDCODE"], ParameterDirection.Input),
  3464. new OracleParameter(":MOULDBARCODE", OracleDbType.NVarchar2,
  3465. item["MOULDBARCODE"], ParameterDirection.Input),
  3466. new OracleParameter(":GOODSID", OracleDbType.Int32,
  3467. item["GOODSID"], ParameterDirection.Input),
  3468. new OracleParameter(":GOODSCODE", OracleDbType.NVarchar2,
  3469. item["GOODSCODE"], ParameterDirection.Input),
  3470. new OracleParameter(":OPERATIONTYPE", OracleDbType.Int32,
  3471. (int)(mouldStatus == 1 ? Constant.MouldOperationType.InvToScrap : Constant.MouldOperationType.OutToScrap)
  3472. , ParameterDirection.Input),
  3473. new OracleParameter(":CHANGEFLAG", OracleDbType.Char,
  3474. (mouldStatus == 1 ? "2" : "0")
  3475. , ParameterDirection.Input),
  3476. new OracleParameter(":MOULDSTATUSAFTER", OracleDbType.Int32,
  3477. (int)Constant.MouldStatus.Scrap, ParameterDirection.Input),
  3478. new OracleParameter(":MOULDSTATUS", OracleDbType.Int32,
  3479. item["MOULDSTATUS"], ParameterDirection.Input),
  3480. new OracleParameter(":GROUTINGNUM", OracleDbType.Int32,
  3481. item["GROUTINGNUM"], ParameterDirection.Input),
  3482. new OracleParameter(":REMARKS", OracleDbType.NVarchar2,
  3483. cre.Properties["Remarks"], ParameterDirection.Input),
  3484. new OracleParameter(":ACCOUNTID", OracleDbType.Int32,
  3485. sUserInfo.AccountID, ParameterDirection.Input),
  3486. new OracleParameter(":USERID", OracleDbType.Int32,
  3487. sUserInfo.UserID, ParameterDirection.Input),
  3488. new OracleParameter(":ScrapReason", OracleDbType.Int32,
  3489. cre.Properties["ScrapReason"], ParameterDirection.Input),
  3490. new OracleParameter(":ScrapResponsibility", OracleDbType.NVarchar2,
  3491. cre.Properties["ScrapResponsibility"], ParameterDirection.Input),
  3492. };
  3493. retrunRow += con.ExecuteNonQuery(sql, paras);
  3494. sql = "UPDATE tp_pc_mould m\n" +
  3495. " SET m.premouldstatus = m.mouldstatus\n" +
  3496. " ,m.mouldstatus = :mouldstatus\n" +
  3497. " ,m.updateuserid = :userid\n" +
  3498. " ,m.lastchangehistoryid = :changeid\n" +
  3499. " ,m.scrapdate = SYSDATE\n" +
  3500. " ,m.scrapuserid = :scrapuserid\n" +
  3501. " ,m.scrapusercode = :scrapusercode\n" +
  3502. " ,m.ScrapReason = :ScrapReason\n" +
  3503. " ,m.ScrapResponsibility = :ScrapResponsibility\n" +
  3504. " WHERE m.mouldid = :mouldid";
  3505. paras = new OracleParameter[]
  3506. {
  3507. new OracleParameter(":mouldstatus", OracleDbType.Int32,
  3508. (int)Constant.MouldStatus.Scrap, ParameterDirection.Input),
  3509. new OracleParameter(":changeid", OracleDbType.Int32,
  3510. mouldHistoryID, ParameterDirection.Input),
  3511. new OracleParameter(":userid", OracleDbType.Int32,
  3512. sUserInfo.UserID, ParameterDirection.Input),
  3513. new OracleParameter(":mouldid", OracleDbType.Int32,
  3514. item["MouldID"], ParameterDirection.Input),
  3515. new OracleParameter(":scrapuserid", OracleDbType.Int32,
  3516. sUserInfo.UserID, ParameterDirection.Input),
  3517. new OracleParameter(":scrapusercode", OracleDbType.NVarchar2,
  3518. sUserInfo.UserCode, ParameterDirection.Input),
  3519. new OracleParameter(":ScrapReason", OracleDbType.Int32,
  3520. cre.Properties["ScrapReason"], ParameterDirection.Input),
  3521. new OracleParameter(":ScrapResponsibility", OracleDbType.NVarchar2,
  3522. cre.Properties["ScrapResponsibility"], ParameterDirection.Input),
  3523. };
  3524. retrunRow += con.ExecuteNonQuery(sql, paras);
  3525. }
  3526. #endregion
  3527. }
  3528. // 撤销报工
  3529. else if (mouldOperationType == (int)Constant.MouldOperationType.UnMouldPlan)
  3530. {
  3531. //校验是否存在未报工模具
  3532. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS NULL", null);
  3533. if (mouldPlanDt.Length > 0)
  3534. {
  3535. sre.Message = "存在未报工模具!";
  3536. sre.Status = Constant.ServiceResultStatus.Other;
  3537. return sre;
  3538. }
  3539. foreach (DataRow item in mouldTable.Rows)
  3540. {
  3541. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  3542. " FROM t_mould_plan mp\n" +
  3543. " WHERE mp.plan_id = :mould_plan_id";
  3544. OracleParameter[] paras1 = new OracleParameter[]
  3545. {
  3546. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3547. item["mould_plan_id"], ParameterDirection.Input),
  3548. };
  3549. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  3550. string plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  3551. // 撤销报工(清空模具关联模具生产计划id)
  3552. sqlString = "UPDATE tp_pc_mould\n" +
  3553. " SET mould_plan_id = NULL\n" +
  3554. " ,updateuserid =:userid\n" +
  3555. " WHERE mouldid = :mouldid";
  3556. paras = new OracleParameter[]
  3557. {
  3558. new OracleParameter(":userid", OracleDbType.Int32,
  3559. sUserInfo.UserID, ParameterDirection.Input),
  3560. new OracleParameter(":mouldid", OracleDbType.Int32,
  3561. item["MouldID"], ParameterDirection.Input),
  3562. };
  3563. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3564. // 报工计划 完成数量-1
  3565. sqlString = "UPDATE t_mould_plan\n" +
  3566. " SET make_qty = make_qty - 1\n" +
  3567. " ,updateuserid =:userid\n" +
  3568. " WHERE plan_id = :plan_id";
  3569. paras = new OracleParameter[]
  3570. {
  3571. new OracleParameter(":userid", OracleDbType.Int32,
  3572. sUserInfo.UserID, ParameterDirection.Input),
  3573. new OracleParameter(":plan_id", OracleDbType.Int32,
  3574. item["mould_plan_id"], ParameterDirection.Input),
  3575. };
  3576. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3577. //报工计划履历
  3578. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  3579. " (his_type\n" +
  3580. " ,plan_id\n" +
  3581. " ,plan_code\n" +
  3582. " ,mouldid\n" +
  3583. " ,goodsid\n" +
  3584. " ,materialsupplier\n" +
  3585. " ,remarks\n" +
  3586. " ,CREATEUSER\n" +
  3587. " ,accountid)\n" +
  3588. "VALUES\n" +
  3589. " (-1\n" +
  3590. " ,:plan_id\n" +
  3591. " ,:plan_code\n" +
  3592. " ,:mouldid\n" +
  3593. " ,:goodsid\n" +
  3594. " ,:materialsupplier\n" +
  3595. " ,:remarks\n" +
  3596. " ,:CREATEUSER\n" +
  3597. " ,:accountid)";
  3598. paras = new OracleParameter[]
  3599. {
  3600. new OracleParameter(":plan_id", OracleDbType.Int32,
  3601. item["MOULD_PLAN_ID"], ParameterDirection.Input),// 模具生产计划id
  3602. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  3603. plan_code ,ParameterDirection.Input),
  3604. new OracleParameter(":mouldid", OracleDbType.Int32,
  3605. item["MouldID"], ParameterDirection.Input),
  3606. new OracleParameter(":goodsid", OracleDbType.Int32,
  3607. item["GoodsID"] ,ParameterDirection.Input),
  3608. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  3609. item["MaterialSupplier"], ParameterDirection.Input),
  3610. new OracleParameter(":accountid", OracleDbType.Int32,
  3611. sUserInfo.AccountID, ParameterDirection.Input),
  3612. new OracleParameter(":remarks", OracleDbType.Varchar2,
  3613. cre.Properties["Remarks"] ,ParameterDirection.Input),
  3614. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  3615. sUserInfo.UserID, ParameterDirection.Input),
  3616. };
  3617. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3618. }
  3619. }
  3620. // 生产报工
  3621. else if (mouldOperationType == (int)Constant.MouldOperationType.MouldPlan)
  3622. {
  3623. int mould_plan_id = Convert.ToInt32(cre.Properties["mould_plan_id"]);
  3624. //校验是否存在已报工模具
  3625. DataRow[] mouldPlanDt = mouldTable.Select(" mould_plan_id IS not NULL", null);
  3626. if (mouldPlanDt.Length > 0)
  3627. {
  3628. sre.Message = "存在已报工模具!";
  3629. sre.Status = Constant.ServiceResultStatus.Other;
  3630. return sre;
  3631. }
  3632. DataView dataView = new DataView(mouldTable);
  3633. DataTable dts = dataView.ToTable(true, "GoodsID");
  3634. if (dts.Rows.Count > 1)
  3635. {
  3636. sre.Message = "存在不同的产品型号!";
  3637. sre.Status = Constant.ServiceResultStatus.Other;
  3638. return sre;
  3639. }
  3640. string sqlString = "SELECT mp.plan_qty - mp.make_qty AS incomplete,mp.PLAN_CODE\n" +
  3641. " FROM t_mould_plan mp\n" +
  3642. " WHERE mp.plan_id = :mould_plan_id";
  3643. OracleParameter[] paras1 = new OracleParameter[]
  3644. {
  3645. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3646. mould_plan_id, ParameterDirection.Input),
  3647. };
  3648. DataTable dt = con.GetSqlResultToDt(sqlString, paras1);
  3649. //生产计划未完成数量
  3650. int incomplete = Convert.ToInt32(dt.Rows[0]["incomplete"]);
  3651. if (incomplete < mouldTable.Rows.Count)
  3652. {
  3653. sre.Message = "报工数量大于生产计划未完成数量!";
  3654. sre.Status = Constant.ServiceResultStatus.Other;
  3655. return sre;
  3656. }
  3657. string plan_code = dt.Rows[0]["PLAN_CODE"].ToString();
  3658. foreach (DataRow item in mouldTable.Rows)
  3659. {
  3660. // 生产报工(清空模具关联模具生产计划id)
  3661. sqlString = "UPDATE tp_pc_mould\n" +
  3662. " SET mould_plan_id = :mould_plan_id\n" +
  3663. " ,updateuserid =:userid\n" +
  3664. " WHERE mouldid = :mouldid";
  3665. paras = new OracleParameter[]
  3666. {
  3667. new OracleParameter(":mould_plan_id", OracleDbType.Varchar2,
  3668. mould_plan_id, ParameterDirection.Input),
  3669. new OracleParameter(":userid", OracleDbType.Int32,
  3670. sUserInfo.UserID, ParameterDirection.Input),
  3671. new OracleParameter(":mouldid", OracleDbType.Int32,
  3672. item["MouldID"], ParameterDirection.Input),
  3673. };
  3674. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3675. // 报工计划 完成数量+1
  3676. sqlString = "UPDATE t_mould_plan\n" +
  3677. " SET make_qty = make_qty + 1\n" +
  3678. " ,updateuserid =:userid\n" +
  3679. " WHERE plan_id = :plan_id";
  3680. paras = new OracleParameter[]
  3681. {
  3682. new OracleParameter(":userid", OracleDbType.Int32,
  3683. sUserInfo.UserID, ParameterDirection.Input),
  3684. new OracleParameter(":plan_id", OracleDbType.Int32,
  3685. mould_plan_id, ParameterDirection.Input),
  3686. };
  3687. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3688. //报工计划履历
  3689. sqlString = "INSERT INTO t_mould_plan_report_his\n" +
  3690. " (his_type\n" +
  3691. " ,plan_id\n" +
  3692. " ,plan_code\n" +
  3693. " ,mouldid\n" +
  3694. " ,goodsid\n" +
  3695. " ,materialsupplier\n" +
  3696. " ,remarks\n" +
  3697. " ,CREATEUSER\n" +
  3698. " ,accountid)\n" +
  3699. "VALUES\n" +
  3700. " (1\n" +
  3701. " ,:plan_id\n" +
  3702. " ,:plan_code\n" +
  3703. " ,:mouldid\n" +
  3704. " ,:goodsid\n" +
  3705. " ,:materialsupplier\n" +
  3706. " ,:remarks\n" +
  3707. " ,:CREATEUSER\n" +
  3708. " ,:accountid)";
  3709. paras = new OracleParameter[]
  3710. {
  3711. new OracleParameter(":plan_id", OracleDbType.Int32,
  3712. mould_plan_id, ParameterDirection.Input),// 模具生产计划id
  3713. new OracleParameter(":plan_code", OracleDbType.Varchar2,
  3714. plan_code ,ParameterDirection.Input),
  3715. new OracleParameter(":mouldid", OracleDbType.Int32,
  3716. item["MouldID"], ParameterDirection.Input),
  3717. new OracleParameter(":goodsid", OracleDbType.Int32,
  3718. item["GoodsID"] ,ParameterDirection.Input),
  3719. new OracleParameter(":materialsupplier", OracleDbType.Int32,
  3720. item["MaterialSupplier"], ParameterDirection.Input),
  3721. new OracleParameter(":accountid", OracleDbType.Int32,
  3722. sUserInfo.AccountID, ParameterDirection.Input),
  3723. new OracleParameter(":remarks", OracleDbType.Varchar2,
  3724. cre.Properties["Remarks"] ,ParameterDirection.Input),
  3725. new OracleParameter(":CREATEUSER", OracleDbType.Int32,
  3726. sUserInfo.UserID, ParameterDirection.Input),
  3727. };
  3728. retrunRow += con.ExecuteNonQuery(sqlString, paras);
  3729. }
  3730. }
  3731. con.Commit();
  3732. return sre;
  3733. }
  3734. catch (Exception ex)
  3735. {
  3736. throw ex;
  3737. }
  3738. finally
  3739. {
  3740. if (con.ConnState == ConnectionState.Open)
  3741. {
  3742. con.Disconnect();
  3743. }
  3744. }
  3745. }
  3746. /// <summary>
  3747. /// 保存试验标识
  3748. /// </summary>
  3749. /// <param name="sUserInfo"></param>
  3750. /// <returns></returns>
  3751. public static ServiceResultEntity SaveTestMouldFlag(SUserInfo sUserInfo, ClientRequestEntity cre)
  3752. {
  3753. ServiceResultEntity sre = new ServiceResultEntity();
  3754. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3755. try
  3756. {
  3757. string testMouldFlag = cre.Properties["TestMouldFlag"] + "";
  3758. con.Connect();
  3759. OracleParameter[] paras = null;
  3760. string sql = @"
  3761. SELECT DISTINCT G.GROUTINGLINEID
  3762. ,G.GROUTINGLINECODE
  3763. ,G.TESTFLAG
  3764. FROM TP_PC_GROUTINGLINE G
  3765. INNER JOIN TP_PC_GROUTINGLINEDETAIL GD
  3766. ON GD.GROUTINGLINEID = G.GROUTINGLINEID
  3767. WHERE INSTR(:MOULDIDS, ',' || GD.MOULDID || ',') > 0 ";
  3768. paras = new OracleParameter[]
  3769. {
  3770. new OracleParameter(":MOULDIDS", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  3771. };
  3772. DataTable dt = con.GetSqlResultToDt(sql, paras);
  3773. foreach (DataRow row in dt.Rows)
  3774. {
  3775. // 如果要改成‘0’,但成型线整线试验,则不允许改
  3776. if (testMouldFlag.Equals("0") && (row["TESTFLAG"] + "").Equals("1"))
  3777. {
  3778. sre.OtherStatus = -1;
  3779. sre.Message = row["GROUTINGLINECODE"] + "是试验成型线,不能改为非试验模具。";
  3780. return sre;
  3781. }
  3782. }
  3783. sql = @"
  3784. UPDATE TP_PC_MOULD M
  3785. SET M.TESTMOULDFLAG = :TESTMOULDFLAG,
  3786. M.UPDATEUSERID = :USERID
  3787. WHERE INSTR(:MOULDIDS, ',' || M.MOULDID || ',') > 0 ";
  3788. paras = new OracleParameter[]
  3789. {
  3790. new OracleParameter(":TESTMOULDFLAG", OracleDbType.Char, testMouldFlag, ParameterDirection.Input),
  3791. new OracleParameter(":USERID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  3792. new OracleParameter(":MOULDIDS", OracleDbType.Varchar2, cre.Properties["MouldIDs"], ParameterDirection.Input),
  3793. };
  3794. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3795. sql = @"
  3796. INSERT INTO TP_PC_MOULDHISTORY
  3797. (MOULDID,
  3798. TESTMOULDFLAG,
  3799. ACCOUNTID,
  3800. CREATEUSERID)
  3801. VALUES
  3802. (:MOULDID,
  3803. :TESTMOULDFLAG,
  3804. :ACCOUNTID,
  3805. :USERID) ";
  3806. string[] mouldids = (cre.Properties["MouldIDs"] + "").Split(',');
  3807. foreach (string mouldid in mouldids)
  3808. {
  3809. if (!string.IsNullOrEmpty(mouldid))
  3810. {
  3811. paras = new OracleParameter[]
  3812. {
  3813. new OracleParameter(":MOULDID", OracleDbType.Varchar2, mouldid, ParameterDirection.Input),
  3814. new OracleParameter(":TESTMOULDFLAG", OracleDbType.Char, testMouldFlag, ParameterDirection.Input),
  3815. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  3816. new OracleParameter(":USERID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  3817. };
  3818. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3819. }
  3820. }
  3821. foreach (DataRow row in dt.Rows)
  3822. {
  3823. sql = @"
  3824. SELECT 1
  3825. FROM TP_PC_GROUTINGLINE G
  3826. INNER JOIN TP_PC_GROUTINGLINEDETAIL GD
  3827. ON GD.GROUTINGLINEID = G.GROUTINGLINEID
  3828. INNER JOIN TP_PC_MOULD M
  3829. ON M.MOULDID = GD.MOULDID
  3830. WHERE M.TESTMOULDFLAG = '0'
  3831. AND G.GROUTINGLINEID = :GROUTINGLINEID ";
  3832. paras = new OracleParameter[]
  3833. {
  3834. new OracleParameter(":GROUTINGLINEID", OracleDbType.Int32, row["GROUTINGLINEID"], ParameterDirection.Input),
  3835. };
  3836. object isExists = con.GetSqlResultToObj(sql, paras);
  3837. if (isExists == null)
  3838. {
  3839. sql = @"
  3840. UPDATE TP_PC_GROUTINGLINE
  3841. SET TESTFLAG = '1'
  3842. WHERE GROUTINGLINEID = :GROUTINGLINEID ";
  3843. paras = new OracleParameter[]
  3844. {
  3845. new OracleParameter(":GROUTINGLINEID", OracleDbType.Int32, row["GROUTINGLINEID"], ParameterDirection.Input),
  3846. };
  3847. sre.OtherStatus += con.ExecuteNonQuery(sql, paras);
  3848. }
  3849. }
  3850. con.Commit();
  3851. return sre;
  3852. }
  3853. catch (Exception ex)
  3854. {
  3855. throw ex;
  3856. }
  3857. finally
  3858. {
  3859. if (con.ConnState == ConnectionState.Open)
  3860. {
  3861. con.Disconnect();
  3862. }
  3863. }
  3864. }
  3865. /// <summary>
  3866. /// sap接口-模具型号变更-转模具料号接口 ZPPFM050
  3867. /// </summary>
  3868. /// <param name="sUserInfo"></param>
  3869. /// <param name="cre"></param>
  3870. /// <returns></returns>
  3871. public static void ZPPFM050(string BUDAT, DataTable dtTable, out string ZTYPE, out string ZMSG)
  3872. {
  3873. RfcConfigParameters rfcPara = new RfcConfigParameters();
  3874. rfcPara.Add(RfcConfigParameters.AppServerHost, appServerHost);
  3875. rfcPara.Add(RfcConfigParameters.SystemNumber, systemNumber);
  3876. rfcPara.Add(RfcConfigParameters.User, user);
  3877. rfcPara.Add(RfcConfigParameters.Password, password);
  3878. rfcPara.Add(RfcConfigParameters.Client, client);
  3879. rfcPara.Add(RfcConfigParameters.Name, "CON");
  3880. rfcPara.Add(RfcConfigParameters.Language, "ZH");
  3881. rfcPara.Add(RfcConfigParameters.PoolSize, "5");
  3882. rfcPara.Add(RfcConfigParameters.ConnectionIdleTimeout, "60");
  3883. RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfcPara);
  3884. RfcRepository rfcRep = rfcDest.Repository;
  3885. //接口API
  3886. IRfcFunction rfcApi = rfcRep.CreateFunction("ZPPFM050");
  3887. //WERKS CHAR 4 0 工厂 Y 5000
  3888. //MATNR_B CHAR 40 0 物料编号_转换前 Y 211860087N2000
  3889. //MATNR_A CHAR 40 0 物料编号_转换后 Y 211860088N2000
  3890. //MENGE QUAN 13 3 数量 Y 50
  3891. //MEINS UNIT 3 0 基本计量单位 Y CI
  3892. //BUDAT DATS 8 0 凭证中的过帐日期 Y 格式: yyyymmdd
  3893. //LGORT CHAR 4 0 库存地点 Y 2110、2210、2310
  3894. //输入参数
  3895. IRfcStructure imTable = rfcApi.GetStructure("IS_ITAB");
  3896. foreach (DataRow dr in dtTable.Rows)
  3897. {
  3898. imTable.SetValue("WERKS", "5000");
  3899. imTable.SetValue("MATNR_B", dr["变更前"]);
  3900. imTable.SetValue("MATNR_A", dr["变更后"]);
  3901. imTable.SetValue("MENGE", dr["剩余注浆次数"]);
  3902. imTable.SetValue("MEINS", "CI");
  3903. imTable.SetValue("BUDAT", BUDAT);
  3904. imTable.SetValue("LGORT", dr["库存地点"]);
  3905. }
  3906. //调用接口
  3907. rfcApi.Invoke(rfcDest);
  3908. //获取输出
  3909. ZTYPE = rfcApi.GetValue("ZTYPE").ToString();
  3910. ZMSG = rfcApi.GetValue("ZMSG").ToString();;
  3911. rfcDest = null;
  3912. rfcRep = null;
  3913. }
  3914. /// <summary>
  3915. /// IRfcTable转DataTable
  3916. /// </summary>
  3917. /// <param name="myrfcTable"></param>
  3918. /// <returns></returns>
  3919. private static DataTable GetDataTableFromRFCTable(IRfcTable myrfcTable)
  3920. {
  3921. DataTable loTable = new DataTable();
  3922. int liElement = 0;
  3923. for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
  3924. {
  3925. RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
  3926. loTable.Columns.Add(metadata.Name);
  3927. }
  3928. foreach (IRfcStructure Row in myrfcTable)
  3929. {
  3930. DataRow ldr = loTable.NewRow();
  3931. for (liElement = 0; liElement <= myrfcTable.ElementCount - 1; liElement++)
  3932. {
  3933. RfcElementMetadata metadata = myrfcTable.GetElementMetadata(liElement);
  3934. ldr[metadata.Name] = Row.GetString(metadata.Name);
  3935. }
  3936. loTable.Rows.Add(ldr);
  3937. }
  3938. return loTable;
  3939. }
  3940. #endregion
  3941. #region 模具盘点
  3942. /// <summary>
  3943. /// 获取盘点单列表(searchbox用)
  3944. /// </summary>
  3945. /// <param name="sUserInfo"></param>
  3946. /// <returns></returns>
  3947. public static ServiceResultEntity GetMouldCheckedList(SUserInfo sUserInfo, ClientRequestEntity cre)
  3948. {
  3949. ServiceResultEntity sre = new ServiceResultEntity();
  3950. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3951. try
  3952. {
  3953. con.Open();
  3954. string sqlString = @"select CheckedID inCheckedID,CheckedNo inCheckedNo,AccountDate,Remarks from TP_PC_MouldChecked where accountid=:accountid and ValueFlag=1 order by CheckedID desc";
  3955. List<OracleParameter> parameters = new List<OracleParameter>();
  3956. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  3957. sre.Data = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3958. return sre;
  3959. }
  3960. catch (Exception ex)
  3961. {
  3962. throw ex;
  3963. }
  3964. finally
  3965. {
  3966. if (con.ConnState == ConnectionState.Open)
  3967. {
  3968. con.Close();
  3969. }
  3970. }
  3971. }
  3972. /// <summary>
  3973. /// 获取盘点单列表(一览用)
  3974. /// </summary>
  3975. /// <param name="sUserInfo"></param>
  3976. /// <returns></returns>
  3977. public static ServiceResultEntity GetAllMouldCheckList(SUserInfo sUserInfo, ClientRequestEntity cre)
  3978. {
  3979. ServiceResultEntity sre = new ServiceResultEntity();
  3980. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3981. try
  3982. {
  3983. con.Open();
  3984. string sqlString = "SELECT gbc.checkedid\n" +
  3985. " ,gbc.checkedno\n" +
  3986. " ,gbc.checkname\n" +
  3987. " ,gbc.remarks\n" +
  3988. " ,gbc.createtime\n" +
  3989. " ,u.usercode CreateUserCode\n" +
  3990. " ,u.username CreateUserName\n" +
  3991. " FROM TP_PC_MouldChecked gbc\n" +
  3992. " LEFT JOIN tp_mst_user u\n" +
  3993. " ON u.userid = gbc.createuserid\n" +
  3994. " WHERE gbc.valueflag = '1'\n" +
  3995. " AND gbc.accountid = :accountid\n" +
  3996. " AND (:datebegin IS NULL OR gbc.createtime >= :datebegin)\n" +
  3997. " AND (:dateend IS NULL OR gbc.createtime <= :dateend)\n" +
  3998. " AND (:checkedno IS NULL OR instr(gbc.checkedno, :checkedno) > 0)\n" +
  3999. " AND (:checkname IS NULL OR instr(gbc.checkname, :checkname) > 0)\n" +
  4000. " AND (:remarks IS NULL OR instr(gbc.remarks, :remarks) > 0)" +
  4001. " ORDER BY checkedid desc";
  4002. OracleParameter[] parameters = new OracleParameter[] {
  4003. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4004. new OracleParameter(":datebegin", OracleDbType.Date, cre.Properties["datebegin"], ParameterDirection.Input),
  4005. new OracleParameter(":dateend", OracleDbType.Date, cre.Properties["dateend"], ParameterDirection.Input),
  4006. new OracleParameter(":checkedno", OracleDbType.NVarchar2, cre.Properties["checkedno"], ParameterDirection.Input),
  4007. new OracleParameter(":checkname", OracleDbType.NVarchar2, cre.Properties["checkname"], ParameterDirection.Input),
  4008. new OracleParameter(":remarks", OracleDbType.NVarchar2, cre.Properties["remarks"], ParameterDirection.Input),
  4009. };
  4010. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4011. return sre;
  4012. }
  4013. catch (Exception ex)
  4014. {
  4015. throw ex;
  4016. }
  4017. finally
  4018. {
  4019. if (con.ConnState == ConnectionState.Open)
  4020. {
  4021. con.Close();
  4022. }
  4023. }
  4024. }
  4025. /// <summary>
  4026. /// 获取盘点单明细(一览用)
  4027. /// </summary>
  4028. /// <param name="sUserInfo"></param>
  4029. /// <returns></returns>
  4030. public static ServiceResultEntity GetAllMouldCheckDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  4031. {
  4032. ServiceResultEntity sre = new ServiceResultEntity();
  4033. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4034. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4035. try
  4036. {
  4037. sre.Data = new DataSet();
  4038. con.Open();
  4039. string sqlString = "SELECT gbu.checkedid, u.userid, u.usercode, u.username\n" +
  4040. " FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4041. " LEFT JOIN tp_mst_user u\n" +
  4042. " ON u.userid = gbu.userid\n" +
  4043. " WHERE gbu.checkedid = :checkedid";
  4044. OracleParameter[] parameters = new OracleParameter[] {
  4045. new OracleParameter(":checkedid", OracleDbType.Int32, checkedID, ParameterDirection.Input),
  4046. };
  4047. DataTable userTable = con.GetSqlResultToDt(sqlString, parameters);
  4048. userTable.TableName = "UserTable";
  4049. sre.Data.Tables.Add(userTable);
  4050. sqlString = "SELECT 0 sel\n" +
  4051. " ,gbcd.CheckedID -- 盘点单ID\n" +
  4052. " ,gbcd.mouldBarCode -- 模具条码\n" +
  4053. " ,gbcd.MouldID\n" +
  4054. " ,mtype.dictionaryvalue MouldTypeName\n" +
  4055. " ,mms.SupplierName\n" +
  4056. " ,gbcd.ProductionDate\n" +
  4057. " ,gbcd.GoodsID\n" +
  4058. " ,gbcd.GoodsCode\n" +
  4059. " ,gbcd.UserID\n" +
  4060. " ,gbcd.UserCode\n" +
  4061. " ,gbcd.Weight\n" +
  4062. " ,gbcd.Cost\n" +
  4063. //" ,gbcd.StandardGroutingNum\n" +
  4064. " ,m.STANDARDGROUTINGSUM StandardGroutingNum\n" +
  4065. " ,m.STANDARDGROUTINGSUM - m.GroutingNum notusedGroutingNum\n" +
  4066. " ,m.GroutingNum\n" +
  4067. " ,m.GroutingDateBegin\n" +
  4068. " ,m.GroutingDateEnd\n" +
  4069. " ,m.LastGroutingBatchNo\n" +
  4070. " ,m.MouldStatus\n" +
  4071. //" ,gbcd.GroutingNum\n" +
  4072. //" ,gbcd.GroutingDateBegin\n" +
  4073. //" ,gbcd.GroutingDateEnd\n" +
  4074. //" ,gbcd.LastGroutingBatchNo\n" +
  4075. //" ,gbcd.MouldStatus\n" +
  4076. " ,ms.mouldstatusname\n" +
  4077. " ,gbcd.RepairFlag\n" +
  4078. " ,gbcd.ScrapDate\n" +
  4079. " ,gbcd.ScrapUserID\n" +
  4080. " ,gbcd.ScrapUserCode\n" +
  4081. " ,ScReason.dictionaryvalue ScrapReason\n" +
  4082. " ,gbcd.ScrapResponsibility\n" +
  4083. " ,gl.groutinglinecode\n" +
  4084. " ,gld.groutingmouldcode\n" +
  4085. " ,gbcd.Remarks -- 备注\n" +
  4086. " ,gbcd.CheckedFlag -- 盘点标识\n" +
  4087. " ,gbcd.CheckedDate -- 盘点时间\n" +
  4088. " ,CUser.usercode CheckedUserCode -- 盘点工号\n" +
  4089. " ,g.mouldmaterialcode\n" +
  4090. " FROM tp_pc_mouldcheckeddetail gbcd\n" +
  4091. " LEFT JOIN tp_mst_datadictionary mtype\n" +
  4092. " ON mtype.dictionaryid = gbcd.mouldtype\n" +
  4093. " LEFT JOIN tp_pc_mould m\n" +
  4094. " ON m.MouldID = gbcd.MouldID\n" +
  4095. " LEFT JOIN tp_mst_goods g\n" +
  4096. " ON g.goodsid = m.goodsid\n" +
  4097. " LEFT JOIN tp_mst_mouldmaterialsuppliers mms\n" +
  4098. " ON mms.SupplierID = gbcd.MaterialSupplier\n" +
  4099. " INNER JOIN tp_sys_mouldstatus ms\n" +
  4100. " ON ms.mouldstatusid = gbcd.MouldStatus\n" +
  4101. " LEFT JOIN tp_mst_datadictionary ScReason\n" +
  4102. " ON ScReason.dictionaryid = gbcd.ScrapReason\n" +
  4103. " LEFT JOIN tp_pc_groutinglinedetail gld\n" +
  4104. " ON gld.groutinglinedetailid = gbcd.GroutingLineDetailID\n" +
  4105. " LEFT JOIN tp_pc_groutingline gl\n" +
  4106. " ON gl.groutinglineid = gld.groutinglineid\n" +
  4107. " LEFT JOIN tp_mst_user CUser\n" +
  4108. " ON CUser.userid = gbcd.CheckedUserID" +
  4109. " WHERE gbcd.checkedid = :checkedid\n" +
  4110. " AND gbcd.checkedflag = :checkedflag";
  4111. OracleParameter[] paras = new OracleParameter[]{
  4112. new OracleParameter(":checkedflag",OracleDbType.Int32,(int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  4113. new OracleParameter(":checkedid",OracleDbType.Int32,checkedID,ParameterDirection.Input),
  4114. };
  4115. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4116. paras[0].Value = (int)Constant.InCheckedFlag.InCheckeded;
  4117. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4118. paras[0].Value = (int)Constant.InCheckedFlag.InCheckedWin;
  4119. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4120. paras[0].Value = (int)Constant.InCheckedFlag.Loss;
  4121. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, paras));
  4122. return sre;
  4123. }
  4124. catch (Exception ex)
  4125. {
  4126. throw ex;
  4127. }
  4128. finally
  4129. {
  4130. if (con.ConnState == ConnectionState.Open)
  4131. {
  4132. con.Close();
  4133. }
  4134. }
  4135. }
  4136. /// <summary>
  4137. /// 获取盘点单信息(编辑用)
  4138. /// </summary>
  4139. /// <param name="sUserInfo"></param>
  4140. /// <returns></returns>
  4141. public static ServiceResultEntity GetMouldCheckedInfoForUpdate(SUserInfo sUserInfo, ClientRequestEntity cre)
  4142. {
  4143. ServiceResultEntity sre = new ServiceResultEntity();
  4144. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4145. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4146. try
  4147. {
  4148. con.Open();
  4149. string sqlString =
  4150. "SELECT gbc.checkedid, gbc.checkedno, gbc.checkname, gbc.remarks\n" +
  4151. " FROM TP_PC_MouldChecked gbc\n" +
  4152. " WHERE gbc.checkedid = :checkedid";
  4153. OracleParameter[] parameters = new OracleParameter[] {
  4154. new OracleParameter(":checkedid", OracleDbType.Int32, checkedID, ParameterDirection.Input)
  4155. };
  4156. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4157. sqlString =
  4158. "SELECT u.userid, u.usercode, u.username\n" +
  4159. " FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4160. " INNER JOIN tp_mst_user u\n" +
  4161. " ON u.userid = gbu.userid\n" +
  4162. " WHERE gbu.checkedid = :checkedid" +
  4163. " ORDER BY u.usercode";
  4164. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  4165. return sre;
  4166. }
  4167. catch (Exception ex)
  4168. {
  4169. throw ex;
  4170. }
  4171. finally
  4172. {
  4173. if (con.ConnState == ConnectionState.Open)
  4174. {
  4175. con.Close();
  4176. }
  4177. }
  4178. }
  4179. /// <summary>
  4180. /// 保存盘点单
  4181. /// </summary>
  4182. /// <param name="sUserInfo">用户基本信息</param>
  4183. /// <returns></returns>
  4184. public static ServiceResultEntity SaveMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4185. {
  4186. ServiceResultEntity sre = new ServiceResultEntity();
  4187. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4188. string checkedName = cre.Properties["CheckedName"].ToString();
  4189. string remarks = cre.Properties["Remarks"].ToString();
  4190. int returnRows = 0;
  4191. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4192. try
  4193. {
  4194. string sql = null;
  4195. OracleParameter[] paras = null;
  4196. if (checkedID > 0)
  4197. {
  4198. // 编辑
  4199. sql = "UPDATE TP_PC_MouldChecked gbc\n" +
  4200. " SET gbc.checkname = :checkname\n" +
  4201. " ,gbc.remarks = :remarks\n" +
  4202. " ,gbc.updateuserid = :updateuserid\n" +
  4203. " WHERE gbc.checkedid = :checkedid";
  4204. paras = new OracleParameter[] {
  4205. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4206. checkedID,ParameterDirection.Input),
  4207. new OracleParameter(":checkname",OracleDbType.NVarchar2,
  4208. checkedName,ParameterDirection.Input),
  4209. new OracleParameter(":remarks",OracleDbType.NVarchar2,
  4210. remarks,ParameterDirection.Input),
  4211. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4212. sUserInfo.UserID,ParameterDirection.Input)
  4213. };
  4214. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4215. sql = "DELETE FROM Tp_PC_Mouldcheckeduser gbu\n" +
  4216. " WHERE gbu.checkedid = :checkedid";
  4217. paras = new OracleParameter[] {
  4218. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4219. checkedID,ParameterDirection.Input),
  4220. };
  4221. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4222. if (cre.Data != null && cre.Data.Tables.Count > 0)
  4223. {
  4224. sql = "INSERT INTO Tp_PC_Mouldcheckeduser gbu\n" +
  4225. " (checkedid, userid, usercode)\n" +
  4226. "VALUES\n" +
  4227. " (:checkedid, :userid, :usercode)";
  4228. foreach (DataRow item in cre.Data.Tables[0].Rows)
  4229. {
  4230. paras = new OracleParameter[] {
  4231. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4232. checkedID,ParameterDirection.Input),
  4233. new OracleParameter(":userid",OracleDbType.Int32,
  4234. item["UserID"],ParameterDirection.Input),
  4235. new OracleParameter(":usercode",OracleDbType.NVarchar2,
  4236. item["UserCode"],ParameterDirection.Input),
  4237. };
  4238. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4239. }
  4240. }
  4241. }
  4242. else
  4243. {
  4244. // 新建
  4245. //盘点单号
  4246. string checkedNo = string.Format("MIC{0}", DateTime.Now.ToString("yyyyMMddHHmmss"));
  4247. //获得账务日期
  4248. DateTime accountDate = CommonModuleLogic.CommonModuleLogic.GetAccountDate(oracleTrConn, sUserInfo);
  4249. //盘点单ID
  4250. sql = "select SEQ_PC_MouldChecked_ID.nextval from dual";
  4251. checkedID = Convert.ToInt32(oracleTrConn.GetSqlResultToStr(sql));
  4252. #region 插入盘点单主表信息
  4253. sql = @"insert into TP_PC_MouldChecked
  4254. (
  4255. CheckedID,
  4256. CheckedNo,
  4257. AccountDate,
  4258. Remarks,
  4259. AccountID,
  4260. CreateUserID,
  4261. UpdateUserID,
  4262. CHECKNAME
  4263. ) values
  4264. ( :CheckedID,
  4265. :CheckedNo,
  4266. :AccountDate,
  4267. :Remarks,
  4268. :AccountID,
  4269. :CreateUserID,
  4270. :CreateUserID,
  4271. :CHECKNAME
  4272. )";
  4273. OracleParameter[] Paras = new OracleParameter[] {
  4274. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4275. checkedID,ParameterDirection.Input),
  4276. new OracleParameter(":CheckedNo",OracleDbType.NVarchar2,
  4277. checkedNo,ParameterDirection.Input),
  4278. new OracleParameter(":AccountDate",OracleDbType.Date,
  4279. accountDate,ParameterDirection.Input),
  4280. new OracleParameter(":Remarks",OracleDbType.NVarchar2,
  4281. remarks,ParameterDirection.Input),
  4282. new OracleParameter(":AccountID",OracleDbType.Int32,
  4283. sUserInfo.AccountID,ParameterDirection.Input),
  4284. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  4285. sUserInfo.UserID,ParameterDirection.Input),
  4286. new OracleParameter(":CHECKNAME",OracleDbType.NVarchar2,
  4287. checkedName,ParameterDirection.Input),
  4288. };
  4289. returnRows += oracleTrConn.ExecuteNonQuery(sql, Paras);
  4290. #endregion
  4291. #region 盘点工号
  4292. if (cre.Data != null && cre.Data.Tables.Count > 0)
  4293. {
  4294. sql = "INSERT INTO Tp_PC_Mouldcheckeduser gbu\n" +
  4295. " (checkedid, userid, usercode)\n" +
  4296. "VALUES\n" +
  4297. " (:checkedid, :userid, :usercode)";
  4298. foreach (DataRow item in cre.Data.Tables[0].Rows)
  4299. {
  4300. paras = new OracleParameter[] {
  4301. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4302. checkedID,ParameterDirection.Input),
  4303. new OracleParameter(":userid",OracleDbType.Int32,
  4304. item["UserID"],ParameterDirection.Input),
  4305. new OracleParameter(":usercode",OracleDbType.NVarchar2,
  4306. item["UserCode"],ParameterDirection.Input),
  4307. };
  4308. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4309. }
  4310. }
  4311. #endregion
  4312. #region 盘点信息
  4313. sql =
  4314. "INSERT INTO TP_PC_MouldCHECKEDDETAIL\n" +
  4315. " (CHECKEDID\n" +
  4316. " ,CHECKEDNO\n" +
  4317. " ,MouldID\n" +
  4318. " ,MouldCODE\n" +
  4319. " ,MouldBARCODE\n" +
  4320. " ,mouldtype\n" +
  4321. " ,materialsupplier\n" +
  4322. " ,productiondate\n" +
  4323. " ,goodsid\n" +
  4324. " ,goodscode\n" +
  4325. " ,userid\n" +
  4326. " ,usercode\n" +
  4327. " ,weight\n" +
  4328. " ,cost\n" +
  4329. " ,standardgroutingnum\n" +
  4330. " ,groutingnum\n" +
  4331. " ,groutingdatebegin\n" +
  4332. " ,groutingdateend\n" +
  4333. " ,lastgroutingbatchno\n" +
  4334. " ,mouldstatus\n" +
  4335. " ,premouldstatus\n" +
  4336. " ,repairflag\n" +
  4337. " ,scrapdate\n" +
  4338. " ,scrapuserid\n" +
  4339. " ,scrapusercode\n" +
  4340. " ,scrapreason\n" +
  4341. " ,scrapresponsibility\n" +
  4342. " ,lastchangehistoryid\n" +
  4343. " ,groutinglinedetailid\n" +
  4344. " ,REMARKS\n" +
  4345. " ,ACCOUNTID\n" +
  4346. " ,VALUEFLAG\n" +
  4347. " ,CREATEUSERID\n" +
  4348. " ,UPDATEUSERID)\n" +
  4349. " SELECT :CHECKEDID\n" +
  4350. " ,:CHECKEDNO\n" +
  4351. " ,gdd.MouldID\n" +
  4352. " ,gdd.MouldCODE\n" +
  4353. " ,gdd.MouldBARCODE\n" +
  4354. " ,gdd.mouldtype\n" +
  4355. " ,gdd.materialsupplier\n" +
  4356. " ,gdd.productiondate\n" +
  4357. " ,gdd.goodsid\n" +
  4358. " ,gdd.goodscode\n" +
  4359. " ,gdd.userid\n" +
  4360. " ,gdd.usercode\n" +
  4361. " ,gdd.weight\n" +
  4362. " ,gdd.cost\n" +
  4363. " ,gdd.standardgroutingnum\n" +
  4364. " ,gdd.groutingnum\n" +
  4365. " ,gdd.groutingdatebegin\n" +
  4366. " ,gdd.groutingdateend\n" +
  4367. " ,gdd.lastgroutingbatchno\n" +
  4368. " ,gdd.mouldstatus\n" +
  4369. " ,gdd.premouldstatus\n" +
  4370. " ,gdd.repairflag\n" +
  4371. " ,gdd.scrapdate\n" +
  4372. " ,gdd.scrapuserid\n" +
  4373. " ,gdd.scrapusercode\n" +
  4374. " ,gdd.scrapreason\n" +
  4375. " ,gdd.scrapresponsibility\n" +
  4376. " ,gdd.lastchangehistoryid\n" +
  4377. " ,gdd.groutinglinedetailid\n" +
  4378. " ,gdd.REMARKS\n" +
  4379. " ,gdd.ACCOUNTID\n" +
  4380. " ,'1'\n" +
  4381. " ,:CHECKEDUSERID\n" +
  4382. " ,:CHECKEDUSERID\n" +
  4383. " FROM tp_pC_Mould gdd\n" +
  4384. " LEFT JOIN tp_mst_goods g\n" +
  4385. " ON g.goodsid = gdd.goodsid\n" +
  4386. " LEFT JOIN tp_mst_goodsType gt\n" +
  4387. " ON gt.goodstypeid = g.goodstypeid\n" +
  4388. "WHERE gdd.valueflag = '1'\n" +
  4389. " AND gdd.accountid = :accountid\n" +
  4390. " AND gdd.mouldstatus in (1,2,3) \n" +
  4391. " AND (:DateBegin IS NULL OR gdd.productiondate >= :DateBegin)\n" +
  4392. " AND (:DateEnd IS NULL OR gdd.productiondate <= :DateEnd)\n" +
  4393. " AND (:mouldstatus IS NULL OR\n" +
  4394. " instr(',' || :mouldstatus || ',', ',' || gdd.mouldstatus || ',') > 0)\n" +
  4395. " AND (:GoodsIDS IS NULL OR\n" +
  4396. " instr(',' || :GoodsIDS || ',', ',' || gdd.GoodsID || ',') > 0)\n" +
  4397. " AND (:GoodsTypeCode IS NULL OR\n" +
  4398. " instr(gt.goodstypecode, :GoodsTypeCode) = 1)";
  4399. paras = new OracleParameter[] {
  4400. new OracleParameter(":accountid",OracleDbType.Int32,
  4401. sUserInfo.AccountID,ParameterDirection.Input),
  4402. new OracleParameter(":CHECKEDID",OracleDbType.Int32,
  4403. checkedID,ParameterDirection.Input),
  4404. new OracleParameter(":CHECKEDNO",OracleDbType.NVarchar2,
  4405. checkedNo,ParameterDirection.Input),
  4406. new OracleParameter(":CHECKEDUSERID",OracleDbType.Int32,
  4407. sUserInfo.UserID,ParameterDirection.Input),
  4408. new OracleParameter(":DateBegin",OracleDbType.Date,
  4409. cre.Properties["DateBegin"],ParameterDirection.Input),
  4410. new OracleParameter(":DateEnd",OracleDbType.Date,
  4411. cre.Properties["DateEnd"],ParameterDirection.Input),
  4412. new OracleParameter(":mouldstatus",OracleDbType.NVarchar2,
  4413. cre.Properties["MouldStatus"],ParameterDirection.Input),
  4414. new OracleParameter(":GoodsIDS",OracleDbType.NVarchar2,
  4415. cre.Properties["GoodsCodeList"],ParameterDirection.Input),
  4416. new OracleParameter(":GoodsTypeCode",OracleDbType.NVarchar2,
  4417. cre.Properties["GoodsTypeCode"],ParameterDirection.Input),
  4418. };
  4419. returnRows += oracleTrConn.ExecuteNonQuery(sql, paras);
  4420. #endregion
  4421. }
  4422. oracleTrConn.Commit();
  4423. }
  4424. catch (Exception ex)
  4425. {
  4426. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4427. {
  4428. oracleTrConn.Rollback();
  4429. oracleTrConn.Disconnect();
  4430. }
  4431. throw ex;
  4432. }
  4433. finally
  4434. {
  4435. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4436. {
  4437. oracleTrConn.Disconnect();
  4438. }
  4439. }
  4440. return sre;
  4441. }
  4442. /// <summary>
  4443. /// 停用盘点单
  4444. /// </summary>
  4445. /// <param name="sUserInfo">用户基本信息</param>
  4446. /// <returns></returns>
  4447. public static ServiceResultEntity DisableMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4448. {
  4449. ServiceResultEntity sre = new ServiceResultEntity();
  4450. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4451. int returnRows = 0;
  4452. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4453. try
  4454. {
  4455. string sql = "update TP_PC_MouldChecked set valueflag='0', updateuserid=:updateuserid where CheckedID=:CheckedID and valueflag='1'";
  4456. OracleParameter[] Paras = new OracleParameter[] {
  4457. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4458. checkedID,ParameterDirection.Input),
  4459. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4460. sUserInfo.UserID,ParameterDirection.Input)
  4461. };
  4462. returnRows = oracleTrConn.ExecuteNonQuery(sql, Paras);
  4463. if (returnRows > 0)
  4464. {
  4465. sre.Status = Constant.ServiceResultStatus.Success;
  4466. }
  4467. else
  4468. {
  4469. sre.Status = Constant.ServiceResultStatus.Other;
  4470. }
  4471. oracleTrConn.Commit();
  4472. oracleTrConn.Disconnect();
  4473. }
  4474. catch (Exception ex)
  4475. {
  4476. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4477. {
  4478. oracleTrConn.Rollback();
  4479. oracleTrConn.Disconnect();
  4480. }
  4481. throw ex;
  4482. }
  4483. finally
  4484. {
  4485. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4486. {
  4487. oracleTrConn.Disconnect();
  4488. }
  4489. }
  4490. return sre;
  4491. }
  4492. /// <summary>
  4493. /// 更新盘点单(条码盘点)
  4494. /// </summary>
  4495. /// <param name="InCheckedID">盘点单号</param>
  4496. /// <param name="BarCode">产品条码</param>
  4497. /// <param name="sUserInfo">用户基本信息</param>
  4498. /// <returns></returns>
  4499. public static ServiceResultEntity UpdateMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4500. {
  4501. ServiceResultEntity sre = new ServiceResultEntity();
  4502. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4503. string barcode = cre.Properties["Barcode"].ToString();
  4504. int returnRows = 0;
  4505. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4506. try
  4507. {
  4508. string sql = null;
  4509. OracleParameter[] paras = null;
  4510. DataSet ds = null;
  4511. sql = @"select CheckedFlag,CHECKEDUSERID from TP_PC_MouldCheckedDetail where CheckedID=:CheckedID and MouldBarCode=:MouldBarCode and Valueflag=1";
  4512. paras = new OracleParameter[] {
  4513. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4514. checkedID,ParameterDirection.Input),
  4515. new OracleParameter(":MouldBarCode",OracleDbType.NVarchar2,
  4516. barcode,ParameterDirection.Input)
  4517. };
  4518. ds = oracleTrConn.GetSqlResultToDs(sql, paras);
  4519. // 不在盘点单中
  4520. if (ds != null && ds.Tables[0].Rows.Count == 0)
  4521. {
  4522. sql = @"select CheckedNo from tp_pC_Mouldchecked where CheckedID=:CheckedID";
  4523. paras = new OracleParameter[] {
  4524. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4525. checkedID,ParameterDirection.Input),
  4526. };
  4527. ds = oracleTrConn.GetSqlResultToDs(sql, paras);
  4528. if (ds == null || ds.Tables.Count == 0 || ds.Tables[0].Rows.Count == 0)
  4529. {
  4530. sre.Status = Constant.ServiceResultStatus.Other;
  4531. sre.OtherStatus = -1;
  4532. sre.Message = "盘点单不存在";
  4533. return sre;
  4534. }
  4535. string checkedNo = ds.Tables[0].Rows[0]["CheckedNo"].ToString();
  4536. // 条码是否在模具档案中
  4537. sql = "SELECT gdd.MouldID\n" +
  4538. " FROM tp_pC_Mould gdd\n" +
  4539. " WHERE gdd.Mouldbarcode = :MouldBarCode";
  4540. paras = new OracleParameter[] {
  4541. new OracleParameter(":MouldBarCode",OracleDbType.NVarchar2,
  4542. barcode,ParameterDirection.Input)
  4543. };
  4544. DataTable dt = oracleTrConn.GetSqlResultToDt(sql, paras);
  4545. if (dt == null || dt.Rows.Count == 0)
  4546. {
  4547. // 无效条码
  4548. sre.Status = Constant.ServiceResultStatus.Other;
  4549. sre.OtherStatus = -1;
  4550. sre.Message = "条码【" + barcode + "】为无效条码";
  4551. return sre;
  4552. }
  4553. sql =
  4554. "INSERT INTO TP_PC_MouldCHECKEDDETAIL\n" +
  4555. " (CHECKEDID\n" +
  4556. " ,CHECKEDNO\n" +
  4557. " ,MouldID\n" +
  4558. " ,MouldCODE\n" +
  4559. " ,MouldBARCODE\n" +
  4560. " ,mouldtype\n" +
  4561. " ,materialsupplier\n" +
  4562. " ,productiondate\n" +
  4563. " ,goodsid\n" +
  4564. " ,goodscode\n" +
  4565. " ,userid\n" +
  4566. " ,usercode\n" +
  4567. " ,weight\n" +
  4568. " ,cost\n" +
  4569. " ,standardgroutingnum\n" +
  4570. " ,groutingnum\n" +
  4571. " ,groutingdatebegin\n" +
  4572. " ,groutingdateend\n" +
  4573. " ,lastgroutingbatchno\n" +
  4574. " ,mouldstatus\n" +
  4575. " ,premouldstatus\n" +
  4576. " ,repairflag\n" +
  4577. " ,scrapdate\n" +
  4578. " ,scrapuserid\n" +
  4579. " ,scrapusercode\n" +
  4580. " ,scrapreason\n" +
  4581. " ,scrapresponsibility\n" +
  4582. " ,lastchangehistoryid\n" +
  4583. " ,groutinglinedetailid\n" +
  4584. " ,REMARKS\n" +
  4585. " ,CHECKEDFLAG\n" +
  4586. " ,CHECKEDDATE\n" +
  4587. " ,CHECKEDUSERID\n" +
  4588. " ,ACCOUNTID\n" +
  4589. " ,VALUEFLAG\n" +
  4590. " ,CREATEUSERID\n" +
  4591. " ,UPDATEUSERID)\n" +
  4592. " SELECT :CHECKEDID\n" +
  4593. " ,:CHECKEDNO\n" +
  4594. " ,gdd.MouldID\n" +
  4595. " ,gdd.MouldCODE\n" +
  4596. " ,gdd.MouldBARCODE\n" +
  4597. " ,gdd.mouldtype\n" +
  4598. " ,gdd.materialsupplier\n" +
  4599. " ,gdd.productiondate\n" +
  4600. " ,gdd.goodsid\n" +
  4601. " ,gdd.goodscode\n" +
  4602. " ,gdd.userid\n" +
  4603. " ,gdd.usercode\n" +
  4604. " ,gdd.weight\n" +
  4605. " ,gdd.cost\n" +
  4606. " ,gdd.standardgroutingnum\n" +
  4607. " ,gdd.groutingnum\n" +
  4608. " ,gdd.groutingdatebegin\n" +
  4609. " ,gdd.groutingdateend\n" +
  4610. " ,gdd.lastgroutingbatchno\n" +
  4611. " ,gdd.mouldstatus\n" +
  4612. " ,gdd.premouldstatus\n" +
  4613. " ,gdd.repairflag\n" +
  4614. " ,gdd.scrapdate\n" +
  4615. " ,gdd.scrapuserid\n" +
  4616. " ,gdd.scrapusercode\n" +
  4617. " ,gdd.scrapreason\n" +
  4618. " ,gdd.scrapresponsibility\n" +
  4619. " ,gdd.lastchangehistoryid\n" +
  4620. " ,gdd.groutinglinedetailid\n" +
  4621. " ,REMARKS\n" +
  4622. " ,'2'\n" +
  4623. " ,SYSDATE\n" +
  4624. " ,:CHECKEDUSERID\n" +
  4625. " ,ACCOUNTID\n" +
  4626. " ,'1'\n" +
  4627. " ,:CHECKEDUSERID\n" +
  4628. " ,:CHECKEDUSERID\n" +
  4629. " FROM tp_pC_Mould gdd\n" +
  4630. " WHERE MouldID = :MouldID";
  4631. paras = new OracleParameter[] {
  4632. new OracleParameter(":CHECKEDID",OracleDbType.Int32,
  4633. checkedID,ParameterDirection.Input),
  4634. new OracleParameter(":CHECKEDNO",OracleDbType.NVarchar2,
  4635. checkedNo,ParameterDirection.Input),
  4636. new OracleParameter(":CHECKEDUSERID",OracleDbType.Int32,
  4637. sUserInfo.UserID,ParameterDirection.Input),
  4638. new OracleParameter(":MouldID",OracleDbType.Int32,
  4639. dt.Rows[0]["MouldID"],ParameterDirection.Input),
  4640. };
  4641. returnRows = oracleTrConn.ExecuteNonQuery(sql, paras);
  4642. //returnRows = 10;
  4643. }
  4644. else
  4645. {
  4646. string checkedFlag = ds.Tables[0].Rows[0]["CheckedFlag"].ToString();
  4647. if (checkedFlag == "1")
  4648. {
  4649. sre.Status = Constant.ServiceResultStatus.Other;
  4650. sre.OtherStatus = -1;
  4651. sre.Message = "条码【" + barcode + "】已被盘点";
  4652. return sre;
  4653. }
  4654. else if (checkedFlag == "2")
  4655. {
  4656. sre.Status = Constant.ServiceResultStatus.Other;
  4657. sre.OtherStatus = -1;
  4658. sre.Message = "条码【" + barcode + "】已被盘盈";
  4659. return sre;
  4660. }
  4661. sql = "update TP_PC_MouldCheckedDetail set CheckedFlag=:CheckedFlag,CheckedDate=sysdate,CheckedUserID=:CheckedUserID,UpdateUserID=:UpdateUserID where CheckedID=:CheckedID and MouldBarCode=:BarCode and CheckedFlag=:whereCheckedFlag";
  4662. paras = new OracleParameter[] {
  4663. new OracleParameter(":CheckedUserID",OracleDbType.Int32,
  4664. sUserInfo.UserID,ParameterDirection.Input),
  4665. new OracleParameter(":CheckedFlag",OracleDbType.Int32,
  4666. (int)Constant.InCheckedFlag.InCheckeded,ParameterDirection.Input),
  4667. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4668. checkedID,ParameterDirection.Input),
  4669. new OracleParameter(":BarCode",OracleDbType.NVarchar2,
  4670. barcode,ParameterDirection.Input),
  4671. new OracleParameter(":whereCheckedFlag",OracleDbType.Int32,
  4672. (int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  4673. new OracleParameter(":UpdateUserID",OracleDbType.Int32,
  4674. sUserInfo.UserID,ParameterDirection.Input),
  4675. };
  4676. returnRows = oracleTrConn.ExecuteNonQuery(sql, paras);
  4677. //returnRows = 1;
  4678. }
  4679. if (returnRows == 0)
  4680. {
  4681. oracleTrConn.Rollback();
  4682. oracleTrConn.Disconnect();
  4683. }
  4684. else
  4685. {
  4686. oracleTrConn.Commit();
  4687. oracleTrConn.Disconnect();
  4688. }
  4689. }
  4690. catch (Exception ex)
  4691. {
  4692. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4693. {
  4694. oracleTrConn.Rollback();
  4695. oracleTrConn.Disconnect();
  4696. }
  4697. throw ex;
  4698. }
  4699. finally
  4700. {
  4701. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4702. {
  4703. oracleTrConn.Disconnect();
  4704. }
  4705. }
  4706. return sre;
  4707. }
  4708. /// <summary>
  4709. /// 报损未盘点
  4710. /// </summary>
  4711. /// <param name="sUserInfo">用户基本信息</param>
  4712. /// <returns></returns>
  4713. public static ServiceResultEntity SaveClearMouldChecked(SUserInfo sUserInfo, ClientRequestEntity cre)
  4714. {
  4715. ServiceResultEntity sre = new ServiceResultEntity();
  4716. int checkedID = Convert.ToInt32(cre.Properties["CheckedID"]);
  4717. string barcodes = cre.Properties["Barcodes"].ToString();
  4718. int barcodeCount = Convert.ToInt32(cre.Properties["BarcodeCount"]);
  4719. int returnRows = 0;
  4720. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4721. try
  4722. {
  4723. // 待产 在库 可以报损
  4724. string sqlString = "SELECT m.mouldid,m.mouldcode, m.mouldbarcode, m.mouldstatus,m.GoodsID,m.GoodsCode,m.GroutingNum\n" +
  4725. " FROM TP_PC_Mould m\n" +
  4726. " WHERE m.valueflag = '1'\n" +
  4727. " AND m.accountid = :accountid\n" +
  4728. " AND m.mouldstatus IN (1, 3)\n" +
  4729. " AND instr(:barcodes, m.mouldbarcode) > 0\n" +
  4730. " for update";
  4731. OracleParameter[] paras = new OracleParameter[] {
  4732. new OracleParameter(":barcodes",OracleDbType.NVarchar2,
  4733. barcodes,ParameterDirection.Input),
  4734. new OracleParameter(":accountid",OracleDbType.Int32,
  4735. sUserInfo.AccountID,ParameterDirection.Input),
  4736. };
  4737. DataTable dt = oracleTrConn.GetSqlResultToDt(sqlString, paras);
  4738. if (dt == null || dt.Rows.Count == 0)
  4739. {
  4740. sre.Status = Constant.ServiceResultStatus.Other;
  4741. sre.Message = "【在产】或【已报废】的模具不能直接报废";
  4742. return sre;
  4743. }
  4744. if (dt.Rows.Count != barcodeCount)
  4745. {
  4746. sre.Status = Constant.ServiceResultStatus.Other;
  4747. sre.Message = "【在产】或【已报废】的模具不能直接报废";
  4748. }
  4749. string sqlStringInsertHis =
  4750. "INSERT INTO TP_PC_MouldChangeHistory\n" +
  4751. " (ChangeID\n" +
  4752. " ,MouldID\n" +
  4753. " ,MouldCode\n" +
  4754. " ,MouldBarcode\n" +
  4755. " ,GoodsID\n" +
  4756. " ,GoodsCode\n" +
  4757. " ,OperationType\n" +
  4758. " ,MouldStatus\n" +
  4759. " ,MouldStatusAfter\n" +
  4760. " ,GroutingNum\n" +
  4761. " ,ChangeFlag\n" +
  4762. " ,ScrapResponsibility\n" +
  4763. " ,AccountID\n" +
  4764. " ,CreateUserID)\n" +
  4765. "VALUES\n" +
  4766. " (:ChangeID\n" +
  4767. " ,:MouldID\n" +
  4768. " ,:MouldCode\n" +
  4769. " ,:MouldBarcode\n" +
  4770. " ,:GoodsID\n" +
  4771. " ,:GoodsCode\n" +
  4772. " ,:OperationType\n" +
  4773. " ,:MouldStatus\n" +
  4774. " ,4\n" +
  4775. " ,:GroutingNum\n" +
  4776. " ,decode(:OperationType, 2, '2','0')\n" +
  4777. " ,'盘亏报损'\n" +
  4778. " ,:AccountID\n" +
  4779. " ,:CreateUserID)";
  4780. string sqlStringUpdateMould = "UPDATE TP_PC_Mould m\n" +
  4781. " SET m.premouldstatus = m.mouldstatus\n" +
  4782. " ,m.mouldstatus = 4\n" +
  4783. " ,m.scrapdate = SYSDATE\n" +
  4784. " ,m.scrapuserid = :scrapuserid\n" +
  4785. " ,m.scrapusercode = :scrapusercode\n" +
  4786. " ,m.ScrapResponsibility = '盘亏报损'\n" +
  4787. " ,m.LastChangeHistoryID = :LastChangeHistoryID\n" +
  4788. " ,m.updateuserid = :updateuserid\n" +
  4789. " WHERE m.mouldid = :mouldid";
  4790. sqlString = "UPDATE tp_pc_Mouldcheckeddetail gdd\n" +
  4791. " SET gdd.checkedflag = '3'\n" +
  4792. " ,gdd.CheckedDate = SYSDATE\n" +
  4793. " ,gdd.CheckedUserID = :UserID\n" +
  4794. " ,gdd.UpdateUserID = :UserID\n" +
  4795. " WHERE gdd.checkedflag = '0'\n" +
  4796. " AND gdd.CheckedID = :CheckedID" +
  4797. " AND gdd.mouldid = :MouldID";
  4798. foreach (DataRow item in dt.Rows)
  4799. {
  4800. int mouldHistoryID = Convert.ToInt32(oracleTrConn.GetSqlResultToObj("select seq_pc_mouldhistory_id.nextval from dual "));
  4801. // 插入变更履历
  4802. paras = new OracleParameter[] {
  4803. new OracleParameter(":ChangeID",OracleDbType.Int32,
  4804. mouldHistoryID,ParameterDirection.Input),
  4805. new OracleParameter(":MouldID",OracleDbType.Int32,
  4806. item["MouldID"],ParameterDirection.Input),
  4807. new OracleParameter(":MouldCode",OracleDbType.NVarchar2,
  4808. item["MouldCode"],ParameterDirection.Input),
  4809. new OracleParameter(":MouldBarcode",OracleDbType.NVarchar2,
  4810. item["MouldBarcode"],ParameterDirection.Input),
  4811. new OracleParameter(":GoodsID",OracleDbType.Int32,
  4812. item["GoodsID"],ParameterDirection.Input),
  4813. new OracleParameter(":GoodsCode",OracleDbType.NVarchar2,
  4814. item["GoodsCode"],ParameterDirection.Input),
  4815. new OracleParameter(":MouldStatus",OracleDbType.Int32,
  4816. item["MouldStatus"],ParameterDirection.Input),
  4817. new OracleParameter(":GroutingNum",OracleDbType.Int32,
  4818. item["GroutingNum"],ParameterDirection.Input),
  4819. new OracleParameter(":AccountID",OracleDbType.Int32,
  4820. sUserInfo.AccountID,ParameterDirection.Input),
  4821. new OracleParameter(":CreateUserID",OracleDbType.Int32,
  4822. sUserInfo.UserID,ParameterDirection.Input),
  4823. new OracleParameter(":OperationType",OracleDbType.Int32,
  4824. (item["MouldStatus"].ToString() == "1"? (int)Constant.MouldOperationType.InvToScrap:(int)Constant.MouldOperationType.OutToScrap)
  4825. ,ParameterDirection.Input),
  4826. };
  4827. returnRows += oracleTrConn.ExecuteNonQuery(sqlStringInsertHis, paras);
  4828. // 修改模具状态
  4829. paras = new OracleParameter[] {
  4830. new OracleParameter(":MouldID",OracleDbType.Int32,
  4831. item["MouldID"],ParameterDirection.Input),
  4832. new OracleParameter(":scrapuserid",OracleDbType.Int32,
  4833. sUserInfo.UserID,ParameterDirection.Input),
  4834. new OracleParameter(":LastChangeHistoryID",OracleDbType.Int32,
  4835. mouldHistoryID,ParameterDirection.Input),
  4836. new OracleParameter(":updateuserid",OracleDbType.Int32,
  4837. sUserInfo.UserID,ParameterDirection.Input),
  4838. new OracleParameter(":scrapusercode",OracleDbType.NVarchar2,
  4839. sUserInfo.UserCode,ParameterDirection.Input),
  4840. };
  4841. returnRows += oracleTrConn.ExecuteNonQuery(sqlStringUpdateMould, paras);
  4842. // 清除盘点明细
  4843. paras = new OracleParameter[] {
  4844. new OracleParameter(":MouldID",OracleDbType.Int32,
  4845. item["MouldID"],ParameterDirection.Input),
  4846. new OracleParameter(":UserID",OracleDbType.Int32,
  4847. sUserInfo.UserID,ParameterDirection.Input),
  4848. new OracleParameter(":CheckedID",OracleDbType.Int32,
  4849. checkedID,ParameterDirection.Input),
  4850. };
  4851. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  4852. }
  4853. oracleTrConn.Commit();
  4854. }
  4855. catch (Exception ex)
  4856. {
  4857. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4858. {
  4859. oracleTrConn.Rollback();
  4860. oracleTrConn.Disconnect();
  4861. }
  4862. throw ex;
  4863. }
  4864. finally
  4865. {
  4866. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  4867. {
  4868. oracleTrConn.Disconnect();
  4869. }
  4870. }
  4871. return sre;
  4872. }
  4873. /// <summary>
  4874. /// 获取盘点单明细
  4875. /// </summary>
  4876. /// <param name="procedureID">工序ID</param>
  4877. /// <returns>DataSet</returns>
  4878. public static DataSet GetUpdateMouldCheckedInfo(int checkedID, SUserInfo sUserInfo)
  4879. {
  4880. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4881. try
  4882. {
  4883. con.Open();
  4884. string sqlString = @"SELECT to_char(checked.UserCheckedCount) || '/' ||
  4885. to_char(checked.CheckedCount) CheckedCount
  4886. ,to_char(checked.UserOverageCount) || '/' ||
  4887. to_char(checked.OverageCount) OverageCount
  4888. ,to_char(checked.UserCheckedCount + checked.UserOverageCount) || '/' ||
  4889. to_char(checked.CheckedCount + checked.OverageCount) || '/' ||
  4890. to_char(TCount) TCount
  4891. FROM (SELECT icd.checkedid
  4892. , SUM(CASE
  4893. WHEN icd.checkeduserid = :userid AND icd.CheckedFlag = '1' THEN
  4894. 1
  4895. ELSE
  4896. 0
  4897. END) UserCheckedCount
  4898. , SUM(CASE
  4899. WHEN icd.checkeduserid = :userid AND icd.CheckedFlag = '2' THEN
  4900. 1
  4901. ELSE
  4902. 0
  4903. END) UserOverageCount
  4904. , SUM(CASE
  4905. WHEN icd.CheckedFlag = '1' THEN
  4906. 1
  4907. ELSE
  4908. 0
  4909. END) CheckedCount
  4910. , SUM(CASE
  4911. WHEN icd.CheckedFlag = '2' THEN
  4912. 1
  4913. ELSE
  4914. 0
  4915. END) OverageCount
  4916. ,COUNT(icd.checkedid) TCount
  4917. FROM tp_pC_Mouldcheckeddetail icd
  4918. WHERE icd.checkedid = :checkedid
  4919. AND icd.valueflag = '1'
  4920. -- xuwei add 2022-02-26
  4921. group by icd.checkedid
  4922. -- xuwei end
  4923. ) checked";
  4924. OracleParameter[] paras = new OracleParameter[]{
  4925. new OracleParameter(":checkedid",OracleDbType.Int32, checkedID, ParameterDirection.Input),
  4926. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  4927. };
  4928. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  4929. ds.Tables[0].TableName = "Table1";
  4930. sqlString = @"SELECT icd.goodscode, COUNT(icd.goodscode) goodscount
  4931. FROM tp_pC_Mouldcheckeddetail icd
  4932. WHERE icd.checkedid = :checkedid
  4933. AND icd.checkeduserid = :userid
  4934. AND icd.CheckedFlag = '1'
  4935. AND icd.valueflag = '1'
  4936. GROUP BY icd.goodscode";
  4937. DataTable dt = con.GetSqlResultToDt(sqlString, paras);
  4938. dt.TableName = "Table2";
  4939. ds.Tables.Add(dt);
  4940. return ds;
  4941. }
  4942. catch (Exception ex)
  4943. {
  4944. throw ex;
  4945. }
  4946. finally
  4947. {
  4948. if (con.ConnState == ConnectionState.Open)
  4949. {
  4950. con.Close();
  4951. }
  4952. }
  4953. }
  4954. #endregion
  4955. #region 模具库存结转
  4956. /// <summary>
  4957. /// 获取模具库存结转一览查询数据
  4958. /// </summary>
  4959. /// <param name="sUserInfo"></param>
  4960. /// <returns></returns>
  4961. public static ServiceResultEntity GetFPC1201QueryData(SUserInfo sUserInfo, ClientRequestEntity cre)
  4962. {
  4963. ServiceResultEntity sre = new ServiceResultEntity();
  4964. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4965. try
  4966. {
  4967. con.Open();
  4968. string sqlString =
  4969. "SELECT mc.yyyymm, mc.begindate, mc.enddate, mc.remarks\n" +
  4970. " FROM TP_PC_MouldCarryOver mc\n" +
  4971. " WHERE mc.accountid = :accountid\n" +
  4972. " AND mc.yyyymm >= :DateBegin\n" +
  4973. " AND mc.yyyymm <= :DateEnd\n" +
  4974. " ORDER BY mc.yyyymm desc";
  4975. OracleParameter[] parameters = new OracleParameter[]
  4976. {
  4977. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  4978. new OracleParameter(":DateBegin", OracleDbType.Char, cre.Properties["DateBegin"], ParameterDirection.Input),
  4979. new OracleParameter(":DateEnd", OracleDbType.Char, cre.Properties["DateEnd"], ParameterDirection.Input),
  4980. };
  4981. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  4982. if (sre.Data == null || sre.Data.Tables.Count == 0 || sre.Data.Tables[0].Rows.Count == 0)
  4983. {
  4984. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  4985. return sre;
  4986. }
  4987. sqlString = "SELECT mcd.yyyymm\n" +
  4988. " ,gt2.goodstypecode goodstypecode2\n" +
  4989. " ,gt2.goodstypename goodstypename2\n" +
  4990. " ,mcd.goodscode\n" +
  4991. " ,mcd.mouldnum\n" +
  4992. " FROM TP_PC_Mouldcarryoverdetail mcd\n" +
  4993. " INNER JOIN tp_mst_goods g\n" +
  4994. " ON g.goodsid = mcd.goodsid\n" +
  4995. " INNER JOIN tp_mst_goodstype gt\n" +
  4996. " ON gt.goodstypeid = g.goodstypeid\n" +
  4997. " INNER JOIN tp_mst_goodstype gt2\n" +
  4998. " ON gt2.accountid = gt.accountid\n" +
  4999. " AND gt2.goodstypecode = substr(gt.goodstypecode, 1, 6)\n" +
  5000. " WHERE mcd.accountid = :accountid\n" +
  5001. " AND mcd.yyyymm = :YYYYMM\n" +
  5002. " AND mcd.mouldstatus = 1 -- 在库\n" +
  5003. " ORDER BY gt2.goodstypecode, mcd.goodscode";
  5004. parameters = new OracleParameter[]
  5005. {
  5006. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5007. new OracleParameter(":YYYYMM", OracleDbType.Char, sre.Data.Tables[0].Rows[0]["YYYYMM"], ParameterDirection.Input),
  5008. };
  5009. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  5010. return sre;
  5011. }
  5012. catch (Exception ex)
  5013. {
  5014. throw ex;
  5015. }
  5016. finally
  5017. {
  5018. if (con.ConnState == ConnectionState.Open)
  5019. {
  5020. con.Close();
  5021. }
  5022. }
  5023. }
  5024. public static ServiceResultEntity SAPQuery(SUserInfo sUserInfo, ClientRequestEntity cre)
  5025. {
  5026. ServiceResultEntity sre = new ServiceResultEntity();
  5027. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5028. try
  5029. {
  5030. #region 获取东科单据号
  5031. int ZDKNO = Convert.ToInt32(oracleTrConn.GetSqlResultToObj("select SEQ_MOULDCHANGELOGID.NEXTVAL from dual "));
  5032. #endregion
  5033. #region 普通参数
  5034. DateTime createTime = DateTime.Now;
  5035. string ceshi1 = createTime.ToString("yyyyMMdd");
  5036. //消息类型: S 成功,E 错误
  5037. string ZTYPE;
  5038. //消息文本
  5039. string ZMSG;
  5040. #endregion
  5041. #region 调用SAP接口方法
  5042. string upsql = string.Empty;
  5043. DataTable dtResult = new DataTable();
  5044. string sqlString = @"SELECT * FROM TP_CESHI ";
  5045. DataTable newTable = oracleTrConn.GetSqlResultToDt(sqlString);
  5046. for (int j = 0; j < newTable.Rows.Count; j++)
  5047. {
  5048. int count = Convert.ToInt32(newTable.Rows[j]["mouldcount"]);
  5049. dtResult = ZMMFM045("20231108", ZDKNO + "", newTable.Rows[j]["cj"].ToString(), newTable.Rows[j]["MATNR"].ToString(),count, out ZTYPE, out ZMSG);
  5050. if (dtResult != null && dtResult.Rows.Count > 0)
  5051. {
  5052. if ("S".Equals(ZTYPE))
  5053. {
  5054. #region 插入SAP模具变更传输日志
  5055. string insql = @"
  5056. INSERT INTO TP_SAP_MOULDCHANGELOG
  5057. ( BLDAT
  5058. , BUDAT
  5059. , WERKS
  5060. , LGORT_FM
  5061. , LGORT_TO
  5062. , MATNR
  5063. , BWART
  5064. , MEINS
  5065. , MENGE
  5066. , MBLNR
  5067. , MJAHR
  5068. , MSGTY
  5069. , MSGTX)
  5070. VALUES
  5071. ( SYSDATE
  5072. , SYSDATE
  5073. , '5000'
  5074. , '3001'
  5075. , :LGORT_TO
  5076. , :MATNR
  5077. , '311'
  5078. , 'PCS'
  5079. , :MENGE
  5080. , :MBLNR
  5081. , :MJAHR
  5082. , :MSGTY
  5083. , :MSGTX)";
  5084. OracleParameter[] inparas = new OracleParameter[]{
  5085. //new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,ZDKNO, ParameterDirection.Input),
  5086. new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,newTable.Rows[j]["cj"], ParameterDirection.Input),
  5087. new OracleParameter(":MATNR", OracleDbType.NVarchar2,newTable.Rows[j]["MATNR"], ParameterDirection.Input),
  5088. new OracleParameter(":MENGE", OracleDbType.Int32,count, ParameterDirection.Input),
  5089. new OracleParameter(":MBLNR", OracleDbType.NVarchar2, dtResult.Rows[0]["MBLNR"].ToString(), ParameterDirection.Input),
  5090. new OracleParameter(":MJAHR", OracleDbType.NVarchar2,dtResult.Rows[0]["MJAHR"].ToString(), ParameterDirection.Input),
  5091. new OracleParameter(":MSGTY", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTY"].ToString(), ParameterDirection.Input),
  5092. new OracleParameter(":MSGTX", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTX"].ToString(), ParameterDirection.Input)
  5093. };
  5094. oracleTrConn.ExecuteNonQuery(insql, inparas);
  5095. #endregion
  5096. }
  5097. else if ("E".Equals(ZTYPE))
  5098. {
  5099. #region 插入SAP模具变更传输日志
  5100. string insql = @"
  5101. INSERT INTO TP_SAP_MOULDCHANGELOG
  5102. ( BLDAT
  5103. , BUDAT
  5104. , WERKS
  5105. , LGORT_FM
  5106. , LGORT_TO
  5107. , MATNR
  5108. , BWART
  5109. , MEINS
  5110. , MENGE
  5111. , MBLNR
  5112. , MJAHR
  5113. , MSGTY
  5114. , MSGTX)
  5115. VALUES
  5116. ( SYSDATE
  5117. , SYSDATE
  5118. , '5000'
  5119. , '3001'
  5120. , :LGORT_TO
  5121. , :MATNR
  5122. , '311'
  5123. , 'PCS'
  5124. , :MENGE
  5125. , :MBLNR
  5126. , :MJAHR
  5127. , :MSGTY
  5128. , :MSGTX)";
  5129. OracleParameter[] inparas = new OracleParameter[]{
  5130. //new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,ZDKNO, ParameterDirection.Input),
  5131. new OracleParameter(":LGORT_TO", OracleDbType.NVarchar2,newTable.Rows[j]["cj"], ParameterDirection.Input),
  5132. new OracleParameter(":MATNR", OracleDbType.NVarchar2,newTable.Rows[j]["MATNR"], ParameterDirection.Input),
  5133. new OracleParameter(":MENGE", OracleDbType.Int32,count, ParameterDirection.Input),
  5134. new OracleParameter(":MBLNR", OracleDbType.NVarchar2, dtResult.Rows[0]["MBLNR"].ToString(), ParameterDirection.Input),
  5135. new OracleParameter(":MJAHR", OracleDbType.NVarchar2,dtResult.Rows[0]["MJAHR"].ToString(), ParameterDirection.Input),
  5136. new OracleParameter(":MSGTY", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTY"].ToString(), ParameterDirection.Input),
  5137. new OracleParameter(":MSGTX", OracleDbType.NVarchar2,dtResult.Rows[0]["MSGTX"].ToString(), ParameterDirection.Input)
  5138. };
  5139. oracleTrConn.ExecuteNonQuery(insql, inparas);
  5140. #endregion
  5141. if (dtResult != null && dtResult.Rows.Count > 0)
  5142. {
  5143. sre.Status = Constant.ServiceResultStatus.Other;
  5144. sre.OtherStatus = -10001;
  5145. sre.Message = dtResult.Rows[0]["MSGTX"].ToString();
  5146. oracleTrConn.Rollback();
  5147. oracleTrConn.Disconnect();
  5148. return sre;
  5149. }
  5150. else
  5151. {
  5152. sre.Status = Constant.ServiceResultStatus.Other;
  5153. sre.OtherStatus = -10002;
  5154. sre.Message = dtResult.Rows[0]["MSGTX"].ToString();
  5155. oracleTrConn.Rollback();
  5156. oracleTrConn.Disconnect();
  5157. return sre;
  5158. }
  5159. }
  5160. }
  5161. }
  5162. #endregion
  5163. //提交事务
  5164. oracleTrConn.Commit();
  5165. oracleTrConn.Disconnect();
  5166. }
  5167. catch (Exception ex)
  5168. {
  5169. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5170. {
  5171. oracleTrConn.Rollback();
  5172. oracleTrConn.Disconnect();
  5173. }
  5174. throw ex;
  5175. }
  5176. return sre;
  5177. }
  5178. /// <summary>
  5179. /// 东科与SAP系统之摸具状态变更(上模)
  5180. /// </summary>
  5181. /// <param name="BLDAT"></param>
  5182. /// <param name="ZDKNO"></param>
  5183. /// <param name="dtTable"></param>
  5184. /// <param name="ZTYPE"></param>
  5185. /// <param name="ZMSG"></param>
  5186. /// <returns></returns>
  5187. public static DataTable ZMMFM045(string BLDAT, string ZDKNO, string cj, string MATNR, int dtcount, out string ZTYPE, out string ZMSG)
  5188. {
  5189. #region 接口定义
  5190. RfcConfigParameters rfcPara = new RfcConfigParameters();
  5191. rfcPara.Add(RfcConfigParameters.AppServerHost, appServerHost);
  5192. rfcPara.Add(RfcConfigParameters.SystemNumber, systemNumber);
  5193. rfcPara.Add(RfcConfigParameters.User, user);
  5194. rfcPara.Add(RfcConfigParameters.Password, password);
  5195. rfcPara.Add(RfcConfigParameters.Client, client);
  5196. rfcPara.Add(RfcConfigParameters.Name, "CON");
  5197. rfcPara.Add(RfcConfigParameters.Language, "ZH");
  5198. rfcPara.Add(RfcConfigParameters.PoolSize, "5");
  5199. rfcPara.Add(RfcConfigParameters.ConnectionIdleTimeout, "60");
  5200. RfcDestination rfcDest = RfcDestinationManager.GetDestination(rfcPara);
  5201. RfcRepository rfcRep = rfcDest.Repository;
  5202. #endregion
  5203. //接口API
  5204. IRfcFunction rfcApi = rfcRep.CreateFunction("ZMMFM045");
  5205. //输入参数
  5206. IRfcTable imTable = rfcApi.GetTable("IT_ITEM");
  5207. #region 传参
  5208. imTable.Append();
  5209. imTable.SetValue("BLDAT", BLDAT); //凭证日期
  5210. imTable.SetValue("BUDAT", BLDAT); //过帐日期
  5211. imTable.SetValue("WERKS", "5000"); //工厂(默认:5000)
  5212. imTable.SetValue("LGORT_FM", "3001"); //发出库位:3001
  5213. imTable.SetValue("LGORT_TO", cj); //接收库位:一车间2110、二车间2210、三车间2310
  5214. imTable.SetValue("MATNR", MATNR); //物料编号:模具对应产品的物料编号
  5215. imTable.SetValue("BWART", "311"); //移动类型(库存管理):311
  5216. imTable.SetValue("MEINS", "PCS"); //基本计量单位:PCS
  5217. imTable.SetValue("MENGE", dtcount); //数量
  5218. imTable.SetValue("ZDKNO", ZDKNO); //东科单据号 (LOGOID)
  5219. #endregion
  5220. //调用接口
  5221. rfcApi.Invoke(rfcDest);
  5222. //获取输出
  5223. ZTYPE = rfcApi.GetValue("ZTYPE").ToString();
  5224. ZMSG = rfcApi.GetValue("ZMSG").ToString();
  5225. IRfcTable table = rfcApi.GetTable("ET_RETURN");
  5226. DataTable dt = GetDataTableFromRFCTable(table);
  5227. rfcDest = null;
  5228. rfcRep = null;
  5229. return dt;
  5230. }
  5231. /// <summary>
  5232. /// 获取模具库存结转明细查询数据
  5233. /// </summary>
  5234. /// <param name="sUserInfo"></param>
  5235. /// <returns></returns>
  5236. public static ServiceResultEntity GetFPC1201QueryDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  5237. {
  5238. ServiceResultEntity sre = new ServiceResultEntity();
  5239. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5240. try
  5241. {
  5242. con.Open();
  5243. string sqlString = "SELECT mcd.yyyymm\n" +
  5244. " ,gt2.goodstypecode goodstypecode2\n" +
  5245. " ,gt2.goodstypename goodstypename2\n" +
  5246. " ,mcd.goodscode\n" +
  5247. " ,mcd.mouldnum\n" +
  5248. " FROM TP_PC_Mouldcarryoverdetail mcd\n" +
  5249. " INNER JOIN tp_mst_goods g\n" +
  5250. " ON g.goodsid = mcd.goodsid\n" +
  5251. " INNER JOIN tp_mst_goodstype gt\n" +
  5252. " ON gt.goodstypeid = g.goodstypeid\n" +
  5253. " INNER JOIN tp_mst_goodstype gt2\n" +
  5254. " ON gt2.accountid = gt.accountid\n" +
  5255. " AND gt2.goodstypecode = substr(gt.goodstypecode, 1, 6)\n" +
  5256. " WHERE mcd.accountid = :accountid\n" +
  5257. " AND mcd.yyyymm = :YYYYMM\n" +
  5258. " AND mcd.mouldstatus = 1 -- 在库\n" +
  5259. " ORDER BY gt2.goodstypecode, mcd.goodscode";
  5260. OracleParameter[] parameters = new OracleParameter[]
  5261. {
  5262. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5263. new OracleParameter(":YYYYMM", OracleDbType.Char, cre.Properties["YYYYMM"], ParameterDirection.Input),
  5264. };
  5265. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5266. return sre;
  5267. }
  5268. catch (Exception ex)
  5269. {
  5270. throw ex;
  5271. }
  5272. finally
  5273. {
  5274. if (con.ConnState == ConnectionState.Open)
  5275. {
  5276. con.Close();
  5277. }
  5278. }
  5279. }
  5280. #region 模具库存自动结转设置
  5281. /// <summary>
  5282. /// 获取模具库存自动结转设置
  5283. /// </summary>
  5284. /// <param name="cre"></param>
  5285. /// <param name="sUserInfo"></param>
  5286. /// <returns></returns>
  5287. public static ServiceResultEntity GetFPC1204Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5288. {
  5289. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5290. try
  5291. {
  5292. ServiceResultEntity sre = new ServiceResultEntity();
  5293. string sqlString = "SELECT JOB_NAME, REPEAT_INTERVAL, LAST_START_DATE, NEXT_RUN_DATE, ENABLED\n" +
  5294. " FROM USER_SCHEDULER_JOBS\n" +
  5295. " WHERE JOB_NAME = 'JOB_AUTOMOULDCARRYOVER'";
  5296. oracleConn.Open();
  5297. DataSet data = oracleConn.GetSqlResultToDs(sqlString);
  5298. sre.Data = data;
  5299. oracleConn.Close();
  5300. return sre;
  5301. }
  5302. catch (Exception ex)
  5303. {
  5304. if (oracleConn.ConnState == ConnectionState.Open)
  5305. {
  5306. oracleConn.Close();
  5307. }
  5308. throw ex;
  5309. }
  5310. }
  5311. /// <summary>
  5312. /// 保存模具库存自动结转设置
  5313. /// </summary>
  5314. /// <param name="cre"></param>
  5315. /// <param name="sUserInfo"></param>
  5316. /// <returns></returns>
  5317. public static ServiceResultEntity SetFPC1204Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5318. {
  5319. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5320. try
  5321. {
  5322. ServiceResultEntity sre = new ServiceResultEntity();
  5323. // 检验参数的有效性
  5324. if (cre == null || cre.Request == null || cre.Request.ToString() == "")
  5325. {
  5326. sre.Status = Constant.ServiceResultStatus.NoModifyData;
  5327. return sre;
  5328. }
  5329. oracleTrConn.Connect();
  5330. OracleParameter[] oracleParameter = new OracleParameter[]
  5331. {
  5332. new OracleParameter("name","JOB_AUTOMOULDCARRYOVER"),
  5333. new OracleParameter("attribute", "repeat_interval"),
  5334. new OracleParameter("value", cre.Request.ToString())
  5335. };
  5336. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.set_attribute", oracleParameter);
  5337. oracleParameter = new OracleParameter[]
  5338. {
  5339. new OracleParameter("name","JOB_AUTOMOULDCARRYOVER")
  5340. };
  5341. if (cre.Properties["Enabled"].ToString() == "1")
  5342. {
  5343. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.enable", oracleParameter);
  5344. }
  5345. else
  5346. {
  5347. oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.disable", oracleParameter);
  5348. }
  5349. //if (cre.Properties["Run"].ToString() == "1")
  5350. //{
  5351. // // oracleParameter = new OracleParameter[]
  5352. // // {
  5353. // // new OracleParameter("job_name","JOB_AUTOMOULDCARRYOVER"),
  5354. // // new OracleParameter("use_current_session", OracleDbType., 0)
  5355. // // };
  5356. // //oracleTrConn.ExecStoredProcedure("sys.dbms_scheduler.run_job", oracleParameter);
  5357. // string sqlString = "begin\n" +
  5358. // "sys.dbms_scheduler.run_job('JOB_AUTOMOULDCARRYOVER', false);\n" +
  5359. // "end;";
  5360. // oracleTrConn.ExecuteNonQuery(sqlString);
  5361. //}
  5362. oracleTrConn.Commit();
  5363. oracleTrConn.Disconnect();
  5364. return sre;
  5365. }
  5366. catch (Exception ex)
  5367. {
  5368. if (oracleTrConn.ConnState == ConnectionState.Open)
  5369. {
  5370. oracleTrConn.Rollback();
  5371. oracleTrConn.Disconnect();
  5372. }
  5373. throw ex;
  5374. }
  5375. }
  5376. #endregion
  5377. /// <summary>
  5378. /// 获取模具库存结转期初
  5379. /// </summary>
  5380. /// <param name="cre"></param>
  5381. /// <param name="sUserInfo"></param>
  5382. /// <returns></returns>
  5383. public static ServiceResultEntity GetFPC1202Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5384. {
  5385. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5386. try
  5387. {
  5388. ServiceResultEntity sre = new ServiceResultEntity();
  5389. string sqlString =
  5390. "SELECT --nvl(MAX(mc.yyyymm), ' ') LastYYYYMM\n" +
  5391. " MAX(mc.yyyymm) LastYYYYMM\n" +
  5392. " ,to_char(SYSDATE, 'yyyymm') YYYYMM\n" +
  5393. " ,trunc(SYSDATE, 'mm') CurMonth\n" +
  5394. " FROM tp_pc_mouldcarryover mc\n" +
  5395. " WHERE mc.accountid = :accountid";
  5396. OracleParameter[] oracleParameter = new OracleParameter[]
  5397. {
  5398. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5399. };
  5400. sre.Data = oracleConn.GetSqlResultToDs(sqlString, oracleParameter);
  5401. oracleConn.Close();
  5402. return sre;
  5403. }
  5404. catch (Exception ex)
  5405. {
  5406. if (oracleConn.ConnState == ConnectionState.Open)
  5407. {
  5408. oracleConn.Close();
  5409. }
  5410. throw ex;
  5411. }
  5412. }
  5413. /// <summary>
  5414. /// 模具库存结转
  5415. /// </summary>
  5416. /// <param name="cre"></param>
  5417. /// <param name="sUserInfo"></param>
  5418. /// <returns></returns>
  5419. public static ServiceResultEntity SetFPC1202Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5420. {
  5421. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5422. try
  5423. {
  5424. ServiceResultEntity sre = new ServiceResultEntity();
  5425. oracleTrConn.Connect();
  5426. OracleParameter[] oracleParameter = new OracleParameter[]
  5427. {
  5428. new OracleParameter("in_CarryoverMonth", OracleDbType.Date, cre.Properties["CarryoverMonth"], ParameterDirection.Input),
  5429. new OracleParameter("in_AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5430. new OracleParameter("in_UserID", OracleDbType.Int32, sUserInfo.UserID, ParameterDirection.Input),
  5431. new OracleParameter("in_Remarks", OracleDbType.NVarchar2, cre.Properties["Remarks"], ParameterDirection.Input),
  5432. };
  5433. oracleTrConn.ExecStoredProcedure("pro_job_pc_mouldcarryover", oracleParameter);
  5434. oracleTrConn.Commit();
  5435. oracleTrConn.Disconnect();
  5436. return sre;
  5437. }
  5438. catch (Exception ex)
  5439. {
  5440. if (oracleTrConn.ConnState == ConnectionState.Open)
  5441. {
  5442. oracleTrConn.Rollback();
  5443. oracleTrConn.Disconnect();
  5444. }
  5445. throw ex;
  5446. }
  5447. }
  5448. /// <summary>
  5449. /// 模具库存反结转
  5450. /// </summary>
  5451. /// <param name="cre"></param>
  5452. /// <param name="sUserInfo"></param>
  5453. /// <returns></returns>
  5454. public static ServiceResultEntity SetFPC1203Data(ClientRequestEntity cre, SUserInfo sUserInfo)
  5455. {
  5456. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5457. try
  5458. {
  5459. ServiceResultEntity sre = new ServiceResultEntity();
  5460. oracleTrConn.Connect();
  5461. OracleParameter[] oracleParameter = new OracleParameter[]
  5462. {
  5463. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5464. new OracleParameter(":yyyymm", OracleDbType.Char, cre.Properties["YYYYMM"], ParameterDirection.Input),
  5465. };
  5466. string sqlString =
  5467. "DELETE FROM tp_pc_mouldcarryover mc\n" +
  5468. " WHERE mc.accountid = :accountid\n" +
  5469. " AND mc.yyyymm >= :yyyymm";
  5470. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5471. sqlString =
  5472. "DELETE FROM tp_pc_mouldcarryoverdetail mcd\n" +
  5473. " WHERE mcd.accountid = :accountid\n" +
  5474. " AND mcd.yyyymm >= :yyyymm";
  5475. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5476. sqlString =
  5477. "UPDATE tp_pc_mouldchangehistory mch\n" +
  5478. " SET mch.yyyymm = NULL\n" +
  5479. " WHERE mch.accountid = :accountid\n" +
  5480. " AND mch.yyyymm >= :yyyymm";
  5481. oracleTrConn.ExecuteNonQuery(sqlString, oracleParameter);
  5482. oracleTrConn.Commit();
  5483. oracleTrConn.Disconnect();
  5484. return sre;
  5485. }
  5486. catch (Exception ex)
  5487. {
  5488. if (oracleTrConn.ConnState == ConnectionState.Open)
  5489. {
  5490. oracleTrConn.Rollback();
  5491. oracleTrConn.Disconnect();
  5492. }
  5493. throw ex;
  5494. }
  5495. }
  5496. #endregion
  5497. #region 成检材料报损配置
  5498. /// <summary>
  5499. /// 成检材料报损配置工序查询
  5500. /// </summary>
  5501. /// <param name="sUserInfo"></param>
  5502. /// <returns></returns>
  5503. public static ServiceResultEntity GetFinishedCheckProcedure(SUserInfo sUserInfo, ClientRequestEntity cre)
  5504. {
  5505. ServiceResultEntity sre = new ServiceResultEntity();
  5506. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5507. try
  5508. {
  5509. con.Open();
  5510. string sqlString = "SELECT t.procedureid\n" +
  5511. " ,t.procedurename\n" +
  5512. " FROM tp_pc_procedure t\n" +
  5513. " WHERE t.valueflag = '1'\n" +
  5514. " AND t.AccountID = :accountid\n" +
  5515. " AND t.modeltype = -5" +
  5516. " AND (:PROCEDURENAME is null or :PROCEDURENAME = '' or instr(t.procedurename, :PROCEDURENAME) > 0 )\n";
  5517. OracleParameter[] parameters = new OracleParameter[]
  5518. {
  5519. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5520. new OracleParameter(":PROCEDURENAME", OracleDbType.Varchar2, cre.Properties["PROCEDURENAME"], ParameterDirection.Input),
  5521. };
  5522. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5523. return sre;
  5524. }
  5525. catch (Exception ex)
  5526. {
  5527. throw ex;
  5528. }
  5529. finally
  5530. {
  5531. if (con.ConnState == ConnectionState.Open)
  5532. {
  5533. con.Close();
  5534. }
  5535. }
  5536. }
  5537. /// <summary>
  5538. /// 成检材料报损配置查询
  5539. /// </summary>
  5540. /// <param name="sUserInfo"></param>
  5541. /// <returns></returns>
  5542. public static ServiceResultEntity GetIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5543. {
  5544. ServiceResultEntity sre = new ServiceResultEntity();
  5545. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5546. try
  5547. {
  5548. con.Open();
  5549. string sqlString = "SELECT (SELECT 1\n" +
  5550. " FROM tp_pc_procedureidnrktype pit\n" +
  5551. " WHERE pit.idnrktype = d.dictionaryvalue\n" +
  5552. " AND pit.procedureid = :PROCEDUREID) AS check1\n" +
  5553. " ,d.dictionaryvalue as idnrktype \n" +
  5554. " ,(SELECT 1\n" +
  5555. " FROM tp_pc_procedureidnrktype pit\n" +
  5556. " WHERE pit.idnrktype = d.dictionaryvalue\n" +
  5557. " AND pit.procedureid = :PROCEDUREID AND pit.SCANFLAG = 1) AS SCANFLAG\n" +
  5558. " FROM tp_mst_datadictionary d\n" +
  5559. " WHERE d.dictionarytype = 'TPC010'\n" +
  5560. " AND d.valueflag = '1'\n" +
  5561. " AND d.accountid = :accountid" +
  5562. " AND (:PROCEDURENAME is null or :PROCEDURENAME = '' or instr(d.dictionaryvalue, :PROCEDURENAME) > 0 )\n";
  5563. OracleParameter[] parameters = new OracleParameter[]
  5564. {
  5565. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5566. new OracleParameter(":PROCEDUREID", OracleDbType.Int32, cre.Properties["PROCEDUREID"], ParameterDirection.Input),
  5567. new OracleParameter(":PROCEDURENAME", OracleDbType.Varchar2, cre.Properties["PROCEDURENAME"]+"", ParameterDirection.Input),
  5568. };
  5569. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5570. sre.Data.Tables[0].TableName = "idnrk";
  5571. sqlString = @" SELECT w.workstationid,w.workstationname,wc.barcodeip,wc.idnrkip,wc.scanip,wc.plcip,wc.servicePort,wc.db
  5572. FROM tp_mst_workstation w
  5573. left join tp_Pc_procedure p on p.procedureid = w.procedureid
  5574. left join TP_PM_WORKSTATIONIPCONFIG wc on wc.workstationname = w.workstationname
  5575. WHERE w.procedureid = :PROCEDUREID
  5576. order by w.workstationid
  5577. ";
  5578. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  5579. sre.Data.Tables[1].TableName = "ip";
  5580. return sre;
  5581. }
  5582. catch (Exception ex)
  5583. {
  5584. throw ex;
  5585. }
  5586. finally
  5587. {
  5588. if (con.ConnState == ConnectionState.Open)
  5589. {
  5590. con.Close();
  5591. }
  5592. }
  5593. }
  5594. /// <summary>
  5595. /// 已选成检材料类型查询
  5596. /// </summary>
  5597. /// <param name="sUserInfo"></param>
  5598. /// <returns></returns>
  5599. public static ServiceResultEntity GetProcedureIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5600. {
  5601. ServiceResultEntity sre = new ServiceResultEntity();
  5602. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5603. try
  5604. {
  5605. con.Open();
  5606. string sqlString = "SELECT pi.procedureid\n" +
  5607. " ,pi.idnrktype\n" +
  5608. " ,pi.SCANFLAG\n" +
  5609. " ,1 as AlreadyCheck\n" +
  5610. " FROM tp_pc_procedureidnrktype pi\n" +
  5611. " WHERE pi.procedureid = :PROCEDUREID";
  5612. OracleParameter[] parameters = new OracleParameter[]
  5613. {
  5614. new OracleParameter(":PROCEDUREID", OracleDbType.Int32, cre.Properties["PROCEDUREID"], ParameterDirection.Input),
  5615. };
  5616. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5617. return sre;
  5618. }
  5619. catch (Exception ex)
  5620. {
  5621. throw ex;
  5622. }
  5623. finally
  5624. {
  5625. if (con.ConnState == ConnectionState.Open)
  5626. {
  5627. con.Close();
  5628. }
  5629. }
  5630. }
  5631. /// <summary>
  5632. /// 保存成检材料类型
  5633. /// </summary>
  5634. /// <param name="sUserInfo"></param>
  5635. /// <returns></returns>
  5636. public static ServiceResultEntity SavePackingBOMData(SUserInfo sUserInfo, ClientRequestEntity cre)
  5637. {
  5638. ServiceResultEntity sre = new ServiceResultEntity();
  5639. int procedureId = Convert.ToInt32(cre.Properties["ProcedureId"]);
  5640. DataTable procedureTable = cre.Data.Tables[0];
  5641. int returnRows = 0;
  5642. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5643. try
  5644. {
  5645. string sqlString = null;
  5646. if (procedureTable != null && procedureTable.Rows.Count > 0)
  5647. {
  5648. //先删除后插入
  5649. sqlString = "delete from tp_pc_procedureidnrktype where procedureid=" + procedureId;
  5650. oracleTrConn.ExecuteNonQuery(sqlString);
  5651. foreach (DataRow item in procedureTable.Rows)
  5652. {
  5653. sqlString = @"insert into tp_pc_procedureidnrktype
  5654. (
  5655. procedureid,
  5656. idnrktype,
  5657. SCANFLAG
  5658. ) values
  5659. ( :procedureid,
  5660. :idnrktype,
  5661. :scanflag
  5662. )";
  5663. OracleParameter[] Paras = new OracleParameter[] {
  5664. new OracleParameter(":procedureid",OracleDbType.Int32,procedureId,ParameterDirection.Input),
  5665. new OracleParameter(":idnrktype",OracleDbType.Varchar2, item["idnrktype"] + "",ParameterDirection.Input),
  5666. new OracleParameter(":scanflag",OracleDbType.Varchar2, item["SCANFLAG"] + "",ParameterDirection.Input),
  5667. };
  5668. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5669. }
  5670. }
  5671. oracleTrConn.Commit();
  5672. }
  5673. catch (Exception ex)
  5674. {
  5675. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5676. {
  5677. oracleTrConn.Rollback();
  5678. oracleTrConn.Disconnect();
  5679. }
  5680. throw ex;
  5681. }
  5682. finally
  5683. {
  5684. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5685. {
  5686. oracleTrConn.Disconnect();
  5687. }
  5688. }
  5689. return sre;
  5690. }
  5691. /// <summary>
  5692. /// 保存成检材料类型
  5693. /// </summary>
  5694. /// <param name="sUserInfo"></param>
  5695. /// <returns></returns>
  5696. public static ServiceResultEntity SaveWorkIP(SUserInfo sUserInfo, ClientRequestEntity cre)
  5697. {
  5698. ServiceResultEntity sre = new ServiceResultEntity();
  5699. int procedureId = Convert.ToInt32(cre.Properties["ProcedureId"]);
  5700. DataTable procedureTable = cre.Data.Tables[0];
  5701. int returnRows = 0;
  5702. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5703. try
  5704. {
  5705. string sqlString = null;
  5706. if (procedureTable != null && procedureTable.Rows.Count > 0)
  5707. {
  5708. //先删除后插入
  5709. sqlString = "delete from TP_PM_WORKSTATIONIPCONFIG where procedureid=" + procedureId;
  5710. oracleTrConn.ExecuteNonQuery(sqlString);
  5711. foreach (DataRow item in procedureTable.Rows)
  5712. {
  5713. sqlString = @"insert into TP_PM_WORKSTATIONIPCONFIG
  5714. (
  5715. PROCEDUREID,
  5716. WORKSTATIONID,
  5717. WORKSTATIONNAME,
  5718. BARCODEIP,
  5719. IDNRKIP,
  5720. SCANIP,
  5721. PLCIP,
  5722. SERVICEPORT,
  5723. DB,
  5724. CREATEUSERID,
  5725. UPDATEUSERID
  5726. ) values
  5727. ( :PROCEDUREID,
  5728. :WORKSTATIONID,
  5729. :WORKSTATIONNAME,
  5730. :BARCODEIP,
  5731. :IDNRKIP,
  5732. :SCANIP,
  5733. :PLCIP,
  5734. :SERVICEPORT,
  5735. :DB,
  5736. :CREATEUSERID,
  5737. :UPDATEUSERID
  5738. )";
  5739. OracleParameter[] Paras = new OracleParameter[] {
  5740. new OracleParameter(":PROCEDUREID",OracleDbType.Int32,procedureId,ParameterDirection.Input),
  5741. new OracleParameter(":WORKSTATIONID",OracleDbType.Varchar2, item["WORKSTATIONID"] + "",ParameterDirection.Input),
  5742. new OracleParameter(":WORKSTATIONNAME",OracleDbType.Varchar2, item["WORKSTATIONNAME"] + "",ParameterDirection.Input),
  5743. new OracleParameter(":BARCODEIP",OracleDbType.Varchar2, item["BARCODEIP"] + "",ParameterDirection.Input),
  5744. new OracleParameter(":IDNRKIP",OracleDbType.Varchar2, item["IDNRKIP"] + "",ParameterDirection.Input),
  5745. new OracleParameter(":SCANIP",OracleDbType.Varchar2, item["SCANIP"] + "",ParameterDirection.Input),
  5746. new OracleParameter(":PLCIP",OracleDbType.Varchar2, item["PLCIP"] + "",ParameterDirection.Input),
  5747. new OracleParameter(":SERVICEPORT",OracleDbType.Varchar2, item["SERVICEPORT"] + "",ParameterDirection.Input),
  5748. new OracleParameter(":DB",OracleDbType.Varchar2, item["DB"] + "",ParameterDirection.Input),
  5749. new OracleParameter(":CREATEUSERID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
  5750. new OracleParameter(":UPDATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  5751. };
  5752. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5753. }
  5754. }
  5755. oracleTrConn.Commit();
  5756. }
  5757. catch (Exception ex)
  5758. {
  5759. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5760. {
  5761. oracleTrConn.Rollback();
  5762. oracleTrConn.Disconnect();
  5763. }
  5764. throw ex;
  5765. }
  5766. finally
  5767. {
  5768. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5769. {
  5770. oracleTrConn.Disconnect();
  5771. }
  5772. }
  5773. return sre;
  5774. }
  5775. #endregion
  5776. #region 线边仓组件配置
  5777. /// <summary>
  5778. /// 线边仓查询
  5779. /// </summary>
  5780. /// <param name="sUserInfo"></param>
  5781. /// <param name="cre"></param>
  5782. /// <returns></returns>
  5783. public static ServiceResultEntity GetLGORT(SUserInfo sUserInfo, ClientRequestEntity cre)
  5784. {
  5785. ServiceResultEntity sre = new ServiceResultEntity();
  5786. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5787. try
  5788. {
  5789. con.Open();
  5790. string sqlString = @"SELECT dictionaryvalue,dictionaryID FROM
  5791. TP_MST_DATADICTIONARY MDD
  5792. WHERE DICTIONARYTYPE = :DICTIONARYTYPE
  5793. AND ACCOUNTID =:accountid
  5794. AND VALUEFLAG =1
  5795. AND (:dictionaryvalue IS NULL OR :dictionaryvalue = '' OR INSTR(MDD.DICTIONARYVALUE,:dictionaryvalue)>0)";
  5796. OracleParameter[] parameters = new OracleParameter[]
  5797. {
  5798. new OracleParameter(":DICTIONARYTYPE", OracleDbType.NVarchar2, cre.Properties["DICTIONARYTYPE"], ParameterDirection.Input),
  5799. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5800. new OracleParameter(":dictionaryvalue", OracleDbType.NVarchar2, cre.Properties["dictionaryvalue"], ParameterDirection.Input),
  5801. };
  5802. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5803. return sre;
  5804. }
  5805. catch (Exception ex)
  5806. {
  5807. throw ex;
  5808. }
  5809. finally
  5810. {
  5811. if (con.ConnState == ConnectionState.Open)
  5812. {
  5813. con.Close();
  5814. }
  5815. }
  5816. }
  5817. /// <summary>
  5818. /// 组件类型配置
  5819. /// </summary>
  5820. /// <param name="sUserInfo"></param>
  5821. /// <param name="cre"></param>
  5822. /// <returns></returns>
  5823. public static ServiceResultEntity GetIDNRKTYPE(SUserInfo sUserInfo, ClientRequestEntity cre)
  5824. {
  5825. ServiceResultEntity sre = new ServiceResultEntity();
  5826. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5827. try
  5828. {
  5829. con.Open();
  5830. string sqlString = @"SELECT mdd.dictionaryvalue ModuleName
  5831. ,CASE
  5832. WHEN pl.idnrktype IS NULL THEN
  5833. 0
  5834. ELSE
  5835. 1
  5836. END check1
  5837. FROM tp_mst_datadictionary mdd
  5838. LEFT JOIN (SELECT tpl.idnrktype
  5839. FROM tp_pm_lgortidnrktyperel tpl
  5840. WHERE tpl.lgort = :lgort) pl
  5841. ON mdd.dictionaryvalue = pl.idnrktype
  5842. WHERE mdd.valueflag = 1
  5843. AND mdd.dictionarytype = 'TPC010'
  5844. AND mdd.accountid = :accountid
  5845. AND (:ModuleName is null or :ModuleName = '' or instr (mdd.dictionaryvalue,:ModuleName)>0)";
  5846. OracleParameter[] parameters = new OracleParameter[]
  5847. {
  5848. new OracleParameter(":LGORT", OracleDbType.NVarchar2, cre.Properties["LGORT"], ParameterDirection.Input),
  5849. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5850. new OracleParameter(":ModuleName", OracleDbType.NVarchar2,cre.Properties["ModuleName"], ParameterDirection.Input),
  5851. };
  5852. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5853. return sre;
  5854. }
  5855. catch (Exception ex)
  5856. {
  5857. throw ex;
  5858. }
  5859. finally
  5860. {
  5861. if (con.ConnState == ConnectionState.Open)
  5862. {
  5863. con.Close();
  5864. }
  5865. }
  5866. }
  5867. /// <summary>
  5868. /// 保存线边仓与组件类别关联关系
  5869. /// </summary>
  5870. /// <param name="sUserInfo"></param>
  5871. /// <param name="cre"></param>
  5872. /// <returns></returns>
  5873. public static ServiceResultEntity SaveLgortIdnrktype(SUserInfo sUserInfo, ClientRequestEntity cre)
  5874. {
  5875. ServiceResultEntity sre = new ServiceResultEntity();
  5876. string LGORT = cre.Properties["LGORT"].ToString();
  5877. DataTable LGORTTable = cre.Data.Tables[0];
  5878. int returnRows = 0;
  5879. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  5880. try
  5881. {
  5882. string sqlString = "delete from tp_pm_lgortidnrktyperel where LGORT =" + LGORT;
  5883. oracleTrConn.ExecuteNonQuery(sqlString);
  5884. if (LGORTTable != null && LGORTTable.Rows.Count > 0)
  5885. {
  5886. foreach (DataRow item in LGORTTable.Rows)
  5887. {
  5888. sqlString = @"INSERT INTO tp_pm_lgortidnrktyperel
  5889. (lgort
  5890. ,idnrktype)
  5891. VALUES
  5892. (:lgort
  5893. ,:idnrktype)";
  5894. OracleParameter[] Paras = new OracleParameter[] {
  5895. new OracleParameter(":lgort",OracleDbType.NVarchar2,LGORT,ParameterDirection.Input),
  5896. new OracleParameter(":idnrktype",OracleDbType.Varchar2, item["idnrktype"] + "",ParameterDirection.Input),
  5897. };
  5898. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  5899. }
  5900. }
  5901. oracleTrConn.Commit();
  5902. }
  5903. catch (Exception ex)
  5904. {
  5905. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5906. {
  5907. oracleTrConn.Rollback();
  5908. oracleTrConn.Disconnect();
  5909. }
  5910. throw ex;
  5911. }
  5912. finally
  5913. {
  5914. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  5915. {
  5916. oracleTrConn.Disconnect();
  5917. }
  5918. }
  5919. return sre;
  5920. }
  5921. #endregion
  5922. #region 产品装配明细表
  5923. /// <summary>
  5924. /// 产品装配明细表查询
  5925. /// </summary>
  5926. /// <param name="sUserInfo"></param>
  5927. /// <returns></returns>
  5928. public static ServiceResultEntity GetBarCodeIdnrkRel(SUserInfo sUserInfo, ClientRequestEntity cre)
  5929. {
  5930. ServiceResultEntity sre = new ServiceResultEntity();
  5931. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  5932. try
  5933. {
  5934. string sqlString = @"
  5935. SELECT T.RELATIONID,
  5936. T.BARCODE,
  5937. T.MATNR,
  5938. T.IDNRK,
  5939. T.MEINS,
  5940. T.MENGE,
  5941. T.IDNRKNAME,
  5942. case when instr(T.IDNRKONLYCODE,',') > 0 then
  5943. substr(T.IDNRKONLYCODE,0,instr(T.IDNRKONLYCODE,',')-1)
  5944. else T.IDNRKONLYCODE end as IDNRKONLYCODE,
  5945. T.CHARG,
  5946. T.LGORT,
  5947. P.PROCEDURENAME,
  5948. T.CREATETIME,
  5949. CU.USERNAME AS CREATEUSERNAME
  5950. FROM TP_PM_BARCODEIDNRKREL T
  5951. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GDD
  5952. ON GDD.BARCODE = T.BARCODE
  5953. AND (GDD.ONELEVELTYPEID IS NULL OR GDD.ONELEVELTYPEID <> 7)
  5954. AND (GDD.TWOLEVELTYPEID IS NULL OR GDD.TWOLEVELTYPEID <> 7)
  5955. LEFT JOIN TP_PC_PROCEDURE P
  5956. ON T.PROCEDUREID = P.PROCEDUREID
  5957. LEFT JOIN TP_MST_USER CU
  5958. ON CU.USERID = T.CREATEUSERID
  5959. WHERE T.ACCOUNTID = :ACCOUNTID
  5960. AND T.CREATETIME >= :CREATETIMEBEGIN
  5961. AND T.CREATETIME < :CREATETIMEEND
  5962. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(T.BARCODE, :BARCODE) > 0)
  5963. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(T.MATNR, :MATNR) > 0)
  5964. AND (:IDNRK IS NULL OR :IDNRK = '' OR INSTR(T.IDNRK, :IDNRK) > 0)
  5965. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(T.IDNRKNAME, :IDNRKNAME) > 0)
  5966. AND (:NOONLYCODEFLAG = 1 OR T.IDNRKONLYCODE IS NULL OR T.IDNRKONLYCODE = '') ";
  5967. OracleParameter[] parameters = new OracleParameter[]
  5968. {
  5969. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  5970. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  5971. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  5972. new OracleParameter(":IDNRK", OracleDbType.Varchar2, cre.Properties["Idnrk"], ParameterDirection.Input),
  5973. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  5974. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  5975. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  5976. new OracleParameter(":NOONLYCODEFLAG", OracleDbType.Int32, cre.Properties["NoOnlyCodeFlag"], ParameterDirection.Input),
  5977. };
  5978. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  5979. return sre;
  5980. }
  5981. catch (Exception ex)
  5982. {
  5983. throw ex;
  5984. }
  5985. finally
  5986. {
  5987. if (con.ConnState == ConnectionState.Open)
  5988. {
  5989. con.Close();
  5990. }
  5991. }
  5992. }
  5993. /// <summary>
  5994. /// 保存产品装配组件唯一编码
  5995. /// </summary>
  5996. /// <param name="sUserInfo"></param>
  5997. /// <returns></returns>
  5998. public static ServiceResultEntity SaveIdnrkOnlyCode(SUserInfo sUserInfo, ClientRequestEntity cre)
  5999. {
  6000. ServiceResultEntity sre = new ServiceResultEntity();
  6001. int relationID = Convert.ToInt32(cre.Properties["RelationID"]);
  6002. string idnrkOnlyCode = cre.Properties["IdnrkOnlyCode"] + "";
  6003. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  6004. try
  6005. {
  6006. string sqlString = null;
  6007. //更新
  6008. sqlString = @"update TP_PM_BARCODEIDNRKREL set IDNRKONLYCODE = :idnrkOnlyCode where RELATIONID = :relationID";
  6009. OracleParameter[] Paras = new OracleParameter[] {
  6010. new OracleParameter(":relationID",OracleDbType.Int32,relationID,ParameterDirection.Input),
  6011. new OracleParameter(":idnrkOnlyCode",OracleDbType.Varchar2, idnrkOnlyCode,ParameterDirection.Input),
  6012. };
  6013. sre.OtherStatus = oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  6014. oracleTrConn.Commit();
  6015. }
  6016. catch (Exception ex)
  6017. {
  6018. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6019. {
  6020. oracleTrConn.Rollback();
  6021. oracleTrConn.Disconnect();
  6022. }
  6023. throw ex;
  6024. }
  6025. finally
  6026. {
  6027. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6028. {
  6029. oracleTrConn.Disconnect();
  6030. }
  6031. }
  6032. return sre;
  6033. }
  6034. #endregion
  6035. #region 品管数据记录明细表
  6036. /// <summary>
  6037. /// 品管数据记录明细表
  6038. /// </summary>
  6039. /// <param name="sUserInfo"></param>
  6040. /// <returns></returns>
  6041. public static ServiceResultEntity GetPinGuanDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  6042. {
  6043. ServiceResultEntity sre = new ServiceResultEntity();
  6044. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6045. try
  6046. {
  6047. string sqlString = @"
  6048. SELECT DISTINCT PGI.BARCODE,
  6049. GD.GOODSCODE,
  6050. GD.GROUTINGLINECODE,
  6051. PGI.WORKSTATION,
  6052. U.USERNAME,
  6053. U.USERCODE,
  6054. PGI.CREATETIME,
  6055. PGI.INSPECTIONLEVEL,
  6056. PGI.PACKINGDEFECT,
  6057. PGI.INSPECTIONGOODSLEVEL,
  6058. L.GOODSLEVELNAME,
  6059. (SELECT LISTAGG(to_char(D.defectcode) || '#' || to_char(d.defectname) || '#' ||
  6060. to_char(d.defectusercode), ',') within GROUP(ORDER BY d.productiondefectid)
  6061. FROM tp_pm_defect d
  6062. WHERE D.PRODUCTIONDATAID = PDD.PRODUCTIONDATAID
  6063. AND D.VALUEFLAG = '1') AS DEFECT,
  6064. PGI.VALUEFLAG
  6065. FROM TP_PM_PinGuanInspection PGI
  6066. LEFT JOIN TP_MST_USER U ON PGI.CREATEUSERID = U.USERID
  6067. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.BARCODE = PGI.BARCODE
  6068. LEFT JOIN TP_MST_GOODSLEVEL L ON L.GOODSLEVELTYPEID = GD.GOODSLEVELTYPEID
  6069. LEFT JOIN (SELECT PD2.BARCODE,
  6070. PD2.PRODUCTIONDATAID FROM (
  6071. SELECT PD1.BARCODE,
  6072. PD1.PRODUCTIONDATAID,
  6073. ROW_NUMBER() OVER(PARTITION BY PD1.BARCODE ORDER BY PD1.PRODUCTIONDATAID DESC) AS DATAID
  6074. FROM TP_PM_PRODUCTIONDATA PD1
  6075. WHERE PD1.VALUEFLAG = '1'
  6076. AND PD1.CHECKBATCHNO = '1'
  6077. ORDER BY PD1.CREATETIME DESC
  6078. ) PD2 WHERE PD2.DATAID = 1) PDD ON PDD.BARCODE = PGI.BARCODE
  6079. WHERE PGI.CREATETIME >= :datebeginMasterStar
  6080. AND PGI.CREATETIME <= :datebeginMasterEnd ";
  6081. if (cre.Properties["BarCode"] + "" != "" && cre.Properties["BarCode"] + "" != null)
  6082. {
  6083. string barcode = cre.Properties["BarCode"].ToString();
  6084. sqlString += " AND PGI.BARCODE = :BARCODE ";
  6085. }
  6086. if (cre.Properties["WorkStation"] + "" != "" && cre.Properties["WorkStation"] + "" != null)
  6087. {
  6088. sqlString += " AND PGI.WORKSTATION = :WORKSTATION ";
  6089. }
  6090. if (cre.Properties["User"] + "" != "" && cre.Properties["User"] + "" != null)
  6091. {
  6092. sqlString += " AND U.USERCODE like :USERCODE ";
  6093. }
  6094. sqlString += " order by PGI.CREATETIME,PGI.BARCODE ";
  6095. OracleParameter[] parameters = new OracleParameter[]
  6096. {
  6097. new OracleParameter(":datebeginMasterStar", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6098. new OracleParameter(":datebeginMasterEnd", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6099. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6100. new OracleParameter(":WORKSTATION", OracleDbType.Varchar2, cre.Properties["WorkStation"], ParameterDirection.Input),
  6101. new OracleParameter(":USERCODE", OracleDbType.Varchar2, "%"+cre.Properties["User"]+"%", ParameterDirection.Input),
  6102. };
  6103. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6104. return sre;
  6105. }
  6106. catch (Exception ex)
  6107. {
  6108. throw ex;
  6109. }
  6110. finally
  6111. {
  6112. if (con.ConnState == ConnectionState.Open)
  6113. {
  6114. con.Close();
  6115. }
  6116. }
  6117. }
  6118. #endregion
  6119. #region 作业指导书配置
  6120. /// <summary>
  6121. /// 作业指导书配置
  6122. /// </summary>
  6123. /// <param name="sUserInfo"></param>
  6124. /// <param name="cre"></param>
  6125. /// <returns></returns>
  6126. public static ServiceResultEntity GetProcedure(SUserInfo sUserInfo, ClientRequestEntity cre)
  6127. {
  6128. ServiceResultEntity sre = new ServiceResultEntity();
  6129. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6130. try
  6131. {
  6132. con.Open();
  6133. string sqlString = "";
  6134. if (cre.Properties["onlyflag"].ToString() == "1")
  6135. {
  6136. sqlString = " SELECT sd.procedureName,sd.procedureID,1 as AlreadyCheck" +
  6137. " FROM TP_PC_SOPBOOKTYPEDATA sd\n" +
  6138. " WHERE sd.soptypeid = :soptypeid";
  6139. }
  6140. else
  6141. {
  6142. sqlString = "SELECT (SELECT 1\n" +
  6143. " FROM TP_PC_SOPBOOKTYPEDATA sd\n" +
  6144. " WHERE sd.procedurename = p.procedureName " +
  6145. " and sd.soptypeid = :soptypeid) AS check1\n" +
  6146. " ,p.procedureName as procedureName\n" +
  6147. " ,p.procedureID\n" +
  6148. " FROM tp_pc_procedure p\n" +
  6149. " WHERE p.valueflag = '1'\n" +
  6150. " AND p.accountid = :accountid";
  6151. if (!string.IsNullOrWhiteSpace(cre.Properties["ProcedureName"] + ""))
  6152. {
  6153. sqlString += " AND P.PROCEDURENAME LIKE :PROCEDURENAME";
  6154. }
  6155. }
  6156. OracleParameter[] parameters = new OracleParameter[]
  6157. {
  6158. new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6159. new OracleParameter(":soptypeid", OracleDbType.NVarchar2, cre.Properties["SOPTYPEID"], ParameterDirection.Input),
  6160. new OracleParameter(":PROCEDURENAME", OracleDbType.NVarchar2, "%"+cre.Properties["ProcedureName"]+"%", ParameterDirection.Input),
  6161. };
  6162. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6163. return sre;
  6164. }
  6165. catch (Exception ex)
  6166. {
  6167. throw ex;
  6168. }
  6169. finally
  6170. {
  6171. if (con.ConnState == ConnectionState.Open)
  6172. {
  6173. con.Close();
  6174. }
  6175. }
  6176. }
  6177. /// <summary>
  6178. /// 保存 作业指导书配置
  6179. /// </summary>
  6180. /// <param name="sUserInfo"></param>
  6181. /// <returns></returns>
  6182. public static ServiceResultEntity SaveSOPData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6183. {
  6184. ServiceResultEntity sre = new ServiceResultEntity();
  6185. int soptypeID = Convert.ToInt32(cre.Properties["SOPTYPEID"]);
  6186. string soptype = cre.Properties["SOPTYPE"] + "";
  6187. DataTable procedureTable = cre.Data.Tables[0];
  6188. int returnRows = 0;
  6189. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  6190. try
  6191. {
  6192. string sqlString = null;
  6193. if (procedureTable != null && procedureTable.Rows.Count > 0)
  6194. {
  6195. //先删除后插入
  6196. sqlString = "delete from TP_PC_SOPBOOKTYPEDATA where soptypeid=" + soptypeID;
  6197. oracleTrConn.ExecuteNonQuery(sqlString);
  6198. foreach (DataRow item in procedureTable.Rows)
  6199. {
  6200. sqlString = @"insert into TP_PC_SOPBOOKTYPEDATA
  6201. (
  6202. soptypeid,
  6203. SOPTYPENAME,
  6204. PROCEDUREID,
  6205. PROCEDURENAME,
  6206. VALUEFLAG
  6207. ) values
  6208. ( :soptypeid,
  6209. :SOPTYPENAME,
  6210. :PROCEDUREID,
  6211. :PROCEDURENAME,
  6212. 1
  6213. )";
  6214. OracleParameter[] Paras = new OracleParameter[] {
  6215. new OracleParameter(":soptypeid",OracleDbType.Int32,soptypeID,ParameterDirection.Input),
  6216. new OracleParameter(":SOPTYPENAME",OracleDbType.Varchar2, soptype,ParameterDirection.Input),
  6217. new OracleParameter(":PROCEDUREID",OracleDbType.Int32,item["PROCEDUREID"],ParameterDirection.Input),
  6218. new OracleParameter(":PROCEDURENAME",OracleDbType.Varchar2, item["PROCEDURENAME"] + "",ParameterDirection.Input),
  6219. };
  6220. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  6221. }
  6222. }
  6223. oracleTrConn.Commit();
  6224. }
  6225. catch (Exception ex)
  6226. {
  6227. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6228. {
  6229. oracleTrConn.Rollback();
  6230. oracleTrConn.Disconnect();
  6231. }
  6232. throw ex;
  6233. }
  6234. finally
  6235. {
  6236. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6237. {
  6238. oracleTrConn.Disconnect();
  6239. }
  6240. }
  6241. return sre;
  6242. }
  6243. #endregion
  6244. #region 分配到工序节点
  6245. /// <summary>
  6246. /// 分配到工序节点
  6247. /// </summary>
  6248. /// <param name="sUserInfo"></param>
  6249. /// <param name="cre"></param>
  6250. /// <returns></returns>
  6251. public static ServiceResultEntity GetProcedureID(SUserInfo sUserInfo, ClientRequestEntity cre)
  6252. {
  6253. ServiceResultEntity sre = new ServiceResultEntity();
  6254. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6255. try
  6256. {
  6257. string sqlString = "SELECT PU.PROCEDUREID,PU.NODENO,P.PROCEDURENAME,1 as AlreadyCheck\n" +
  6258. "FROM TP_PC_ProcedureUser PU\n" +
  6259. "LEFT JOIN TP_PC_procedure P ON PU.PROCEDUREID = P.PROCEDUREID\n" +
  6260. "WHERE PU.USERID = :userID";
  6261. OracleParameter[] parameters = new OracleParameter[]
  6262. {
  6263. new OracleParameter(":userID", OracleDbType.NVarchar2, cre.Properties["userID"], ParameterDirection.Input),
  6264. };
  6265. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6266. return sre;
  6267. }
  6268. catch (Exception ex)
  6269. {
  6270. throw ex;
  6271. }
  6272. finally
  6273. {
  6274. if (con.ConnState == ConnectionState.Open)
  6275. {
  6276. con.Close();
  6277. }
  6278. }
  6279. }
  6280. /// <summary>
  6281. /// 保存 分配到工序节点
  6282. /// </summary>
  6283. /// <param name="sUserInfo"></param>
  6284. /// <returns></returns>
  6285. public static ServiceResultEntity SaveProcedureData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6286. {
  6287. ServiceResultEntity sre = new ServiceResultEntity();
  6288. int userID = Convert.ToInt32(cre.Properties["UserID"]);
  6289. DataTable procedureTable = cre.Data.Tables[0];
  6290. int returnRows = 0;
  6291. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  6292. try
  6293. {
  6294. string sqlString = null;
  6295. if (procedureTable != null && procedureTable.Rows.Count > 0)
  6296. {
  6297. //先删除后插入
  6298. sqlString = "delete from TP_PC_ProcedureUser where userid=" + userID;
  6299. oracleTrConn.ExecuteNonQuery(sqlString);
  6300. foreach (DataRow item in procedureTable.Rows)
  6301. {
  6302. sqlString = @"SELECT NODENO FROM TP_PC_procedure WHERE PROCEDUREID = " + item["PROCEDUREID"];
  6303. int nodeNo = int.Parse(oracleTrConn.GetSqlResultToStr(sqlString));
  6304. sqlString = @"insert into TP_PC_ProcedureUser
  6305. (
  6306. USERID,
  6307. PROCEDUREID,
  6308. PRODUCTIONLINEID,
  6309. NODENO,
  6310. CREATEUSERID
  6311. ) values
  6312. ( :USERID,
  6313. :PROCEDUREID,
  6314. 1,
  6315. :NODENO,
  6316. :CREATEUSERID
  6317. )";
  6318. OracleParameter[] Paras = new OracleParameter[] {
  6319. new OracleParameter(":USERID",OracleDbType.Int32,userID,ParameterDirection.Input),
  6320. new OracleParameter(":PROCEDUREID",OracleDbType.Int32,item["PROCEDUREID"],ParameterDirection.Input),
  6321. new OracleParameter(":NODENO",OracleDbType.Varchar2, nodeNo,ParameterDirection.Input),
  6322. new OracleParameter(":CREATEUSERID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  6323. };
  6324. returnRows += oracleTrConn.ExecuteNonQuery(sqlString, Paras);
  6325. }
  6326. }
  6327. oracleTrConn.Commit();
  6328. }
  6329. catch (Exception ex)
  6330. {
  6331. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6332. {
  6333. oracleTrConn.Rollback();
  6334. oracleTrConn.Disconnect();
  6335. }
  6336. throw ex;
  6337. }
  6338. finally
  6339. {
  6340. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  6341. {
  6342. oracleTrConn.Disconnect();
  6343. }
  6344. }
  6345. return sre;
  6346. }
  6347. #endregion
  6348. #region BOM物料检验明细表
  6349. /// <summary>
  6350. /// BOM物料检验明细表
  6351. /// </summary>
  6352. /// <param name="sUserInfo"></param>
  6353. /// <returns></returns>
  6354. public static ServiceResultEntity GetBOMDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6355. {
  6356. ServiceResultEntity sre = new ServiceResultEntity();
  6357. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6358. try
  6359. {
  6360. string sqlString = @"
  6361. SELECT f.barcode
  6362. ,CASE
  6363. WHEN f.checkvalue = 1 THEN
  6364. '装配正确'
  6365. WHEN f.checkvalue = 2 THEN
  6366. '装配错误'
  6367. WHEN f.checkvalue = 3 THEN
  6368. '漏装'
  6369. WHEN f.checkvalue = 4 THEN
  6370. '多装'
  6371. ELSE
  6372. ''
  6373. END checkvalue
  6374. ,pd.idnrk
  6375. ,pd.MEINS
  6376. ,f.bomname IDNRKNAME
  6377. ,cu.usercode CREATEUSERNAME
  6378. ,cu.USERNAME CheckNames
  6379. ,f.createtime
  6380. FROM tp_pm_fqcbom f
  6381. LEFT JOIN tp_mst_packingbomdetail pd
  6382. ON pd.packingbomdetailid = f.packingbomdetailid
  6383. LEFT JOIN tp_mst_user cu
  6384. ON cu.userid = f.createuserid
  6385. WHERE f.CREATETIME >= :CREATETIMEBEGIN
  6386. AND f.CREATETIME < :CREATETIMEEND
  6387. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(f.BARCODE, :BARCODE) > 0)
  6388. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(pd.idnrk, :MATNR) > 0)
  6389. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(f.bomname, :IDNRKNAME) > 0)
  6390. AND (:CHECKVALUE = 0 OR f.CHECKVALUE IS NULL OR f.checkvalue = :CHECKVALUE) ";
  6391. OracleParameter[] parameters = new OracleParameter[]
  6392. {
  6393. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6394. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  6395. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  6396. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6397. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6398. new OracleParameter(":CHECKVALUE", OracleDbType.Int32, cre.Properties["CHECKVALUE"], ParameterDirection.Input),
  6399. };
  6400. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6401. return sre;
  6402. }
  6403. catch (Exception ex)
  6404. {
  6405. throw ex;
  6406. }
  6407. finally
  6408. {
  6409. if (con.ConnState == ConnectionState.Open)
  6410. {
  6411. con.Close();
  6412. }
  6413. }
  6414. }
  6415. /// <summary>
  6416. /// BOM物料检验汇总
  6417. /// </summary>
  6418. /// <param name="sUserInfo"></param>
  6419. /// <returns></returns>
  6420. public static ServiceResultEntity GetBOMDSummary(SUserInfo sUserInfo, ClientRequestEntity cre)
  6421. {
  6422. ServiceResultEntity sre = new ServiceResultEntity();
  6423. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6424. try
  6425. {
  6426. string sqlString = @"
  6427. SELECT
  6428. BARCODE,
  6429. GOODSCODE,
  6430. INSPECTNAME,
  6431. CREATEUSERNAME,
  6432. CheckNames,
  6433. CASE WHEN Unqualifiednums <> 0 THEN '不合格' ELSE ' 合格'END AS ConformityMarking,
  6434. createtime
  6435. FROM(
  6436. SELECT
  6437. DISTINCT
  6438. pd.BARCODE,
  6439. PD.GOODSCODE,
  6440. PD.INSPECTNAME ,
  6441. pd.CREATEUSERNAME,
  6442. pd.CheckNames,
  6443. PD.createtime,
  6444. SUM(CASE WHEN PD.checkflag=1 THEN 1 ELSE 0 END ) qualifiednums,
  6445. SUM(CASE WHEN PD.checkflag<>1 THEN 1 ELSE 0 END ) Unqualifiednums
  6446. FROM(
  6447. SELECT f.barcode ,GD.GOODSCODE
  6448. ,CASE WHEN f.checkvalue = 1 THEN '装配正确'
  6449. WHEN f.checkvalue = 2 THEN '装配错误'
  6450. WHEN f.checkvalue = 3 THEN '漏装'
  6451. WHEN f.checkvalue = 4 THEN '多装'
  6452. ELSE '' END checkvalue
  6453. ,f.checkvalue AS checkflag
  6454. ,pd.idnrk
  6455. ,pd.MEINS
  6456. ,f.bomname IDNRKNAME
  6457. ,cu.usercode CREATEUSERNAME
  6458. ,cu.USERNAME CheckNames
  6459. ,f.createtime
  6460. ,fi.INSPECTNAME
  6461. FROM tp_pm_fqcbom f
  6462. LEFT JOIN tp_mst_packingbomdetail pd ON pd.packingbomdetailid = f.packingbomdetailid
  6463. LEFT JOIN tp_mst_user cu ON cu.userid = f.createuserid
  6464. INNER JOIN TP_PM_GROUTINGDAILYDETAIL GD ON GD.BARCODE=F.BARCODE
  6465. LEFT JOIN TP_PM_FQCITEMSDATA fid ON fid.barcode = f.barcode and fid.INSPECTTYPE = '617'
  6466. left join TP_PM_FQCITEMS fi on fi.itemsid = fid.itemsid
  6467. WHERE f.CREATETIME >= :CREATETIMEBEGIN
  6468. AND f.CREATETIME < :CREATETIMEEND
  6469. AND (:BARCODE IS NULL OR :BARCODE = '' OR INSTR(f.BARCODE, :BARCODE) > 0)
  6470. AND (:MATNR IS NULL OR :MATNR = '' OR INSTR(pd.idnrk, :MATNR) > 0)
  6471. AND (:IDNRKNAME IS NULL OR :IDNRKNAME = '' OR INSTR(f.bomname, :IDNRKNAME) > 0)
  6472. AND (:CHECKVALUE = 0 OR f.CHECKVALUE IS NULL OR f.checkvalue = :CHECKVALUE)
  6473. ) PD
  6474. GROUP BY pd.BARCODE, PD.GOODSCODE,pd.CREATEUSERNAME,pd.CheckNames, PD.INSPECTNAME, PD.createtime
  6475. ) ";
  6476. OracleParameter[] parameters = new OracleParameter[]
  6477. {
  6478. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6479. new OracleParameter(":MATNR", OracleDbType.Varchar2, cre.Properties["Matnr"], ParameterDirection.Input),
  6480. new OracleParameter(":IDNRKNAME", OracleDbType.Varchar2, cre.Properties["IdnrkName"], ParameterDirection.Input),
  6481. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6482. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6483. new OracleParameter(":CHECKVALUE", OracleDbType.Int32, cre.Properties["CHECKVALUE"], ParameterDirection.Input),
  6484. };
  6485. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6486. return sre;
  6487. }
  6488. catch (Exception ex)
  6489. {
  6490. throw ex;
  6491. }
  6492. finally
  6493. {
  6494. if (con.ConnState == ConnectionState.Open)
  6495. {
  6496. con.Close();
  6497. }
  6498. }
  6499. }
  6500. #endregion
  6501. #region BOM物料检验明细表
  6502. /// <summary>
  6503. /// BOM物料检验明细表
  6504. /// </summary>
  6505. /// <param name="sUserInfo"></param>
  6506. /// <returns></returns>
  6507. public static ServiceResultEntity GetBarCodeData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6508. {
  6509. ServiceResultEntity sre = new ServiceResultEntity();
  6510. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6511. try
  6512. {
  6513. string barcodes = "";
  6514. string goodscodes = "";
  6515. if (cre.Properties.ContainsKey("InpectName"))
  6516. {
  6517. string barcodeString = @"SELECT distinct p.BARCODE,p.BARCODE ||'[' || gdd.GOODSCODE || ']' GOODSCODES
  6518. FROM TP_PM_FQCITEMSDATA p
  6519. left join TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE = p.barcode
  6520. WHERE p.VALUEFLAG =1
  6521. AND p.CREATETIME>=:CREATETIMEBEGIN
  6522. AND p.CREATETIME<=:CREATETIMEEND
  6523. AND ( p.BARCODE = :BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6524. AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6525. ";
  6526. OracleParameter[] parameters1 = new OracleParameter[]
  6527. {
  6528. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6529. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6530. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6531. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6532. };
  6533. DataTable barcodeTable = con.GetSqlResultToDt(barcodeString, parameters1);
  6534. if (barcodeTable != null && barcodeTable.Rows.Count > 0)
  6535. {
  6536. for (int i = 0; i < barcodeTable.Rows.Count; i++)
  6537. {
  6538. if (i == 0)
  6539. {
  6540. barcodes = "'"+barcodeTable.Rows[i]["BARCODE"].ToString()+"'";
  6541. goodscodes = "'" + barcodeTable.Rows[i]["GOODSCODES"].ToString() + "'";
  6542. }
  6543. else if (i <= 100)
  6544. {
  6545. barcodes = barcodes + ",'" + barcodeTable.Rows[i]["BARCODE"].ToString()+"'";
  6546. goodscodes = goodscodes + ",'" + barcodeTable.Rows[i]["GOODSCODES"].ToString() + "'";
  6547. }
  6548. }
  6549. }
  6550. else
  6551. {
  6552. return sre;
  6553. }
  6554. string sqlString1 = "";
  6555. if (string.IsNullOrEmpty(cre.Properties["BarCode"].ToString()))
  6556. {
  6557. sqlString1 =
  6558. "SELECT * " +
  6559. " FROM (select " +
  6560. "tpf.XUHAO,p.ITEMSDETAILID, " +
  6561. "p.INSPECTITEM AS 检验项目, " +
  6562. "fd.technicalrequirement as 检验依据, " +
  6563. "p.BARCODE ||'[' || gdd.GOODSCODE || ']' BARCODE," +
  6564. " CASE WHEN tpf.inspectmark = 630 THEN CASE WHEN p.isqualified = 1 THEN '合格' ELSE '不合格' END ELSE to_char(p.inspectvalue) END AS inspectvalue" +
  6565. " from TP_PM_FQCITEMSDATA p" +
  6566. " LEFT JOIN TP_PM_FQCITEMSDETAIL tpf ON p.INSPECTITEM = tpf.INSPECTITEM AND p.ITEMSID = tpf.ITEMSID" +
  6567. " left join tp_pm_fqcitemsdetail fd on p.itemsdetailid = fd.itemsdetailid" +
  6568. " left join TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE = p.barcode" +
  6569. " WHERE p.VALUEFLAG =1 " +
  6570. " AND p.CREATETIME>=:CREATETIMEBEGIN" +
  6571. " AND p.CREATETIME<=:CREATETIMEEND" +
  6572. " AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')" +
  6573. " AND ( p.BARCODE IN (" + barcodes + ") ) ) PIVOT (listagg ('['||INSPECTVALUE||']', ',') WITHIN" +
  6574. " GROUP (ORDER BY INSPECTVALUE) FOR BARCODE IN (" + goodscodes + "))" +
  6575. "ORDER BY XUHAO, ITEMSDETAILID DESC ";
  6576. }
  6577. else
  6578. {
  6579. sqlString1 = @"
  6580. SELECT *
  6581. FROM (select
  6582. tpf.XUHAO,p.ITEMSDETAILID,
  6583. p.INSPECTITEM AS 检验项目,
  6584. fd.technicalrequirement as 检验依据,
  6585. p.BARCODE ||'[' || gdd.GOODSCODE || ']' BARCODE,
  6586. CASE
  6587. WHEN tpf.inspectmark = 630 THEN
  6588. CASE
  6589. WHEN p.isqualified = 1 THEN
  6590. '合格'
  6591. ELSE
  6592. '不合格'
  6593. END
  6594. ELSE
  6595. to_char(p.inspectvalue)
  6596. END AS inspectvalue
  6597. from TP_PM_FQCITEMSDATA p
  6598. LEFT JOIN TP_PM_FQCITEMSDETAIL tpf ON p.INSPECTITEM = tpf.INSPECTITEM AND p.ITEMSID = tpf.ITEMSID
  6599. left join tp_pm_fqcitemsdetail fd on p.itemsdetailid = fd.itemsdetailid
  6600. left join TP_PM_GROUTINGDAILYDETAIL gdd on gdd.BARCODE = p.barcode
  6601. WHERE p.VALUEFLAG =1
  6602. AND p.CREATETIME>=:CREATETIMEBEGIN
  6603. AND p.CREATETIME<=:CREATETIMEEND
  6604. AND (p.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6605. AND (p.BARCODE = :BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6606. ) PIVOT (listagg ('['||INSPECTVALUE||']', ',') WITHIN GROUP (ORDER BY INSPECTVALUE) FOR BARCODE IN (" + goodscodes + ")) ORDER BY XUHAO,ITEMSDETAILID DESC ";
  6607. }
  6608. OracleParameter[] parameters2 = new OracleParameter[]
  6609. {
  6610. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6611. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6612. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6613. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6614. };
  6615. DataSet dt = con.GetSqlResultToDs(sqlString1, parameters2);
  6616. dt.Tables[0].Columns.Remove("XUHAO");
  6617. dt.Tables[0].Columns.Remove("ITEMSDETAILID");
  6618. for (int i = 0; i < dt.Tables[0].Columns.Count; i++)
  6619. {
  6620. if (dt.Tables[0].Columns[i].ColumnName.Contains("'"))
  6621. {
  6622. dt.Tables[0].Columns[i].ColumnName = dt.Tables[0].Columns[i].ColumnName.Replace("'", "");
  6623. }
  6624. }
  6625. sre.Data = dt;
  6626. sre.Data.Tables[0].TableName = "Detail";
  6627. string sqlString = @" SELECT distinct fd.barcode,g.goodscode,f.inspectname ,u.username, to_char(fd.createtime, 'yyyy-mm-dd hh24:mi') createtime
  6628. FROM TP_PM_FQCITEMSDATA fd
  6629. left join TP_PM_FQCITEMS f on f.itemsid = fd.itemsid
  6630. left join tp_mst_goods g on fd.goodsid = g.goodsid
  6631. left join tp_mst_user u on fd.createuserid = u.userid
  6632. WHERE fd.VALUEFLAG =1
  6633. AND fd.CREATETIME>=:CREATETIMEBEGIN
  6634. AND fd.CREATETIME<=:CREATETIMEEND
  6635. AND (fd.barcode=:BARCODE OR :BARCODE IS NULL OR :BARCODE='')
  6636. AND (fd.ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6637. ";
  6638. OracleParameter[] parameters = new OracleParameter[]
  6639. {
  6640. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6641. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6642. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["InpectName"], ParameterDirection.Input),
  6643. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6644. };
  6645. sre.Data.Tables.Add(con.GetSqlResultToDt(sqlString, parameters));
  6646. sre.Data.Tables[1].TableName = "Data";
  6647. }
  6648. else
  6649. {
  6650. string sqlString = @" SELECT distinct fd.barcode,g.goodscode,f.inspectname ,u.username, to_char(fd.createtime, 'yyyy-mm-dd hh24:mi') createtime
  6651. FROM TP_PM_FQCITEMSDATA fd
  6652. left join TP_PM_FQCITEMS f on f.itemsid = fd.itemsid
  6653. left join tp_mst_goods g on fd.goodsid = g.goodsid
  6654. left join tp_mst_user u on fd.createuserid = u.userid
  6655. WHERE fd.VALUEFLAG =1
  6656. AND fd.CREATETIME>=:CREATETIMEBEGIN
  6657. AND fd.CREATETIME<=:CREATETIMEEND
  6658. AND (fd.barcode=:BARCODE OR :BARCODE IS NULL OR :BARCODE='') ";
  6659. if (cre.Properties.ContainsKey("InpectType"))
  6660. {
  6661. sqlString += " AND f.INSPECTTYPE = 615 ";
  6662. }
  6663. else
  6664. {
  6665. sqlString += " AND f.INSPECTTYPE <> 615 ";
  6666. }
  6667. sqlString += " order by to_char(fd.createtime, 'yyyy-mm-dd hh24:mi') ";
  6668. OracleParameter[] parameters = new OracleParameter[]
  6669. {
  6670. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6671. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6672. new OracleParameter(":BARCODE", OracleDbType.NVarchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6673. };
  6674. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6675. sre.Data.Tables[0].TableName = "Data";
  6676. }
  6677. return sre;
  6678. }
  6679. catch (Exception ex)
  6680. {
  6681. throw ex;
  6682. }
  6683. finally
  6684. {
  6685. if (con.ConnState == ConnectionState.Open)
  6686. {
  6687. con.Close();
  6688. }
  6689. }
  6690. }
  6691. /// <summary>
  6692. /// 查询导出明细
  6693. /// </summary>
  6694. /// <param name="sUserInfo"></param>
  6695. /// <returns></returns>
  6696. public static ServiceResultEntity GetDaochuData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6697. {
  6698. ServiceResultEntity sre = new ServiceResultEntity();
  6699. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6700. try
  6701. {
  6702. string sqlString = @" SELECT fd.barcode
  6703. ,g.goodscode
  6704. ,gt.goodstypename
  6705. ,g.groutingdate
  6706. ,fd.inspectitem
  6707. ,case when fdd.unitname is null then '-'
  6708. else to_char(fdd.unitname) end unitname
  6709. ,fdd.technicalrequirement
  6710. ,fd.inspectvalue
  6711. ,case when fd.isqualified = 1 then '合格'
  6712. else '不合格' end as isqualified
  6713. FROM tp_pm_fqcitemsdata fd
  6714. LEFT JOIN tp_pm_fqcitemsdetail fdd
  6715. ON fd.itemsdetailid = fdd.itemsdetailid
  6716. LEFT JOIN tp_pm_fqcitems f
  6717. ON f.itemsid = fd.itemsid
  6718. left join tp_pm_groutingdailydetail g on
  6719. g.barcode = fd.barcode
  6720. left join tp_mst_goods gg on
  6721. gg.goodsid = g.goodsid
  6722. left join tp_mst_goodstype gt on
  6723. gg.goodstypeid = gt.goodstypeid
  6724. WHERE fd.barcode = :BARCODE
  6725. AND f.inspectname = :INSPECTNAME
  6726. AND fd.valueflag = 1
  6727. ";
  6728. OracleParameter[] parameters = new OracleParameter[]
  6729. {
  6730. new OracleParameter(":BARCODE", OracleDbType.Varchar2, cre.Properties["BarCode"], ParameterDirection.Input),
  6731. new OracleParameter(":INSPECTNAME", OracleDbType.Varchar2, cre.Properties["InspectName"], ParameterDirection.Input),
  6732. };
  6733. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6734. return sre;
  6735. }
  6736. catch (Exception ex)
  6737. {
  6738. throw ex;
  6739. }
  6740. finally
  6741. {
  6742. if (con.ConnState == ConnectionState.Open)
  6743. {
  6744. con.Close();
  6745. }
  6746. }
  6747. }
  6748. #endregion
  6749. #region QC检验计划完成明细表
  6750. /// <summary>
  6751. /// BOM物料检验明细表
  6752. /// </summary>
  6753. /// <param name="sUserInfo"></param>
  6754. /// <returns></returns>
  6755. public static ServiceResultEntity GetInspectType(SUserInfo sUserInfo, ClientRequestEntity cre)
  6756. {
  6757. ServiceResultEntity sre = new ServiceResultEntity();
  6758. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6759. try
  6760. {
  6761. string sqlString = @"SELECT dd.dictionaryid, dd.dictionaryvalue, dd.displayno " +
  6762. " FROM TP_MST_DataDictionary dd\n" +
  6763. " WHERE dd.DictionaryType = 'TPC021'\n" +
  6764. " AND dd.valueflag = '1'\n" +
  6765. " AND dd.accountid = :ACCOUNTID\n" +
  6766. " ORDER BY dd.displayno";
  6767. OracleParameter[] parameters = new OracleParameter[]
  6768. {
  6769. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6770. };
  6771. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6772. return sre;
  6773. }
  6774. catch (Exception ex)
  6775. {
  6776. throw ex;
  6777. }
  6778. finally
  6779. {
  6780. if (con.ConnState == ConnectionState.Open)
  6781. {
  6782. con.Close();
  6783. }
  6784. }
  6785. }
  6786. /// <summary>
  6787. /// BOM物料检验计划汇总
  6788. /// </summary>
  6789. /// <param name="sUserInfo"></param>
  6790. /// <returns></returns>
  6791. public static ServiceResultEntity GetDetail(SUserInfo sUserInfo, ClientRequestEntity cre)
  6792. {
  6793. ServiceResultEntity sre = new ServiceResultEntity();
  6794. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6795. try
  6796. {
  6797. string sqlString = @"
  6798. SELECT
  6799. DISTINCT
  6800. TP_PM_FQCITEMSPLAN.PLANID ,
  6801. TP_PM_FQCITEMSPLAN.GOODSCODE ,
  6802. TP_PM_FQCITEMSPLAN.MATERIALCODE ,
  6803. TP_MST_DATADICTIONARY.DICTIONARYVALUE ,
  6804. TP_PM_FQCITEMSPLAN.PLANDATE ,
  6805. OUTQUANTITY ,
  6806. TP_PM_FQCITEMSPLAN.PLANINSPECTIONQUANTITY ,
  6807. TP_PM_FQCITEMSPLAN.INSPECTIONQUANTITY ,
  6808. DECODE( NVL( INSPECTIONQUANTITY, 0 ), 0, '0%', TO_CHAR( ( (NVL( INSPECTIONQUANTITY, 0 ))/ DECODE( NVL( PLANINSPECTIONQUANTITY, 1 ), 0, 1, NVL( PLANINSPECTIONQUANTITY, 1 ) ) ) * 100, 'fm99990.00' ) || '%' ) AS WANCHENG
  6809. FROM TP_PM_FQCITEMSPLAN
  6810. LEFT JOIN TP_MST_DATADICTIONARY ON TP_MST_DATADICTIONARY.DICTIONARYID=TP_PM_FQCITEMSPLAN.INSPECTTYPE
  6811. LEFT JOIN TP_MST_GOODS ON TP_MST_GOODS.GOODSID=TP_PM_FQCITEMSPLAN.GOODSID
  6812. LEFT JOIN tp_mst_goodsType gt ON gt.goodstypeid = TP_MST_GOODS.goodstypeid
  6813. AND TP_MST_DATADICTIONARY.DICTIONARYTYPE='TPC021'
  6814. WHERE TP_PM_FQCITEMSPLAN.VALUEFLAG=1 AND TP_PM_FQCITEMSPLAN.ACCOUNTID=1
  6815. AND TP_PM_FQCITEMSPLAN.PLANDATE = :PLANDATE
  6816. AND (:INSPECTTYPE = 0 OR TP_PM_FQCITEMSPLAN.INSPECTTYPE IS NULL OR TP_PM_FQCITEMSPLAN.INSPECTTYPE = :INSPECTTYPE)
  6817. AND (TP_PM_FQCITEMSPLAN.GOODSCODE = :GOODSCODE OR :GOODSCODE IS NULL OR :GOODSCODE='')
  6818. AND (:GOODSTYPE IS NULL OR instr(gt.goodstypecode, :GOODSTYPE) = 1)";
  6819. OracleParameter[] parameters = new OracleParameter[]
  6820. {
  6821. new OracleParameter(":GOODSTYPE", OracleDbType.Varchar2, cre.Properties["GoodsType"], ParameterDirection.Input),
  6822. new OracleParameter(":GOODSCODE", OracleDbType.Varchar2, cre.Properties["GoodsCode"], ParameterDirection.Input),
  6823. new OracleParameter(":PLANDATE", OracleDbType.Date, cre.Properties["CreateTime"], ParameterDirection.Input),
  6824. new OracleParameter(":INSPECTTYPE", OracleDbType.Int32, cre.Properties["InpectType"], ParameterDirection.Input),
  6825. };
  6826. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6827. return sre;
  6828. }
  6829. catch (Exception ex)
  6830. {
  6831. throw ex;
  6832. }
  6833. finally
  6834. {
  6835. if (con.ConnState == ConnectionState.Open)
  6836. {
  6837. con.Close();
  6838. }
  6839. }
  6840. }
  6841. /// <summary>
  6842. /// BOM物料检验计划明细
  6843. /// </summary>
  6844. /// <param name="sUserInfo"></param>
  6845. /// <returns></returns>
  6846. public static ServiceResultEntity GetDetailData(SUserInfo sUserInfo, ClientRequestEntity cre)
  6847. {
  6848. ServiceResultEntity sre = new ServiceResultEntity();
  6849. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6850. try
  6851. {
  6852. string sqlString = @"
  6853. SELECT
  6854. DISTINCT
  6855. TPF.BARCODE,
  6856. TMU.USERCODE,
  6857. TMU.USERNAME
  6858. FROM
  6859. TP_PM_FQCITEMSDATA TPF
  6860. LEFT JOIN TP_MST_USER TMU ON TPF.CREATEUSERID = TMU.USERID
  6861. WHERE
  6862. TPF.PLANID = :PLANID ";
  6863. OracleParameter[] parameters = new OracleParameter[]
  6864. {
  6865. new OracleParameter(":PLANID", OracleDbType.Int32, cre.Properties["PLANID"], ParameterDirection.Input),
  6866. };
  6867. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6868. return sre;
  6869. }
  6870. catch (Exception ex)
  6871. {
  6872. throw ex;
  6873. }
  6874. finally
  6875. {
  6876. if (con.ConnState == ConnectionState.Open)
  6877. {
  6878. con.Close();
  6879. }
  6880. }
  6881. }
  6882. #endregion
  6883. #region QC检验分析汇总表
  6884. /// <summary>
  6885. /// BOM物料检验明细表
  6886. /// </summary>
  6887. /// <param name="sUserInfo"></param>
  6888. /// <returns></returns>
  6889. public static ServiceResultEntity GetInspectName(SUserInfo sUserInfo, ClientRequestEntity cre)
  6890. {
  6891. ServiceResultEntity sre = new ServiceResultEntity();
  6892. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6893. try
  6894. {
  6895. //string sqlString = @"SELECT ITEMSID,INSPECTTYPE,INSPECTNAME FROM TP_PM_FQCITEMS WHERE VALUEFLAG=1 and ACCOUNTID=:AccountID";
  6896. string sqlString = "SELECT T.ITEMSID,T.INSPECTTYPE,T.INSPECTNAME ,T.INSPECTVERSION ,T.VALUEFLAG " +
  6897. "FROM TP_PM_FQCITEMS T " +
  6898. "WHERE T.ACCOUNTID = :ACCOUNTID " +
  6899. "AND EXISTS( SELECT 1 " +
  6900. "FROM TP_PM_FQCITEMSDATA F " +
  6901. "WHERE F.ITEMSID = T.ITEMSID " +
  6902. "AND F.DATAID IS NOT NULL ) " +
  6903. "ORDER BY " +
  6904. "T.INSPECTNAME, " +
  6905. "T.INSPECTVERSION";
  6906. OracleParameter[] parameters = new OracleParameter[]
  6907. {
  6908. new OracleParameter(":ACCOUNTID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input),
  6909. };
  6910. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6911. return sre;
  6912. }
  6913. catch (Exception ex)
  6914. {
  6915. throw ex;
  6916. }
  6917. finally
  6918. {
  6919. if (con.ConnState == ConnectionState.Open)
  6920. {
  6921. con.Close();
  6922. }
  6923. }
  6924. }
  6925. /// <summary>
  6926. /// 检验计划汇总
  6927. /// </summary>
  6928. /// <param name="sUserInfo"></param>
  6929. /// <returns></returns>
  6930. public static ServiceResultEntity Get080116Detail(SUserInfo sUserInfo, ClientRequestEntity cre)
  6931. {
  6932. ServiceResultEntity sre = new ServiceResultEntity();
  6933. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6934. try
  6935. {
  6936. string sqlString = @"
  6937. WITH 基础 AS(
  6938. SELECT
  6939. INSPECTITEM ,
  6940. COUNT(DISTINCT BARCODE) COUNTS,
  6941. SUM(CASE WHEN ISQUALIFIED =0 THEN 1 else 0 END) ISQUALIFIED
  6942. FROM
  6943. TP_PM_FQCITEMSDATA
  6944. WHERE VALUEFLAG=1
  6945. AND (ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6946. AND CREATETIME>=:CREATETIMEBEGIN
  6947. AND CREATETIME<=:CREATETIMEEND
  6948. GROUP BY INSPECTITEM
  6949. ),
  6950. 总不合格数 AS (
  6951. SELECT
  6952. SUM(CASE WHEN ISQUALIFIED =0 THEN 1 else 0 END) 总不合格数
  6953. FROM TP_PM_FQCITEMSDATA
  6954. WHERE VALUEFLAG=1
  6955. AND CREATETIME>=:CREATETIMEBEGIN
  6956. AND CREATETIME<=:CREATETIMEEND
  6957. AND (ITEMSID = :ITEMSID OR :ITEMSID IS NULL OR :ITEMSID='')
  6958. )
  6959. SELECT
  6960. INSPECTITEM,COUNTS,ISQUALIFIED,
  6961. DECODE( NVL( ISQUALIFIED, 0 ), 0, '0%', TO_CHAR( ( NVL( ISQUALIFIED, 0 ) / DECODE( NVL( COUNTS, 1 ), 0, 1, NVL( COUNTS, 1 ) ) ) * 100, 'fm99990.0' ) || '%' ) AS BUHEGELV,
  6962. DECODE( NVL( ISQUALIFIED, 0 ), 0, '0%', TO_CHAR( ( NVL( ISQUALIFIED, 0 ) / DECODE( NVL( 总不合格数, 1 ), 0, 1, NVL( 总不合格数, 1 ) ) ) * 100, 'fm99990.0' ) || '%' ) AS ZHANBI
  6963. FROM 基础
  6964. LEFT JOIN 总不合格数 ON 1=1";
  6965. OracleParameter[] parameters = new OracleParameter[]
  6966. {
  6967. new OracleParameter(":ITEMSID", OracleDbType.Int32, cre.Properties["ITEMSID"], ParameterDirection.Input),
  6968. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  6969. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  6970. };
  6971. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  6972. return sre;
  6973. }
  6974. catch (Exception ex)
  6975. {
  6976. throw ex;
  6977. }
  6978. finally
  6979. {
  6980. if (con.ConnState == ConnectionState.Open)
  6981. {
  6982. con.Close();
  6983. }
  6984. }
  6985. }
  6986. /// <summary>
  6987. /// 检验计划明细
  6988. /// </summary>
  6989. /// <param name="sUserInfo"></param>
  6990. /// <returns></returns>
  6991. public static ServiceResultEntity GetDetailInspection(SUserInfo sUserInfo, ClientRequestEntity cre)
  6992. {
  6993. ServiceResultEntity sre = new ServiceResultEntity();
  6994. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  6995. try
  6996. {
  6997. string sqlString = @"
  6998. SELECT
  6999. TPF.BARCODE,
  7000. TPF.INSPECTITEM INSPECTITEMS,
  7001. TPF.INSPECTVALUE,
  7002. TMU.USERCODE,
  7003. TMU.USERNAME,
  7004. TPF.CREATETIME,
  7005. (SELECT GOODSCODE FROM TP_PM_GROUTINGDAILYDETAIL WHERE VALUEFLAG=1 AND BARCODE=TPF.BARCODE) GOODSCODE
  7006. FROM
  7007. TP_PM_FQCITEMSDATA TPF
  7008. LEFT JOIN TP_MST_USER TMU ON TPF.CREATEUSERID = TMU.USERID
  7009. WHERE
  7010. TPF.VALUEFLAG = 1
  7011. AND TMU.VALUEFLAG = 1
  7012. AND BARCODE IN (
  7013. SELECT
  7014. BARCODE
  7015. FROM
  7016. TP_PM_FQCITEMSDATA
  7017. WHERE
  7018. VALUEFLAG = 1
  7019. AND ( ITEMSID = NULL OR NULL IS NULL OR NULL = '' )
  7020. AND CREATETIME >= :CREATETIMEBEGIN
  7021. AND CREATETIME <= :CREATETIMEEND
  7022. AND INSPECTITEM = :INSPECTITEM
  7023. AND ISQUALIFIED = 0
  7024. ) ORDER BY BARCODE DESC";
  7025. OracleParameter[] parameters = new OracleParameter[]
  7026. {
  7027. new OracleParameter(":INSPECTITEM", OracleDbType.Varchar2, cre.Properties["INSPECTITEM"], ParameterDirection.Input),
  7028. new OracleParameter(":CREATETIMEBEGIN", OracleDbType.Date, cre.Properties["CreateTimeBegin"], ParameterDirection.Input),
  7029. new OracleParameter(":CREATETIMEEND", OracleDbType.Date, cre.Properties["CreateTimeEnd"], ParameterDirection.Input),
  7030. };
  7031. sre.Data = con.GetSqlResultToDs(sqlString, parameters);
  7032. return sre;
  7033. }
  7034. catch (Exception ex)
  7035. {
  7036. throw ex;
  7037. }
  7038. finally
  7039. {
  7040. if (con.ConnState == ConnectionState.Open)
  7041. {
  7042. con.Close();
  7043. }
  7044. }
  7045. }
  7046. #endregion
  7047. }
  7048. }