| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016 |
- /*******************************************************************************
- * 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.ManagedDataAccess.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>
- /// 保存生产线 xuwei modify 2019-11-22
- /// </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 更新工序半检信息 xuwei add 2019-12-11
- if (!string.IsNullOrEmpty(procedure.SemiGoodsLevel))
- {
- string[] ids = procedure.SemiGoodsLevel.Split(',');
- string sqlStr = @"
- BEGIN
- DELETE
- TP_PC_PROCEDUREGOODSLEVEL
- WHERE
- PRODUCTIONLINEID = :PRODUCTIONLINEID
- AND PROCEDUREID = :PROCEDUREID;
- ";
- for (int i = 0; i < ids.Length; i++)
- {
- sqlStr += $@"
- INSERT INTO TP_PC_PROCEDUREGOODSLEVEL
- ( PRODUCTIONLINEID, PROCEDUREID, GOODSLEVELTYPEID)
- VALUES
- (:PRODUCTIONLINEID, :PROCEDUREID, {ids[i]});
- ";
- }
- sqlStr += "END;";
- oracleTrConn.ExecuteNonQuery(
- sqlStr,
- new OracleParameter[]
- {
- new OracleParameter(":PRODUCTIONLINEID",productionLine.ProductionLineID),
- new OracleParameter(":PROCEDUREID",procedure.ProcedureID)
- }
- );
- }
- #endregion
- #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,"
- + " PrintType=:printType," //xuwei add 2019-11-20
- + " 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(":printType",procedure.PrintType),//xuwei add 2019-11-20
- 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 更新工序半检信息 xuwei add 2019-12-11
- if (!string.IsNullOrEmpty(procedure.SemiGoodsLevel))
- {
- string[] ids = procedure.SemiGoodsLevel.Split(',');
- string sqlStr = @"
- BEGIN
- DELETE
- TP_PC_PROCEDUREGOODSLEVEL
- WHERE
- PRODUCTIONLINEID = :PRODUCTIONLINEID
- AND PROCEDUREID = :PROCEDUREID;
- ";
- for (int i = 0; i < ids.Length; i++)
- {
- sqlStr += $@"
- INSERT INTO TP_PC_PROCEDUREGOODSLEVEL
- ( PRODUCTIONLINEID, PROCEDUREID, GOODSLEVELTYPEID)
- VALUES
- (:PRODUCTIONLINEID, :PROCEDUREID, {ids[i]});
- ";
- }
- sqlStr += "END;";
- oracleTrConn.ExecuteNonQuery(
- sqlStr,
- new OracleParameter[]
- {
- new OracleParameter(":PRODUCTIONLINEID",procedure.ProductionLineID),
- new OracleParameter(":PROCEDUREID",procedure.ProcedureID)
- }
- );
- }
- #endregion
- #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
- + " PrintType=:printType," //xuwei add 2019-11-20
- + " 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(":printType",procedure.PrintType),//xuwei add 2019-11-20
- 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();
- }
- }
- }
- }
- }
|