PMModuleLogic.cs 176 KB

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