| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942 |
- /*******************************************************************************
- * Copyright(c) 2014 DongkeSoft All rights reserved. / Confidential
- * 类的信息:
- * 1.程序名称:PCModuleLogicDAL.cs
- * 2.功能描述:生产配置数据库访问类(插入、修改、删除)
- * 编辑履历:
- * 作者 日期 版本 修改内容
- * 陈冰 2014/09/3 1.00 新建
- *******************************************************************************/
- using System;
- using System.Data;
- using System.Linq;
- using Dongke.IBOSS.PRD.Basics.BaseResources;
- using Dongke.IBOSS.PRD.Basics.DataAccess;
- using Dongke.IBOSS.PRD.Service.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels;
- using Dongke.IBOSS.PRD.WCF.DataModels.PCModule;
- using Oracle.DataAccess.Client;
- namespace Dongke.IBOSS.PRD.Service.PCModuleLogic
- {
- /// <summary>
- /// 生产配置数据库访问类(插入、修改、删除)
- /// </summary>
- public partial class PCModuleLogicDAL
- {
- #region 生产线管理
- /// <summary>
- /// 保存生产线
- /// </summary>
- /// <param name="productionLine">生产线实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int SaveProductionLine(ProductionLineEntity productionLine, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- #region 新建生产线
- if (productionLine.ProductionLineID == 0)
- {
- #region 判断编码是否重复
- string sqlText = " SELECT ProductionLineID "
- + " FROM TP_PC_ProductionLine "
- + " WHERE "
- + " AccountID=:accountID "
- + " AND ProductionLineCode=:productionLineCode";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- };
- string returnCode = oracleTrConn.GetSqlResultToStr(sqlText, paras);
- if (!string.IsNullOrEmpty(returnCode))
- {
- return Constant.RETURN_IS_EXIST;
- }
- #endregion
- #region 查询新ID
- sqlText = "SELECT SEQ_PC_PRODUCTIONLINE_ID.nextval FROM dual";
- productionLine.ProductionLineID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- #endregion
- #region 插入生产线
- sqlText = "INSERT INTO TP_PC_ProductionLine (ProductionLineID,"
- + "ProductionLineCode,"
- + "ProductionLineName,"
- + "FlowXML,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID)"
- + " VALUES(:ProductionLineID,"
- + ":productionLineCode,"
- + ":productionLineName,"
- + ":flowXML,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":ProductionLineID",productionLine.ProductionLineID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- new OracleParameter(":productionLineName",productionLine.ProductionLineName),
- new OracleParameter(":flowXML", System.Text.Encoding.UTF8.GetBytes(productionLine.FlowXML)),
- new OracleParameter(":remarks",productionLine.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- };
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- //#region 查询新ID
- //sqlText = "SELECT SEQ_PC_PRODUCTIONLINE_ID.currval FROM dual";
- //productionLine.ProductionLineID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //#endregion
- #region 插入工序
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- sqlText = "SELECT SEQ_PC_PROCEDURE_PROCEDUREID.Nextval FROM dual";
- procedure.ProcedureID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- sqlText = "INSERT INTO TP_PC_Procedure ("
- + "ProcedureID,"
- + "NodeNo,"
- + "ProductionLineID,"
- + "ProcedureCode,"
- + "ProcedureName,"
- + "ProcedureModel,"
- + "ModelType,"
- + "NodeType,"
- + "MustFlag,"
- + "CollectType,"
- + "PieceType,"
- + "IsSpecialRework,"
- + "IsSemireWork,"
- + "OrganizationID,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID)"
- + " VALUES("
- + ":procedureID,"
- + ":nodeNo,"
- + ":productionLineID,"
- + ":procedureCode,"
- + ":procedureName,"
- + ":procedureModel,"
- + ":ModelType,"
- + ":NodeType,"
- + ":mustFlag,"
- + ":collectType,"
- + ":pieceType,"
- + ":isSpecialRework,"
- + ":IsSemireWork,"
- + ":organizationID,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureCode",procedure.ProcedureCode),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":procedureModel",procedure.ProcedureModel),
- new OracleParameter(":ModelType",procedure.ModelType),
- new OracleParameter(":NodeType",procedure.NodeType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":IsSemireWork",procedure.IsSemireWork),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- };
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- #region 编辑生产线
- else
- {
- #region 校验时间戳
- // todo
- string sql = "SELECT OPTimeStamp FROM TP_PC_ProductionLine"
- + " WHERE ProductionLineID = " + productionLine.ProductionLineID + " and OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, productionLine.OPTimeStamp, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return Constant.RETURN_IS_DATACHANGED;
- }
- #endregion
- #region 判断编码是否重复
- string sqlText = " SELECT ProductionLineID "
- + " FROM TP_PC_ProductionLine "
- + " WHERE "
- + " AccountID=:accountID "
- + " AND ProductionLineCode=:productionLineCode"
- + " AND ProductionLineID <> :productionLineID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- };
- string returnCode = oracleTrConn.GetSqlResultToStr(sqlText, paras);
- if (!string.IsNullOrEmpty(returnCode))
- {
- return Constant.RETURN_IS_EXIST;
- }
- #endregion
- #region 编辑生产线
- sqlText = "UPDATE TP_PC_ProductionLine SET "
- + "ProductionLineName=:productionLineName,"
- + "FlowXML=:flowXML,"
- + "Remarks=:remarks,"
- + "UpdateTime=sysdate, "
- + "UpdateUserID=:updateUserID "
- + " WHERE ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineName",productionLine.ProductionLineName),
- new OracleParameter(":flowXML", OracleDbType.Blob,System.Text.Encoding.UTF8.GetBytes(productionLine.FlowXML),ParameterDirection.Input),
- new OracleParameter(":remarks",productionLine.Remarks),
- new OracleParameter(":updateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":productionLineID", OracleDbType.Int32, productionLine.ProductionLineID,ParameterDirection.Input)
- };
- //foreach (OracleParameter item in paras)
- //{
- // if (item.Value + "" == "")
- // {
- // item.Value = System.DBNull.Value;
- // }
- //}
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 编辑工序
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- if (procedure.EditingAddFlag)
- {
- #region 编辑时新添加的节点
- sqlText = "SELECT SEQ_PC_PROCEDURE_PROCEDUREID.Nextval FROM dual";
- procedure.ProcedureID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- sqlText = "INSERT INTO TP_PC_Procedure ("
- + "ProcedureID,"
- + "NodeNo,"
- + "ProductionLineID,"
- + "ProcedureCode,"
- + "ProcedureName,"
- + "ProcedureModel,"
- + "ModelType,"
- + "NodeType,"
- + "MustFlag,"
- + "CollectType,"
- + "PieceType,"
- + "IsSpecialRework,"
- + "IsSemireWork,"
- + "OrganizationID,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID)"
- + " VALUES("
- + ":procedureID,"
- + ":nodeNo,"
- + ":productionLineID,"
- + ":procedureCode,"
- + ":procedureName,"
- + ":procedureModel,"
- + ":ModelType,"
- + ":NodeType,"
- + ":mustFlag,"
- + ":collectType,"
- + ":pieceType,"
- + ":isSpecialRework,"
- + ":isSemireWork,"
- + ":organizationID,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureCode",procedure.ProcedureCode),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":procedureModel",procedure.ProcedureModel),
- new OracleParameter(":ModelType",procedure.ModelType),
- new OracleParameter(":NodeType",procedure.NodeType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- };
- #endregion
- }
- else
- {
- #region 编辑
- sqlText = "UPDATE TP_PC_Procedure SET "
- + " ProcedureName=:procedureName,"
- + " ProcedureCode=:ProcedureCode,"
- + " ModelType=:modelType,"
- + " MustFlag=:mustFlag,"
- + " CollectType=:collectType,"
- + " OrganizationID=:organizationID,"
- + " NodeType=:nodeType,"
- + " PieceType=:pieceType,"
- + " IsSpecialRework=:isSpecialRework,"
- + " IsSemireWork=:isSemireWork,"
- + " NodeNo=:nodeNo,"
- + " Remarks=:remarks,"
- + " updateUserID=:updateUserID,"
- + " UpdateTime=sysdate"
- + " WHERE NodeNo=:nodeNo "
- + " AND ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":ProcedureCode",procedure.ProcedureCode),
- new OracleParameter(":modelType",procedure.ModelType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":nodeType",procedure.NodeType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- };
- #endregion
- }
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 先删除生产工序流程明细 然后再插入
- sqlText = "DELETE TP_PC_ProcedureFlow WHERE ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应产品 然后再插入
- sqlText = "DELETE TP_PC_ProcedureGoods WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应工号 然后再插入
- sqlText = "DELETE TP_PC_ProcedureUser WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应缺陷 然后再插入
- sqlText = "DELETE TP_PC_ProcedureDefect WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除缺陷对应工序工种表 然后再插入
- sqlText = "DELETE TP_PC_DefectProcedureJobs WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- #region 插入生产工序属性等信息
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- string sqlText;
- OracleParameter[] paras;
- #region 插入生产工序流程明细
- if (procedure.ProcedureFlowDetailList != null)
- {
- foreach (ProcedureFlowEntity flowDetail in procedure.ProcedureFlowDetailList)
- {
- ProcedureEntity procedureWhere = productionLine.ProcedureList.Where(p => p.NodeNo == flowDetail.ArriveNodeNo).SingleOrDefault();
- // 没有找到对应节点的ID
- if (procedureWhere == null)
- {
- return Constant.INT_IS_ZERO;
- }
- else
- {
- flowDetail.ArriveProcedureID = procedureWhere.ProcedureID;
- }
- sqlText = "INSERT INTO TP_PC_ProcedureFlow ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "FlowFlag,"
- + "ArriveProcedureID,"
- + "ArriveNodeNo"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":flowFlag,"
- + ":arriveProcedureID,"
- + ":arriveNodeNo"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":flowFlag",flowDetail.FlowFlag),
- new OracleParameter(":arriveProcedureID",flowDetail.ArriveProcedureID),
- new OracleParameter(":arriveNodeNo",flowDetail.ArriveNodeNo),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- }
- #endregion
- #region 插入生产工序对应产品表
- foreach (DataRow row in procedure.ProcedureGoodsTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureGoods ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "GOODSID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":goodsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":goodsID",OracleDbType.Int32,row["goodsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应工号表
- foreach (DataRow row in procedure.ProcedureUserTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureUser ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "UserID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":userID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":userID",OracleDbType.Int32,row["userID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应缺陷表
- foreach (DataRow row in procedure.ProcedureDefectTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_ProcedureDefect ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":defectID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":defectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入缺陷对应工序工种表
- foreach (DataRow row in procedure.DefectProcedureJobsTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value || row["jobsID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_DefectProcedureJobs ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "JobsID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":DefectID,"
- + ":jobsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":DefectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":jobsID",OracleDbType.Int32,row["jobsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 停用生产线
- /// </summary>
- /// <param name="lineID">生产线ID</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>int</returns>
- /// <remarks>
- /// 陈冰 2014.09.15 新建
- /// </remarks>
- public static int StopProductionLine(int lineID, int flag, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- // 更新总表
- // 更新明细表
- if (flag == 0)
- {
- string sqlText = "UPDATE tp_pc_productionline SET valueflag=0,UpdateUserID=:updateUserID WHERE productionlineid=:productionLineID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":productionLineID",lineID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "UPDATE TP_PC_Procedure SET valueflagback=valueflag, valueflag=0,UpdateUserID=:updateUserID WHERE productionlineid=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- else
- {
- string sqlText = "UPDATE tp_pc_productionline SET valueflag=1,UpdateUserID=:updateUserID WHERE productionlineid=:productionLineID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":productionLineID",lineID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- sqlText = "UPDATE TP_PC_Procedure SET valueflag=valueflagback, UpdateUserID=:updateUserID WHERE productionlineid=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- #endregion
- #region 班次配置
- /// <summary>
- /// 保存班次配置信息
- /// </summary>
- /// <param name="setEntity">班次配置实体</param>
- /// <param name="dtClassesSetting">班次配置明细table</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns>>0 保存成功 else 失败</returns>
- /// <remarks>
- /// 作者 日期 内容
- /// 冯雪 2014-9-24 新建
- /// </remarks>
- public static int SaveClassesSetting(ClassesSettingEntity setEntity, DataTable dtClassesSetting, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- oracleTrConn.Connect();
- int classesSettingID = 0;
- if (setEntity.ClassesSettingID == 0)
- {
- // 查询新插入的生产数据ID
- string sqlText = "SELECT SEQ_PC_ClassesSetting_ID.NEXTVAL FROM dual";
- classesSettingID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- // 插入班次配置表
- string sqlString1 = " INSERT INTO TP_PC_ClassesSetting "
- + " (ClassesSettingID,AccountDate,UserID,UserCode, "
- + " Remarks,AccountID,CreateTime,CreateUserID,UpdateUserID) "
- + " VALUES (:ClassesSettingID,:AccountDate,:userID,:userCode, "
- + " :remarks,:accountID,sysdate,:createUserID,:updateUserID)";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":userID",OracleDbType.Int32,setEntity.UserID,ParameterDirection.Input),
- new OracleParameter(":userCode",OracleDbType.Varchar2,setEntity.UserCode,ParameterDirection.Input),
- new OracleParameter(":AccountDate",OracleDbType.Date,setEntity.AccountDate,ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,setEntity.Remarks,ParameterDirection.Input),
- new OracleParameter(":accountID",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":createUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlString1, parmeters1);
- }
- else
- {
- classesSettingID = setEntity.ClassesSettingID;
- // 删除以前的班次
- string sqlDelete = "DELETE FROM TP_PC_ClassesDetail WHERE ClassesSettingID=:ClassesSettingID";
- OracleParameter[] parmeters1 = new OracleParameter[]
- {
- new OracleParameter(":ClassesSettingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlDelete, parmeters1);
- }
- #region 保存班次配置明细信息
- foreach (DataRow dataRow in dtClassesSetting.Rows)
- {
- if (dataRow["UJobsId"].ToString() == "" && dataRow["StaffCode"].ToString() == "")
- {
- continue;
- }
- if (dataRow.RowState == DataRowState.Deleted)
- {
- continue;
- }
- string sqlInsertString = "INSERT INTO TP_PC_ClassesDetail "
- + " (ClassesSettingID,AccountDate,userid,usercode,ujobsid,staffid,sjobsid,staffstatus,"
- + " remarks,accountid,createtime,createuserid,UpdateUserID,UJobsNum) "
- + "VALUES (:settingID,:AccountDate,:userid,:usercode,:ujobsid,:staffid,:sjobsid,:staffstatus,"
- + " :remarks,:accountid,sysdate,:createuserid,:updateUserID,:uJobsNum)";
- int UJobsNum = 1;//默认一个
- if (dtClassesSetting.Select("ujobsid=" + dataRow["UJobsId"]).Length > 0)
- {
- UJobsNum = dtClassesSetting.Select("ujobsid=" + dataRow["UJobsId"]).Length;
- }
- OracleParameter[] oracleParameter = new OracleParameter[]
- {
- new OracleParameter(":settingID",OracleDbType.Int32,classesSettingID,ParameterDirection.Input),
- new OracleParameter(":userid",OracleDbType.Int32,dataRow["userid"].ToString(),ParameterDirection.Input),
- new OracleParameter(":usercode",OracleDbType.Varchar2,dataRow["usercode"].ToString(),ParameterDirection.Input),
- new OracleParameter(":ujobsid",OracleDbType.Int32,dataRow["UJobsId"].ToString(),ParameterDirection.Input),
- new OracleParameter(":staffid",OracleDbType.Int32,dataRow["staffid"].ToString(),ParameterDirection.Input),
- new OracleParameter(":sjobsid",OracleDbType.Int32,dataRow["Jobs"].ToString(),ParameterDirection.Input),
- new OracleParameter(":staffstatus",OracleDbType.Int32,dataRow["staffstatus"].ToString(),ParameterDirection.Input),
- new OracleParameter(":remarks",OracleDbType.Varchar2,dataRow["remarks"].ToString(),ParameterDirection.Input),
- new OracleParameter(":AccountDate",OracleDbType.Date,setEntity.AccountDate,ParameterDirection.Input),
- new OracleParameter(":accountid",OracleDbType.Int32,sUserInfo.AccountID,ParameterDirection.Input),
- new OracleParameter(":createuserid",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":updateUserID",OracleDbType.Int32,sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":uJobsNum",OracleDbType.Decimal,UJobsNum,ParameterDirection.Input)
- };
- returnRows = oracleTrConn.ExecuteNonQuery(sqlInsertString, oracleParameter);
- }
- #endregion
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return returnRows;
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- oracleTrConn.Disconnect();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- }
- #endregion
- /// <summary>
- /// 保存生产线
- /// </summary>
- /// <param name="productionLine">生产线实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int SaveProductionLine2(ProductionLineEntity productionLine, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- #region 验证工序个数
- if (DataManager.LicDataSet != null)
- {
- int licCount = Convert.ToInt32(DataManager.LicDataSet.Tables["Info"].Rows[0]["PFNum"]);
- if (licCount > -1)
- {
- int pNum = Convert.ToInt32(oracleTrConn.GetSqlResultToObj("select count(*) from tp_pc_procedure p where p.valueflag = '1' and p.productionlineid <> " + productionLine.ProductionLineID));
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- if(procedure.ProcedureState != 2)
- {
- pNum++;
- }
- }
- if (pNum > licCount)
- {
- oracleTrConn.Rollback();
- return -10;
- }
- }
- }
- #endregion
- #region 新建生产线
- if (productionLine.ProductionLineID == 0)
- {
- #region 判断编码是否重复
- string sqlText = " SELECT ProductionLineID "
- + " FROM TP_PC_ProductionLine "
- + " WHERE "
- + " AccountID=:accountID "
- + " AND ProductionLineCode=:productionLineCode";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- };
- string returnCode = oracleTrConn.GetSqlResultToStr(sqlText, paras);
- if (!string.IsNullOrEmpty(returnCode))
- {
- return Constant.RETURN_IS_EXIST;
- }
- #endregion
- #region 查询新ID
- sqlText = "SELECT SEQ_PC_PRODUCTIONLINE_ID.nextval FROM dual";
- productionLine.ProductionLineID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- #endregion
- #region 插入生产线
- sqlText = "INSERT INTO TP_PC_ProductionLine (ProductionLineID,"
- + "ProductionLineCode,"
- + "ProductionLineName,"
- + "FlowXML,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID)"
- + " VALUES(:ProductionLineID,"
- + ":productionLineCode,"
- + ":productionLineName,"
- + ":flowXML,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":ProductionLineID",productionLine.ProductionLineID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- new OracleParameter(":productionLineName",productionLine.ProductionLineName),
- new OracleParameter(":flowXML", System.Text.Encoding.UTF8.GetBytes(productionLine.FlowXML)),
- new OracleParameter(":remarks",productionLine.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- };
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- //#region 查询新ID
- //sqlText = "SELECT SEQ_PC_PRODUCTIONLINE_ID.currval FROM dual";
- //productionLine.ProductionLineID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- //#endregion
- #region 插入工序
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- sqlText = "SELECT SEQ_PC_PROCEDURE_PROCEDUREID.Nextval FROM dual";
- procedure.ProcedureID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- sqlText = "INSERT INTO TP_PC_Procedure ("
- + "ProcedureID,"
- + "NodeNo,"
- + "ProductionLineID,"
- + "ProcedureCode,"
- + "ProcedureName,"
- + "ProcedureModel,"
- + "ModelType,"
- + "NodeType,"
- + "MustFlag,"
- + "CollectType,"
- + "PieceType,"
- + "IsSpecialRework,"
- + "IsSemireWork,"
- + "OrganizationID,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID,misspriority,displayno,UNDOFLAG,DeliverType,BarCodePrintCopies,BarCodeFlag)"
- + " VALUES("
- + ":procedureID,"
- + ":nodeNo,"
- + ":productionLineID,"
- + ":procedureCode,"
- + ":procedureName,"
- + ":procedureModel,"
- + ":ModelType,"
- + ":NodeType,"
- + ":mustFlag,"
- + ":collectType,"
- + ":pieceType,"
- + ":isSpecialRework,"
- + ":isSemireWork,"
- + ":organizationID,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID,:misspriority,:displayno,:UNDOFLAG,:DeliverType,:BarCodePrintCopies,:BarCodeFlag"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureCode",procedure.ProcedureCode),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":procedureModel",procedure.ProcedureModel),
- new OracleParameter(":ModelType",procedure.ModelType),
- new OracleParameter(":NodeType",procedure.NodeType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":misspriority",procedure.MissPriority),
- new OracleParameter(":displayno",procedure.DisplayNo),
- new OracleParameter(":UNDOFLAG",procedure.UnDo),
- new OracleParameter(":DeliverType",procedure.DeliverType),
- new OracleParameter(":BarCodePrintCopies",procedure.BarCodePrintCopies),
- new OracleParameter(":BarCodeFlag",procedure.BarCodeFlag),
- };
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- }
- #endregion
- #region 编辑生产线
- else
- {
- #region 校验时间戳
- // todo
- string sql = "SELECT OPTimeStamp FROM TP_PC_ProductionLine"
- + " WHERE ProductionLineID = " + productionLine.ProductionLineID + " and OPTimeStamp = :OPTimeStamp";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, productionLine.OPTimeStamp, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return Constant.RETURN_IS_DATACHANGED;
- }
- #endregion
- #region 判断编码是否重复
- string sqlText = " SELECT ProductionLineID "
- + " FROM TP_PC_ProductionLine "
- + " WHERE "
- + " AccountID=:accountID "
- + " AND ProductionLineCode=:productionLineCode"
- + " AND ProductionLineID <> :productionLineID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":productionLineCode",productionLine.ProductionLineCode),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- };
- string returnCode = oracleTrConn.GetSqlResultToStr(sqlText, paras);
- if (!string.IsNullOrEmpty(returnCode))
- {
- return Constant.RETURN_IS_EXIST;
- }
- #endregion
- #region 编辑生产线
- sqlText = "UPDATE TP_PC_ProductionLine SET "
- + "ProductionLineName=:productionLineName,"
- + "FlowXML=:flowXML,"
- + "Remarks=:remarks,"
- + "UpdateTime=sysdate, "
- + "UpdateUserID=:updateUserID "
- + " WHERE ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineName",productionLine.ProductionLineName),
- new OracleParameter(":flowXML", OracleDbType.Blob,System.Text.Encoding.UTF8.GetBytes(productionLine.FlowXML),ParameterDirection.Input),
- new OracleParameter(":remarks",productionLine.Remarks),
- new OracleParameter(":updateUserID",OracleDbType.Int32, sUserInfo.UserID,ParameterDirection.Input),
- new OracleParameter(":productionLineID", OracleDbType.Int32, productionLine.ProductionLineID,ParameterDirection.Input)
- };
- //foreach (OracleParameter item in paras)
- //{
- // if (item.Value + "" == "")
- // {
- // item.Value = System.DBNull.Value;
- // }
- //}
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 编辑工序
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- //if (procedure.EditingAddFlag)
- if (procedure.ProcedureState == 1)
- {
- #region 编辑时新添加的节点
- sqlText = "SELECT SEQ_PC_PROCEDURE_PROCEDUREID.Nextval FROM dual";
- procedure.ProcedureID = int.Parse(oracleTrConn.GetSqlResultToStr(sqlText));
- sqlText = "INSERT INTO TP_PC_Procedure ("
- + "ProcedureID,"
- + "NodeNo,"
- + "ProductionLineID,"
- + "ProcedureCode,"
- + "ProcedureName,"
- + "ProcedureModel,"
- + "ModelType,"
- + "NodeType,"
- + "MustFlag,"
- + "CollectType,"
- + "PieceType,"
- + "IsSpecialRework,"
- + "IsSemireWork,"
- + "OrganizationID,"
- + "Remarks,"
- + "AccountID,"
- + "CreateUserID,"
- + "UpdateUserID,misspriority,displayno,UNDOFLAG,DeliverType,BarCodePrintCopies,BarCodeFlag)"
- + " VALUES("
- + ":procedureID,"
- + ":nodeNo,"
- + ":productionLineID,"
- + ":procedureCode,"
- + ":procedureName,"
- + ":procedureModel,"
- + ":ModelType,"
- + ":NodeType,"
- + ":mustFlag,"
- + ":collectType,"
- + ":pieceType,"
- + ":isSpecialRework,"
- + ":isSemireWork,"
- + ":organizationID,"
- + ":remarks,"
- + ":accountID,"
- + ":createUserID,"
- + ":updateUserID,:misspriority,:displayno,:UNDOFLAG,:DeliverType,:BarCodePrintCopies,:BarCodeFlag"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureCode",procedure.ProcedureCode),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":procedureModel",procedure.ProcedureModel),
- new OracleParameter(":ModelType",procedure.ModelType),
- new OracleParameter(":NodeType",procedure.NodeType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":accountID",sUserInfo.AccountID),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":misspriority",procedure.MissPriority),
- new OracleParameter(":displayno",procedure.DisplayNo),
- new OracleParameter(":UNDOFLAG",procedure.UnDo),
- new OracleParameter(":DeliverType",procedure.DeliverType),
- new OracleParameter(":BarCodePrintCopies",procedure.BarCodePrintCopies),
- new OracleParameter(":BarCodeFlag",procedure.BarCodeFlag),
- };
- #endregion
- }
- else if (procedure.ProcedureState == 2) //后添加的,删除后标用节点
- {
- #region 编辑
- sqlText = "update TP_PC_Procedure set valueflag=0 "
- + " WHERE ProcedureID=:procedureID "
- + " AND ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- };
- #endregion
- }
- else
- {
- #region 编辑
- sqlText = "UPDATE TP_PC_Procedure SET "
- + " ProcedureName=:procedureName,"
- + " ProcedureCode=:ProcedureCode,"
- + " ModelType=:modelType,"
- + " MustFlag=:mustFlag,"
- + " CollectType=:collectType,"
- + " OrganizationID=:organizationID,"
- + " NodeType=:nodeType,"
- + " PieceType=:pieceType,"
- + " IsSpecialRework=:isSpecialRework,"
- + " IsSemireWork=:isSemireWork,"
- + " NodeNo=:nodeNo,"
- + " Remarks=:remarks,"
- + " updateUserID=:updateUserID,"
- + " UpdateTime=sysdate,"
- + " misspriority=:misspriority,"
- + " displayno=:displayno,"
- + " UNDOFLAG=:UNDOFLAG,"
- + " DeliverType=:DeliverType,"
- + " BarCodePrintCopies=:BarCodePrintCopies,"
- + " BarCodeFlag=:BarCodeFlag"
- + " WHERE NodeNo=:nodeNo "
- + " AND ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":ProcedureCode",procedure.ProcedureCode),
- new OracleParameter(":modelType",procedure.ModelType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":nodeType",procedure.NodeType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":misspriority",procedure.MissPriority),
- new OracleParameter(":displayno",procedure.DisplayNo),
- new OracleParameter(":UNDOFLAG",procedure.UnDo),
- new OracleParameter(":DeliverType",procedure.DeliverType),
- new OracleParameter(":BarCodePrintCopies",procedure.BarCodePrintCopies),
- new OracleParameter(":BarCodeFlag",procedure.BarCodeFlag),
- };
- #endregion
- }
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 先删除生产工序流程明细 然后再插入
- sqlText = "DELETE TP_PC_ProcedureFlow WHERE ProductionLineID=:productionLineID";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应产品 然后再插入
- sqlText = "DELETE TP_PC_ProcedureGoods WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应工号 然后再插入
- sqlText = "DELETE TP_PC_ProcedureUser WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应缺陷 然后再插入
- sqlText = "DELETE TP_PC_ProcedureDefect WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除缺陷对应工序工种表 然后再插入
- sqlText = "DELETE TP_PC_DefectProcedureJobs WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应窑炉 然后再插入
- sqlText = "DELETE TP_PC_ProcedureKiln WHERE ProductionLineID=:productionLineID";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- }
- #endregion
- #region 插入生产工序属性等信息
- foreach (ProcedureEntity procedure in productionLine.ProcedureList)
- {
- string sqlText;
- OracleParameter[] paras;
- #region 插入生产工序流程明细
- if (procedure.ProcedureFlowDetailList != null)
- {
- foreach (ProcedureFlowEntity flowDetail in procedure.ProcedureFlowDetailList)
- {
- ProcedureEntity procedureWhere = productionLine.ProcedureList.Where(p => p.NodeNo == flowDetail.ArriveNodeNo).SingleOrDefault();
- // 没有找到对应节点的ID
- if (procedureWhere == null)
- {
- return Constant.INT_IS_ZERO;
- }
- else
- {
- flowDetail.ArriveProcedureID = procedureWhere.ProcedureID;
- }
- sqlText = "INSERT INTO TP_PC_ProcedureFlow ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "FlowFlag,"
- + "ArriveProcedureID,"
- + "ArriveNodeNo"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":flowFlag,"
- + ":arriveProcedureID,"
- + ":arriveNodeNo"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":flowFlag",flowDetail.FlowFlag),
- new OracleParameter(":arriveProcedureID",flowDetail.ArriveProcedureID),
- new OracleParameter(":arriveNodeNo",flowDetail.ArriveNodeNo),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- }
- #endregion
- #region 插入生产工序对应产品表
- foreach (DataRow row in procedure.ProcedureGoodsTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureGoods ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "GOODSID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":goodsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":goodsID",OracleDbType.Int32,row["goodsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应工号表
- foreach (DataRow row in procedure.ProcedureUserTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureUser ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "UserID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":userID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":userID",OracleDbType.Int32,row["userID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应缺陷表
- foreach (DataRow row in procedure.ProcedureDefectTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_ProcedureDefect ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":defectID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":defectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入缺陷对应工序工种表
- foreach (DataRow row in procedure.DefectProcedureJobsTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value || row["jobsID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_DefectProcedureJobs ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "JobsID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":DefectID,"
- + ":jobsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":DefectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":jobsID",OracleDbType.Int32,row["jobsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应窑炉
- if (procedure.ProcedureKilnTable != null)
- {
- foreach (DataRow row in procedure.ProcedureKilnTable.Rows)
- {
- sqlText = "INSERT INTO tp_pc_procedurekiln ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "KilnID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":kilnID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",productionLine.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":kilnID",OracleDbType.Int32,row["kilnID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- }
- #endregion
- }
- #endregion
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 保存工序节点
- /// </summary>
- /// <param name="procedureEntity">工序实体</param>
- /// <param name="sUserInfo">用户基本信息</param>
- /// <returns></returns>
- public static int SaveProcedureInfo(ProcedureEntity procedure, SUserInfo sUserInfo)
- {
- int returnRows = 0;
- IDBTransaction oracleTrConn = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- try
- {
- #region 校验时间戳
- // todo
- string sql = "SELECT OPTimeStamp FROM TP_PC_Procedure"
- + " WHERE ProcedureID = " + procedure.ProcedureID + " and OPTimeStamp = :OPTimeStamp and productionlineid=:productionlineid and nodeno=:nodeno";
- OracleParameter[] parmetersSql = new OracleParameter[]
- {
- new OracleParameter(":OPTimeStamp", OracleDbType.TimeStamp, procedure.OPTimeStamp, ParameterDirection.Input),
- new OracleParameter(":productionlineid", OracleDbType.Int32, procedure.ProductionLineID, ParameterDirection.Input),
- new OracleParameter(":nodeno", OracleDbType.Int32, procedure.NodeNo, ParameterDirection.Input),
- };
- DataSet returnDataset = oracleTrConn.GetSqlResultToDs(sql, parmetersSql);
- if (returnDataset != null && returnDataset.Tables[0].Rows.Count == 0)
- {
- oracleTrConn.Commit();
- oracleTrConn.Disconnect();
- return Constant.RETURN_IS_DATACHANGED;
- }
- #endregion
- string sqlText = "";
- #region 更新工序信息
- sqlText = "UPDATE TP_PC_Procedure SET "
- + " ProcedureName=:procedureName,"
- + " ProcedureCode=:ProcedureCode,"
- + " CollectType=:collectType,"
- + " OrganizationID=:organizationID,"
- + " NodeType=:nodeType,"
- + " PieceType=:pieceType,"
- + " IsSpecialRework=:isSpecialRework,"
- + " IsSemireWork=:IsSemireWork," //xuwei add 2019-10-14
- + " NodeNo=:nodeNo,"
- + " Remarks=:remarks,"
- + " updateUserID=:updateUserID,"
- + " UpdateTime=sysdate,"
- + " misspriority=:misspriority,"
- + " displayno=:displayno,"
- + " UNDOFLAG=:UNDOFLAG,"
- + " DeliverType=:DeliverType,"
- + " MustFlag=:mustFlag,"
- + " BarCodePrintCopies=:BarCodePrintCopies,"
- + " BarCodeFlag=:BarCodeFlag"
- + " WHERE NodeNo=:nodeNo "
- + " AND ProductionLineID=:productionLineID";
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureName",procedure.ProcedureName),
- new OracleParameter(":ProcedureCode",procedure.ProcedureCode),
- new OracleParameter(":collectType",procedure.CollectType),
- new OracleParameter(":organizationID",procedure.OrganizationID),
- new OracleParameter(":nodeType",procedure.NodeType),
- new OracleParameter(":pieceType",procedure.PieceType),
- new OracleParameter(":isSpecialRework",procedure.IsSpecialRework),
- new OracleParameter(":isSemireWork",procedure.IsSemireWork),//xuwei add 2019-10-14
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":remarks",procedure.Remarks),
- new OracleParameter(":updateUserID",sUserInfo.UserID),
- new OracleParameter(":misspriority",procedure.MissPriority),
- new OracleParameter(":displayno",procedure.DisplayNo),
- new OracleParameter(":UNDOFLAG",procedure.UnDo),
- new OracleParameter(":DeliverType",procedure.DeliverType),
- new OracleParameter(":mustFlag",procedure.MustFlag),
- new OracleParameter(":BarCodePrintCopies",procedure.BarCodePrintCopies),
- new OracleParameter(":BarCodeFlag",procedure.BarCodeFlag),
- };
- foreach (OracleParameter item in paras)
- {
- if (item.Value + "" == "")
- {
- item.Value = System.DBNull.Value;
- }
- }
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":nodeno",procedure.NodeNo),
- new OracleParameter(":procedureid",procedure.ProcedureID),
- };
- #region 删除对应产品 然后再插入
- sqlText = "DELETE TP_PC_ProcedureGoods WHERE ProductionLineID=:productionLineID and NodeNo=:nodeno and ProcedureID=:procedureid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应工号 然后再插入
- sqlText = "DELETE TP_PC_ProcedureUser WHERE ProductionLineID=:productionLineID and NodeNo=:nodeno and ProcedureID=:procedureid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应缺陷 然后再插入
- sqlText = "DELETE TP_PC_ProcedureDefect WHERE ProductionLineID=:productionLineID and NodeNo=:nodeno and ProcedureID=:procedureid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除缺陷对应工序工种表 然后再插入
- sqlText = "DELETE TP_PC_DefectProcedureJobs WHERE ProductionLineID=:productionLineID and NodeNo=:nodeno and ProcedureID=:procedureid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 删除对应窑炉 然后再插入
- sqlText = "DELETE TP_PC_ProcedureKiln WHERE ProductionLineID=:productionLineID and NodeNo=:nodeno and ProcedureID=:procedureid";
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- #endregion
- #region 插入生产工序对应产品表
- foreach (DataRow row in procedure.ProcedureGoodsTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureGoods ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "GOODSID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":goodsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":goodsID",OracleDbType.Int32,row["goodsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应工号表
- foreach (DataRow row in procedure.ProcedureUserTable.Rows)
- {
- sqlText = "INSERT INTO TP_PC_ProcedureUser ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "UserID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":userID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":userID",OracleDbType.Int32,row["userID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应缺陷表
- foreach (DataRow row in procedure.ProcedureDefectTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_ProcedureDefect ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":defectID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":defectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入缺陷对应工序工种表
- foreach (DataRow row in procedure.DefectProcedureJobsTable.Rows)
- {
- if (row["DefectID"] == DBNull.Value || row["jobsID"] == DBNull.Value)
- {
- continue;
- }
- sqlText = "INSERT INTO TP_PC_DefectProcedureJobs ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "DefectID,"
- + "JobsID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":DefectID,"
- + ":jobsID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":DefectID",OracleDbType.Int32,row["DefectID"],ParameterDirection.Input),
- new OracleParameter(":jobsID",OracleDbType.Int32,row["jobsID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- #region 插入生产工序对应窑炉
- foreach (DataRow row in procedure.ProcedureKilnTable.Rows)
- {
- sqlText = "INSERT INTO tp_pc_procedurekiln ("
- + "ProductionLineID,"
- + "ProcedureID,"
- + "NodeNo,"
- + "KilnID,"
- + "CreateUserID"
- + ")"
- + " VALUES("
- + ":productionLineID,"
- + ":procedureID,"
- + ":nodeNo,"
- + ":kilnID,"
- + ":createUserID"
- + ")";
- paras = new OracleParameter[]
- {
- new OracleParameter(":productionLineID",procedure.ProductionLineID),
- new OracleParameter(":procedureID",procedure.ProcedureID),
- new OracleParameter(":nodeNo",procedure.NodeNo),
- new OracleParameter(":kilnID",OracleDbType.Int32,row["kilnID"],ParameterDirection.Input),
- new OracleParameter(":createUserID",sUserInfo.UserID),
- };
- returnRows += oracleTrConn.ExecuteNonQuery(sqlText, paras);
- }
- #endregion
- oracleTrConn.Commit();
- }
- catch (Exception ex)
- {
- oracleTrConn.Rollback();
- throw ex;
- }
- finally
- {
- // 释放资源
- if (oracleTrConn.ConnState == System.Data.ConnectionState.Open)
- {
- oracleTrConn.Disconnect();
- }
- }
- return returnRows;
- }
- /// <summary>
- /// 注浆变更
- /// </summary>
- /// <param name="user">登录用户信息</param>
- /// <param name="barcode">原条码</param>
- /// <param name="newBarcode">新条码</param>
- /// <param name="remarks">备注</param>
- /// <returns>操作结果</returns>
- public static ServiceResultEntity SetFPM2105Data(SUserInfo user, int? groutingLineID, int? groutingDailyID, string groutingDailyDetailIDs, DateTime groutingDate, string groutingUserCode, int? goodsID)
- {
- IDBTransaction tran = null;
- try
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- OracleParameter[] paras = new OracleParameter[]
- {
- new OracleParameter("in_AccountID", OracleDbType.Int32, user.AccountID, ParameterDirection.Input),
- new OracleParameter("in_UserID", OracleDbType.Int32, user.UserID, ParameterDirection.Input),
- new OracleParameter("in_GroutingLineID", OracleDbType.Int32, groutingLineID, ParameterDirection.Input),
- new OracleParameter("in_GroutingDailyID", OracleDbType.Int32, groutingDailyID, ParameterDirection.Input),
- new OracleParameter("in_GroutingDailyDetailIDs", OracleDbType.Varchar2,groutingDailyDetailIDs, ParameterDirection.Input),
- new OracleParameter("in_GroutingDate", OracleDbType.Date, groutingDate, ParameterDirection.Input),
- new OracleParameter("in_GroutingUserCode", OracleDbType.Varchar2, groutingUserCode, ParameterDirection.Input),
- new OracleParameter("in_GoodsID", OracleDbType.Int32, goodsID, ParameterDirection.Input),
- new OracleParameter("out_Result", OracleDbType.Varchar2, 100, null, ParameterDirection.Output),
- new OracleParameter("out_Message", OracleDbType.Varchar2, 100, null, ParameterDirection.Output),
- };
- DataSet ds = tran.ExecStoredProcedure("PRO_PM_ReplacedGroutingInfo", paras);
- string out_Result = paras[8].Value.ToString();
- if (out_Result != "0")
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- switch (out_Result)
- {
- case "1.0":
- sre.OtherStatus = 1;
- sre.Message = "当前用户没有此成型线的操作权限";
- break;
- case "1.1":
- sre.OtherStatus = 2;
- sre.Message = "此注浆日报中的条码已交坯不能修改成型工号。";
- break;
- case "1.2":
- sre.OtherStatus = 3;
- sre.Message = "工号[" + groutingUserCode + "]不存在或不是生产工号";
- break;
- case "1.3":
- sre.OtherStatus = 7;
- sre.Message = "工号[" + groutingUserCode + "]在" + groutingDate.Date + "没有班次配置。";
- break;
- case "2.1":
- sre.OtherStatus = 4;
- sre.Message = "此产品不存在。";
- break;
- default:
- break;
- }
- }
- tran.Commit();
- return sre;
- }
- catch (Exception ex)
- {
- if (tran != null &&
- tran.ConnState == ConnectionState.Open)
- {
- tran.Rollback();
- }
- throw ex;
- }
- finally
- {
- if (tran != null &&
- tran.ConnState == ConnectionState.Open)
- {
- tran.Disconnect();
- }
- }
- }
- /// <summary>
- /// 注浆变更
- /// </summary>
- /// <param name="user">登录用户信息</param>
- /// <param name="barcode">原条码</param>
- /// <param name="newBarcode">新条码</param>
- /// <param name="remarks">备注</param>
- /// <returns>操作结果</returns>
- public static ServiceResultEntity SetFPM2105CancelBarCodeData(SUserInfo user, string BarCodes)
- {
- IDBTransaction tran = null;
- try
- {
- ServiceResultEntity sre = new ServiceResultEntity();
- tran = ClsDbFactory.CreateDBTransaction(DataBaseType.ORACLE, DataManager.ConnectionString);
- string[] subBarCode = BarCodes.Split(',');
- string sql = "";
- string returnValue = "";
- bool isError = false;
- for (int i = 0; i < subBarCode.Length; i++)
- {
- if (subBarCode[i] != "")
- {
- sql = "select DELIVERFLAG from TP_PM_GroutingDailyDetail where barcode='" + subBarCode[i] + "'";
- returnValue = tran.GetSqlResultToStr(sql);
- if (returnValue == "1")
- {
- sre.Status = Constant.ServiceResultStatus.Other;
- sre.Message = "条码[" + subBarCode[i] + "]已经交坯,不能取消绑定";
- isError = true;
- break;
- }
- sql = "update TP_PM_GroutingDailyDetail set barcode='' where barcode='" + subBarCode[i] + "'";
- tran.ExecuteNonQuery(sql);
- sql = "delete from TP_PM_UsedBarCode where barcode='" + subBarCode[i] + "'";
- tran.ExecuteNonQuery(sql);
- }
- }
- if (isError) //有错误
- {
- tran.Rollback();
- }
- else
- {
- tran.Commit();
- }
- return sre;
- }
- catch (Exception ex)
- {
- if (tran != null &&
- tran.ConnState == ConnectionState.Open)
- {
- tran.Rollback();
- }
- throw ex;
- }
- finally
- {
- if (tran != null &&
- tran.ConnState == ConnectionState.Open)
- {
- tran.Disconnect();
- }
- }
- }
- }
- }
|