PMModuleLogic.cs 191 KB

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