PMModuleLogic.cs 160 KB

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