PMModuleLogic.cs 212 KB

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