PMModuleLogic.cs 217 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382
  1. /*******************************************************************************
  2. * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
  3. * 类的信息:
  4. * 1.程序名称:PMModuleLogic.cs
  5. * 2.功能描述:生产管理
  6. * 编辑履历:
  7. * 作者 日期 版本 修改内容
  8. * 陈冰 2014/09/3 1.00 新建
  9. *******************************************************************************/
  10. using System;
  11. using System.Collections.Generic;
  12. using System.Data;
  13. using System.Data.SqlTypes;
  14. using System.Drawing;
  15. using System.IO;
  16. using System.Text;
  17. using Dongke.IBOSS.PRD.Basics.BaseResources;
  18. using Dongke.IBOSS.PRD.Basics.DataAccess;
  19. using Dongke.IBOSS.PRD.Basics.Library;
  20. using Dongke.IBOSS.PRD.Service.DataModels;
  21. using Dongke.IBOSS.PRD.WCF.DataModels;
  22. using Dongke.IBOSS.PRD.WCF.DataModels.PMModule;
  23. using Oracle.ManagedDataAccess.Client;
  24. namespace Dongke.IBOSS.PRD.Service.PMModuleLogic
  25. {
  26. /// <summary>
  27. /// 生产管理
  28. /// </summary>
  29. public partial class PMModuleLogic
  30. {
  31. /// <summary>
  32. /// 构建 计数/检验时返回的信息
  33. /// </summary>
  34. /// <returns></returns>
  35. public static DataTable CreateBarCodeResultTable()
  36. {
  37. // 注意:更新表字段时,一定把后续引用的字段全部更新一遍
  38. DataTable barCodeResultTable = new DataTable("BarCodeTable");
  39. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_errMsg.ToString());
  40. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsID.ToString());
  41. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsCode.ToString());
  42. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_goodsName.ToString());
  43. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserCode.ToString());
  44. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserName.ToString());
  45. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingUserID.ToString());
  46. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingNum.ToString());
  47. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_mouldCode.ToString());
  48. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_ispublicbody.ToString());
  49. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_ispublicbodyTrach.ToString());
  50. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_groutingdate.ToString());
  51. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_specialRepairFlag.ToString());
  52. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_isReFire.ToString());
  53. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_missFlag.ToString());
  54. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoID.ToString());
  55. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoCode.ToString());
  56. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_logoName.ToString());
  57. //xuwei add 2020-03-04 添加釉料属性
  58. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_glazeName.ToString());
  59. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_deliverLimitCycle.ToString());
  60. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_barcode.ToString());
  61. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_WaterLabelCode.ToString());
  62. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_CodeCheckFlag.ToString());
  63. //漏气标识 内漏标识 xuwei add 2020-06-11
  64. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag1.ToString());
  65. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag2.ToString());
  66. //增加重烧名称等相关列 fubin add 2020-06-30
  67. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag3.ToString());
  68. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_specialRepairFlagName.ToString());
  69. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_isReFireName.ToString());
  70. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag1Name.ToString());
  71. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag2Name.ToString());
  72. barCodeResultTable.Columns.Add(Constant.BarCodeResultTableColumns.out_LeakFlag3Name.ToString());
  73. // 包装装板用
  74. barCodeResultTable.Columns.Add("GOODSMODELforCheck");
  75. // 最大装板数量
  76. barCodeResultTable.Columns.Add("PlateLimitNum", typeof(int));
  77. return barCodeResultTable;
  78. }
  79. /// <summary>
  80. /// 构建 校验窑车号时返回的信息
  81. /// </summary>
  82. /// <returns></returns>
  83. public static DataTable CreateKilnCarResultTable()
  84. {
  85. // 注意:更新表字段时,一定把后续引用的字段全部更新一遍
  86. DataTable kilnCarResultTable = new DataTable("KilnCarTable");
  87. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_errMsg.ToString());
  88. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCarID.ToString());
  89. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCarName.ToString());
  90. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnID.ToString());
  91. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnCode.ToString());
  92. kilnCarResultTable.Columns.Add(Constant.KilnCarResultTableColumns.out_kilnName.ToString());
  93. return kilnCarResultTable;
  94. }
  95. /// <summary>
  96. /// 校验窑车是否可用
  97. /// </summary>
  98. /// <param name="pProcedureId">工序ID</param>
  99. /// <param name="kilnCarCode">窑车号</param>
  100. /// <param name="pModelType">类别</param>
  101. /// <param name="sUserInfo">用户基本信息</param>
  102. /// <returns>CheckKilnCarResultEntity实体类</returns>
  103. /// <remarks>
  104. /// 陈冰 2014.09.26 新建
  105. /// </remarks>
  106. public static CheckKilnCarResultEntity CheckKilnCar(int pProcedureId, string kilnCarCode, int pModelType, SUserInfo sUserInfo)
  107. {
  108. CheckKilnCarResultEntity kilnCarResultEntity = new CheckKilnCarResultEntity();
  109. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  110. try
  111. {
  112. oracleConn.Open();
  113. OracleParameter[] paras = new OracleParameter[]{
  114. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  115. new OracleParameter("in_kilnCarCode",OracleDbType.NVarchar2, kilnCarCode,ParameterDirection.Input),
  116. new OracleParameter("in_modelType",OracleDbType.Int32, pModelType,ParameterDirection.Input),
  117. new OracleParameter("out_errMsg",OracleDbType.NVarchar2,2000,null,ParameterDirection.Output),
  118. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  119. new OracleParameter("in_procedureid",OracleDbType.Int32, pProcedureId,ParameterDirection.Input),
  120. // 验证能否卸窑
  121. new OracleParameter("in_UserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  122. };
  123. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_CheckKilnCar", paras);
  124. kilnCarResultEntity.ErrMsg = paras[3].Value.ToString() == "null" ? string.Empty : paras[3].Value.ToString().Replace("\\n\\r", "\n\r");
  125. if (returnDataSet == null || returnDataSet.Tables.Count <= 0)
  126. {
  127. kilnCarResultEntity.KilnCarInfos = new List<KilnCarInfo>();
  128. }
  129. else
  130. {
  131. kilnCarResultEntity.KilnCarInfos = DataConvert.TableConvertToObject<KilnCarInfo>(returnDataSet.Tables[0]);
  132. }
  133. return kilnCarResultEntity;
  134. }
  135. catch (Exception ex)
  136. {
  137. throw ex;
  138. }
  139. finally
  140. {
  141. if (oracleConn.ConnState == ConnectionState.Open)
  142. {
  143. oracleConn.Close();
  144. }
  145. }
  146. }
  147. /// <summary>
  148. /// 由工序获取产缺陷列表
  149. /// </summary>
  150. /// <param name="procedureID">工序ID</param>
  151. /// <returns>DataSet</returns>
  152. public static DataSet GetDefectByProcedure(int procedureID)
  153. {
  154. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  155. try
  156. {
  157. con.Open();
  158. string sqlString = @"select TP_MST_Defect.DefectID as DefectFlagID,TP_MST_Defect.DefectCode,
  159. TP_MST_Defect.DefectName as ViewDefectFlagName,
  160. concat(TP_MST_Defect.DefectCode||'->',TP_MST_Defect.DefectName) as DefectFlagName
  161. from TP_PC_ProcedureDefect
  162. left join TP_MST_Defect on TP_PC_ProcedureDefect.DefectID=TP_MST_Defect.DefectID
  163. where TP_MST_Defect.valueflag = '1' and TP_PC_ProcedureDefect.procedureID=" + procedureID;
  164. DataSet ds = con.GetSqlResultToDs(sqlString);
  165. return ds;
  166. }
  167. catch (Exception ex)
  168. {
  169. throw ex;
  170. }
  171. finally
  172. {
  173. if (con.ConnState == ConnectionState.Open)
  174. {
  175. con.Close();
  176. }
  177. }
  178. }
  179. /// <summary>
  180. /// 由当前检验工序ID和缺陷Code获取缺陷数据
  181. /// </summary>
  182. /// <param name="procedureID">当前检验工序ID</param>
  183. /// <param name="defectCode">缺陷Code</param>
  184. /// <returns>object</returns>
  185. /// <remarks>
  186. /// 陈冰 2014.10.04 新建
  187. /// </remarks>
  188. public static object GetDefectByProcedureIDAndDefectCode(int procedureID, string defectCode)
  189. {
  190. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  191. try
  192. {
  193. con.Open();
  194. string sqlString = @"select TP_MST_Defect.DefectID,
  195. TP_MST_Defect.DefectName,
  196. TP_PC_ProcedureDefect.procedureID
  197. from TP_MST_Defect
  198. left join TP_PC_ProcedureDefect on TP_MST_Defect.DefectID =
  199. TP_PC_ProcedureDefect.DefectID
  200. and TP_PC_ProcedureDefect.procedureID = :procedureID
  201. where TP_MST_Defect.DefectCode = :defectCode and TP_MST_Defect.Valueflag='1'";
  202. OracleParameter[] paras = new OracleParameter[] {
  203. new OracleParameter(":procedureID",procedureID),
  204. new OracleParameter(":defectCode",defectCode),
  205. };
  206. DataSet resultds = con.GetSqlResultToDs(sqlString, paras);
  207. if (resultds != null && resultds.Tables.Count > Constant.INT_IS_ZERO)
  208. {
  209. string errMsg = string.Empty;
  210. int defectID = 0;
  211. string defectName = string.Empty;
  212. if (resultds.Tables[0].Rows.Count == Constant.INT_IS_ZERO)
  213. {
  214. errMsg = "缺陷在系统中不存在";
  215. }
  216. else
  217. {
  218. if (string.IsNullOrEmpty(resultds.Tables[0].Rows[0]["ProcedureID"].ToString()))
  219. {
  220. errMsg = "当前工序没有配置该缺陷";
  221. }
  222. else
  223. {
  224. defectID = int.Parse(resultds.Tables[0].Rows[0]["DefectID"].ToString());
  225. defectName = resultds.Tables[0].Rows[0]["DefectName"].ToString();
  226. }
  227. }
  228. return new { ErrMsg = errMsg, DefectID = defectID, DefectName = defectName };
  229. }
  230. else
  231. {
  232. return null;
  233. }
  234. }
  235. catch (Exception ex)
  236. {
  237. throw ex;
  238. }
  239. finally
  240. {
  241. if (con.ConnState == ConnectionState.Open)
  242. {
  243. con.Close();
  244. }
  245. }
  246. }
  247. /// <summary>
  248. /// 缺陷号下拉框
  249. /// </summary>
  250. public static object GetDefectDefectCode()
  251. {
  252. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  253. try
  254. {
  255. con.Open();
  256. string sqlString = @"SELECT
  257. DEFECTID,
  258. DEFECTCODE,
  259. DEFECTNAME
  260. FROM
  261. TP_MST_DEFECT
  262. WHERE
  263. DEFECTCODE IN (
  264. '01',
  265. '02',
  266. '03',
  267. '04',
  268. '05',
  269. '06',
  270. '07',
  271. '08',
  272. '09',
  273. '10',
  274. '11',
  275. '12',
  276. '13',
  277. '14',
  278. '15',
  279. '16',
  280. '17',
  281. '18',
  282. '19',
  283. '20',
  284. '21',
  285. '22',
  286. '23',
  287. '24',
  288. '25',
  289. '26',
  290. '27',
  291. '28',
  292. '29',
  293. '30',
  294. '31',
  295. '32',
  296. '33'
  297. )
  298. AND VALUEFLAG = 1
  299. ORDER BY
  300. DEFECTCODE";
  301. OracleParameter[] paras = new OracleParameter[] { };
  302. DataSet ds = con.GetSqlResultToDs(sqlString);
  303. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  304. {
  305. return ds;
  306. }
  307. else
  308. {
  309. return null;
  310. }
  311. }
  312. catch (Exception ex)
  313. {
  314. throw ex;
  315. }
  316. finally
  317. {
  318. if (con.ConnState == ConnectionState.Open)
  319. {
  320. con.Close();
  321. }
  322. }
  323. }
  324. /// <summary>
  325. /// 根据产品ID查出缺陷位置
  326. /// </summary>
  327. /// <param name="goodsID">产品ID</param>
  328. /// <returns>DataSet</returns>
  329. public static DataSet GetDefectLocaionByGoodsID(int goodsID)
  330. {
  331. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  332. try
  333. {
  334. con.Open();
  335. string sqlString = @"select TP_MST_DEFECTPOSITION.DEFECTPOSITIONID,TP_MST_DEFECTPOSITION.DEFECTPOSITIONCODE,TP_MST_DEFECTPOSITION.DEFECTPOSITIONNAME
  336. ,concat(TP_MST_DEFECTPOSITION.DEFECTPOSITIONCODE||'->',TP_MST_DEFECTPOSITION.DEFECTPOSITIONNAME) as DEFECTPOSITIONCODEANDNAME from tp_mst_goodsdefectposition left join TP_MST_DEFECTPOSITION
  337. on tp_mst_goodsdefectposition.defectpositionid=TP_MST_DEFECTPOSITION.defectpositionid
  338. where tp_mst_goodsdefectposition.goodsid=" + goodsID;
  339. DataSet ds = con.GetSqlResultToDs(sqlString);
  340. return ds;
  341. }
  342. catch (Exception ex)
  343. {
  344. throw ex;
  345. }
  346. finally
  347. {
  348. if (con.ConnState == ConnectionState.Open)
  349. {
  350. con.Close();
  351. }
  352. }
  353. }
  354. /// <summary>
  355. /// 根据缺陷位置
  356. /// </summary>
  357. /// <param name="sUserInfo">用户基本信息</param>
  358. /// <returns>DataSet</returns>
  359. public static DataSet GetDefectLocaion(SUserInfo sUserInfo)
  360. {
  361. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  362. try
  363. {
  364. con.Open();
  365. string sqlString = @"select DEFECTPOSITIONID,
  366. DEFECTPOSITIONCODE,
  367. DEFECTPOSITIONNAME,
  368. concat(DEFECTPOSITIONCODE||'->',DEFECTPOSITIONNAME) as DEFECTPOSITIONCODEANDNAME
  369. from TP_MST_DEFECTPOSITION
  370. where AccountID=:accountID and ValueFlag=1";
  371. OracleParameter[] paras = new OracleParameter[]{
  372. new OracleParameter(":accountID",sUserInfo.AccountID),
  373. };
  374. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  375. return ds;
  376. }
  377. catch (Exception ex)
  378. {
  379. throw ex;
  380. }
  381. finally
  382. {
  383. if (con.ConnState == ConnectionState.Open)
  384. {
  385. con.Close();
  386. }
  387. }
  388. }
  389. /// <summary>
  390. /// 根据产品ID查出缺陷位置
  391. /// </summary>
  392. /// <param name="goodsID">产品ID</param>
  393. /// <param name="positionCode">位置编码</param>
  394. /// <returns>object</returns>
  395. public static object GetDefectPositionByGoodsIDAndPositionCode(int goodsID, string positionCode)
  396. {
  397. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  398. try
  399. {
  400. con.Open();
  401. string sqlString = @"select tp_mst_defectposition.defectpositionid,
  402. tp_mst_defectposition.defectpositionname,
  403. tp_mst_goodsdefectposition.goodsid
  404. from tp_mst_defectposition
  405. left join tp_mst_goodsdefectposition on tp_mst_goodsdefectposition.defectpositionid =
  406. tp_mst_defectposition.defectpositionid
  407. and tp_mst_goodsdefectposition.goodsid =:goodsid
  408. where tp_mst_defectposition.defectpositioncode = :defectpositioncode and tp_mst_defectposition.Valueflag='1'";
  409. OracleParameter[] paras = new OracleParameter[] {
  410. new OracleParameter(":goodsid",goodsID),
  411. new OracleParameter(":defectpositioncode",positionCode),
  412. };
  413. DataSet resultds = con.GetSqlResultToDs(sqlString, paras);
  414. if (resultds != null && resultds.Tables.Count > Constant.INT_IS_ZERO)
  415. {
  416. string errMsg = string.Empty;
  417. int defectPositionID = 0;
  418. string defectpositionname = string.Empty;
  419. if (resultds.Tables[0].Rows.Count == Constant.INT_IS_ZERO)
  420. {
  421. errMsg = "缺陷位置在系统中不存在";
  422. }
  423. else
  424. {
  425. if (string.IsNullOrEmpty(resultds.Tables[0].Rows[0]["goodsid"].ToString()))
  426. {
  427. errMsg = "当前产品没有配置该缺陷位置";
  428. }
  429. else
  430. {
  431. defectPositionID = int.Parse(resultds.Tables[0].Rows[0]["defectPositionID"].ToString());
  432. defectpositionname = resultds.Tables[0].Rows[0]["defectpositionname"].ToString();
  433. }
  434. }
  435. return new { ErrMsg = errMsg, DefectPositionID = defectPositionID, DefectPositionName = defectpositionname };
  436. }
  437. else
  438. {
  439. return null;
  440. }
  441. }
  442. catch (Exception ex)
  443. {
  444. throw ex;
  445. }
  446. finally
  447. {
  448. if (con.ConnState == ConnectionState.Open)
  449. {
  450. con.Close();
  451. }
  452. }
  453. }
  454. /// <summary>
  455. /// 通过条码查出责任工序
  456. /// </summary>
  457. /// <param name="barcode">产品条码</param>
  458. /// <param name="defectid">缺陷ID</param>
  459. /// <returns>DataSet</returns>
  460. public static DataSet GetDutyProcedureByBarCode(string barcode, int defectid, int accountid, int procedureid = 0)
  461. {
  462. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  463. try
  464. {
  465. con.Open();
  466. DataSet dsReturn = new DataSet();
  467. // string sqlString = @"select TP_PM_ProductionDataIn.ProductionDataID, DutyProcedureID,DutyProcedureCode,DutyProcedureName,NodeType,ModelType from
  468. // (
  469. // select TP_PM_ProductionDataIn.ProductionDataID,TP_PM_ProductionDataIn.ProcedureID as DutyProcedureID,
  470. // TP_PM_ProductionDataIn.ProcedureCode as DutyProcedureCode,
  471. // TP_PM_ProductionDataIn.ProcedureName as DutyProcedureName,
  472. // TP_PM_ProductionDataIn.NodeType,
  473. // TP_PM_ProductionDataIn.ModelType
  474. // from TP_PM_ProductionDataIn
  475. // where valueflag = '1' and TP_PM_ProductionDataIn.Barcode=:Barcode
  476. // order by TP_PM_ProductionDataIn.ProductionDataID
  477. // ) TP_PM_ProductionDataIn
  478. // where exists
  479. // (
  480. // select
  481. // TP_PC_DefectProcedureJobs.DefectID,
  482. // TP_PC_DefectProcedureJobs.ProductionLineID,
  483. // TP_PC_DefectProcedureJobs.ProcedureID,
  484. // TP_PC_DefectProcedureJobs.NodeNo,
  485. // TP_PC_DefectProcedureJobs.JobsID
  486. // from TP_PC_DefectProcedureJobs
  487. // where TP_PC_DefectProcedureJobs.DefectID=:DefectID
  488. // and TP_PM_ProductionDataIn.DutyProcedureID=TP_PC_DefectProcedureJobs.ProcedureID
  489. // )";
  490. //string sqlString =
  491. //"SELECT pdin.ProductionDataID\n" +
  492. //" ,pdin.ProcedureID AS DutyProcedureID\n" +
  493. //" ,pdin.ProcedureCode AS DutyProcedureCode\n" +
  494. //" ,pdin.ProcedureName AS DutyProcedureName\n" +
  495. //" ,pdin.NodeType\n" +
  496. //" ,pdin.ModelType\n" +
  497. //" ,pdin.classessettingid\n" +
  498. //" ,pdin.userid\n" +
  499. //" ,pdin.usercode\n" +
  500. //" ,pdin.username\n" +
  501. //" FROM TP_PM_ProductionDataIn pdin\n" +
  502. //" WHERE pdin.valueflag = '1'\n" +
  503. //" AND pdin.accountid = :accountid\n" +
  504. //" AND pdin.Barcode = :Barcode\n" +
  505. //" AND EXISTS (SELECT 1\n" +
  506. //" FROM TP_PC_DefectProcedureJobs dpJobs\n" +
  507. //" WHERE dpJobs.DefectID = :DefectID\n" +
  508. //" AND pdin.ProcedureID = dpJobs.ProcedureID)\n" +
  509. //" ORDER BY pdin.ProductionDataID";
  510. // 去掉重复工序(取最后一个)
  511. string sqlString = "select pdin.ProductionDataID\n" +
  512. " ,pdin.ProcedureID as DutyProcedureID\n" +
  513. " ,pdin.ProcedureCode as DutyProcedureCode\n" +
  514. " ,pdin.ProcedureName as DutyProcedureName\n" +
  515. " ,pdin.NodeType\n" +
  516. " ,pdin.ModelType\n" +
  517. " ,pdin.classessettingid\n" +
  518. " ,pdin.userid\n" +
  519. " ,pdin.usercode\n" +
  520. " ,pdin.username\n" +
  521. " from TP_PM_ProductionDataIn pdin\n" +
  522. " where pdin.productiondataid in\n" +
  523. " (select max(pdi.productiondataid) pdid\n" +
  524. " from TP_PM_ProductionDataIn pdi\n" +
  525. " where pdi.valueflag = '1'\n" +
  526. " and pdi.accountid = :accountid\n" +
  527. " and pdi.Barcode = :Barcode\n";
  528. // 如果是3#半检一检或者3#半检二检,则只能选择交坯工序
  529. //2022年8月8日17: 16:51 feiyue 清除特殊工序限制
  530. //if (procedureid == 89 || procedureid == 95)
  531. //{
  532. // sqlString += " and pdi.modeltype = 5 ";
  533. //}
  534. sqlString +=
  535. " and exists\n" +
  536. " (select 1\n" +
  537. " from TP_PC_DefectProcedureJobs dpJobs\n" +
  538. " where dpJobs.DefectID = :DefectID\n" +
  539. " and pdi.ProcedureID = dpJobs.ProcedureID)\n" +
  540. " group by pdi.ProcedureID)\n" +
  541. " order by pdin.ProductionDataID";
  542. OracleParameter[] paras = new OracleParameter[]{
  543. new OracleParameter(":accountid",OracleDbType.Int32, accountid,ParameterDirection.Input),
  544. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  545. new OracleParameter(":DefectID",OracleDbType.Int32, defectid,ParameterDirection.Input),
  546. };
  547. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  548. ds.Tables[0].TableName = "TProcedure";
  549. //sqlString = "Select DictionaryID,DictionaryValue"
  550. // + " from TP_MST_DataDictionary where valueflag = 1 and DictionaryType = 'ASE002' and AccountID = :AccountID";
  551. //paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  552. // {
  553. // new Oracle.ManagedDataAccess.Client.OracleParameter(":AccountID",accountid),
  554. // };
  555. //DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  556. //ds2.Tables[0].TableName = "TDataDictionary";
  557. sqlString = "select procedureid,jobsid from TP_PC_DefectProcedureJobs where TP_PC_DefectProcedureJobs.Defectid=:Defectid";
  558. paras = new Oracle.ManagedDataAccess.Client.OracleParameter[]
  559. {
  560. new Oracle.ManagedDataAccess.Client.OracleParameter(":Defectid",defectid),
  561. };
  562. DataSet ds3 = con.GetSqlResultToDs(sqlString, paras);
  563. ds3.Tables[0].TableName = "TP_PC_DefectProcedureJobs";
  564. if (!dsReturn.Tables.Contains("TProcedure"))
  565. {
  566. dsReturn.Tables.Add(ds.Tables[0].Copy());
  567. }
  568. //if (!dsReturn.Tables.Contains("TDataDictionary"))
  569. //{
  570. // dsReturn.Tables.Add(ds2.Tables[0].Copy());
  571. //}
  572. if (!dsReturn.Tables.Contains("TP_PC_DefectProcedureJobs"))
  573. {
  574. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  575. }
  576. return dsReturn;
  577. }
  578. catch (Exception ex)
  579. {
  580. throw ex;
  581. }
  582. finally
  583. {
  584. if (con.ConnState == ConnectionState.Open)
  585. {
  586. con.Close();
  587. }
  588. }
  589. }
  590. /// <summary>
  591. /// 通过条码与工序查出责任工号
  592. /// </summary>
  593. /// <param name="barcode">产品条码</param>
  594. /// <param name="dutyProcedureID">责任工序</param>
  595. /// <returns>DataSet</returns>
  596. public static DataSet GetDutyProcedureCodeByBarCode(string barcode, int dutyProcedureID)
  597. {
  598. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  599. try
  600. {
  601. con.Open();
  602. string sqlString = @"select UserID,UserCode,UserName,Remarks,ProductionDataID from TP_PM_ProductionDataIn
  603. where Barcode=:Barcode and ProcedureID=:ProcedureID and valueflag=1";
  604. OracleParameter[] paras = new OracleParameter[]{
  605. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  606. new OracleParameter(":ProcedureID",OracleDbType.Int32, dutyProcedureID,ParameterDirection.Input),
  607. };
  608. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  609. return ds;
  610. }
  611. catch (Exception ex)
  612. {
  613. throw ex;
  614. }
  615. finally
  616. {
  617. if (con.ConnState == ConnectionState.Open)
  618. {
  619. con.Close();
  620. }
  621. }
  622. }
  623. /// <summary>
  624. /// 责任工序查出工号根据生产数据ID
  625. /// </summary>
  626. /// <param name="ProductionDataID"></param>
  627. /// <returns></returns>
  628. public static DataSet GetDutyProcedureCodeByProductionDataID(int ProductionDataID)
  629. {
  630. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  631. try
  632. {
  633. con.Open();
  634. string sqlString = @"select UserID,UserCode,UserName,Remarks,ProductionDataID from TP_PM_ProductionDataIn
  635. where ProductionDataID=:ProductionDataID";
  636. OracleParameter[] paras = new OracleParameter[]{
  637. new OracleParameter(":ProductionDataID",OracleDbType.Int32, ProductionDataID,ParameterDirection.Input),
  638. };
  639. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  640. return ds;
  641. }
  642. catch (Exception ex)
  643. {
  644. throw ex;
  645. }
  646. finally
  647. {
  648. if (con.ConnState == ConnectionState.Open)
  649. {
  650. con.Close();
  651. }
  652. }
  653. }
  654. /// <summary>
  655. /// 根据所选工序默认查出工种信息
  656. /// </summary>
  657. /// <param name="userID">工号ID</param>
  658. /// <param name="productionDataID">生产数据ID</param>
  659. /// <returns>DataSet</returns>
  660. public static DataSet GetDutyJobsCodeByUser(int userID, int productionDataID)
  661. {
  662. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  663. try
  664. {
  665. con.Open();
  666. // string sqlString = @"select distinct
  667. // TP_PM_Producer.UserID,TP_MST_Jobs.JobsID,TP_MST_Jobs.JobsName,TP_MST_Jobs.JobsCode
  668. // from TP_PM_Producer
  669. // left join TP_MST_Jobs
  670. // on TP_PM_Producer.UJobsID=TP_MST_Jobs.JobsID
  671. // where TP_PM_Producer.UserID=:UserID
  672. // and TP_PM_Producer.UJobsID in
  673. // (
  674. // select
  675. // JobsID
  676. // from TP_PC_DefectProcedureJobs where ProcedureID=
  677. // (
  678. // Select ProcedureID from TP_PM_ProductionDataIn where ProductionDataID=:ProductionDataID
  679. // )
  680. // )";
  681. string sqlString = @"select distinct tp_pc_classesdetail.UserID,
  682. TP_MST_Jobs.JobsID,
  683. TP_MST_Jobs.JobsName,
  684. TP_MST_Jobs.JobsCode
  685. from tp_pc_classesdetail
  686. left join TP_MST_Jobs on tp_pc_classesdetail.UJobsID = TP_MST_Jobs.JobsID
  687. where tp_pc_classesdetail.UserID = :UserID
  688. and tp_pc_classesdetail.UJobsID in
  689. (select JobsID
  690. from TP_PC_DefectProcedureJobs
  691. where ProcedureID =
  692. (Select ProcedureID
  693. from TP_PM_ProductionDataIn
  694. where ProductionDataID = :ProductionDataID)
  695. )";
  696. OracleParameter[] paras = new OracleParameter[]{
  697. new OracleParameter(":UserID",OracleDbType.Int32, userID,ParameterDirection.Input),
  698. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  699. };
  700. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  701. return ds;
  702. }
  703. catch (Exception ex)
  704. {
  705. throw ex;
  706. }
  707. finally
  708. {
  709. if (con.ConnState == ConnectionState.Open)
  710. {
  711. con.Close();
  712. }
  713. }
  714. }
  715. /// <summary>
  716. /// 根据所选生产数据ID,用户ID及工种选出责任员工
  717. /// </summary>
  718. /// <param name="productionDataID">生产数据ID</param>
  719. /// <param name="userID">用户ID</param>
  720. /// <param name="jobs">工种ID</param>
  721. /// <returns>DataSet</returns>
  722. public static DataSet GetDutyStaffByUserIDAndJobs(int productionDataID, int userID, int jobs)
  723. {
  724. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  725. try
  726. {
  727. con.Open();
  728. // string sqlString = @"select TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_PM_Producer.SJobsID
  729. // from TP_PM_Producer
  730. // left join TP_HR_Staff on TP_PM_Producer.StaffID=TP_HR_Staff.StaffID
  731. // where TP_PM_Producer.ProductionDataID=:ProductionDataID
  732. // and TP_PM_Producer.UserID=:UserID and TP_PM_Producer.UJobsID=:JobsID
  733. // ";
  734. string sqlString = @"select TP_HR_Staff.StaffID,
  735. TP_HR_Staff.StaffCode,
  736. TP_HR_Staff.StaffName,
  737. TP_HR_Staff.StaffStatus,
  738. tp_pc_classesdetail.SJobsID
  739. from tp_pc_classesdetail
  740. left join TP_HR_Staff on tp_pc_classesdetail.StaffID =
  741. TP_HR_Staff.StaffID
  742. where tp_pc_classesdetail.ClassesSettingID=(select ClassesSettingID from tp_pm_productiondatain where productiondataid=:ProductionDataID)
  743. and tp_pc_classesdetail.UserID = :UserID
  744. and tp_pc_classesdetail.UJobsID = :JobsID
  745. ";
  746. OracleParameter[] paras = new OracleParameter[]{
  747. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  748. new OracleParameter(":UserID",OracleDbType.Int32, userID,ParameterDirection.Input),
  749. new OracleParameter(":JobsID",OracleDbType.Int32, jobs,ParameterDirection.Input),
  750. };
  751. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  752. return ds;
  753. }
  754. catch (Exception ex)
  755. {
  756. throw ex;
  757. }
  758. finally
  759. {
  760. if (con.ConnState == ConnectionState.Open)
  761. {
  762. con.Close();
  763. }
  764. }
  765. }
  766. /// <summary>
  767. /// 根据传入的实体获取进度考核奖惩信息
  768. /// </summary>
  769. /// <param name="searchAdminRAPEntity">查询实体</param>
  770. /// <param name="sUserInfo">用户基本信息</param>
  771. /// <returns>DataSet进度考核奖惩信息表</returns>
  772. public static DataSet SearcStaffAdminRAPInfo(SearchProgressRAPEntity searchProgressRAPEntity, SUserInfo sUserInfo)
  773. {
  774. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  775. try
  776. {
  777. string strIdList = string.Empty;
  778. if (searchProgressRAPEntity.IDList != null && searchProgressRAPEntity.IDList.Length > 0)
  779. {
  780. strIdList = DataConvert.ConvertListToSqlInWhere(searchProgressRAPEntity.IDList);
  781. }
  782. con.Open();
  783. OracleParameter[] paras = new OracleParameter[]{
  784. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  785. new OracleParameter("in_staffID",OracleDbType.Int32,searchProgressRAPEntity.StaffID,ParameterDirection.Input),
  786. new OracleParameter("in_rapType",OracleDbType.Double,searchProgressRAPEntity.RAPType,ParameterDirection.Input),
  787. new OracleParameter("in_startRAPDate",OracleDbType.Date,searchProgressRAPEntity.StartRAPDate,ParameterDirection.Input),
  788. new OracleParameter("in_endRAPDate",OracleDbType.Date,searchProgressRAPEntity.EndRAPDate,ParameterDirection.Input),
  789. new OracleParameter("in_startRAPAmount",OracleDbType.Double,searchProgressRAPEntity.StartRAPAmount,ParameterDirection.Input),
  790. new OracleParameter("in_endRAPAmount",OracleDbType.Double,searchProgressRAPEntity.EndRAPAmount,ParameterDirection.Input),
  791. new OracleParameter("in_auditStatus",OracleDbType.Int32,searchProgressRAPEntity.AuditStatus,ParameterDirection.Input),
  792. new OracleParameter("in_settlementFlag",OracleDbType.Char,searchProgressRAPEntity.SettlementFlag,ParameterDirection.Input),
  793. new OracleParameter("in_valueFlag",OracleDbType.Char,searchProgressRAPEntity.ValueFlag,ParameterDirection.Input),
  794. new OracleParameter("in_sIDList",OracleDbType.Varchar2,strIdList,ParameterDirection.Input),
  795. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  796. };
  797. return con.ExecStoredProcedure("PRO_PM_StaffProgressRAP", paras);
  798. }
  799. catch (Exception ex)
  800. {
  801. throw ex;
  802. }
  803. finally
  804. {
  805. if (con.ConnState == ConnectionState.Open)
  806. {
  807. con.Close();
  808. }
  809. }
  810. }
  811. /// <summary>
  812. /// 根据条码获取窑炉窑车信息
  813. /// </summary>
  814. /// <param name="barcode">产品条码</param>
  815. /// <returns>DataSet</returns>
  816. public static DataSet GetKilnCarByBarCode(string barcode)
  817. {
  818. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  819. try
  820. {
  821. con.Open();
  822. // string sqlString = @"
  823. // select
  824. // TP_MST_KilnCar.KilnCarCode,
  825. // TP_MST_Kiln.KilnCode,
  826. // TP_MST_DataDictionary.Dictionaryvalue
  827. // from TP_PM_KilnCarGoods
  828. // left join TP_MST_KilnCar
  829. // on TP_PM_KilnCarGoods.KilnCarID=TP_MST_KilnCar.Kilncarid
  830. // left join TP_MST_Kiln
  831. // on TP_MST_KilnCar.Kilnid=TP_MST_Kiln.Kilnid
  832. // left join TP_MST_DataDictionary
  833. // on TP_PM_KilnCarGoods.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  834. // where TP_PM_KilnCarGoods.Barcode=:Barcode
  835. // ";
  836. string sqlString = @"
  837. select
  838. TP_PM_InProduction.KilnCarCode,
  839. TP_PM_InProduction.KilnCode,
  840. TP_MST_DataDictionary.Dictionaryvalue
  841. from TP_PM_InProduction
  842. inner join TP_MST_DataDictionary
  843. on TP_PM_InProduction.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  844. where TP_PM_InProduction.Barcode=:Barcode
  845. ";
  846. OracleParameter[] paras = new OracleParameter[]{
  847. new OracleParameter(":Barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  848. };
  849. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  850. return ds;
  851. }
  852. catch (Exception ex)
  853. {
  854. throw ex;
  855. }
  856. finally
  857. {
  858. if (con.ConnState == ConnectionState.Open)
  859. {
  860. con.Close();
  861. }
  862. }
  863. }
  864. #region 生产数据
  865. /// <summary>
  866. /// 查询在产产品数据
  867. /// </summary>
  868. /// <param name="searchInProductionEntity">在产产品数据实体</param>
  869. /// <param name="sUserInfo">用户基本信息</param>
  870. /// <returns>DataSet在产产品数据信息表</returns>
  871. public static DataSet GetInProductionData(SearchInProductionEntity searchInProductionEntity, SUserInfo sUserInfo)
  872. {
  873. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  874. try
  875. {
  876. con.Open();
  877. OracleParameter[] paras = new OracleParameter[]{
  878. new OracleParameter("in_barCode",OracleDbType.Varchar2,searchInProductionEntity.BarCode,ParameterDirection.Input),
  879. new OracleParameter("in_productionLineId",OracleDbType.Varchar2,searchInProductionEntity.ProductionLineIDS,ParameterDirection.Input),
  880. new OracleParameter("in_completeProcedureId",OracleDbType.Varchar2,searchInProductionEntity.ProcedureIDS,ParameterDirection.Input),
  881. new OracleParameter("in_goodsId",OracleDbType.Varchar2,searchInProductionEntity.GoodsIDS,ParameterDirection.Input),
  882. new OracleParameter("in_userId",OracleDbType.Varchar2,searchInProductionEntity.UserIDS,ParameterDirection.Input),
  883. new OracleParameter("in_groutingLineId",OracleDbType.Varchar2,searchInProductionEntity.GroutingLineIDS,ParameterDirection.Input),
  884. new OracleParameter("in_gMouldTypeId",OracleDbType.Varchar2,searchInProductionEntity.GMouldTypeIDS,ParameterDirection.Input),
  885. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  886. new OracleParameter("in_createTimeStart",OracleDbType.Varchar2,searchInProductionEntity.CreateTimeStart,ParameterDirection.Input),
  887. new OracleParameter("in_createTimeEnd",OracleDbType.Varchar2,searchInProductionEntity.CreateTimeEnd,ParameterDirection.Input),
  888. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  889. };
  890. DataSet dsInproduction = con.ExecStoredProcedure("PRO_PM_GetInProductionData", paras);
  891. return dsInproduction;
  892. }
  893. catch (Exception ex)
  894. {
  895. throw ex;
  896. }
  897. finally
  898. {
  899. if (con.ConnState == ConnectionState.Open)
  900. {
  901. con.Close();
  902. }
  903. }
  904. }
  905. /// <summary>
  906. /// 查询成品数据
  907. /// </summary>
  908. /// <param name="searchInProductionEntity">产成品数据实体</param>
  909. /// <param name="sUserInfo">用户基本信息</param>
  910. /// <returns>DataSet产成品数据信息表</returns>
  911. public static DataSet GetFinishedProductionData(SearchFinishedProductEntity searchFinishedProductionEntity, SUserInfo sUserInfo)
  912. {
  913. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  914. try
  915. {
  916. con.Open();
  917. OracleParameter[] paras = new OracleParameter[]{
  918. new OracleParameter("in_barCode",OracleDbType.Varchar2,searchFinishedProductionEntity.BarCode,ParameterDirection.Input),
  919. new OracleParameter("in_productionLineId",OracleDbType.Varchar2,searchFinishedProductionEntity.ProductionLineIDS,ParameterDirection.Input),
  920. new OracleParameter("in_goodsId",OracleDbType.Varchar2,searchFinishedProductionEntity.GoodsIDS,ParameterDirection.Input),
  921. new OracleParameter("in_groutingLineId",OracleDbType.Varchar2,searchFinishedProductionEntity.GroutingLineIDS,ParameterDirection.Input),
  922. new OracleParameter("in_gMouldTypeId",OracleDbType.Varchar2,searchFinishedProductionEntity.GMouldTypeIDS,ParameterDirection.Input),
  923. new OracleParameter("in_accountDateStart",OracleDbType.Varchar2,searchFinishedProductionEntity.AccountDateStart,ParameterDirection.Input),
  924. new OracleParameter("in_accountDateEnd",OracleDbType.Varchar2,searchFinishedProductionEntity.AccountDateEnd,ParameterDirection.Input),
  925. new OracleParameter("in_createTimeStart",OracleDbType.Varchar2,searchFinishedProductionEntity.CreateTimeStart,ParameterDirection.Input),
  926. new OracleParameter("in_createTimeEnd",OracleDbType.Varchar2,searchFinishedProductionEntity.CreateTimeEnd,ParameterDirection.Input),
  927. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  928. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  929. };
  930. DataSet dsInproduction = con.ExecStoredProcedure("PRO_PM_GetFinishdProductData", paras);
  931. return dsInproduction;
  932. }
  933. catch (Exception ex)
  934. {
  935. throw ex;
  936. }
  937. finally
  938. {
  939. if (con.ConnState == ConnectionState.Open)
  940. {
  941. con.Close();
  942. }
  943. }
  944. }
  945. /// <summary>
  946. /// 查询半检数据一览
  947. /// </summary>
  948. /// <param name="SearchSemiTestDetailEntity">查询半检数据明细实体类</param>
  949. /// <param name="sUserInfo">用户基本信息</param>
  950. /// <returns>DataSet</returns>
  951. public static DataSet GetSearchSemiTestListModule(SemiTestDetailEntity semiTestDetailEntity, SUserInfo sUserInfo)
  952. {
  953. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  954. try
  955. {
  956. con.Open();
  957. OracleParameter[] paras = new OracleParameter[]{
  958. new OracleParameter("in_goodsId",OracleDbType.Varchar2,semiTestDetailEntity.GoodsIDS,ParameterDirection.Input),
  959. new OracleParameter("in_testUserID",OracleDbType.Varchar2,semiTestDetailEntity.TestUserIDS,ParameterDirection.Input),
  960. new OracleParameter("in_groutingUserID",OracleDbType.Varchar2,semiTestDetailEntity.GroutingUserIDS,ParameterDirection.Input),
  961. new OracleParameter("in_semitesttype",OracleDbType.Int32,semiTestDetailEntity.SemiTestType,ParameterDirection.Input),
  962. new OracleParameter("in_remarks",OracleDbType.Varchar2,semiTestDetailEntity.Remarks,ParameterDirection.Input),
  963. new OracleParameter("in_userPurviews",OracleDbType.Varchar2,semiTestDetailEntity.UserPurviews,ParameterDirection.Input),
  964. new OracleParameter("in_semiTestDateStart",OracleDbType.Varchar2,semiTestDetailEntity.SemiTestDateStart,ParameterDirection.Input),
  965. new OracleParameter("in_semiTestDateEnd",OracleDbType.Varchar2,semiTestDetailEntity.SemiTestDateEnd,ParameterDirection.Input),
  966. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  967. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  968. };
  969. DataSet dsSearchReport = con.ExecStoredProcedure("PRO_PM_GetSemiTestList", paras);
  970. return dsSearchReport;
  971. }
  972. catch (Exception ex)
  973. {
  974. throw ex;
  975. }
  976. finally
  977. {
  978. if (con.ConnState == ConnectionState.Open)
  979. {
  980. con.Close();
  981. }
  982. }
  983. }
  984. #endregion
  985. #region 校验条码是否可以下车
  986. /// <summary>
  987. /// 校验条码是否可以下车
  988. /// </summary>
  989. /// <param name="procedureID">当前工序</param>
  990. /// <param name="barcode">产品条码</param>
  991. /// <param name="sUserInfo">用户基本信息</param>
  992. /// <returns>CheckCancelLoadCar</returns>
  993. public static CheckCancelLoadCar CheckCancelLoadCar(int procedureID, string barcode, SUserInfo sUserInfo)
  994. {
  995. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  996. try
  997. {
  998. oracleConn.Open();
  999. OracleParameter[] paras = new OracleParameter[]{
  1000. new OracleParameter("in_barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  1001. new OracleParameter("in_procedureid",OracleDbType.Int32,procedureID,ParameterDirection.Input),
  1002. new OracleParameter("in_accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  1003. new OracleParameter("out_errMsg",OracleDbType.NVarchar2,200,null,ParameterDirection.Output),
  1004. new OracleParameter("out_goodscode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  1005. new OracleParameter("out_goodsname",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  1006. new OracleParameter("out_kilncarcode",OracleDbType.NVarchar2,50,null,ParameterDirection.Output),
  1007. };
  1008. oracleConn.ExecStoredProcedure("PRO_PM_CheckCancelLoadCar", paras);
  1009. CheckCancelLoadCar checkCancelLoadCar = new CheckCancelLoadCar();
  1010. checkCancelLoadCar.ErrMsg = paras[3].Value.ToString() == "null" ? "" : paras[3].Value.ToString().Replace("\\n\\r", "\n\r");
  1011. checkCancelLoadCar.GoodsCode = paras[4].Value.ToString() == "null" ? "" : paras[4].Value.ToString();
  1012. checkCancelLoadCar.GoodsName = paras[5].Value.ToString() == "null" ? "" : paras[5].Value.ToString();
  1013. checkCancelLoadCar.KilnCarCode = paras[6].Value.ToString() == "null" ? "" : paras[6].Value.ToString();
  1014. return checkCancelLoadCar;
  1015. }
  1016. catch (Exception ex)
  1017. {
  1018. throw ex;
  1019. }
  1020. finally
  1021. {
  1022. if (oracleConn.ConnState == ConnectionState.Open)
  1023. {
  1024. oracleConn.Close();
  1025. }
  1026. }
  1027. }
  1028. #endregion
  1029. /// <summary>
  1030. /// 根据所选生产数据ID,显示成检数据信息
  1031. /// </summary>
  1032. /// <param name="productionDataID">生产数据ID</param>
  1033. /// <returns>DataSet</returns>
  1034. public static DataSet GetProductionDataByID(int productionDataID)
  1035. {
  1036. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1037. try
  1038. {
  1039. con.Open();
  1040. DataSet dsReturn = new DataSet();
  1041. string sqlString = @"select
  1042. TP_PM_ProductionData.Barcode as BarCode,
  1043. TP_PM_ProductionData.Goodsid as GoodsID,
  1044. TP_PM_ProductionData.Goodscode as GoodsCode,
  1045. TP_PM_ProductionData.Goodsname as GoodsName,
  1046. TP_PM_ProductionData.GoodsLevelID as DefectFlagID,
  1047. TP_PM_ProductionData.Reworkprocedureid as ReworkProcedureID,
  1048. TP_PM_ProductionData.Remarks as Remarks,
  1049. TP_PM_ProductionData.Userid as UserID,
  1050. TP_PM_ProductionData.UserCode as UserCode,
  1051. TP_PM_ProductionData.UserName as UserName,
  1052. TP_PM_ProductionData.Goodsleveltypeid as GoodsLevelTypeID,
  1053. TP_PM_ProductionData.SpecialRepairflag,
  1054. TP_PM_ProductionData.UserCode,
  1055. TP_PM_ProductionData.KilnCode,
  1056. TP_PM_ProductionData.KilnCarCode,
  1057. TP_PM_ProductionData.GroutingUserCode,
  1058. TP_PM_ProductionData.GroutingMouldCode as MouldCode,
  1059. TP_PM_ProductionData.GroutingNum,
  1060. TP_PM_ProductionData.GroutingDate,
  1061. TP_MST_DataDictionary.Dictionaryvalue,
  1062. TP_PM_ProductionData.IsPublicBody,
  1063. TP_MST_Logo.logoid,
  1064. TP_MST_Logo.logocode,
  1065. TP_MST_Logo.logoname,
  1066. TP_PM_ProductionData.CreateTime,
  1067. TP_PM_ProductionData.CheckTime
  1068. from TP_PM_ProductionData
  1069. left join TP_MST_DataDictionary
  1070. on TP_PM_ProductionData.KilnCarPosition=TP_MST_DataDictionary.DictionaryID
  1071. left join TP_MST_Logo
  1072. on TP_PM_ProductionData.logoid=TP_MST_Logo.logoid
  1073. where
  1074. TP_PM_ProductionData.Productiondataid=:ProductionDataID
  1075. ";
  1076. string sqlString2 = @"
  1077. select
  1078. TP_PM_Defect.ProductionDefectID as ProductionDefectID,
  1079. TP_PM_Defect.Barcode as BarCode,
  1080. TP_PM_Defect.DefectID as DefectID,
  1081. TP_PM_Defect.Defectname as DefectName,
  1082. TP_PM_Defect.Defectcode as DefectCode,
  1083. TP_PM_Defect.Defectpositionid as DefectPositionID,
  1084. TP_PM_Defect.Defectpositionname as DefectPositionName,
  1085. TP_PM_Defect.Defectpositioncode as DefectPositionCode,
  1086. TP_PM_Defect.Defectprocedureid as DefectProcedureID,
  1087. TP_PM_Defect.Defectprocedurename as DefectProcedureName,
  1088. TP_PM_Defect.Defectprocedurecode as DefectProcedureCode,
  1089. TP_PM_Defect.Defectuserid as DefectUserID,
  1090. TP_PM_Defect.Defectusername as DefectUserName,
  1091. TP_PM_Defect.Defectusercode as DefectUserCode,
  1092. TP_PM_Defect.DefectJobs as Jobs,
  1093. nvl(TP_PM_Defect.MissedUserID,-1) as MissedUserID,
  1094. TP_PM_Defect.MissedUserCode,
  1095. TP_PM_Defect.MissedUserName,
  1096. TP_MST_Jobs.Jobsname as JobsText,
  1097. TP_PM_Defect.Remarks as DefectRemarks,
  1098. TP_PM_Defect.Productiondataid as ProductionDataID,
  1099. nvl(TP_PM_Defect.DefectProductionDataID,0) as DefectProductionDataID,
  1100. TP_PM_Defect.Defectfine as DefectFineID,
  1101. TP_MST_DefectFine.DefectFineCode as DefectFineValue,
  1102. TP_PM_Defect.SpecialDefect,
  1103. TP_PM_Defect.DefectDeductionNum,
  1104. TP_PM_Defect.CheckTime
  1105. from TP_PM_Defect
  1106. left join TP_MST_Jobs
  1107. on TP_PM_Defect.Defectjobs=TP_MST_Jobs.JobsID
  1108. left join TP_MST_DefectFine
  1109. on TP_PM_Defect.Defectfine= TP_MST_DefectFine.DefectFineid
  1110. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1111. string sqlString3 = @"select
  1112. TP_PM_DefectResponsible.ProductionDefectID as ProductionDefectID,
  1113. TP_PM_DefectResponsible.Staffid as StaffID,
  1114. TP_HR_Staff.Staffcode as StaffCode,
  1115. TP_HR_Staff.Staffname as StaffName,
  1116. TP_PM_DefectResponsible.Staffstatus as StaffStatus
  1117. from TP_PM_DefectResponsible
  1118. left join TP_HR_Staff
  1119. on TP_PM_DefectResponsible.StaffID=TP_HR_Staff.Staffid
  1120. where TP_PM_DefectResponsible.Productiondefectid in
  1121. (
  1122. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1123. )";
  1124. string sqlString4 = @" select
  1125. TP_PM_DefectImage.ProductionDefectID,
  1126. TP_PM_DefectImage.Thumbnailpath,
  1127. TP_PM_DefectImage.Imagepath
  1128. from TP_PM_DefectImage
  1129. where TP_PM_DefectImage.Productiondefectid in
  1130. (
  1131. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1132. )";
  1133. string sqlString5 = @"select
  1134. TP_PM_DefectMissedResponsible.ProductionDefectID as ProductionDefectID,
  1135. TP_PM_DefectMissedResponsible.Staffid as StaffID,
  1136. TP_HR_Staff.Staffcode as StaffCode,
  1137. TP_HR_Staff.Staffname as StaffName,
  1138. TP_PM_DefectMissedResponsible.Staffstatus as StaffStatus,
  1139. TP_PM_DefectMissedResponsible.UJobsID,
  1140. TP_PM_DefectMissedResponsible.SJobsID
  1141. from TP_PM_DefectMissedResponsible
  1142. left join TP_HR_Staff
  1143. on TP_PM_DefectMissedResponsible.StaffID=TP_HR_Staff.Staffid
  1144. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1145. (
  1146. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1147. )";
  1148. OracleParameter[] paras = new OracleParameter[]{
  1149. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1150. };
  1151. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1152. ds.Tables[0].TableName = "TP_PM_ProductionData";
  1153. DataSet ds2 = con.GetSqlResultToDs(sqlString2, paras);
  1154. ds2.Tables[0].TableName = "TP_PM_Defect";
  1155. DataSet ds3 = con.GetSqlResultToDs(sqlString3, paras);
  1156. ds3.Tables[0].TableName = "TP_PM_DefectResponsible";
  1157. DataSet ds4 = con.GetSqlResultToDs(sqlString4, paras);
  1158. ds4.Tables[0].TableName = "TP_PM_DefectImage";
  1159. DataSet ds5 = con.GetSqlResultToDs(sqlString5, paras);
  1160. ds5.Tables[0].TableName = "TP_PM_DefectMissedResponsible";
  1161. dsReturn.Tables.Add(ds.Tables[0].Copy());
  1162. dsReturn.Tables.Add(ds2.Tables[0].Copy());
  1163. dsReturn.Tables.Add(ds3.Tables[0].Copy());
  1164. dsReturn.Tables.Add(ds4.Tables[0].Copy());
  1165. dsReturn.Tables.Add(ds5.Tables[0].Copy());
  1166. dsReturn.Tables["TP_PM_DefectImage"].Columns.Add("SourcePathByte", typeof(byte[]));
  1167. for (int i = 0; i < dsReturn.Tables["TP_PM_DefectImage"].Rows.Count; i++)
  1168. {
  1169. string saveAllFilePath = AppDomain.CurrentDomain.BaseDirectory + dsReturn.Tables["TP_PM_DefectImage"].Rows[i]["ImagePath"].ToString();
  1170. if (File.Exists(saveAllFilePath))
  1171. {
  1172. FileInfo file = new FileInfo(saveAllFilePath);
  1173. Image PicImage = Image.FromStream(file.OpenRead());
  1174. byte[] smallbuffer = null;
  1175. using (MemoryStream ms = new MemoryStream())
  1176. {
  1177. PicImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
  1178. ms.Position = 0;
  1179. smallbuffer = new byte[ms.Length];
  1180. ms.Read(smallbuffer, 0, Convert.ToInt32(ms.Length));
  1181. ms.Flush();
  1182. }
  1183. dsReturn.Tables["TP_PM_DefectImage"].Rows[i]["SourcePathByte"] = smallbuffer;
  1184. }
  1185. }
  1186. return dsReturn;
  1187. }
  1188. catch (Exception ex)
  1189. {
  1190. throw ex;
  1191. }
  1192. finally
  1193. {
  1194. if (con.ConnState == ConnectionState.Open)
  1195. {
  1196. con.Close();
  1197. }
  1198. }
  1199. }
  1200. /// <summary>
  1201. /// 获取产品完成工序的ID
  1202. /// </summary>
  1203. /// <param name="barcode">产品条码</param>
  1204. /// <returns>int</returns>
  1205. public static int GetCompleteProcedureID(string barcode)
  1206. {
  1207. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1208. try
  1209. {
  1210. con.Open();
  1211. string sqlString = @"select
  1212. FlowProcedureID as
  1213. CompleteProcedureID,
  1214. ProductionDataID,
  1215. ProcedureID
  1216. from TP_PM_InProduction
  1217. where
  1218. TP_PM_InProduction.BarCode=:BarCode
  1219. union
  1220. select
  1221. FlowProcedureID as
  1222. CompleteProcedureID,
  1223. ProductionDataID,
  1224. ProcedureID
  1225. from Tp_Pm_Inproductiontrash
  1226. where
  1227. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1228. ";
  1229. OracleParameter[] paras = new OracleParameter[]{
  1230. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1231. };
  1232. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1233. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1234. {
  1235. return Convert.ToInt32(ds.Tables[0].Rows[0]["CompleteProcedureID"]);
  1236. }
  1237. else
  1238. {
  1239. sqlString = @"select
  1240. BarCode
  1241. from TP_PM_FinishedProduct
  1242. where
  1243. TP_PM_FinishedProduct.BarCode=:BarCode
  1244. ";
  1245. paras = new OracleParameter[]{
  1246. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1247. };
  1248. DataSet ds2 = con.GetSqlResultToDs(sqlString, paras);
  1249. if (ds2 != null && ds2.Tables[0].Rows.Count > 0)
  1250. {
  1251. return -2;
  1252. }
  1253. else
  1254. {
  1255. return -1;
  1256. }
  1257. }
  1258. }
  1259. catch (Exception ex)
  1260. {
  1261. throw ex;
  1262. }
  1263. finally
  1264. {
  1265. if (con.ConnState == ConnectionState.Open)
  1266. {
  1267. con.Close();
  1268. }
  1269. }
  1270. }
  1271. /// <summary>
  1272. /// 编辑后删除生产数据
  1273. /// </summary>
  1274. /// <param name="productionDataID">生产数据ID</param>
  1275. /// <returns>int</returns>
  1276. public static int DeleteProductionDataByID(int productionDataID)
  1277. {
  1278. int deleteRow = 0;
  1279. IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  1280. try
  1281. {
  1282. oracleTrConn.Connect();
  1283. string sqlString5 = @"update TP_PM_DefectMissedResponsible set ValueFlag=0
  1284. where TP_PM_DefectMissedResponsible.Productiondefectid in
  1285. (
  1286. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1287. )";
  1288. string sqlString4 = @"update TP_PM_ProductionData set ValueFlag=0
  1289. where
  1290. TP_PM_ProductionData.Productiondataid=:ProductionDataID
  1291. ";
  1292. string sqlString3 = @"update TP_PM_Defect set ValueFlag=0
  1293. where TP_PM_Defect.Productiondataid =:ProductionDataID";
  1294. string sqlString2 = @"update TP_PM_DefectResponsible set ValueFlag=0
  1295. where TP_PM_DefectResponsible.Productiondefectid in
  1296. (
  1297. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1298. )";
  1299. string sqlString = @"update TP_PM_DefectImage set ValueFlag=0
  1300. where TP_PM_DefectImage.Productiondefectid in
  1301. (
  1302. select ProductionDefectID from TP_PM_Defect where TP_PM_Defect.Productiondataid=:ProductionDataID
  1303. )";
  1304. OracleParameter[] paras = new OracleParameter[]{
  1305. new OracleParameter(":ProductionDataID",OracleDbType.Int32, productionDataID,ParameterDirection.Input),
  1306. };
  1307. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString, paras);
  1308. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString2, paras);
  1309. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString3, paras);
  1310. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString4, paras);
  1311. deleteRow += oracleTrConn.ExecuteNonQuery(sqlString5, paras);
  1312. // 没有错误 提交事务
  1313. if (deleteRow > 0)
  1314. {
  1315. oracleTrConn.Commit();
  1316. }
  1317. else
  1318. {
  1319. oracleTrConn.Rollback();
  1320. }
  1321. }
  1322. catch (Exception ex)
  1323. {
  1324. oracleTrConn.Rollback();
  1325. throw ex;
  1326. }
  1327. finally
  1328. {
  1329. // 释放资源
  1330. if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
  1331. {
  1332. oracleTrConn.Disconnect();
  1333. }
  1334. }
  1335. return deleteRow;
  1336. }
  1337. /// <summary>
  1338. /// 由产品条码获取注浆信息
  1339. /// </summary>
  1340. /// <param name="barcode">产品条码</param>
  1341. /// <returns>DataSet</returns>
  1342. public static DataSet GetGroutingProducttByBarCode(string barcode)
  1343. {
  1344. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1345. try
  1346. {
  1347. con.Open();
  1348. string sqlString = @"select
  1349. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  1350. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  1351. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1352. TP_MST_Logo.logoid,
  1353. TP_MST_Logo.logocode,
  1354. TP_MST_Logo.logoname,
  1355. (select tp_pm_inproduction.ispublicbody from
  1356. tp_pm_inproduction where tp_pm_inproduction.BarCode=:barcode) as ispublicbody,
  1357. (select tp_pm_inproductiontrash.ispublicbody from
  1358. tp_pm_inproductiontrash where tp_pm_inproductiontrash.BarCode=:barcode) as ispublicbodyTrach,
  1359. TP_PM_GroutingDailyDetail.Groutingdate
  1360. from TP_PM_GroutingDailyDetail
  1361. left join TP_MST_Logo
  1362. on TP_PM_GroutingDailyDetail.logoid=TP_MST_Logo.logoid
  1363. where TP_PM_GroutingDailyDetail.BarCode=:barcode";
  1364. OracleParameter[] paras = new OracleParameter[]{
  1365. new OracleParameter(":barcode",barcode),
  1366. };
  1367. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1368. return ds;
  1369. }
  1370. catch (Exception ex)
  1371. {
  1372. throw ex;
  1373. }
  1374. finally
  1375. {
  1376. if (con.ConnState == ConnectionState.Open)
  1377. {
  1378. con.Close();
  1379. }
  1380. }
  1381. }
  1382. /// <summary>
  1383. /// 根据所选工号对应的工种,查出缺陷责任员工
  1384. /// </summary>
  1385. /// <param name="jobs">工种ID</param>
  1386. /// <param name="sUserInfo">用户基本信息</param>
  1387. /// <returns>DataSet</returns>
  1388. public static DataSet GetDutyStaffByUserID(int jobs, SUserInfo sUserInfo)
  1389. {
  1390. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1391. try
  1392. {
  1393. con.Open();
  1394. string sqlString = @"select
  1395. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1396. from TP_MST_UserStaff
  1397. left join TP_HR_Staff
  1398. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1399. where TP_MST_UserStaff.Ujobsid=:jobs and TP_HR_Staff.StaffStatus in (1,2)
  1400. order by TP_HR_Staff.StaffCode
  1401. ";
  1402. OracleParameter[] paras = new OracleParameter[]{
  1403. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1404. };
  1405. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1406. return ds;
  1407. }
  1408. catch (Exception ex)
  1409. {
  1410. throw ex;
  1411. }
  1412. finally
  1413. {
  1414. if (con.ConnState == ConnectionState.Open)
  1415. {
  1416. con.Close();
  1417. }
  1418. }
  1419. }
  1420. /// <summary>
  1421. /// 根据所选工号,查出漏检责任员工
  1422. /// </summary>
  1423. /// <param name="userid">工号</param>
  1424. /// <param name="sUserInfo">用户基本信息</param>
  1425. /// <returns>DataSet</returns>
  1426. public static DataSet GetMissedStaffByUserID(int userid, SUserInfo sUserInfo)
  1427. {
  1428. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1429. try
  1430. {
  1431. con.Open();
  1432. string sqlString = @"select
  1433. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as UJobsID,TP_HR_Staff.Jobs as SJobsID
  1434. from TP_MST_UserStaff
  1435. left join TP_HR_Staff
  1436. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1437. where TP_MST_UserStaff.Userid=:userid
  1438. ";
  1439. OracleParameter[] paras = new OracleParameter[]{
  1440. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1441. };
  1442. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1443. return ds;
  1444. }
  1445. catch (Exception ex)
  1446. {
  1447. throw ex;
  1448. }
  1449. finally
  1450. {
  1451. if (con.ConnState == ConnectionState.Open)
  1452. {
  1453. con.Close();
  1454. }
  1455. }
  1456. }
  1457. /// <summary>
  1458. /// 根据所选工号对应的工种,查出缺陷责任员工
  1459. /// </summary>
  1460. /// <param name="jobs">工种ID</param>
  1461. /// <param name="userid">用户ID</param>
  1462. /// <param name="sUserInfo">用户基本信息</param>
  1463. /// <returns>DataSet</returns>
  1464. public static DataSet GetDutyStaffByUserJobsID(int jobs, SUserInfo sUserInfo, int userid)
  1465. {
  1466. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1467. try
  1468. {
  1469. con.Open();
  1470. string sqlString = @"select
  1471. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID
  1472. from TP_MST_UserStaff
  1473. left join TP_HR_Staff
  1474. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  1475. where TP_MST_UserStaff.Ujobsid=:jobs and TP_MST_UserStaff.Userid=:userid
  1476. ";
  1477. OracleParameter[] paras = new OracleParameter[]{
  1478. new OracleParameter(":jobs",OracleDbType.Int32, jobs,ParameterDirection.Input),
  1479. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  1480. };
  1481. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1482. return ds;
  1483. }
  1484. catch (Exception ex)
  1485. {
  1486. throw ex;
  1487. }
  1488. finally
  1489. {
  1490. if (con.ConnState == ConnectionState.Open)
  1491. {
  1492. con.Close();
  1493. }
  1494. }
  1495. }
  1496. /// <summary>
  1497. /// 获取干补标识
  1498. /// </summary>
  1499. /// <param name="barcode">产品条码</param>ram>
  1500. /// <returns>int</returns>
  1501. public static int GetSpecialRepairflagByBarcode(string barcode, SUserInfo sUserInfo)
  1502. {
  1503. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1504. try
  1505. {
  1506. con.Open();
  1507. string sqlString = @"select
  1508. SpecialRepairflag
  1509. from tp_pm_inproduction where barcode=:barcode
  1510. union
  1511. select
  1512. SpecialRepairflag from
  1513. tp_pm_inproductiontrash where barcode=:barcode
  1514. union
  1515. select
  1516. SpecialRepairflag from
  1517. tp_pm_finishedproduct where barcode=:barcode
  1518. ";
  1519. OracleParameter[] paras = new OracleParameter[]{
  1520. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1521. };
  1522. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1523. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1524. {
  1525. return Convert.ToInt32(ds.Tables[0].Rows[0]["SpecialRepairflag"]);
  1526. }
  1527. return 0;
  1528. }
  1529. catch (Exception ex)
  1530. {
  1531. throw ex;
  1532. }
  1533. finally
  1534. {
  1535. if (con.ConnState == ConnectionState.Open)
  1536. {
  1537. con.Close();
  1538. }
  1539. }
  1540. }
  1541. /// <summary>
  1542. /// 获取窑车对应产品列表
  1543. /// <param name="KilnCarID">窑车ID</param>
  1544. /// </summary>
  1545. /// <returns>DataSet</returns>
  1546. public static DataSet GetKilnCarGoodsByKilnCarID(int KilnCarID)
  1547. {
  1548. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1549. try
  1550. {
  1551. con.Open();
  1552. string sqlString = @"select distinct
  1553. TP_PM_KilnCarGoods.Barcode,
  1554. TP_MST_Goods.Goodsid,
  1555. TP_MST_Goods.Goodscode,
  1556. TP_MST_Goods.Goodsname,
  1557. TP_PM_KilnCarGoods.Userid,
  1558. TP_PM_KilnCarGoods.Usercode,
  1559. TP_PM_KilnCarGoods.Username,
  1560. TP_MST_KilnCar.Kilncarname,
  1561. TP_MST_KilnCar.Kilncarcode,
  1562. TP_MST_Kiln.KilnName,
  1563. TP_MST_Kiln.KilnCode,
  1564. TP_MST_KilnCar.Kilnid,
  1565. TP_MST_KilnCar.KilnCarid,
  1566. TP_PM_KilnCarGoods.KilnCarPosition,
  1567. TP_MST_DataDictionary.Dictionaryvalue,
  1568. TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode,
  1569. TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum,
  1570. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1571. (select max(tp_pm_inproduction.ispublicbody) from
  1572. tp_pm_inproduction where tp_pm_inproduction.BarCode=TP_PM_KilnCarGoods.Barcode) as ispublicbody,
  1573. TP_PM_GroutingDailyDetail.Groutingdate,
  1574. tp_mst_logo.logoid,
  1575. tp_mst_logo.logocode,
  1576. tp_mst_logo.logoname
  1577. from
  1578. TP_PM_KilnCarGoods
  1579. left join TP_MST_Goods
  1580. on TP_PM_KilnCarGoods.Goodsid=TP_MST_Goods.Goodsid
  1581. left join TP_MST_KilnCar
  1582. on TP_PM_KilnCarGoods.Kilncarid=TP_MST_KilnCar.Kilncarid
  1583. left join TP_MST_Kiln
  1584. on TP_MST_KilnCar.Kilnid=TP_MST_Kiln.Kilnid
  1585. left join TP_MST_DataDictionary
  1586. on TP_PM_KilnCarGoods.KilnCarPosition=TP_MST_DataDictionary.Dictionaryid
  1587. left join TP_PM_GroutingDailyDetail
  1588. on TP_PM_KilnCarGoods.Barcode=TP_PM_GroutingDailyDetail.BarCode
  1589. left join tp_mst_logo
  1590. on TP_PM_GroutingDailyDetail.logoid=tp_mst_logo.logoid
  1591. where TP_PM_KilnCarGoods.KilnCarID=:KilnCarID
  1592. ";
  1593. OracleParameter[] paras = new OracleParameter[]{
  1594. new OracleParameter(":KilnCarID",OracleDbType.Int32, KilnCarID,ParameterDirection.Input),
  1595. };
  1596. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1597. return ds;
  1598. }
  1599. catch (Exception ex)
  1600. {
  1601. throw ex;
  1602. }
  1603. finally
  1604. {
  1605. if (con.ConnState == ConnectionState.Open)
  1606. {
  1607. con.Close();
  1608. }
  1609. }
  1610. }
  1611. /// <summary>
  1612. /// 获取未在生产线上报损的注浆信息
  1613. /// <param name="barcode">产品条码</param>
  1614. /// </summary>
  1615. /// <returns>DataSet</returns>
  1616. public static DataSet GetBarCodeInGroutingDailyDetail(string barcode)
  1617. {
  1618. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1619. try
  1620. {
  1621. con.Open();
  1622. // 首先查看条码是否有效
  1623. string sqlString = @"select TP_PM_GroutingDailyDetail.GoodsID,TP_PM_GroutingDailyDetail.GoodsCode,TP_PM_GroutingDailyDetail.GoodsName
  1624. ,TP_PM_GroutingDailyDetail.GroutingDailyID,TP_PM_GroutingDailyDetail.GroutingDailyDetailID
  1625. ,TP_PM_GroutingDailyDetail.GroutingDate,TP_PM_GroutingDailyDetail.GroutingLineID,TP_PM_GroutingDailyDetail.GroutingLineCode
  1626. ,TP_PM_GroutingDailyDetail.GroutingLineName
  1627. ,TP_PM_GroutingDailyDetail.GroutingLineDetailID,TP_PM_GroutingDailyDetail.GroutingMouldCode,TP_PM_GroutingDailyDetail.MouldCode
  1628. ,TP_PM_GroutingDailyDetail.UserID as GroutingUserID
  1629. ,TP_PM_GroutingDailyDetail.UserCode as GroutingUserCode
  1630. ,TP_PM_GroutingDailyDetail.GroutingCount as GroutingNum
  1631. ,0 as IsPublicBody
  1632. ,0 as IsReFire
  1633. ,TP_PC_GroutingLine.GMouldTypeID
  1634. ,TP_PM_GroutingDailyDetail.SpecialRepairFlag
  1635. from TP_PM_GroutingDailyDetail
  1636. left join TP_PC_GroutingLine
  1637. on TP_PM_GroutingDailyDetail.GroutingLineID=TP_PC_GroutingLine.GroutingLineID
  1638. where TP_PM_GroutingDailyDetail.barcode=:barcode";
  1639. OracleParameter[] paras = new OracleParameter[]{
  1640. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1641. };
  1642. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1643. return ds;
  1644. }
  1645. catch (Exception ex)
  1646. {
  1647. throw ex;
  1648. }
  1649. finally
  1650. {
  1651. if (con.ConnState == ConnectionState.Open)
  1652. {
  1653. con.Close();
  1654. }
  1655. }
  1656. }
  1657. /// <summary>
  1658. /// 获取编辑的生产数据ID与列表所选生产数据ID做比较
  1659. /// </summary>
  1660. /// <param name="barcode">产品条码</param>
  1661. /// <returns>int</returns>
  1662. public static int GetCompleteProductionDataID(string barcode)
  1663. {
  1664. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1665. try
  1666. {
  1667. con.Open();
  1668. string sqlString = @"select
  1669. ProductionDataID
  1670. from TP_PM_InProduction
  1671. where
  1672. TP_PM_InProduction.BarCode=:BarCode
  1673. union
  1674. select
  1675. ProductionDataID
  1676. from Tp_Pm_Inproductiontrash
  1677. where
  1678. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1679. ";
  1680. OracleParameter[] paras = new OracleParameter[]{
  1681. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1682. };
  1683. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1684. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1685. {
  1686. return Convert.ToInt32(ds.Tables[0].Rows[0]["ProductionDataID"]);
  1687. }
  1688. else
  1689. {
  1690. return 0;
  1691. }
  1692. }
  1693. catch (Exception ex)
  1694. {
  1695. throw ex;
  1696. }
  1697. finally
  1698. {
  1699. if (con.ConnState == ConnectionState.Open)
  1700. {
  1701. con.Close();
  1702. }
  1703. }
  1704. }
  1705. /// <summary>
  1706. /// 获取在产产品的信息标识列表
  1707. /// </summary>
  1708. /// <param name="barcode">产品条码</param>
  1709. /// <returns>int</returns>
  1710. public static DataSet GetInProductionDataList(string barcode)
  1711. {
  1712. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1713. try
  1714. {
  1715. con.Open();
  1716. string sqlString = @"select
  1717. BarCode,
  1718. FlowProcedureID,
  1719. FlowProcedureTime,
  1720. ProcedureID,
  1721. ProcedureTime,
  1722. ProductionDataID,
  1723. IsReFire,
  1724. SpecialRepairFlag
  1725. from TP_PM_InProduction
  1726. where
  1727. TP_PM_InProduction.BarCode=:BarCode
  1728. ";
  1729. OracleParameter[] paras = new OracleParameter[]{
  1730. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1731. };
  1732. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1733. return ds;
  1734. }
  1735. catch (Exception ex)
  1736. {
  1737. throw ex;
  1738. }
  1739. finally
  1740. {
  1741. if (con.ConnState == ConnectionState.Open)
  1742. {
  1743. con.Close();
  1744. }
  1745. }
  1746. }
  1747. /// <summary>
  1748. /// 成检时获取此条码是否报损
  1749. /// <param name="barcode">产品条码</param>
  1750. /// </summary>
  1751. /// <returns>int</returns>
  1752. public static int CheckScrapProduct(string barcode)
  1753. {
  1754. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1755. try
  1756. {
  1757. con.Open();
  1758. string sqlString = @"select auditstatus from tp_pm_scrapproduct where auditstatus in(0,1) and valueflag=1 and goodsleveltypeid=8 and barcode=:barcode and recyclingflag=0";
  1759. OracleParameter[] paras = new OracleParameter[]{
  1760. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1761. };
  1762. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1763. if (ds != null && ds.Tables[0].Rows.Count > 0)
  1764. {
  1765. return Convert.ToInt32(ds.Tables[0].Rows[0]["auditstatus"]);
  1766. }
  1767. return -100;
  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. /// 获取产品完成工序的ID(PDA)
  1783. /// </summary>
  1784. /// <param name="barcode">产品条码</param>
  1785. /// <returns>int</returns>
  1786. public static DataSet GetCompleteProcedureIDPDA(string barcode)
  1787. {
  1788. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1789. try
  1790. {
  1791. con.Open();
  1792. int procedureID = int.Parse(con.GetSqlResultToStr("select procedureID from TP_PM_INPRODUCTION where barcode='"+ barcode + "'",null));
  1793. if (procedureID == 40 || procedureID == 6 || procedureID == 31 || procedureID == 16 || procedureID == 28 ||
  1794. procedureID == 60 || procedureID == 61)
  1795. {
  1796. DataSet dss = new DataSet();
  1797. DataTable dt = new DataTable();
  1798. dss.Tables.Add(dt);
  1799. return dss;
  1800. }
  1801. string sqlString = @"select
  1802. FlowProcedureID as
  1803. CompleteProcedureID,
  1804. ProductionDataID,
  1805. ProcedureID,
  1806. OPTimeStamp,
  1807. to_char(OPTimeStamp,'DD-MM-YYHH12.MI.SS.FFAM') as ConvertOPTimeStamp
  1808. from TP_PM_InProduction
  1809. where
  1810. TP_PM_InProduction.BarCode=:BarCode
  1811. union
  1812. select
  1813. FlowProcedureID as
  1814. CompleteProcedureID,
  1815. ProductionDataID,
  1816. ProcedureID,
  1817. OPTimeStamp,
  1818. to_char(OPTimeStamp,'DD-MM-YYHH12.MI.SS.FFAM') as ConvertOPTimeStamp
  1819. from Tp_Pm_Inproductiontrash
  1820. where
  1821. Tp_Pm_Inproductiontrash.BarCode=:BarCode
  1822. ";
  1823. OracleParameter[] paras = new OracleParameter[]{
  1824. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1825. };
  1826. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1827. return ds;
  1828. }
  1829. catch (Exception ex)
  1830. {
  1831. throw ex;
  1832. }
  1833. finally
  1834. {
  1835. if (con.ConnState == ConnectionState.Open)
  1836. {
  1837. con.Close();
  1838. }
  1839. }
  1840. }
  1841. /// <summary>
  1842. /// 成检时获取条码的产品信息(成检(正品)--报损-->干补-->成检)
  1843. /// </summary>
  1844. /// <param name="barcode">产品条码</param>
  1845. /// <returns>int</returns>
  1846. public static DataSet GetGoodsInfoBybarcode(string barcode)
  1847. {
  1848. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1849. try
  1850. {
  1851. con.Open();
  1852. string sqlString = @"select
  1853. GoodsID,GoodsCode,GoodsName,
  1854. (
  1855. select
  1856. TP_PM_InProduction.SpecialRepairFlag
  1857. from TP_PM_InProduction
  1858. where TP_PM_InProduction.BarCode=:BarCode
  1859. ) SpecialRepairFlag,
  1860. (
  1861. select
  1862. TP_PM_InProduction.IsReFire
  1863. from TP_PM_InProduction
  1864. where TP_PM_InProduction.BarCode=:BarCode
  1865. ) IsReFire,
  1866. tp_mst_logo.logoid,
  1867. tp_mst_logo.logocode,
  1868. tp_mst_logo.logoname,
  1869. TP_PM_GroutingDailyDetail.UserCode,
  1870. TP_PM_GroutingDailyDetail.GroutingMouldCode as MouldCode,
  1871. TP_PM_GroutingDailyDetail.GroutingCount,
  1872. TP_PM_GroutingDailyDetail.GroutingDate
  1873. from TP_PM_GroutingDailyDetail
  1874. left join tp_mst_logo
  1875. on TP_PM_GroutingDailyDetail.logoid=tp_mst_logo.logoid
  1876. where
  1877. TP_PM_GroutingDailyDetail.BarCode=:BarCode
  1878. ";
  1879. OracleParameter[] paras = new OracleParameter[]{
  1880. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  1881. };
  1882. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  1883. return ds;
  1884. }
  1885. catch (Exception ex)
  1886. {
  1887. throw ex;
  1888. }
  1889. finally
  1890. {
  1891. if (con.ConnState == ConnectionState.Open)
  1892. {
  1893. con.Close();
  1894. }
  1895. }
  1896. }
  1897. /// <summary>
  1898. /// 生成盘点明细
  1899. /// </summary>
  1900. /// <param name="ProcedureIDS">工序ID集</param>
  1901. /// <param name="sUserInfo">用户基本信息</param>
  1902. /// <returns></returns>
  1903. public static DataSet GetInCheckedDetail(string ProcedureIDS, SUserInfo sUserInfo)
  1904. {
  1905. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1906. try
  1907. {
  1908. con.Open();
  1909. string sqlString = @"select
  1910. TP_PM_InProduction.BarCode,
  1911. TP_PM_InProduction.ProductionLineID,
  1912. TP_PM_InProduction.ProductionLineCode,
  1913. TP_PM_InProduction.ProductionLineName,
  1914. TP_PM_InProduction.FlowProcedureID,
  1915. TP_PM_InProduction.ProcedureID,
  1916. TP_PM_InProduction.ProcedureModel,
  1917. TP_PM_InProduction.ModelType,
  1918. TP_PM_InProduction.GoodsID,
  1919. TP_PM_InProduction.GoodsCode,
  1920. TP_PM_InProduction.GoodsName,
  1921. TP_PM_InProduction.GroutingDate,
  1922. TP_PM_InProduction.GroutingLineCode,
  1923. TP_PM_InProduction.GroutingLineName,
  1924. TP_PM_InProduction.GroutingMouldCode,
  1925. TP_PM_InProduction.GroutingUserCode,
  1926. TP_PM_InProduction.GroutingNum,
  1927. TP_PM_InProduction.KilnCode,
  1928. TP_PM_InProduction.KilnName,
  1929. TP_PM_InProduction.KilnCarCode,
  1930. TP_PM_InProduction.KilnCarName,
  1931. TP_PM_InProduction.IsPublicBody,
  1932. TP_PM_InProduction.IsReFire,
  1933. TP_PM_InProduction.SpecialRepairFlag,
  1934. TP_PC_Procedure.ProcedureName
  1935. from TP_PM_InProduction
  1936. left join TP_PC_Procedure
  1937. on TP_PM_InProduction.FlowProcedureID=TP_PC_Procedure.ProcedureID where TP_PM_InProduction.accountid=:accountid
  1938. ";
  1939. List<OracleParameter> parameters = new List<OracleParameter>();
  1940. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  1941. // 工序IDS
  1942. if (!string.IsNullOrEmpty(ProcedureIDS))
  1943. {
  1944. sqlString += "AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.FlowProcedureID||',')>0 ";
  1945. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, ProcedureIDS, ParameterDirection.Input));
  1946. }
  1947. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  1948. return ds;
  1949. }
  1950. catch (Exception ex)
  1951. {
  1952. throw ex;
  1953. }
  1954. finally
  1955. {
  1956. if (con.ConnState == ConnectionState.Open)
  1957. {
  1958. con.Close();
  1959. }
  1960. }
  1961. }
  1962. /// <summary>
  1963. /// 获取盘点单列表
  1964. /// </summary>
  1965. /// <param name="sUserInfo"></param>
  1966. /// <returns></returns>
  1967. public static DataSet GetInCheckedList(SUserInfo sUserInfo)
  1968. {
  1969. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1970. try
  1971. {
  1972. con.Open();
  1973. string sqlString = @"select InCheckedID,InCheckedNo,AccountDate from TP_PM_InChecked where accountid=:accountid and ValueFlag=1";
  1974. List<OracleParameter> parameters = new List<OracleParameter>();
  1975. parameters.Add(new OracleParameter(":accountid", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  1976. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  1977. return ds;
  1978. }
  1979. catch (Exception ex)
  1980. {
  1981. throw ex;
  1982. }
  1983. finally
  1984. {
  1985. if (con.ConnState == ConnectionState.Open)
  1986. {
  1987. con.Close();
  1988. }
  1989. }
  1990. }
  1991. /// <summary>
  1992. /// 获取盘点单工号列表
  1993. /// </summary>
  1994. /// <param name="sUserInfo"></param>
  1995. /// <returns></returns>
  1996. public static DataSet GetInCheckedUserList(int InCheckedID, SUserInfo sUserInfo)
  1997. {
  1998. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  1999. try
  2000. {
  2001. con.Open();
  2002. string sqlString = @"select tp_pm_incheckeduser.InCheckedID,tp_pm_incheckeduser.UserID,tp_pm_incheckeduser.UserCode,
  2003. tp_mst_user.UserName from tp_pm_incheckeduser
  2004. left join tp_mst_user on tp_pm_incheckeduser.userid=tp_mst_user.userid
  2005. where tp_pm_incheckeduser.InCheckedID=:InCheckedID";
  2006. List<OracleParameter> parameters = new List<OracleParameter>();
  2007. parameters.Add(new OracleParameter(":InCheckedID", OracleDbType.Int32, InCheckedID, ParameterDirection.Input));
  2008. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  2009. return ds;
  2010. }
  2011. catch (Exception ex)
  2012. {
  2013. throw ex;
  2014. }
  2015. finally
  2016. {
  2017. if (con.ConnState == ConnectionState.Open)
  2018. {
  2019. con.Close();
  2020. }
  2021. }
  2022. }
  2023. /// <summary>
  2024. /// 获取主表盘点信息
  2025. /// </summary>
  2026. /// <param name="entity">盘点类</param>
  2027. /// <param name="sUserInfo">用户基本信息</param>
  2028. /// <returns></returns>
  2029. public static DataSet GetAllInChecked(InCheckedEntity entity, SUserInfo sUserInfo)
  2030. {
  2031. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2032. try
  2033. {
  2034. oracleConn.Open();
  2035. OracleParameter[] paras = new OracleParameter[]{
  2036. new OracleParameter("in_inCheckedNo",OracleDbType.NVarchar2, entity.InCheckedNo,ParameterDirection.Input),
  2037. new OracleParameter("in_inCheckedName",OracleDbType.NVarchar2, entity.InCheckedName,ParameterDirection.Input),
  2038. new OracleParameter("in_remarks",OracleDbType.NVarchar2, entity.Remarks,ParameterDirection.Input),
  2039. new OracleParameter("in_begindate",OracleDbType.Date, entity.BeginDate,ParameterDirection.Input),
  2040. new OracleParameter("in_enddate",OracleDbType.Date,entity.EndDate,ParameterDirection.Input),
  2041. new OracleParameter("out_result",OracleDbType.RefCursor, ParameterDirection.Output),
  2042. new OracleParameter("in_accountID",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2043. new OracleParameter("in_userID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  2044. };
  2045. DataSet returnDataSet = oracleConn.ExecStoredProcedure("PRO_PM_GetInChecked", paras);
  2046. return returnDataSet;
  2047. }
  2048. catch (Exception ex)
  2049. {
  2050. throw ex;
  2051. }
  2052. finally
  2053. {
  2054. if (oracleConn.ConnState == ConnectionState.Open)
  2055. {
  2056. oracleConn.Close();
  2057. }
  2058. }
  2059. }
  2060. /// <summary>
  2061. /// 获取盘点单名细信息
  2062. /// </summary>
  2063. /// <param name="InCheckedID">盘点单号</param>
  2064. /// <returns></returns>
  2065. public static DataSet GetAllInCheckedDetail(int inCheckedID)
  2066. {
  2067. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2068. try
  2069. {
  2070. oracleConn.Open();
  2071. string sql = @"select
  2072. TP_PM_InCheckedDetail.InCheckedID,
  2073. 0 as Sel,
  2074. TP_PM_InCheckedDetail.BarCode,
  2075. TP_PM_InCheckedDetail.InCheckedNo,
  2076. TP_PM_InCheckedDetail.ProductionLineCode,
  2077. TP_PM_InCheckedDetail.ProductionLineName,
  2078. TP_PC_Procedure.ProcedureName,
  2079. decode(TP_PM_InCheckedDetail.ProcedureModel, '1', '计件模型' , '检验模型') as ProcedureModel,
  2080. decode(TP_PM_InCheckedDetail.DefectFlag, '1', '无缺陷' , '有缺陷') as DefectFlag,
  2081. TP_PM_InCheckedDetail.IsPublicBody,
  2082. TP_PM_InCheckedDetail.IsReFire,
  2083. TP_PM_InCheckedDetail.SpecialRepairFlag,
  2084. TP_PM_InCheckedDetail.GoodsCode,
  2085. TP_PM_InCheckedDetail.GoodsName,
  2086. TP_PM_InCheckedDetail.GroutingDate,
  2087. TP_PM_InCheckedDetail.GroutingLineCode,
  2088. TP_PM_InCheckedDetail.GroutingLineName,
  2089. TP_PM_InCheckedDetail.GroutingMouldCode,
  2090. TP_PM_InCheckedDetail.GroutingUserCode,
  2091. TP_PM_InCheckedDetail.GroutingNum,
  2092. TP_PM_InCheckedDetail.KilnCode,
  2093. TP_PM_InCheckedDetail.KilnName,
  2094. TP_PM_InCheckedDetail.KilnCarCode,
  2095. TP_PM_InCheckedDetail.KilnCarName,
  2096. decode(TP_PM_InCheckedDetail.InCheckedFlag, '0', '未盘点' , '1','已盘点','盘盈') as InCheckedFlagName,
  2097. TP_PM_InCheckedDetail.InCheckedFlag,
  2098. TP_PM_InCheckedDetail.CheckedDate,
  2099. Tp_mst_user.usercode CheckedUserCode,
  2100. u.usercode,
  2101. inpu.usercode cusercode,
  2102. TP_PM_InCheckedDetail.ProcedureTime,
  2103. TP_PM_InCheckedDetail.IsReworkFlag,
  2104. TP_PM_InCheckedDetail.InScrapFlag,
  2105. --xuwei add 2021-01-31
  2106. CASE TP_PM_InCheckedDetail.GOODSLEVELTYPEID
  2107. when 1 then '无缺陷'
  2108. when 2 then '有缺陷'
  2109. when 4 then '正品'
  2110. when 5 then '副品'
  2111. when 6 then '重烧'
  2112. when 9 then '干补'
  2113. else ''
  2114. END AS GOODSLEVELTYPE,
  2115. decode(sp.SCRAPPRODUCTID, null, 0, 1) SCRAPPRODUCTID,
  2116. su.usercode susercode,
  2117. spin.CREATETIME sdatetime,
  2118. decode(spin.AUDITSTATUS,1, au.usercode , null) ausercode,
  2119. spin.AUDITDATE adatetime,gt.goodstypename
  2120. --,inpp.procedurename currentprocedurename
  2121. --,inp.proceduretime currentproceduretime" + "\n" +
  2122. " ,case when inp.barcode is not null then to_char(inpp.procedurename) " +
  2123. " when sp.barcode is not null then to_char(glt.goodsleveltypename) " +
  2124. " when fp.barcode is not null then '生产完成' else '' end currentprocedurename -- 当前工序\n" +
  2125. " ,case when inp.barcode is not null then inp.PROCEDURETIME " +
  2126. " when sp.barcode is not null then sp.auditdate " +
  2127. " when fp.barcode is not null then fp.createtime else null end currentproceduretime -- 当前工序时间\n" +
  2128. //2021年12月21日13:18:31 by fy modify 次品、不合格、不合格(返)、损坯 增加一列【报废工序】
  2129. //begin
  2130. " ,case when sp.barcode is not null and sp.goodsleveltypeid in (7,8,13,14) then sp.procedurename else null end scrapprocedurename\n" +
  2131. //end
  2132. @"from TP_PM_InCheckedDetail
  2133. left join tp_mst_goods g on TP_PM_InCheckedDetail.goodsid = g.goodsid
  2134. left join tp_mst_goodstype gt on gt.goodstypeid = g.goodstypeid
  2135. left join TP_PC_Procedure
  2136. on TP_PM_InCheckedDetail.ProcedureID=TP_PC_Procedure.ProcedureID
  2137. left join Tp_mst_user
  2138. on TP_PM_InCheckedDetail.CheckedUserID=Tp_mst_user.userid
  2139. left join Tp_mst_user u
  2140. on TP_PM_InCheckedDetail.UserID=u.userid
  2141. left join TP_PM_SCRAPPRODUCT spin
  2142. -- on spin.barcode = TP_PM_InCheckedDetail.BarCode
  2143. on spin.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid
  2144. and spin.GOODSLEVELTYPEID = 8 and spin.AUDITSTATUS in (0,1)
  2145. and spin.valueflag = '1' and spin.RECYCLINGFLAG = '0'
  2146. left join Tp_mst_user su on su.userid = spin.CREATEUSERID
  2147. left join Tp_mst_user au on au.userid = spin.AUDITOR
  2148. LEFT JOIN Tp_Pm_Inproduction inp
  2149. --ON inp.barcode = TP_PM_InCheckedDetail.Barcode
  2150. ON inp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid" +
  2151. // 完成 groutingdailydetailid
  2152. " LEFT JOIN tp_pm_finishedproduct fp \n" +
  2153. //" ON inp.barcode is null and fp.barcode = TP_PM_InCheckedDetail.barcode\n" +
  2154. " ON inp.barcode is null and fp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid\n" +
  2155. // 损坯
  2156. " LEFT JOIN tp_pm_scrapproduct sp \n" +
  2157. //" ON inp.barcode is null and fp.barcode is null and sp.barcode = TP_PM_InCheckedDetail.barcode\n" +
  2158. " ON inp.barcode is null and fp.barcode is null and sp.groutingdailydetailid = TP_PM_InCheckedDetail.groutingdailydetailid\n" +
  2159. " AND sp.valueflag = '1'\n" +
  2160. " AND sp.auditstatus = 1\n" +
  2161. " AND sp.goodsleveltypeid <> 9\n" +
  2162. " AND sp.RECYCLINGFLAG = '0'\n" +
  2163. " LEFT JOIN tp_sys_goodsleveltype glt \n" +
  2164. " ON glt.goodsleveltypeid = sp.goodsleveltypeid\n" +
  2165. @"LEFT JOIN tp_pc_procedure inpp
  2166. ON inpp.procedureid = inp.procedureid
  2167. left join Tp_mst_user inpu
  2168. on inp.UserID=inpu.userid
  2169. where InCheckedID=:InCheckedID and TP_PM_InCheckedDetail.valueflag=1 and TP_PM_InCheckedDetail.InCheckedFlag = :InCheckedFlag
  2170. ";
  2171. OracleParameter[] paras = new OracleParameter[]{
  2172. new OracleParameter(":InCheckedFlag",OracleDbType.Int32,(int)Constant.InCheckedFlag.InCheckedNo,ParameterDirection.Input),
  2173. new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
  2174. };
  2175. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2176. paras[0].Value = (int)Constant.InCheckedFlag.InCheckeded;
  2177. returnDataSet.Tables.Add(oracleConn.GetSqlResultToDt(sql, paras));
  2178. paras[0].Value = (int)Constant.InCheckedFlag.InCheckedWin;
  2179. returnDataSet.Tables.Add(oracleConn.GetSqlResultToDt(sql, paras));
  2180. sql = @"select tp_pm_incheckeduser.InCheckedID,tp_pm_incheckeduser.UserID,tp_pm_incheckeduser.UserCode,
  2181. tp_mst_user.UserName from tp_pm_incheckeduser
  2182. left join tp_mst_user on tp_pm_incheckeduser.userid=tp_mst_user.userid
  2183. where tp_pm_incheckeduser.InCheckedID=:InCheckedID";
  2184. paras = new OracleParameter[]{
  2185. new OracleParameter(":InCheckedID",OracleDbType.Int32,inCheckedID,ParameterDirection.Input),
  2186. };
  2187. DataTable userTable = oracleConn.GetSqlResultToDt(sql, paras);
  2188. userTable.TableName = "UserTable";
  2189. returnDataSet.Tables.Add(userTable);
  2190. return returnDataSet;
  2191. }
  2192. catch (Exception ex)
  2193. {
  2194. throw ex;
  2195. }
  2196. finally
  2197. {
  2198. if (oracleConn.ConnState == ConnectionState.Open)
  2199. {
  2200. oracleConn.Close();
  2201. }
  2202. }
  2203. }
  2204. /// <summary>
  2205. /// 获取盘点单名细信息
  2206. /// </summary>
  2207. /// <param name="InCheckedID">盘点单号</param>
  2208. /// <returns></returns>
  2209. public static DataSet GetGroutingInfoBybarcode(string barcode, SUserInfo sUserInfo)
  2210. {
  2211. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2212. try
  2213. {
  2214. oracleConn.Open();
  2215. // Flowprocedureid 换成 procedureid,干补特殊,会不一样,别的都一样
  2216. string sql = @"select
  2217. gdd.barcode,
  2218. gdd.GoodsCode,
  2219. gdd.UserCode,
  2220. gdd.GroutingDate,
  2221. gdd.GroutingMouldCode,
  2222. logo.logoname -- 商标
  2223. --,g.MaterialCode || logo.TagCode || gdd.OnlyCode OutOnlyCode -- 外包装唯一码
  2224. ,nvl(gdd.outlabelcode, g.MaterialCode || (select a.workcode from tp_mst_account a where a.accountid = gdd.accountid) || logo.TagCode || gdd.OnlyCode) OutOnlyCode
  2225. ,tp_pc_procedure.procedurename
  2226. from TP_PM_GroutingDailyDetail gdd
  2227. INNER JOIN tp_mst_goods g
  2228. ON g.goodsid = gdd.goodsid
  2229. LEFT JOIN tp_mst_logo logo
  2230. ON logo.logoid = gdd.logoid
  2231. left join TP_PM_InProduction
  2232. on gdd.barcode=TP_PM_InProduction.barcode
  2233. left join tp_pc_procedure
  2234. on TP_PM_InProduction.procedureid=tp_pc_procedure.procedureid
  2235. where gdd.barcode=FUN_CMN_GetBarCode(:barcode,null,:accountid) and gdd.valueflag=1 and gdd.scrapflag=0
  2236. ";
  2237. OracleParameter[] paras = new OracleParameter[]{
  2238. new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  2239. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  2240. };
  2241. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2242. return returnDataSet;
  2243. }
  2244. catch (Exception ex)
  2245. {
  2246. throw ex;
  2247. }
  2248. finally
  2249. {
  2250. if (oracleConn.ConnState == ConnectionState.Open)
  2251. {
  2252. oracleConn.Close();
  2253. }
  2254. }
  2255. }
  2256. /// <summary>
  2257. /// 获取盘点单名细信息
  2258. /// </summary>
  2259. /// <param name="InCheckedID">盘点单号</param>
  2260. /// <returns></returns>
  2261. public static DataSet GetFinishedProductGroutingInfoBybarcode(string barcode, SUserInfo sUserInfo)
  2262. {
  2263. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2264. try
  2265. {
  2266. oracleConn.Open();
  2267. string sql = @"select
  2268. gdd.barcode,
  2269. gdd.GoodsCode,
  2270. gdd.UserCode,
  2271. gdd.GroutingDate,
  2272. gdd.GroutingMouldCode,
  2273. logo.logoname -- 商标
  2274. --,g.MaterialCode || logo.TagCode || gdd.OnlyCode OutOnlyCode -- 外包装唯一码
  2275. ,nvl(gdd.outlabelcode, g.MaterialCode || (select a.workcode from tp_mst_account a where a.accountid = gdd.accountid) || logo.TagCode || gdd.OnlyCode) OutOnlyCode
  2276. ,tp_pc_procedure.procedurename
  2277. from TP_PM_GroutingDailyDetail gdd
  2278. INNER JOIN tp_mst_goods g
  2279. ON g.goodsid = gdd.goodsid
  2280. LEFT JOIN tp_mst_logo logo
  2281. ON logo.logoid = gdd.logoid
  2282. left join TP_PM_InProduction
  2283. on gdd.barcode=TP_PM_InProduction.barcode
  2284. left join tp_pc_procedure
  2285. on TP_PM_InProduction.Flowprocedureid=tp_pc_procedure.procedureid
  2286. where gdd.barcode=FUN_CMN_GetBarCode(:barcode,null,:accountid) and gdd.valueflag=1 and gdd.scrapflag=0
  2287. ";
  2288. OracleParameter[] paras = new OracleParameter[]{
  2289. new OracleParameter(":barcode",OracleDbType.Varchar2,barcode,ParameterDirection.Input),
  2290. new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  2291. };
  2292. DataSet returnDataSet = oracleConn.GetSqlResultToDs(sql, paras);
  2293. return returnDataSet;
  2294. }
  2295. catch (Exception ex)
  2296. {
  2297. throw ex;
  2298. }
  2299. finally
  2300. {
  2301. if (oracleConn.ConnState == ConnectionState.Open)
  2302. {
  2303. oracleConn.Close();
  2304. }
  2305. }
  2306. }
  2307. #region 清除在产残留数据
  2308. /// <summary>
  2309. /// 取得PM2108画面(在产品明细表)的查询数据
  2310. /// </summary>
  2311. /// <param name="user">登录用户信息</param>
  2312. /// <param name="se">查询条件</param>
  2313. /// <returns>查询结果</returns>
  2314. public static ServiceResultEntity GetPM2108Data(SUserInfo user, RPT010401_SE se)
  2315. {
  2316. IDBConnection conn = null;
  2317. try
  2318. {
  2319. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2320. List<OracleParameter> parameters = new List<OracleParameter>();
  2321. StringBuilder sql = new StringBuilder(PMModuleLogic.GetRPT010401SSQL());
  2322. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2323. sql.Append(" and TP_PM_InProduction.modeltype not in (1,2,3) ");
  2324. if (se != null)
  2325. {
  2326. //生产线IDS
  2327. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2328. {
  2329. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||TP_PM_InProduction.ProductionLineID||',')>0 ");
  2330. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2331. }
  2332. //完成工序IDS
  2333. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2334. {
  2335. sql.Append(" AND instr(','||:ProcedureIDS||',',','||TP_PM_InProduction.ProcedureID||',')>0 ");
  2336. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2337. }
  2338. // 生产时间--开始
  2339. if (se.UpdateTimeStart.HasValue)
  2340. {
  2341. sql.Append(" AND TP_PM_InProduction.Proceduretime >= :UpdateTimeStart ");
  2342. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2343. }
  2344. // 生产时间--结束
  2345. if (se.UpdateTimeEnd.HasValue)
  2346. {
  2347. sql.Append(" AND TP_PM_InProduction.Proceduretime <= :UpdateTimeEnd ");
  2348. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2349. }
  2350. //产品条码
  2351. if (!string.IsNullOrEmpty(se.Barcode))
  2352. {
  2353. sql.Append(" AND instr(TP_PM_InProduction.barcode,:barcode)>0 ");
  2354. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2355. }
  2356. sql.Append(" AND TP_PM_InProduction.inscrapflag=0 ");
  2357. }
  2358. sql.Append(" order by TP_PM_InProduction.UpdateTime desc");
  2359. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2360. ServiceResultEntity sre = new ServiceResultEntity();
  2361. if (data == null || data.Rows.Count == 0)
  2362. {
  2363. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2364. return sre;
  2365. }
  2366. sre.Data = new DataSet();
  2367. sre.Data.Tables.Add(data);
  2368. return sre;
  2369. }
  2370. catch (Exception ex)
  2371. {
  2372. throw ex;
  2373. }
  2374. finally
  2375. {
  2376. if (conn != null &&
  2377. conn.ConnState == ConnectionState.Open)
  2378. {
  2379. conn.Close();
  2380. }
  2381. }
  2382. }
  2383. /// <summary>
  2384. /// 获取RPT010401画面(在产品明细表)的查询sql
  2385. /// </summary>
  2386. /// <returns>sql</returns>
  2387. private static string GetRPT010401SSQL()
  2388. {
  2389. string selSql =
  2390. "SELECT 0 as Sel," +
  2391. " TP_PM_InProduction.BarCode, " +
  2392. " TP_PM_InProduction.GoodsID,TP_PM_InProduction.GoodsCode, " +
  2393. " TP_PM_InProduction.GoodsName, " +
  2394. " TP_PM_InProduction.Userid,A.USERNAME as UserName,A.USERCode as UserCode, " +
  2395. " TP_PM_InProduction.ProductionLineID, " +
  2396. " TP_PM_InProduction.ProductionLineCode, " +
  2397. " TP_PM_InProduction.ProductionLineName, " +
  2398. " TP_PM_InProduction.ModelType, " +
  2399. " decode(TP_PM_InProduction.inscrapflag , '1', '待审核的报废品' , '正常') as inscrapflag, " +
  2400. //" decode(TP_PM_InProduction.IsPublicBody, '1', '是' , '否') as IsPublicBody, " +
  2401. //" decode(TP_PM_InProduction.IsReFire, '1', '是' , '否') as IsReFire, " +
  2402. " TP_PM_InProduction.IsPublicBody, " +
  2403. " TP_PM_InProduction.IsReFire, " +
  2404. " decode(TP_PM_InProduction.CanManyTimes, '1', '能' , '不能') as CanManyTimes, " +
  2405. " decode(TP_PM_InProduction.ProcedureModel, '1', '计件模型' , '检验模型') as ProcedureModel, " +
  2406. " TP_PM_InProduction.GroutingDailyID, " +
  2407. " TP_PM_InProduction.GroutingDailyDetailID, " +
  2408. " TP_PM_InProduction.GroutingDate, " +
  2409. " TP_PM_InProduction.GroutingLineID, " +
  2410. " TP_PM_InProduction.GroutingLineCode, " +
  2411. " TP_PM_InProduction.GroutingLineName, " +
  2412. " TP_PM_InProduction.ProcedureID CompleteProcedureID, " +
  2413. " D.ProcedureName as CompleteProcedureName, " +
  2414. " TP_PM_InProduction.GMouldTypeID, " +
  2415. " TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName, " +
  2416. " TP_PM_InProduction.GroutingLineDetailID, " +
  2417. " TP_PM_InProduction.GroutingMouldCode, " +
  2418. " TP_PM_InProduction.SPECIALREPAIRFLAG, " +
  2419. " TP_PM_InProduction.GROUTINGUSERCODE, " +
  2420. " TP_PM_GroutingDailyDetail.GROUTINGCOUNT, " +
  2421. " TP_PM_InProduction.Remarks, " +
  2422. " TP_PM_InProduction.GoodsLevelID,TP_MST_GoodsLevel.GOODSLEVELNAME, " +
  2423. " TP_PM_InProduction.GoodsLevelTypeID,TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME, " +
  2424. " TP_PM_InProduction.AccountID,TP_PM_InProduction.ValueFlag, " +
  2425. " TP_PM_InProduction.CreateTime,TP_PM_InProduction.CreateUserID,B.USERNAME as CreateUserName, " +
  2426. " TP_PM_InProduction.PROCEDURETIME AS UpdateTime,TP_PM_InProduction.UpdateUserID,C.USERNAME as UpdateUserName, " +
  2427. " TP_PM_InProduction.IsReworkFlag " +
  2428. "FROM TP_PM_InProduction " +
  2429. " inner join TP_MST_User A on A.UserID=TP_PM_InProduction.Userid " +
  2430. " inner join TP_MST_User B on B.UserID=TP_PM_InProduction.CreateUserID " +
  2431. " inner join TP_MST_User C on C.UserID=TP_PM_InProduction.UpdateUserID " +
  2432. " inner join TP_PC_Procedure D on D.PROCEDUREID=TP_PM_InProduction.ProcedureID " +
  2433. " inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID=TP_PM_InProduction.GMouldTypeID " +
  2434. " inner join TP_SYS_ProcedureModelType on TP_SYS_ProcedureModelType.ProcedureModelTypeID=TP_PM_InProduction.ModelType " +
  2435. " inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID=TP_PM_InProduction.GroutingDailyID " +
  2436. " inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid=TP_PM_InProduction.GroutingDailyDetailID " +
  2437. " inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid=TP_PM_InProduction.GroutingLineDetailID " +
  2438. " inner join TP_MST_Account on TP_MST_Account.Accountid=TP_PM_InProduction.Accountid " +
  2439. " left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID=TP_PM_InProduction.GoodsLevelID " +
  2440. " left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID=TP_PM_InProduction.GoodsLevelTypeID " +
  2441. " Where 1=1 and TP_PM_InProduction.ValueFlag = 1 " +
  2442. " and TP_PM_InProduction.AccountID=:AccountID ";
  2443. return selSql;
  2444. }
  2445. #endregion
  2446. #region 清除在产回收站数据
  2447. public static ServiceResultEntity GetPM2110Data(SUserInfo user, FPM2110_SE se)
  2448. {
  2449. IDBConnection conn = null;
  2450. try
  2451. {
  2452. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2453. List<OracleParameter> parameters = new List<OracleParameter>();
  2454. StringBuilder sql = new StringBuilder(PMModuleLogic.GetPM2110SQL());
  2455. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2456. if (se != null)
  2457. {
  2458. //生产线IDS
  2459. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2460. {
  2461. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||Tp_Pm_Inproductiontrash.ProductionLineID||',')>0 ");
  2462. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2463. }
  2464. //完成工序IDS
  2465. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2466. {
  2467. sql.Append(" AND instr(','||:ProcedureIDS||',',','||Tp_Pm_Inproductiontrash.ProcedureID||',')>0 ");
  2468. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2469. }
  2470. // 生产时间--开始
  2471. if (se.UpdateTimeStart.HasValue)
  2472. {
  2473. sql.Append(" AND Tp_Pm_Inproductiontrash.Proceduretime >= :UpdateTimeStart ");
  2474. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2475. }
  2476. // 生产时间--结束
  2477. if (se.UpdateTimeEnd.HasValue)
  2478. {
  2479. sql.Append(" AND Tp_Pm_Inproductiontrash.Proceduretime <= :UpdateTimeEnd ");
  2480. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2481. }
  2482. //报废日期开始
  2483. if (se.ScrapDataStart.HasValue)
  2484. {
  2485. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
  2486. parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
  2487. }
  2488. //报废日期结束
  2489. if (se.ScrapDataEnd.HasValue)
  2490. {
  2491. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
  2492. parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
  2493. }
  2494. //产品条码
  2495. if (!string.IsNullOrEmpty(se.Barcode))
  2496. {
  2497. sql.Append(" AND instr(Tp_Pm_Inproductiontrash.barcode,:barcode)>0 ");
  2498. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2499. }
  2500. // 产品分级
  2501. sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
  2502. parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
  2503. }
  2504. sql.Append(" order by Tp_Pm_Inproductiontrash.UpdateTime desc");
  2505. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2506. ServiceResultEntity sre = new ServiceResultEntity();
  2507. if (data == null || data.Rows.Count == 0)
  2508. {
  2509. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2510. return sre;
  2511. }
  2512. sre.Data = new DataSet();
  2513. sre.Data.Tables.Add(data);
  2514. return sre;
  2515. }
  2516. catch (Exception ex)
  2517. {
  2518. throw ex;
  2519. }
  2520. finally
  2521. {
  2522. if (conn != null &&
  2523. conn.ConnState == ConnectionState.Open)
  2524. {
  2525. conn.Close();
  2526. }
  2527. }
  2528. }
  2529. /// <summary>
  2530. /// 获取RPT010401画面(在产品明细表)的查询sql
  2531. /// </summary>
  2532. /// <returns>sql</returns>
  2533. private static string GetPM2110SQL()
  2534. {
  2535. string selSql =
  2536. @"SELECT 0 as Sel,
  2537. Tp_Pm_Inproductiontrash.BarCode,
  2538. Tp_Pm_Inproductiontrash.GoodsID,
  2539. Tp_Pm_Inproductiontrash.GoodsCode,
  2540. Tp_Pm_Inproductiontrash.GoodsName,
  2541. Tp_Pm_Inproductiontrash.Userid,
  2542. A.USERNAME as UserName,
  2543. A.USERCode as UserCode,
  2544. Tp_Pm_Inproductiontrash.ProductionLineID,
  2545. Tp_Pm_Inproductiontrash.ProductionLineCode,
  2546. Tp_Pm_Inproductiontrash.ProductionLineName,
  2547. Tp_Pm_Inproductiontrash.ModelType,
  2548. --decode(Tp_Pm_Inproductiontrash.IsPublicBody, '1', '是', '否') as IsPublicBody,
  2549. --decode(Tp_Pm_Inproductiontrash.IsReFire, '1', '是', '否') as IsReFire,
  2550. Tp_Pm_Inproductiontrash.IsPublicBody,
  2551. Tp_Pm_Inproductiontrash.IsReFire,
  2552. decode(Tp_Pm_Inproductiontrash.CanManyTimes, '1', '能', '不能') as CanManyTimes,
  2553. decode(Tp_Pm_Inproductiontrash.ProcedureModel,
  2554. '1',
  2555. '计件模型',
  2556. '检验模型') as ProcedureModel,
  2557. Tp_Pm_Inproductiontrash.GroutingDailyID,
  2558. Tp_Pm_Inproductiontrash.GroutingDailyDetailID,
  2559. Tp_Pm_Inproductiontrash.GroutingDate,
  2560. Tp_Pm_Inproductiontrash.GroutingLineID,
  2561. Tp_Pm_Inproductiontrash.GroutingLineCode,
  2562. Tp_Pm_Inproductiontrash.GroutingLineName,
  2563. Tp_Pm_Inproductiontrash.ProcedureID CompleteProcedureID,
  2564. D.ProcedureName as CompleteProcedureName,
  2565. Tp_Pm_Inproductiontrash.GMouldTypeID,
  2566. TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName,
  2567. Tp_Pm_Inproductiontrash.GroutingLineDetailID,
  2568. Tp_Pm_Inproductiontrash.GroutingMouldCode,
  2569. Tp_Pm_Inproductiontrash.SPECIALREPAIRFLAG,
  2570. Tp_Pm_Inproductiontrash.GROUTINGUSERCODE,
  2571. TP_PM_GroutingDailyDetail.GROUTINGCOUNT,
  2572. Tp_Pm_Inproductiontrash.Remarks,
  2573. Tp_Pm_Inproductiontrash.GoodsLevelID,
  2574. TP_MST_GoodsLevel.GOODSLEVELNAME,
  2575. Tp_Pm_Inproductiontrash.GoodsLevelTypeID,
  2576. TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME,
  2577. Tp_Pm_Inproductiontrash.AccountID,
  2578. Tp_Pm_Inproductiontrash.ValueFlag,
  2579. Tp_Pm_Inproductiontrash.CreateTime,
  2580. Tp_Pm_Inproductiontrash.CreateUserID,
  2581. B.USERNAME as CreateUserName,
  2582. Tp_Pm_Inproductiontrash.PROCEDURETIME AS UpdateTime,
  2583. Tp_Pm_Inproductiontrash.UpdateUserID,
  2584. C.USERNAME as UpdateUserName
  2585. FROM Tp_Pm_Inproductiontrash
  2586. inner join TP_MST_User A on A.UserID = Tp_Pm_Inproductiontrash.Userid
  2587. inner join TP_MST_User B on B.UserID = Tp_Pm_Inproductiontrash.CreateUserID
  2588. inner join TP_MST_User C on C.UserID = Tp_Pm_Inproductiontrash.UpdateUserID
  2589. inner join TP_PC_Procedure D on D.PROCEDUREID =
  2590. Tp_Pm_Inproductiontrash.ProcedureID
  2591. inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID =
  2592. Tp_Pm_Inproductiontrash.GMouldTypeID
  2593. inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID =
  2594. Tp_Pm_Inproductiontrash.GroutingDailyID
  2595. inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid =
  2596. Tp_Pm_Inproductiontrash.GroutingDailyDetailID
  2597. inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid =
  2598. Tp_Pm_Inproductiontrash.GroutingLineDetailID
  2599. inner join TP_MST_Account on TP_MST_Account.Accountid =
  2600. Tp_Pm_Inproductiontrash.Accountid
  2601. left join TP_PM_SCRAPPRODUCT on TP_PM_SCRAPPRODUCT.barcode=Tp_Pm_Inproductiontrash.barcode
  2602. left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID =
  2603. TP_PM_SCRAPPRODUCT.GoodsLevelID
  2604. left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID =
  2605. TP_PM_SCRAPPRODUCT.GoodsLevelTypeID
  2606. Where 1 = 1
  2607. and Tp_Pm_Inproductiontrash.ValueFlag = 1
  2608. and Tp_Pm_Inproductiontrash.AccountID = :AccountID";
  2609. return selSql;
  2610. }
  2611. #endregion
  2612. #region 清除在产临时表数据
  2613. public static ServiceResultEntity GetPM2112Data(SUserInfo user, FPM2112_SE se)
  2614. {
  2615. IDBConnection conn = null;
  2616. try
  2617. {
  2618. conn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2619. List<OracleParameter> parameters = new List<OracleParameter>();
  2620. StringBuilder sql = new StringBuilder(PMModuleLogic.GetPM2112SQL());
  2621. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input));
  2622. if (se != null)
  2623. {
  2624. //生产线IDS
  2625. if (!string.IsNullOrEmpty(se.ProductionLineIDS))
  2626. {
  2627. sql.Append(" AND instr(','||:ProductionLineIDS||',',','||Tp_Pm_Inproduction_Tmp.ProductionLineID||',')>0 ");
  2628. parameters.Add(new OracleParameter(":ProductionLineIDS", OracleDbType.NVarchar2, se.ProductionLineIDS, ParameterDirection.Input));
  2629. }
  2630. //完成工序IDS
  2631. if (!string.IsNullOrEmpty(se.ProcedureIDS))
  2632. {
  2633. sql.Append(" AND instr(','||:ProcedureIDS||',',','||Tp_Pm_Inproduction_Tmp.ProcedureID||',')>0 ");
  2634. parameters.Add(new OracleParameter(":ProcedureIDS", OracleDbType.NVarchar2, se.ProcedureIDS, ParameterDirection.Input));
  2635. }
  2636. // 生产时间--开始
  2637. if (se.UpdateTimeStart.HasValue)
  2638. {
  2639. sql.Append(" AND Tp_Pm_Inproduction_Tmp.Proceduretime >= :UpdateTimeStart ");
  2640. parameters.Add(new OracleParameter(":UpdateTimeStart", OracleDbType.Date, se.UpdateTimeStart.Value, ParameterDirection.Input));
  2641. }
  2642. // 生产时间--结束
  2643. if (se.UpdateTimeEnd.HasValue)
  2644. {
  2645. sql.Append(" AND Tp_Pm_Inproduction_Tmp.Proceduretime <= :UpdateTimeEnd ");
  2646. parameters.Add(new OracleParameter(":UpdateTimeEnd", OracleDbType.Date, se.UpdateTimeEnd.Value, ParameterDirection.Input));
  2647. }
  2648. //产品条码
  2649. if (!string.IsNullOrEmpty(se.Barcode))
  2650. {
  2651. sql.Append(" AND instr(Tp_Pm_Inproduction_Tmp.barcode,:barcode)>0 ");
  2652. parameters.Add(new OracleParameter(":barcode", OracleDbType.NVarchar2, se.Barcode, ParameterDirection.Input));
  2653. }
  2654. if (se.TrashFlag == 1)
  2655. {
  2656. //报废日期开始
  2657. if (se.ScrapDataStart.HasValue)
  2658. {
  2659. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE >= trunc(:ScrapDateStart) ");
  2660. parameters.Add(new OracleParameter(":ScrapDateStart", OracleDbType.Date, se.ScrapDataStart.Value, ParameterDirection.Input));
  2661. }
  2662. //报废日期结束
  2663. if (se.ScrapDataEnd.HasValue)
  2664. {
  2665. sql.Append(" AND TP_PM_SCRAPPRODUCT.SCRAPDATE <= trunc(:ScrapDateEnd)");
  2666. parameters.Add(new OracleParameter(":ScrapDateEnd", OracleDbType.Date, se.ScrapDataEnd.Value, ParameterDirection.Input));
  2667. }
  2668. }
  2669. // 清除时间
  2670. if (se.DeletedTimeStart.HasValue)
  2671. {
  2672. sql.Append(" AND Tp_Pm_Inproduction_Tmp.deletedtime >= :deletedtime ");
  2673. parameters.Add(new OracleParameter(":deletedtime", OracleDbType.Date, se.DeletedTimeStart.Value, ParameterDirection.Input));
  2674. }
  2675. // 清除时间--结束
  2676. if (se.DeletedTimeEnd.HasValue)
  2677. {
  2678. sql.Append(" AND Tp_Pm_Inproduction_Tmp.deletedtime <= :deletedtimeEnd ");
  2679. parameters.Add(new OracleParameter(":deletedtimeEnd", OracleDbType.Date, se.DeletedTimeEnd.Value, ParameterDirection.Input));
  2680. }
  2681. if (se.GooddLevelTypeID != -100)
  2682. {
  2683. // 产品分级
  2684. sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID = :GooddLevelTypeID ");
  2685. parameters.Add(new OracleParameter(":GooddLevelTypeID", OracleDbType.Int32, se.GooddLevelTypeID, ParameterDirection.Input));
  2686. }
  2687. else
  2688. {
  2689. // 产品分级
  2690. //// sql.Append(" AND TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID is null ");
  2691. }
  2692. //数据来源
  2693. sql.Append(" AND Tp_Pm_Inproduction_Tmp.TrashFlag = :TrashFlag ");
  2694. parameters.Add(new OracleParameter(":TrashFlag", OracleDbType.Int32, se.TrashFlag, ParameterDirection.Input));
  2695. }
  2696. sql.Append(" order by Tp_Pm_Inproduction_Tmp.UpdateTime desc");
  2697. DataTable data = conn.GetSqlResultToDt(sql.ToString(), parameters.ToArray());
  2698. ServiceResultEntity sre = new ServiceResultEntity();
  2699. if (data == null || data.Rows.Count == 0)
  2700. {
  2701. sre.Status = Constant.ServiceResultStatus.NoSearchResults;
  2702. return sre;
  2703. }
  2704. sre.Data = new DataSet();
  2705. sre.Data.Tables.Add(data);
  2706. return sre;
  2707. }
  2708. catch (Exception ex)
  2709. {
  2710. throw ex;
  2711. }
  2712. finally
  2713. {
  2714. if (conn != null &&
  2715. conn.ConnState == ConnectionState.Open)
  2716. {
  2717. conn.Close();
  2718. }
  2719. }
  2720. }
  2721. /// <summary>
  2722. /// 获取RPT010401画面(在产品明细表)的查询sql
  2723. /// </summary>
  2724. /// <returns>sql</returns>
  2725. private static string GetPM2112SQL()
  2726. {
  2727. string selSql =
  2728. @"SELECT 0 as Sel,
  2729. TP_PM_SCRAPPRODUCT.SCRAPDATE,
  2730. Tp_Pm_Inproduction_Tmp.BarCode,
  2731. Tp_Pm_Inproduction_Tmp.GoodsID,
  2732. Tp_Pm_Inproduction_Tmp.GoodsCode,
  2733. Tp_Pm_Inproduction_Tmp.GoodsName,
  2734. Tp_Pm_Inproduction_Tmp.Userid,
  2735. A.USERNAME as UserName,
  2736. A.USERCode as UserCode,
  2737. Tp_Pm_Inproduction_Tmp.ProductionLineID,
  2738. Tp_Pm_Inproduction_Tmp.ProductionLineCode,
  2739. Tp_Pm_Inproduction_Tmp.ProductionLineName,
  2740. Tp_Pm_Inproduction_Tmp.ModelType,
  2741. --decode(Tp_Pm_Inproduction_Tmp.IsPublicBody, '1', '是', '否') as IsPublicBody,
  2742. --decode(Tp_Pm_Inproduction_Tmp.IsReFire, '1', '是', '否') as IsReFire,
  2743. Tp_Pm_Inproduction_Tmp.IsPublicBody,
  2744. Tp_Pm_Inproduction_Tmp.IsReFire,
  2745. decode(Tp_Pm_Inproduction_Tmp.CanManyTimes, '1', '能', '不能') as CanManyTimes,
  2746. decode(Tp_Pm_Inproduction_Tmp.ProcedureModel,
  2747. '1',
  2748. '计件模型',
  2749. '检验模型') as ProcedureModel,
  2750. Tp_Pm_Inproduction_Tmp.GroutingDailyID,
  2751. Tp_Pm_Inproduction_Tmp.GroutingDailyDetailID,
  2752. Tp_Pm_Inproduction_Tmp.GroutingDate,
  2753. Tp_Pm_Inproduction_Tmp.GroutingLineID,
  2754. Tp_Pm_Inproduction_Tmp.GroutingLineCode,
  2755. Tp_Pm_Inproduction_Tmp.GroutingLineName,
  2756. Tp_Pm_Inproduction_Tmp.ProcedureID CompleteProcedureID,
  2757. D.ProcedureName as CompleteProcedureName,
  2758. Tp_Pm_Inproduction_Tmp.GMouldTypeID,
  2759. TP_MST_GMouldType.GMOULDTYPENAME as GMouldTypeName,
  2760. Tp_Pm_Inproduction_Tmp.GroutingLineDetailID,
  2761. Tp_Pm_Inproduction_Tmp.GroutingMouldCode,
  2762. Tp_Pm_Inproduction_Tmp.SPECIALREPAIRFLAG,
  2763. Tp_Pm_Inproduction_Tmp.GROUTINGUSERCODE,
  2764. TP_PM_GroutingDailyDetail.GROUTINGCOUNT,
  2765. Tp_Pm_Inproduction_Tmp.Remarks,
  2766. Tp_Pm_Inproduction_Tmp.GoodsLevelID,
  2767. TP_MST_GoodsLevel.GOODSLEVELNAME,
  2768. Tp_Pm_Inproduction_Tmp.GoodsLevelTypeID,
  2769. TP_SYS_GoodsLevelType.GOODSLEVELTYPENAME,
  2770. Tp_Pm_Inproduction_Tmp.AccountID,
  2771. Tp_Pm_Inproduction_Tmp.ValueFlag,
  2772. Tp_Pm_Inproduction_Tmp.CreateTime,
  2773. Tp_Pm_Inproduction_Tmp.CreateUserID,
  2774. B.USERNAME as CreateUserName,
  2775. Tp_Pm_Inproduction_Tmp.PROCEDURETIME AS UpdateTime,
  2776. Tp_Pm_Inproduction_Tmp.UpdateUserID,
  2777. C.USERNAME as UpdateUserName
  2778. FROM Tp_Pm_Inproduction_Tmp
  2779. inner join TP_MST_User A on A.UserID = Tp_Pm_Inproduction_Tmp.Userid
  2780. inner join TP_MST_User B on B.UserID = Tp_Pm_Inproduction_Tmp.CreateUserID
  2781. inner join TP_MST_User C on C.UserID = Tp_Pm_Inproduction_Tmp.UpdateUserID
  2782. inner join TP_PC_Procedure D on D.PROCEDUREID =
  2783. Tp_Pm_Inproduction_Tmp.ProcedureID
  2784. inner join TP_MST_GMouldType on TP_MST_GMouldType.GMouldTypeID =
  2785. Tp_Pm_Inproduction_Tmp.GMouldTypeID
  2786. inner join TP_PM_GroutingDaily on TP_PM_GroutingDaily.GroutingDailyID =
  2787. Tp_Pm_Inproduction_Tmp.GroutingDailyID
  2788. inner join TP_PM_GroutingDailyDetail on TP_PM_GroutingDailyDetail.Groutingdailydetailid =
  2789. Tp_Pm_Inproduction_Tmp.GroutingDailyDetailID
  2790. inner join TP_PC_GroutingLineDetail on TP_PC_GroutingLineDetail.Groutinglinedetailid =
  2791. Tp_Pm_Inproduction_Tmp.GroutingLineDetailID
  2792. inner join TP_MST_Account on TP_MST_Account.Accountid =
  2793. Tp_Pm_Inproduction_Tmp.Accountid
  2794. left join TP_MST_GoodsLevel on TP_MST_GoodsLevel.GoodsLevelID =
  2795. Tp_Pm_Inproduction_Tmp.GoodsLevelID
  2796. left join TP_SYS_GoodsLevelType on TP_SYS_GoodsLevelType.GoodsLevelTypeID =
  2797. Tp_Pm_Inproduction_Tmp.GoodsLevelTypeID
  2798. left join TP_PM_SCRAPPRODUCT on TP_PM_SCRAPPRODUCT.barcode=Tp_Pm_Inproduction_Tmp.barcode and TP_PM_SCRAPPRODUCT.AUDITSTATUS=1 and TP_PM_SCRAPPRODUCT.RECYCLINGFLAG='0' and TP_PM_SCRAPPRODUCT.GOODSLEVELTYPEID=8
  2799. Where Tp_Pm_Inproduction_Tmp.AccountID = :AccountID";
  2800. return selSql; //and Tp_Pm_Inproduction_Tmp.ValueFlag = 1
  2801. }
  2802. #endregion
  2803. /// <summary>
  2804. /// 工序是否有商标ID
  2805. /// <param name="ProcedureID">工序ID</param>
  2806. /// </summary>
  2807. /// <returns>int</returns>
  2808. public static int GetLogoID(int ProcedureID, SUserInfo sUserInfo)
  2809. {
  2810. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2811. try
  2812. {
  2813. con.Open();
  2814. string sqlString = @"select LogoID from tp_pc_procedure where accountid=:accountid and ProcedureID=:ProcedureID";
  2815. OracleParameter[] paras = new OracleParameter[]{
  2816. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2817. new OracleParameter(":ProcedureID",OracleDbType.Int32, ProcedureID,ParameterDirection.Input),
  2818. };
  2819. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2820. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2821. {
  2822. if (ds.Tables[0].Rows[0]["LogoID"] == DBNull.Value)
  2823. {
  2824. return 0;
  2825. }
  2826. else
  2827. {
  2828. return Convert.ToInt32(ds.Tables[0].Rows[0]["LogoID"]);
  2829. }
  2830. }
  2831. return 0;
  2832. }
  2833. catch (Exception ex)
  2834. {
  2835. throw ex;
  2836. }
  2837. finally
  2838. {
  2839. if (con.ConnState == ConnectionState.Open)
  2840. {
  2841. con.Close();
  2842. }
  2843. }
  2844. }
  2845. /// <summary>
  2846. /// 获取条码商标
  2847. /// <param name="barcode">产品条码</param>
  2848. /// </summary>
  2849. /// <returns>int</returns>
  2850. public static DataSet GetBarCodeLogoID(string barcode, SUserInfo sUserInfo)
  2851. {
  2852. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2853. try
  2854. {
  2855. con.Open();
  2856. //// 转换条码
  2857. //string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
  2858. //OracleParameter[] paras1 = new OracleParameter[]{
  2859. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2860. // new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2861. // };
  2862. //barcode = con.GetSqlResultToStr(sqlString, paras1);
  2863. //sqlString = @"select g.LogoID,l.logocode,l.logoname, g.glazetypeid, d.DICTIONARYVALUE glazetypename, g.goodsid
  2864. // from tp_pm_groutingdailydetail g
  2865. // left join tp_mst_logo l
  2866. // on g.logoid=l.logoid
  2867. // left join TP_MST_DataDictionary d on d.DICTIONARYID = g.glazetypeid
  2868. // where g.barcode=:barcode";
  2869. //OracleParameter[] paras = new OracleParameter[]{
  2870. // new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2871. //};
  2872. //DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2873. //if (ds != null && ds.Tables[0].Rows.Count > 0)
  2874. //{
  2875. // return ds;
  2876. //}
  2877. //return null;
  2878. // 转换条码
  2879. string sqlString = @"select FUN_CMN_GetBarCode(:barcode,null,:accountid) From DUAL";
  2880. OracleParameter[] paras1 = new OracleParameter[]{
  2881. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2882. new OracleParameter(":accountid",OracleDbType.Int32, sUserInfo.AccountID,ParameterDirection.Input),
  2883. };
  2884. barcode = con.GetSqlResultToStr(sqlString, paras1);
  2885. sqlString = @"select
  2886. -- 以主键提升容错,便于以后扩展
  2887. g.GROUTINGDAILYDETAILID,
  2888. -- end
  2889. g.LogoID,l.logocode,l.logoname, g.glazetypeid, d.DICTIONARYVALUE glazetypename, g.goodsid, f.fhuserid, '' err_msg
  2890. from tp_pm_groutingdailydetail g
  2891. left join tp_mst_logo l on g.logoid=l.logoid
  2892. left join TP_MST_DataDictionary d on d.DICTIONARYID = g.glazetypeid
  2893. left join tp_pm_finishedproduct f on g.barcode = f.barcode
  2894. where g.barcode=:barcode";
  2895. OracleParameter[] paras = new OracleParameter[]{
  2896. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2897. };
  2898. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2899. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2900. {
  2901. object fhuserid = ds.Tables[0].Rows[0]["fhuserid"];
  2902. if (fhuserid != null && fhuserid != DBNull.Value)
  2903. {
  2904. ds.Tables[0].Rows[0]["err_msg"] = "已交接的产品不能变更商标";
  2905. }
  2906. return ds;
  2907. }
  2908. else
  2909. {
  2910. ds = new DataSet();
  2911. DataTable dt = new DataTable();
  2912. dt.Columns.Add("err_msg");
  2913. DataRow row = dt.NewRow();
  2914. row["err_msg"] = "条码不存在";
  2915. dt.Rows.Add(row);
  2916. ds.Tables.Add(dt);
  2917. return ds;
  2918. }
  2919. }
  2920. catch (Exception ex)
  2921. {
  2922. throw ex;
  2923. }
  2924. finally
  2925. {
  2926. if (con.ConnState == ConnectionState.Open)
  2927. {
  2928. con.Close();
  2929. }
  2930. }
  2931. }
  2932. /// <summary>
  2933. /// 半检时,入窑前检验获取此条码是否报损为废品
  2934. /// <param name="barcode">产品条码</param>
  2935. /// </summary>
  2936. /// <returns>int</returns>
  2937. public static int CheckWasteScrapProduct(string barcode)
  2938. {
  2939. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2940. try
  2941. {
  2942. con.Open();
  2943. string sqlString = @"select auditstatus from tp_pm_scrapproduct where auditstatus in(0,1) and valueflag=1 and goodsleveltypeid=3 and barcode=:barcode";
  2944. OracleParameter[] paras = new OracleParameter[]{
  2945. new OracleParameter(":barcode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  2946. };
  2947. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2948. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2949. {
  2950. return Convert.ToInt32(ds.Tables[0].Rows[0]["auditstatus"]);
  2951. }
  2952. return -100;
  2953. }
  2954. catch (Exception ex)
  2955. {
  2956. throw ex;
  2957. }
  2958. finally
  2959. {
  2960. if (con.ConnState == ConnectionState.Open)
  2961. {
  2962. con.Close();
  2963. }
  2964. }
  2965. }
  2966. /// <summary>
  2967. /// 获取盘点单明细
  2968. /// </summary>
  2969. /// <param name="procedureID">工序ID</param>
  2970. /// <returns>DataSet</returns>
  2971. public static DataSet GetUpdateInCheckedInfo(string incheckedno, SUserInfo sUserInfo)
  2972. {
  2973. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  2974. try
  2975. {
  2976. con.Open();
  2977. string sqlString = @"select tp_pm_inchecked.incheckedid from tp_pm_inchecked where tp_pm_inchecked.incheckedno=:incheckedno";
  2978. OracleParameter[] paras = new OracleParameter[]{
  2979. new OracleParameter(":incheckedno",OracleDbType.Varchar2, incheckedno,ParameterDirection.Input),
  2980. };
  2981. DataSet dsReturn = null;
  2982. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  2983. if (ds != null && ds.Tables[0].Rows.Count > 0)
  2984. {
  2985. int incheckedid = Convert.ToInt32(ds.Tables[0].Rows[0]["incheckedid"]);
  2986. sqlString = @"SELECT to_char(checked.UserCheckedCount) || '/' ||
  2987. to_char(checked.CheckedCount) CheckedCount
  2988. ,to_char(checked.UserOverageCount) || '/' ||
  2989. to_char(checked.OverageCount) OverageCount
  2990. ,to_char(checked.UserCheckedCount + checked.UserOverageCount) || '/' ||
  2991. to_char(checked.CheckedCount + checked.OverageCount) || '/' ||
  2992. to_char(TCount) TCount
  2993. FROM (SELECT icd.incheckedid
  2994. , SUM(CASE
  2995. WHEN icd.checkeduserid = :userid AND icd.InCheckedFlag = '1' THEN
  2996. 1
  2997. ELSE
  2998. 0
  2999. END) UserCheckedCount
  3000. , SUM(CASE
  3001. WHEN icd.checkeduserid = :userid AND icd.InCheckedFlag = '2' THEN
  3002. 1
  3003. ELSE
  3004. 0
  3005. END) UserOverageCount
  3006. , SUM(CASE
  3007. WHEN icd.InCheckedFlag = '1' THEN
  3008. 1
  3009. ELSE
  3010. 0
  3011. END) CheckedCount
  3012. , SUM(CASE
  3013. WHEN icd.InCheckedFlag = '2' THEN
  3014. 1
  3015. ELSE
  3016. 0
  3017. END) OverageCount
  3018. ,COUNT(icd.incheckedid) TCount
  3019. FROM tp_pm_incheckeddetail icd
  3020. WHERE icd.incheckedid = :incheckedid
  3021. AND icd.valueflag = '1' GROUP BY icd.incheckedid) checked";
  3022. paras = new OracleParameter[]{
  3023. new OracleParameter(":incheckedid",OracleDbType.Int32, incheckedid,ParameterDirection.Input),
  3024. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3025. };
  3026. ds = con.GetSqlResultToDs(sqlString, paras);
  3027. ds.Tables[0].TableName = "Table1";
  3028. dsReturn = new DataSet();
  3029. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3030. sqlString = @"
  3031. SELECT icd.goodscode, COUNT(icd.goodscode) goodscount
  3032. FROM tp_pm_incheckeddetail icd
  3033. WHERE icd.incheckedid = :incheckedid
  3034. AND icd.checkeduserid = :userid
  3035. AND icd.InCheckedFlag = '1'
  3036. AND icd.valueflag = '1'
  3037. GROUP BY icd.goodscode";
  3038. paras = new OracleParameter[]{
  3039. new OracleParameter(":incheckedid",OracleDbType.Int32, incheckedid,ParameterDirection.Input),
  3040. new OracleParameter(":userid",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
  3041. };
  3042. ds = con.GetSqlResultToDs(sqlString, paras);
  3043. ds.Tables[0].TableName = "Table2";
  3044. dsReturn.Tables.Add(ds.Tables[0].Copy());
  3045. }
  3046. return dsReturn;
  3047. }
  3048. catch (Exception ex)
  3049. {
  3050. throw ex;
  3051. }
  3052. finally
  3053. {
  3054. if (con.ConnState == ConnectionState.Open)
  3055. {
  3056. con.Close();
  3057. }
  3058. }
  3059. }
  3060. /// <summary>
  3061. /// 获取半成品检验列表
  3062. /// <param name="entity">实体类</param>
  3063. /// </summary>
  3064. /// <returns>DataSet</returns>
  3065. public static DataSet GetSemiCheck(SemiCheckEntity entity, SUserInfo sUserInfo)
  3066. {
  3067. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3068. try
  3069. {
  3070. con.Open();
  3071. List<OracleParameter> parameters = new List<OracleParameter>();
  3072. parameters.Add(new OracleParameter(":AccountID", OracleDbType.Int32, sUserInfo.AccountID, ParameterDirection.Input));
  3073. string sqlString = @"select
  3074. SemiCheck.SemiCheckID,
  3075. CProcedure.ProcedureName as CProcedureName,
  3076. SemiCheck.ProcedureTime,
  3077. SemiCheck.UserCode,
  3078. GoodsType2.GoodsTypeName as LevelGoodsTypeName,
  3079. GoodsType.GoodsTypeName,
  3080. Goods.GoodsCode,
  3081. SemiCheck.BarCode,
  3082. -- 复检后不显示半检状态
  3083. SemiCheckType.SemiCheckTypeName,
  3084. --decode(SemiCheck.ReSemiCheckType, 0, SemiCheckType.SemiCheckTypeName, '已复检') SemiCheckTypeName
  3085. SemiCheck.SemiCheckUserCode,
  3086. SemiCheck.SemiCheckTime,
  3087. ReSemiCheckType.ReSemiCheckTypeName,
  3088. SemiCheck.ReSemiCheckUserCode,
  3089. SemiCheck.ReSemiCheckTime,
  3090. decode(SemiCheck.BackOutFlag,'0','正常','撤销') as BackOutFlag,
  3091. SemiCheck.BackOutUserCode,
  3092. SemiCheck.BackOutTime,
  3093. SemiCheck.GroutingUserCode,
  3094. SemiCheck.GroutingDate,
  3095. GroutingDailyDetail.DeliverTime,
  3096. logo.logoName,
  3097. RProcedure.ProcedureName as RProcedureName,
  3098. SemiCheck.ReworkUserCode
  3099. from TP_PM_SemiCheck SemiCheck
  3100. left join TP_PC_Procedure CProcedure
  3101. on SemiCheck.ProcedureID=CProcedure.ProcedureID
  3102. left join TP_MST_Goods Goods
  3103. on SemiCheck.GoodsID=Goods.GoodsID
  3104. left join TP_MST_GoodsType GoodsType
  3105. on Goods.GoodsTypeID=GoodsType.GoodsTypeID
  3106. left join TP_MST_GoodsType GoodsType2
  3107. on GoodsType2.accountid=GoodsType.accountid
  3108. and GoodsType2.GoodsTypecode=substr(GoodsType.GoodsTypecode,1,6)
  3109. left join TP_SYS_SemiCheckType SemiCheckType
  3110. on SemiCheck.SemiCheckType=SemiCheckType.SemiCheckTypeID
  3111. left join TP_SYS_ReSemiCheckType ReSemiCheckType
  3112. on SemiCheck.ReSemiCheckType=ReSemiCheckType.ReSemiCheckTypeID
  3113. left join TP_PM_GroutingDailyDetail GroutingDailyDetail
  3114. on GroutingDailyDetail.GroutingDailyDetailID=SemiCheck.GroutingDailyDetailID
  3115. left join TP_MST_Logo logo
  3116. on GroutingDailyDetail.LogoID=logo.LogoID
  3117. left join TP_PC_Procedure RProcedure
  3118. on SemiCheck.ReworkProcedureID=RProcedure.ProcedureID
  3119. where SemiCheck.AccountID=:AccountID
  3120. ";
  3121. // 完成工序
  3122. if (!string.IsNullOrEmpty(entity.CProcedureIDS))
  3123. {
  3124. sqlString = sqlString + " AND instr(','||:CProcedureIDS||',',','||SemiCheck.ProcedureID||',')>0 ";
  3125. parameters.Add(new OracleParameter(":CProcedureIDS", OracleDbType.NVarchar2, entity.CProcedureIDS, ParameterDirection.Input));
  3126. }
  3127. // 完成时间起始
  3128. if (entity.CDateTimeStart.HasValue)
  3129. {
  3130. sqlString = sqlString + " AND SemiCheck.ProcedureTime >= :CDateTimeStart ";
  3131. parameters.Add(new OracleParameter(":CDateTimeStart", OracleDbType.Date, entity.CDateTimeStart.Value, ParameterDirection.Input));
  3132. }
  3133. // 完成时间结束
  3134. if (entity.CDateTimeEnd.HasValue)
  3135. {
  3136. sqlString = sqlString + " AND SemiCheck.ProcedureTime <= :CDateTimeEnd ";
  3137. parameters.Add(new OracleParameter(":CDateTimeEnd", OracleDbType.Date, entity.CDateTimeStart.Value, ParameterDirection.Input));
  3138. }
  3139. // 完成工号
  3140. if (!string.IsNullOrEmpty(entity.CUserCode))
  3141. {
  3142. sqlString = sqlString + " AND instr(SemiCheck.UserCode,:UserCode)>0";
  3143. parameters.Add(new OracleParameter(":UserCode", OracleDbType.NVarchar2, entity.CUserCode, ParameterDirection.Input));
  3144. }
  3145. // 产品类别
  3146. if (!string.IsNullOrEmpty(entity.GoodsTypeCode))
  3147. {
  3148. sqlString = sqlString + " AND instr(GoodsType.GoodsTypeCode,:GoodsTypeCode)=1 ";
  3149. parameters.Add(new OracleParameter(":GoodsTypeCode", OracleDbType.NVarchar2, entity.GoodsTypeCode, ParameterDirection.Input));
  3150. }
  3151. // 产品编码
  3152. if (!string.IsNullOrEmpty(entity.GoodsCode))
  3153. {
  3154. sqlString = sqlString + " AND instr(Goods.GoodsCode,:GoodsCode)>0";
  3155. parameters.Add(new OracleParameter(":GoodsCode", OracleDbType.NVarchar2, entity.GoodsCode, ParameterDirection.Input));
  3156. }
  3157. // 成型工号
  3158. if (!string.IsNullOrEmpty(entity.GroutingUserCode))
  3159. {
  3160. sqlString = sqlString + " AND instr(SemiCheck.GroutingUserCode,:GroutingUserCode)>0";
  3161. parameters.Add(new OracleParameter(":GroutingUserCode", OracleDbType.NVarchar2, entity.GroutingUserCode, ParameterDirection.Input));
  3162. }
  3163. // 注浆时间起始
  3164. if (entity.GroutingDateTimeStart.HasValue)
  3165. {
  3166. sqlString = sqlString + " AND SemiCheck.GroutingDate >= :GroutingDateTimeStart ";
  3167. parameters.Add(new OracleParameter(":GroutingDateTimeStart", OracleDbType.Date, entity.GroutingDateTimeStart.Value, ParameterDirection.Input));
  3168. }
  3169. // 注浆时间结束
  3170. if (entity.GroutingDateTimeEnd.HasValue)
  3171. {
  3172. sqlString = sqlString + " AND SemiCheck.GroutingDate <= :GroutingDateTimeEnd ";
  3173. parameters.Add(new OracleParameter(":GroutingDateTimeEnd", OracleDbType.Date, entity.GroutingDateTimeEnd.Value, ParameterDirection.Input));
  3174. }
  3175. // 交坯时间起始
  3176. if (entity.DeliveryDateTimeStart.HasValue)
  3177. {
  3178. sqlString = sqlString + " AND GroutingDailyDetail.DeliverTime >= :DeliveryDateTimeStart ";
  3179. parameters.Add(new OracleParameter(":DeliveryDateTimeStart", OracleDbType.Date, entity.DeliveryDateTimeStart.Value, ParameterDirection.Input));
  3180. }
  3181. // 交坯时间结束
  3182. if (entity.DeliveryDateTimeEnd.HasValue)
  3183. {
  3184. sqlString = sqlString + " AND GroutingDailyDetail.DeliverTime <= :DeliveryDateTimeEnd ";
  3185. parameters.Add(new OracleParameter(":DeliveryDateTimeEnd", OracleDbType.Date, entity.DeliveryDateTimeEnd.Value, ParameterDirection.Input));
  3186. }
  3187. // 半检状态
  3188. if (!string.IsNullOrEmpty(entity.SemiCheckType))
  3189. {
  3190. sqlString = sqlString + " AND instr(','||:SemiCheckType||',',','||SemiCheck.SemiCheckType||',')>0 ";
  3191. parameters.Add(new OracleParameter(":SemiCheckType", OracleDbType.NVarchar2, entity.SemiCheckType, ParameterDirection.Input));
  3192. }
  3193. // 半检时间起始
  3194. if (entity.SemiCheckDateTimeStart.HasValue)
  3195. {
  3196. sqlString = sqlString + " AND SemiCheck.SemiCheckTime >= :SemiCheckDateTimeStart ";
  3197. parameters.Add(new OracleParameter(":SemiCheckDateTimeStart", OracleDbType.Date, entity.SemiCheckDateTimeStart.Value, ParameterDirection.Input));
  3198. }
  3199. // 半检时间结束
  3200. if (entity.SemiCheckDateTimeEnd.HasValue)
  3201. {
  3202. sqlString = sqlString + " AND SemiCheck.SemiCheckTime <= :SemiCheckDateTimeEnd ";
  3203. parameters.Add(new OracleParameter(":SemiCheckDateTimeEnd", OracleDbType.Date, entity.SemiCheckDateTimeEnd.Value, ParameterDirection.Input));
  3204. }
  3205. // 半检工号
  3206. if (!string.IsNullOrEmpty(entity.SemiCheckUserCode))
  3207. {
  3208. sqlString = sqlString + " AND instr(SemiCheck.SemiCheckUserCode,:SemiCheckUserCode)>0";
  3209. parameters.Add(new OracleParameter(":SemiCheckUserCode", OracleDbType.NVarchar2, entity.SemiCheckUserCode, ParameterDirection.Input));
  3210. }
  3211. // 返工工序
  3212. if (!string.IsNullOrEmpty(entity.RProcedureIDS))
  3213. {
  3214. sqlString = sqlString + " AND instr(','||:RProcedureIDS||',',','||SemiCheck.ReworkProcedureID||',')>0 ";
  3215. parameters.Add(new OracleParameter(":RProcedureIDS", OracleDbType.NVarchar2, entity.RProcedureIDS, ParameterDirection.Input));
  3216. }
  3217. // 返工工号
  3218. if (!string.IsNullOrEmpty(entity.ReworkUserCode))
  3219. {
  3220. sqlString = sqlString + " AND instr(SemiCheck.ReworkUserCode,:ReworkUserCode)>0";
  3221. parameters.Add(new OracleParameter(":ReworkUserCode", OracleDbType.NVarchar2, entity.ReworkUserCode, ParameterDirection.Input));
  3222. }
  3223. // 复检状态
  3224. if (!string.IsNullOrEmpty(entity.ReSemiCheckType))
  3225. {
  3226. sqlString = sqlString + " AND instr(','||:ReSemiCheckType||',',','||SemiCheck.ReSemiCheckType||',')>0 ";
  3227. parameters.Add(new OracleParameter(":ReSemiCheckType", OracleDbType.NVarchar2, entity.ReSemiCheckType, ParameterDirection.Input));
  3228. }
  3229. // 复检时间起始
  3230. if (entity.ReSemiCheckDateTimeStart.HasValue)
  3231. {
  3232. sqlString = sqlString + " AND SemiCheck.ReSemiCheckTime >= :ReSemiCheckDateTimeStart ";
  3233. parameters.Add(new OracleParameter(":ReSemiCheckDateTimeStart", OracleDbType.Date, entity.ReSemiCheckDateTimeStart.Value, ParameterDirection.Input));
  3234. }
  3235. // 复检时间结束
  3236. if (entity.ReSemiCheckDateTimeEnd.HasValue)
  3237. {
  3238. sqlString = sqlString + " AND SemiCheck.ReSemiCheckTime <= :ReSemiCheckDateTimeEnd ";
  3239. parameters.Add(new OracleParameter(":ReSemiCheckDateTimeEnd", OracleDbType.Date, entity.ReSemiCheckDateTimeEnd.Value, ParameterDirection.Input));
  3240. }
  3241. // 复检工号
  3242. if (!string.IsNullOrEmpty(entity.ReSemiCheckUserCode))
  3243. {
  3244. sqlString = sqlString + " AND instr(SemiCheck.ReSemiCheckUserCode,:ReSemiCheckUserCode)>0";
  3245. parameters.Add(new OracleParameter(":ReSemiCheckUserCode", OracleDbType.NVarchar2, entity.ReSemiCheckUserCode, ParameterDirection.Input));
  3246. }
  3247. // 撤销标识
  3248. if (!string.IsNullOrEmpty(entity.BackOutFlag))
  3249. {
  3250. sqlString = sqlString + " AND instr(','||:BackOutFlag||',',','||SemiCheck.BackOutFlag||',')>0 ";
  3251. parameters.Add(new OracleParameter(":BackOutFlag", OracleDbType.NVarchar2, entity.BackOutFlag, ParameterDirection.Input));
  3252. }
  3253. // 撤销时间起始
  3254. if (entity.BackOutTimeStart.HasValue)
  3255. {
  3256. sqlString = sqlString + " AND SemiCheck.BackOutTime >= :BackOutTimeStart ";
  3257. parameters.Add(new OracleParameter(":BackOutTimeStart", OracleDbType.Date, entity.BackOutTimeStart.Value, ParameterDirection.Input));
  3258. }
  3259. // 撤销时间结束
  3260. if (entity.BackOutTimeEnd.HasValue)
  3261. {
  3262. sqlString = sqlString + " AND SemiCheck.BackOutTime <= :BackOutTimeEnd ";
  3263. parameters.Add(new OracleParameter(":BackOutTimeEnd", OracleDbType.Date, entity.BackOutTimeEnd.Value, ParameterDirection.Input));
  3264. }
  3265. // 撤销工号
  3266. if (!string.IsNullOrEmpty(entity.BackOutUserCode))
  3267. {
  3268. sqlString = sqlString + " AND instr(SemiCheck.BackOutUserCode,:BackOutUserCode)>0";
  3269. parameters.Add(new OracleParameter(":BackOutUserCode", OracleDbType.NVarchar2, entity.BackOutUserCode, ParameterDirection.Input));
  3270. }
  3271. // 产品条码
  3272. if (!string.IsNullOrEmpty(entity.BarCode))
  3273. {
  3274. sqlString = sqlString + " AND instr(SemiCheck.BarCode,:BarCode)>0";
  3275. parameters.Add(new OracleParameter(":BarCode", OracleDbType.NVarchar2, entity.BarCode, ParameterDirection.Input));
  3276. }
  3277. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3278. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3279. {
  3280. return ds;
  3281. }
  3282. return null;
  3283. }
  3284. catch (Exception ex)
  3285. {
  3286. throw ex;
  3287. }
  3288. finally
  3289. {
  3290. if (con.ConnState == ConnectionState.Open)
  3291. {
  3292. con.Close();
  3293. }
  3294. }
  3295. }
  3296. /// <summary>
  3297. /// 获取半成品检验缺陷列表
  3298. /// <param name="semiCheckID">半成品检验ID</param>
  3299. /// </summary>
  3300. /// <returns>DataSet</returns>
  3301. public static DataSet GetSemiCheckDefect(int semiCheckID)
  3302. {
  3303. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3304. try
  3305. {
  3306. con.Open();
  3307. List<OracleParameter> parameters = new List<OracleParameter>();
  3308. parameters.Add(new OracleParameter(":semiCheckID", OracleDbType.Int32, semiCheckID, ParameterDirection.Input));
  3309. string sqlString = @"select
  3310. TP_PM_SemiCheckDefect.DefectCode,
  3311. TP_PM_SemiCheckDefect.DefectName,
  3312. TP_PM_SemiCheckDefect.DefectPositionCode,
  3313. TP_PM_SemiCheckDefect.DefectPositionName,
  3314. TP_PC_Procedure.ProcedureName,
  3315. TP_PM_SemiCheckDefect.DefectUserCode
  3316. from TP_PM_SemiCheckDefect
  3317. left join TP_PC_Procedure
  3318. on TP_PM_SemiCheckDefect.DefectProcedureID=TP_PC_Procedure.ProcedureID
  3319. where TP_PM_SemiCheckDefect.semiCheckID=:semiCheckID
  3320. ";
  3321. DataSet ds = con.GetSqlResultToDs(sqlString, parameters.ToArray());
  3322. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3323. {
  3324. return ds;
  3325. }
  3326. return null;
  3327. }
  3328. catch (Exception ex)
  3329. {
  3330. throw ex;
  3331. }
  3332. finally
  3333. {
  3334. if (con.ConnState == ConnectionState.Open)
  3335. {
  3336. con.Close();
  3337. }
  3338. }
  3339. }
  3340. /// <summary>
  3341. /// 根据所选工号,查出缺陷责任员工
  3342. /// </summary>
  3343. /// <param name="userid">用户ID</param>
  3344. /// <param name="sUserInfo">用户基本信息</param>
  3345. /// <returns>DataSet</returns>
  3346. public static DataSet GetSemiCheckDefectStaffByUserID(SUserInfo sUserInfo, int userid)
  3347. {
  3348. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3349. try
  3350. {
  3351. con.Open();
  3352. string sqlString = @"select
  3353. TP_HR_Staff.StaffID,TP_HR_Staff.StaffCode,TP_HR_Staff.StaffName,
  3354. TP_HR_Staff.StaffStatus,TP_MST_UserStaff.UJobsID as SJobsID,
  3355. TP_MST_UserStaff.Ujobsid
  3356. from TP_MST_UserStaff
  3357. left join TP_HR_Staff
  3358. on TP_MST_UserStaff.Staffid=TP_HR_Staff.Staffid
  3359. where TP_MST_UserStaff.Userid=:userid
  3360. ";
  3361. OracleParameter[] paras = new OracleParameter[]{
  3362. new OracleParameter(":userid",OracleDbType.Int32, userid,ParameterDirection.Input),
  3363. };
  3364. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3365. return ds;
  3366. }
  3367. catch (Exception ex)
  3368. {
  3369. throw ex;
  3370. }
  3371. finally
  3372. {
  3373. if (con.ConnState == ConnectionState.Open)
  3374. {
  3375. con.Close();
  3376. }
  3377. }
  3378. }
  3379. /// <summary>
  3380. /// 获取标识
  3381. /// </summary>
  3382. /// <param name="barcode">产品条码</param>ram>
  3383. /// <returns>int</returns>
  3384. public static int GetRecyclingflagByBarcode(string barcode, SUserInfo sUserInfo)
  3385. {
  3386. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3387. try
  3388. {
  3389. con.Open();
  3390. string sqlString = "select recyclingflag from TP_PM_ScrapProduct "
  3391. + " where BarCode=:BarCode and CreateTime=(select max(CreateTime) "
  3392. + " from TP_PM_ScrapProduct "
  3393. + " where BarCode=:BarCode and ValueFlag=1)"
  3394. + " and ValueFlag=1";
  3395. OracleParameter[] paras = new OracleParameter[]{
  3396. new OracleParameter(":BarCode",OracleDbType.Varchar2, barcode,ParameterDirection.Input),
  3397. };
  3398. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3399. if (ds != null && ds.Tables[0].Rows.Count > 0)
  3400. {
  3401. return Convert.ToInt32(ds.Tables[0].Rows[0]["recyclingflag"]);
  3402. }
  3403. return 0;
  3404. }
  3405. catch (Exception ex)
  3406. {
  3407. throw ex;
  3408. }
  3409. finally
  3410. {
  3411. if (con.ConnState == ConnectionState.Open)
  3412. {
  3413. con.Close();
  3414. }
  3415. }
  3416. }
  3417. #region 装具
  3418. /// <summary>
  3419. /// 生产工号装具操作权限
  3420. /// </summary>
  3421. /// <param name="UserCode">生产工号</param>
  3422. /// <param name="functionCode">功能编码</param>
  3423. /// <returns>String</returns>
  3424. public static string CheckEntruckUser(string UserCode, string functionCode, SUserInfo sUserInfo)
  3425. {
  3426. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3427. try
  3428. {
  3429. oracleConn.Open();
  3430. string sqlString = @"
  3431. SELECT
  3432. TMUR.FunctionCode
  3433. FROM
  3434. TP_MST_UserRight TMUR
  3435. WHERE
  3436. TMUR.FunctionCode = 'CAR01'
  3437. AND TMUR.UserID = :UserID
  3438. ";
  3439. OracleParameter[] paras = new OracleParameter[]{
  3440. new OracleParameter(":UserCode",OracleDbType.Varchar2,UserCode,ParameterDirection.Input),
  3441. new OracleParameter(":functionCode",OracleDbType.Varchar2,functionCode,ParameterDirection.Input),
  3442. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
  3443. };
  3444. string usercode = oracleConn.GetSqlResultToStr(sqlString, paras);
  3445. return usercode;
  3446. }
  3447. catch (Exception ex)
  3448. {
  3449. throw ex;
  3450. }
  3451. finally
  3452. {
  3453. if (oracleConn.ConnState == ConnectionState.Open)
  3454. {
  3455. oracleConn.Close();
  3456. }
  3457. }
  3458. }
  3459. /// <summary>
  3460. /// 获取装具的使用状态
  3461. /// </summary>
  3462. /// <param name="entruckingCode">装具编码</param>
  3463. /// <returns>String</returns>
  3464. public static string GetTruckStatus(string entruckingCode, SUserInfo sUserInfo)
  3465. {
  3466. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3467. try
  3468. {
  3469. oracleConn.Open();
  3470. string sqlString = @"
  3471. ";
  3472. OracleParameter[] paras = new OracleParameter[]{
  3473. new OracleParameter(":entruckingCode",OracleDbType.Varchar2,entruckingCode,ParameterDirection.Input),
  3474. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input)
  3475. };
  3476. string truckStatus = oracleConn.GetSqlResultToStr(sqlString, paras);
  3477. return truckStatus;
  3478. }
  3479. catch (Exception ex)
  3480. {
  3481. throw ex;
  3482. }
  3483. finally
  3484. {
  3485. if (oracleConn.ConnState == ConnectionState.Open)
  3486. {
  3487. oracleConn.Close();
  3488. }
  3489. }
  3490. }
  3491. /// <summary>
  3492. /// 验证产品条码有效性,及产品与装具的绑定状态
  3493. /// </summary>
  3494. /// <param name="entruckingCode">装具编码</param>
  3495. /// <returns>String</returns>
  3496. public static string CheckTruckBarCode(string barCode, SUserInfo sUserInfo)
  3497. {
  3498. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3499. try
  3500. {
  3501. oracleConn.Open();
  3502. //首先验证产品条码有效性
  3503. string sql = "select 1 from TP_PM_GroutingDailyDetail where barcode=:barcode and valueflag=1";
  3504. OracleParameter[] Paras = new OracleParameter[] {
  3505. new OracleParameter(":barcode",OracleDbType.Varchar2, barCode,ParameterDirection.Input)
  3506. };
  3507. DataSet ds = oracleConn.GetSqlResultToDs(sql, Paras);
  3508. if (ds.Tables[0].Rows.Count == 0)
  3509. {
  3510. return "无效条码";
  3511. }
  3512. else
  3513. {
  3514. //产品与装具的绑定状态
  3515. string sqlString = @"";
  3516. OracleParameter[] paras = new OracleParameter[]{
  3517. new OracleParameter(":barCode",OracleDbType.Varchar2,barCode,ParameterDirection.Input),
  3518. new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input)
  3519. };
  3520. ds = oracleConn.GetSqlResultToDs(sqlString, paras);
  3521. if (ds.Tables[0].Rows.Count > 0)
  3522. {
  3523. return "产品" + barCode + "已在装具" + ds.Tables[0].Rows[0]["EntruckingCode"] + "上";
  3524. }
  3525. else
  3526. {
  3527. return "";
  3528. }
  3529. }
  3530. }
  3531. catch (Exception ex)
  3532. {
  3533. throw ex;
  3534. }
  3535. finally
  3536. {
  3537. if (oracleConn.ConnState == ConnectionState.Open)
  3538. {
  3539. oracleConn.Close();
  3540. }
  3541. }
  3542. }
  3543. /// <summary>
  3544. /// 绑定装具
  3545. /// </summary>
  3546. /// <param name="barcodes">产品条码们</param>
  3547. /// <param name="entruckingCode">装具条码</param>
  3548. /// <param name="userCode">生产工号</param>
  3549. /// <returns>String</returns>
  3550. public static string AddTruckBarCode(string[] barcodes, string entruckingCode, string userCode, SUserInfo sUserInfo)
  3551. {
  3552. IDBConnection oracleConn = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3553. try
  3554. {
  3555. oracleConn.Open();
  3556. //各种验证
  3557. //循环插入
  3558. return "";
  3559. }
  3560. catch (Exception ex)
  3561. {
  3562. throw ex;
  3563. }
  3564. finally
  3565. {
  3566. if (oracleConn.ConnState == ConnectionState.Open)
  3567. {
  3568. oracleConn.Close();
  3569. }
  3570. }
  3571. }
  3572. #endregion
  3573. #region PDA成品库入
  3574. /// <summary>
  3575. /// 获取客户信息
  3576. /// </summary>
  3577. /// <param name="entruckingcode">载具条码</param>ram>
  3578. /// <returns>int</returns>
  3579. public static DataSet AutomaticGetCustomerInformation(string entruckingCode)
  3580. {
  3581. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3582. try
  3583. {
  3584. con.Open();
  3585. string sqlString = @"SELECT DISTINCT
  3586. :ENTRUCKINGCODE AS ENTRUCKINGCODE,
  3587. gds.GOODSCODE AS GOODSCODE,
  3588. gds.GOODSNAME AS GOODSNAME,
  3589. TO_CHAR( C.CUSTOMERCODE ) AS CUSTOMERCODE,
  3590. TO_CHAR( C.CUSTOMERNAME ) AS CUSTOMERNAME
  3591. FROM
  3592. TP_PC_CUSTOMERINFORMATION C
  3593. INNER JOIN (
  3594. SELECT
  3595. GOODSCODE
  3596. FROM
  3597. TP_MST_GOODS
  3598. WHERE
  3599. GOODSNAME IN ( SELECT GOODSNAME FROM TP_PM_GROUTINGDAILYDETAIL G INNER JOIN ( SELECT BARCODE FROM TP_PM_ENTRUCKINGDETAIL WHERE ENTRUCKINGCODE = :ENTRUCKINGCODE ) E ON G.BARCODE = E.BARCODE )
  3600. ) G ON C.GOODSCODE = G.GOODSCODE
  3601. INNER JOIN TP_MST_GOODS GD ON G.GOODSCODE = GD.GOODSCODE
  3602. INNER JOIN TP_MST_GOODSTYPE GT ON GD.GOODSTYPEID = GT.GOODSTYPEID
  3603. AND GT.GOODSTYPECODE <> '001002001'
  3604. INNER JOIN (
  3605. SELECT
  3606. GOODSCODE AS GOODSCODE,
  3607. GOODSNAME AS GOODSNAME
  3608. FROM
  3609. TP_PM_GROUTINGDAILYDETAIL
  3610. WHERE
  3611. BARCODE IN (
  3612. SELECT
  3613. *
  3614. FROM(
  3615. SELECT
  3616. BARCODE
  3617. FROM
  3618. ( SELECT BARCODE, MAX( BATCH ) AS BATCH FROM TP_PM_ENTRUCKINGDETAIL WHERE ENTRUCKINGCODE = :ENTRUCKINGCODE GROUP BY BARCODE )
  3619. WHERE
  3620. ROWNUM = 1
  3621. ORDER BY
  3622. BATCH DESC
  3623. )
  3624. )
  3625. ) gds ON GD.GOODSCODE =GDS.GOODSCODE AND GD.GOODSTYPEID<>8";
  3626. OracleParameter[] paras = new OracleParameter[] {
  3627. new OracleParameter(":ENTRUCKINGCODE",OracleDbType.Varchar2,entruckingCode,ParameterDirection.Input),
  3628. };
  3629. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3630. //查询本次载具上存放的产品条码
  3631. string sqlbarcode = @"SELECT
  3632. *
  3633. FROM
  3634. (
  3635. SELECT DISTINCT
  3636. GL.ISPUBLICBODY OUT_ISPUBLICBODY,
  3637. ET.BARCODE OUT_BARCODE,
  3638. GL.GOODSCODE OUT_GOODSCODE,
  3639. GL.GOODSNAME OUT_GOODSNAME,
  3640. US.USERID OUT_USERID,
  3641. US.USERCODE OUT_USERCODE,
  3642. US.USERNAME OUT_USERNAME,
  3643. GL.GROUTINGMOULDCODE OUT_GROUTINGMOULDCODE,
  3644. GL.GROUTINGCOUNT OUT_GROUTINGNUM,
  3645. GL.GROUTINGDATE OUT_GROUTINGDATE,
  3646. LG.LOGONAME OUT_LOGONAME,
  3647. E.BATCH AS BATCHA,
  3648. MAX( ET.BATCH ) AS BATCHB
  3649. FROM
  3650. TP_PM_ENTRUCKINGDETAIL ET
  3651. INNER JOIN TP_PM_ENTRUCKING E ON ET.ENTRUCKINGCODE = E.ENTRUCKINGCODE
  3652. LEFT JOIN TP_PM_GROUTINGDAILYDETAIL GL ON GL.BARCODE = ET.BARCODE
  3653. LEFT JOIN TP_MST_USER US ON US.USERID = GL.USERID
  3654. LEFT JOIN TP_MST_LOGO LG ON LG.LOGOID = GL.LOGOID
  3655. WHERE
  3656. ET.VALUEFLAG = 1
  3657. AND ET.ENTRUCKINGCODE =:ENTRUCKINGCODE
  3658. GROUP BY
  3659. GL.ISPUBLICBODY,
  3660. ET.BARCODE,
  3661. GL.GOODSCODE,
  3662. GL.GOODSNAME,
  3663. US.USERID,
  3664. US.USERCODE,
  3665. US.USERNAME,
  3666. GL.GROUTINGMOULDCODE,
  3667. GL.GROUTINGCOUNT,
  3668. GL.GROUTINGDATE,
  3669. LG.LOGONAME,
  3670. E.BATCH
  3671. ) T
  3672. WHERE
  3673. T.BATCHA <= T.BATCHB";
  3674. OracleParameter[] parabarcode = new OracleParameter[] {
  3675. new OracleParameter(":ENTRUCKINGCODE",OracleDbType.Varchar2,entruckingCode,ParameterDirection.Input)
  3676. };
  3677. DataTable dt = con.GetSqlResultToDt(sqlbarcode, parabarcode);
  3678. ds.Tables.Add(dt);
  3679. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  3680. {
  3681. return ds;
  3682. }
  3683. else
  3684. {
  3685. return null;
  3686. }
  3687. }
  3688. catch (Exception ex)
  3689. {
  3690. throw ex;
  3691. }
  3692. finally
  3693. {
  3694. if (con.ConnState == ConnectionState.Open)
  3695. {
  3696. con.Close();
  3697. }
  3698. }
  3699. }
  3700. /// <summary>
  3701. /// 校验数据
  3702. /// </summary>
  3703. /// <param name="finished">页面全部数据</param>ram>
  3704. /// <returns>int</returns>
  3705. public static string AutomaticReconciledata(DataTable finished)
  3706. {
  3707. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3708. try
  3709. {
  3710. //用订单号校验对应客户名称,版面名称
  3711. string sqlString = @"SELECT DISTINCT
  3712. od.customerCode,
  3713. od.LAYOUTCODE
  3714. FROM
  3715. TP_PC_ORDERINFORMATION orders
  3716. LEFT JOIN TP_PC_ORDERINFORMATIONDETAILS od on od.ORDERSID=orders.ORDERSID
  3717. WHERE orders.ORDERSCODE=:ORDERSCODE
  3718. AND orders.VALUEFLAG='1'";
  3719. OracleParameter[] paras = new OracleParameter[] {
  3720. new OracleParameter(":ORDERSCODE",OracleDbType.Varchar2,finished.Rows[0]["orderNo"],ParameterDirection.Input)
  3721. };
  3722. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3723. DataTable dt = ds.Tables[0];
  3724. //校验当前表是否存在数据 判断订单号是否存在
  3725. if (dt != null && dt.Rows.Count != 0)
  3726. {
  3727. return "校验正确";
  3728. }
  3729. else
  3730. {
  3731. //保存失败
  3732. return "订单号不正确";
  3733. }
  3734. }
  3735. catch (Exception ex)
  3736. {
  3737. throw ex;
  3738. }
  3739. finally
  3740. {
  3741. if (con.ConnState == ConnectionState.Open)
  3742. {
  3743. con.Close();
  3744. }
  3745. }
  3746. }
  3747. /// <summary>
  3748. /// 写入订单明细
  3749. /// </summary>
  3750. /// <param name="finished">页面全部数据</param>ram>
  3751. /// <returns>int</returns>
  3752. public static int AutomaticFinishedInsertData(DataTable finished, SUserInfo sUserInfo, DataTable BarcodeTable)
  3753. {
  3754. int flag = 0;
  3755. string orderNo = finished.Rows[0]["orderNo"].ToString();
  3756. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  3757. try
  3758. {
  3759. //获取对应订单号 ID
  3760. string sqlorderID = @"SELECT ORDERSID
  3761. from
  3762. TP_PC_ORDERINFORMATION
  3763. WHERE ORDERSCODE=:ORDERSCODE";
  3764. OracleParameter[] paraOrder = new OracleParameter[] {
  3765. new OracleParameter(":ORDERSCODE",OracleDbType.Varchar2,finished.Rows[0]["orderNo"].ToString(),ParameterDirection.Input)
  3766. };
  3767. DataTable dtorder = con.GetSqlResultToDt(sqlorderID, paraOrder);
  3768. string ordersID = "";
  3769. if (dtorder != null && dtorder.Rows.Count > 0)
  3770. {
  3771. ordersID = dtorder.Rows[0]["ORDERSID"].ToString();//订单ID
  3772. }
  3773. if (orderNo == "" || orderNo == null)
  3774. {
  3775. orderNo = "";
  3776. }
  3777. for (int i = 0; i < BarcodeTable.Rows.Count; i++)
  3778. {
  3779. string insertsql = @"INSERT INTO TP_PC_ORDERINFORMATIONDETAILS( ORDERSID,ORDERSCODE,BARCODE,ACCOUNTID,CREATEUSERID,UPDATEUSERID,LAYOUTCODE,CUSTOMERCODE,VALUEFLAG )
  3780. VALUES (:ORDERSID ,:orderNo ,:BARCODE,1 ,:CREATEUSERID ,:UPDATEUSERID ,:LAYOUTCODES,:CUSTOMERCODE ,1 )";
  3781. OracleParameter[] insertpars = new OracleParameter[] {
  3782. new OracleParameter(":ORDERSID",OracleDbType.Varchar2,ordersID,ParameterDirection.Input),
  3783. new OracleParameter(":orderNo",OracleDbType.Varchar2,orderNo,ParameterDirection.Input),
  3784. new OracleParameter(":BARCODE",OracleDbType.Varchar2,BarcodeTable.Rows[i]["BARCODE"],ParameterDirection.Input),
  3785. new OracleParameter(":CREATEUSERID",OracleDbType.Varchar2,sUserInfo.UserID,ParameterDirection.Input),
  3786. new OracleParameter(":UPDATEUSERID",OracleDbType.Varchar2,sUserInfo.UserID,ParameterDirection.Input),
  3787. new OracleParameter(":CUSTOMERCODE",OracleDbType.Varchar2,finished.Rows[0]["customerCode"].ToString(),ParameterDirection.Input),
  3788. new OracleParameter(":LAYOUTCODES",OracleDbType.Varchar2,finished.Rows[0]["pageCode"].ToString(),ParameterDirection.Input),
  3789. };
  3790. flag += con.ExecuteNonQuery(insertsql, insertpars);
  3791. }
  3792. if (flag == BarcodeTable.Rows.Count)
  3793. {
  3794. con.Commit();
  3795. return flag;
  3796. }
  3797. else
  3798. {
  3799. flag = 0;
  3800. }
  3801. return flag;
  3802. }
  3803. catch (Exception ex)
  3804. {
  3805. con.Rollback();
  3806. throw ex;
  3807. }
  3808. finally
  3809. {
  3810. // 释放资源
  3811. if (con.ConnState == System.Data.ConnectionState.Open)
  3812. {
  3813. con.Disconnect();
  3814. }
  3815. }
  3816. }
  3817. #endregion
  3818. #region 临时使用成品库入
  3819. /// <summary>
  3820. /// 获取产品
  3821. /// </summary>
  3822. /// <returns>int</returns>
  3823. public static DataSet GetGoodsCode()
  3824. {
  3825. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3826. try
  3827. {
  3828. con.Open();
  3829. string sqlString = @"SELECT
  3830. GOODSCODE,
  3831. GOODSNAME
  3832. FROM TP_MST_GOODS
  3833. WHERE VALUEFLAG=1 ";
  3834. OracleParameter[] paras = new OracleParameter[] { };
  3835. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3836. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  3837. {
  3838. return ds;
  3839. }
  3840. else
  3841. {
  3842. return null;
  3843. }
  3844. }
  3845. catch (Exception ex)
  3846. {
  3847. throw ex;
  3848. }
  3849. finally
  3850. {
  3851. if (con.ConnState == ConnectionState.Open)
  3852. {
  3853. con.Close();
  3854. }
  3855. }
  3856. }
  3857. /// <summary>
  3858. /// 获取版面信息
  3859. /// </summary>
  3860. /// <param name="customercode">客户编码</param>ram>
  3861. /// <param name="goodscode">产品编码</param>ram>
  3862. /// <returns>int</returns>
  3863. public static DataSet GetLayoutinformation(string customercode, string goodscode)
  3864. {
  3865. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3866. try
  3867. {
  3868. con.Open();
  3869. string sqlString = @" SELECT
  3870. *
  3871. FROM(
  3872. SELECT a.*, rank() over(partition by a.LAYOUTNAME order by a.LAYOUTCODE) rn FROM(
  3873. SELECT DISTINCT
  3874. C.CUSTOMERNAME,
  3875. C.GOODSCODE,
  3876. L.LAYOUTCODE,
  3877. L.LAYOUTNAME as LAYOUTNAME
  3878. FROM TP_PC_CUSTOMERINFORMATION C
  3879. LEFT JOIN TP_PC_LAYOUTINFORMATION L ON C.CUSTOMERCODE = L.CUSTOMERCODE AND L.GOODSCODE=c.GOODSCODE
  3880. WHERE C.VALUEFLAG = '1'
  3881. AND c.CUSTOMERCODE=:customercode
  3882. AND L.GOODSCODE IN ( SELECT GOODSCODE FROM TP_MST_GOODS WHERE GOODSNAME IN (SELECT GOODSNAME FROM TP_MST_GOODS WHERE GOODSCODE=:goodscode ))
  3883. AND C.VALUEFLAG=1
  3884. AND L.VALUEFLAG=1
  3885. ) a
  3886. )
  3887. WHERE rn=1";
  3888. OracleParameter[] paras = new OracleParameter[] {
  3889. new OracleParameter(":customercode",OracleDbType.Varchar2,customercode,ParameterDirection.Input),
  3890. new OracleParameter(":goodscode",OracleDbType.Varchar2,goodscode,ParameterDirection.Input),
  3891. };
  3892. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3893. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  3894. {
  3895. return ds;
  3896. }
  3897. else
  3898. {
  3899. return null;
  3900. }
  3901. }
  3902. catch (Exception ex)
  3903. {
  3904. throw ex;
  3905. }
  3906. finally
  3907. {
  3908. if (con.ConnState == ConnectionState.Open)
  3909. {
  3910. con.Close();
  3911. }
  3912. }
  3913. }
  3914. /// <summary>
  3915. /// 验证载具状态
  3916. /// </summary>
  3917. /// <param name="entruckingCode">载具编码</param>ram>
  3918. /// <returns>int</returns>
  3919. public static DataSet Verify(string entruckingCode,string goodscode)
  3920. {
  3921. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3922. try
  3923. {
  3924. con.Open();
  3925. string sqlString = @"SELECT ENTRUCKINGCODE,STATUS
  3926. FROM TP_PM_ENTRUCKING
  3927. WHERE ENTRUCKINGCODE=:entruckingCode ";
  3928. OracleParameter[] paras = new OracleParameter[] {
  3929. new OracleParameter(":entruckingCode",OracleDbType.Varchar2,entruckingCode.Trim(),ParameterDirection.Input)
  3930. };
  3931. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  3932. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  3933. {
  3934. return ds;
  3935. }
  3936. else
  3937. {
  3938. return null;
  3939. }
  3940. }
  3941. catch (Exception ex)
  3942. {
  3943. throw ex;
  3944. }
  3945. finally
  3946. {
  3947. if (con.ConnState == ConnectionState.Open)
  3948. {
  3949. con.Close();
  3950. }
  3951. }
  3952. }
  3953. /// <summary>
  3954. /// 客户编码
  3955. /// </summary>
  3956. /// <returns>int</returns>
  3957. public static DataSet GetCustomerInformation(string entruckingCode, string goodscode)
  3958. {
  3959. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  3960. try
  3961. {
  3962. con.Open();
  3963. string sqlbarcode = @"SELECT
  3964. DISTINCT
  3965. CUSTOMERCODE,
  3966. CUSTOMERNAME
  3967. FROM
  3968. TP_PC_CUSTOMERINFORMATION
  3969. WHERE GOODSCODE=:goodscode
  3970. AND VALUEFLAG=1";
  3971. OracleParameter[] parabarcode = new OracleParameter[] {
  3972. new OracleParameter(":goodscode",OracleDbType.Varchar2,goodscode,ParameterDirection.Input)
  3973. };
  3974. DataSet ds = con.GetSqlResultToDs(sqlbarcode, parabarcode);
  3975. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  3976. {
  3977. return ds;
  3978. }
  3979. else
  3980. {
  3981. return null;
  3982. }
  3983. }
  3984. catch (Exception ex)
  3985. {
  3986. throw ex;
  3987. }
  3988. finally
  3989. {
  3990. if (con.ConnState == ConnectionState.Open)
  3991. {
  3992. con.Close();
  3993. }
  3994. }
  3995. }
  3996. /// <summary>
  3997. /// 写入订单明细
  3998. /// </summary>
  3999. /// <param name="finished">页面全部数据</param>ram>
  4000. /// <returns>int</returns>
  4001. public static int FinishedInsertData(DataTable finished, SUserInfo sUserInfo, DataTable BarcodeTable)
  4002. {
  4003. int flag = 0;
  4004. string orderNo = finished.Rows[0]["orderNo"].ToString();
  4005. IDBTransaction con = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
  4006. try
  4007. {
  4008. string insertsql = @"INSERT INTO TP_PC_ORDERINFORMATIONDETAILS( ORDERSCODE,ACCOUNTID,CREATEUSERID,UPDATEUSERID,LAYOUTCODE,CUSTOMERCODE,VALUEFLAG,GOODSCODE,GOODSNAME,NUMBERS,ENTRUCKINGCODE )
  4009. VALUES (:orderNo ,1 ,:CREATEUSERID ,:UPDATEUSERID ,:LAYOUTCODES,:CUSTOMERCODE ,1 ,:GOODSCODE,:GOODSNAME,:NUMBERS,:ENTRUCKINGCODE )";
  4010. OracleParameter[] insertpars = new OracleParameter[] {
  4011. new OracleParameter(":orderNo",OracleDbType.Varchar2,orderNo,ParameterDirection.Input),
  4012. new OracleParameter(":CREATEUSERID",OracleDbType.Varchar2,sUserInfo.UserID,ParameterDirection.Input),
  4013. new OracleParameter(":UPDATEUSERID",OracleDbType.Varchar2,sUserInfo.UserID,ParameterDirection.Input),
  4014. new OracleParameter(":CUSTOMERCODE",OracleDbType.Varchar2,finished.Rows[0]["customerCode"].ToString(),ParameterDirection.Input),
  4015. new OracleParameter(":LAYOUTCODES",OracleDbType.Varchar2,finished.Rows[0]["pageCode"].ToString(),ParameterDirection.Input),
  4016. new OracleParameter(":GOODSCODE",OracleDbType.Varchar2,finished.Rows[0]["productCode"].ToString(),ParameterDirection.Input),
  4017. new OracleParameter(":GOODSNAME",OracleDbType.Varchar2,finished.Rows[0]["productName"].ToString(),ParameterDirection.Input),
  4018. new OracleParameter(":NUMBERS",OracleDbType.Varchar2,finished.Rows[0]["GoodsNum"].ToString().Trim(),ParameterDirection.Input),
  4019. new OracleParameter(":ENTRUCKINGCODE",OracleDbType.Varchar2,finished.Rows[0]["equipmentCode"].ToString().Trim(),ParameterDirection.Input)
  4020. };
  4021. flag = con.ExecuteNonQuery(insertsql, insertpars);
  4022. string updatesql = @"UPDATE TP_PM_ENTRUCKING SET STATUS=1 WHERE ENTRUCKINGCODE=:ENTRUCKINGCODE";
  4023. OracleParameter[] updatepars = new OracleParameter[] {
  4024. new OracleParameter(":ENTRUCKINGCODE",OracleDbType.Varchar2,finished.Rows[0]["equipmentCode"].ToString().Trim(),ParameterDirection.Input)
  4025. };
  4026. flag += con.ExecuteNonQuery(updatesql, updatepars);
  4027. if (flag >1)
  4028. {
  4029. con.Commit();
  4030. return flag;
  4031. }
  4032. return flag;
  4033. }
  4034. catch (Exception ex)
  4035. {
  4036. con.Rollback();
  4037. throw ex;
  4038. }
  4039. finally
  4040. {
  4041. // 释放资源
  4042. if (con.ConnState == System.Data.ConnectionState.Open)
  4043. {
  4044. con.Disconnect();
  4045. }
  4046. }
  4047. }
  4048. /// <summary>
  4049. /// 校验产品报损发现人
  4050. /// </summary>
  4051. /// <returns>int</returns>
  4052. public static string DiscoverPeople(string staffcode) {
  4053. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4054. try
  4055. {
  4056. con.Open();
  4057. string sqlbarcode = @"SELECT STAFFNAME FROM TP_HR_STAFF WHERE STAFFCODE =:staffcode";
  4058. OracleParameter[] parabarcode = new OracleParameter[] {
  4059. new OracleParameter(":staffcode",OracleDbType.Varchar2,staffcode,ParameterDirection.Input)
  4060. };
  4061. string ds = con.GetSqlResultToStr(sqlbarcode, parabarcode);
  4062. if (ds != null && ds!="")
  4063. {
  4064. return ds;
  4065. }
  4066. else
  4067. {
  4068. return null;
  4069. }
  4070. }
  4071. catch (Exception ex)
  4072. {
  4073. throw ex;
  4074. }
  4075. finally
  4076. {
  4077. if (con.ConnState == ConnectionState.Open)
  4078. {
  4079. con.Close();
  4080. }
  4081. }
  4082. }
  4083. /// <summary>
  4084. /// PDA原条码查询
  4085. /// </summary>
  4086. /// <returns>int</returns>
  4087. public static DataSet InitialBarcode(string Begintime,string EndTime,string GroutingMouldCode, string Usercode,string GroutingBatchno)
  4088. {
  4089. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4090. try
  4091. {
  4092. con.Open();
  4093. string sqlbarcode = @"SELECT DISTINCT
  4094. --TP_PM_BARCODERECORD.FIRSTBARCODE,
  4095. TP_PM_GROUTINGDAILYDETAIL.BARCODE AS FINALBARCODE ,
  4096. TP_PM_GROUTINGDAILYDETAIL.GOODSCODE ,
  4097. TP_PM_GROUTINGDAILYDETAIL.GOODSNAME ,
  4098. TP_PM_GROUTINGDAILYDETAIL.GROUTINGMOULDCODE ,
  4099. TP_PM_GROUTINGDAILYDETAIL.USERCODE ,
  4100. --TP_PM_GROUTINGDAILYDETAIL.GROUTINGCOUNT,
  4101. TP_PM_GROUTINGDAILYDETAIL.GROUTINGDATE ,
  4102. TP_PM_GROUTINGDAILYDETAIL.GROUTINGBATCHNO
  4103. FROM TP_PM_GROUTINGDAILYDETAIL
  4104. LEFT JOIN TP_PM_PRODUCTIONDATA ON TP_PM_PRODUCTIONDATA.BARCODE=TP_PM_GROUTINGDAILYDETAIL.BARCODE
  4105. LEFT JOIN TP_MST_LOGO ON TP_MST_LOGO.LOGOID=TP_PM_GROUTINGDAILYDETAIL.LOGOID
  4106. WHERE TP_PM_GROUTINGDAILYDETAIL.GROUTINGDATE = DATE'" + Begintime.ToString()+"'";
  4107. if (Usercode != null && Usercode != "")
  4108. {
  4109. sqlbarcode += @" AND TP_PM_GROUTINGDAILYDETAIL.USERCODE LIKE '%"+Usercode+"%'";
  4110. }
  4111. if (GroutingMouldCode != null && GroutingMouldCode != "")
  4112. {
  4113. sqlbarcode += @" AND TP_PM_GROUTINGDAILYDETAIL.GROUTINGMOULDCODE LIKE '%" + GroutingMouldCode + "%'";
  4114. }
  4115. if (GroutingBatchno != null && GroutingBatchno != "")
  4116. {
  4117. sqlbarcode += @" AND TP_PM_GROUTINGDAILYDETAIL.GROUTINGBATCHNO LIKE '%" + GroutingBatchno + "%'";
  4118. }
  4119. DataSet ds = con.GetSqlResultToDs(sqlbarcode, null);
  4120. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  4121. {
  4122. return ds;
  4123. }
  4124. else
  4125. {
  4126. return null;
  4127. }
  4128. }
  4129. catch (Exception ex)
  4130. {
  4131. throw ex;
  4132. }
  4133. finally
  4134. {
  4135. if (con.ConnState == ConnectionState.Open)
  4136. {
  4137. con.Close();
  4138. }
  4139. }
  4140. }
  4141. #endregion
  4142. #region 施釉融合商标釉料数据源
  4143. /// <summary>
  4144. /// 获取客户信息
  4145. /// </summary>
  4146. /// <param name="entruckingcode">载具条码</param>ram>
  4147. /// <returns>int</returns>
  4148. public static DataSet Logoglaze(string goodscode)
  4149. {
  4150. IDBConnection con = ClsDbFactory.CreateDBConnection(DataBaseType.ORACLE, DataManager.ConnectionString);
  4151. try
  4152. {
  4153. con.Open();
  4154. //产品对应商标
  4155. string sqlString = @"SELECT
  4156. LOGOID,
  4157. LOGONAME
  4158. from
  4159. TP_MST_GOODSLOGO
  4160. WHERE GOODSCODE=:GOODSCODE";
  4161. OracleParameter[] paras = new OracleParameter[] {
  4162. new OracleParameter(":GOODSCODE",OracleDbType.Varchar2,goodscode,ParameterDirection.Input),
  4163. };
  4164. DataSet ds = con.GetSqlResultToDs(sqlString, paras);
  4165. //釉料
  4166. string sqlbarcode = @"SELECT
  4167. GLAZETYPEID,
  4168. GLAZE
  4169. from
  4170. TP_MST_GOODSGLAZE
  4171. where GOODSCODE=:GOODSCODE";
  4172. OracleParameter[] parase = new OracleParameter[] {
  4173. new OracleParameter(":GOODSCODE",OracleDbType.Varchar2,goodscode,ParameterDirection.Input),
  4174. };
  4175. DataTable dt = con.GetSqlResultToDt(sqlbarcode, parase);
  4176. ds.Tables.Add(dt);
  4177. if (ds != null && ds.Tables.Count > Constant.INT_IS_ZERO)
  4178. {
  4179. return ds;
  4180. }
  4181. else
  4182. {
  4183. return null;
  4184. }
  4185. }
  4186. catch (Exception ex)
  4187. {
  4188. throw ex;
  4189. }
  4190. finally
  4191. {
  4192. if (con.ConnState == ConnectionState.Open)
  4193. {
  4194. con.Close();
  4195. }
  4196. }
  4197. }
  4198. #endregion
  4199. }
  4200. }