using System; using System.Collections.Generic; using System.Linq; using System.Text; using ICSSoft.Frame.Data.Entity; using ICSSoft.Base.Config.AppConfig; using System.Data; using System.Data.Sql; using System.Data.Linq; using ICSSoft.Base.Config.DBHelper; namespace ICSSoft.Frame.Data.DAL { public class ICSECGDAL { #region 增加修改 public static void AddAndEdit(List ecgInfoList, string dsconn) { FramDataContext db = new FramDataContext(dsconn); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { foreach (FormICSECGUIModel ecgInfo in ecgInfoList) { bool isNew = false; var line = db.ICSECG.SingleOrDefault(a => a.ID == ecgInfo.ID); if (line == null) { isNew = true; line = new ICSECG(); line.ID = AppConfig.GetGuid(); } var codes = db.ICSECG.Where(a => a.ECGCODE == ecgInfo.ECGCODE && a.ID != line.ID); if (codes.ToList().Count > 0) { throw new Exception("不良代码组代码已存在"); } line.ECGCODE = ecgInfo.ECGCODE; line.ECGDESC = ecgInfo.ECGDESC; line.ROUTECODE = ecgInfo.ROUTECODE; line.OPCODE = ecgInfo.OPCODE; line.RESCODE = ecgInfo.RESCODE; line.MUSER = ecgInfo.MUSER; line.MUSERName = ecgInfo.MUSERName; line.MTIME = Convert.ToDateTime(ecgInfo.MTIME); line.WorkPoint = ecgInfo.WorkPoint; line.EATTRIBUTE1 = ecgInfo.EATTRIBUTE1; if (isNew) db.ICSECG.InsertOnSubmit(line); db.SubmitChanges(); } db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw new Exception(ex.Message); } } #endregion public static List SearchEcgInfoById(string id, string dsconn) { List returnecg = new List(); string sql = @"select a.ID as ID, a.ECGCODE as ECGCODE, a.ECGDESC as ECGDESC, b.ROUTECODE as ROUTECODE, c.OPCODE as OPCODE, d.RESCODE as RESCODE, a.MUSERName as MUSERName, a.MTIME as MTIME from ICSECG a left join ICSROUTE b on a.ROUTECODE=b.ROUTECODE left join ICSOP c on a.OPCODE=c.OPCODE left join ICSRES d on a.RESCODE=d.RESCODE where a.ID='" + id + "'"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSECGUIModel ecgInfo = new FormICSECGUIModel(); ecgInfo.ID = dr["ID"].ToString(); ecgInfo.route = new FormICSROUTEUIModel(); ecgInfo.ECGCODE = dr["ECGCODE"].ToString(); ecgInfo.ECGDESC = dr["ECGDESC"].ToString(); ecgInfo.route.ROUTECODE = dr["ROUTECODE"].ToString(); ecgInfo.op = new FormICSOPUIModel(); ecgInfo.op.OPCODE = dr["OPCODE"].ToString(); ecgInfo.res = new FormICSRESUIModel(); ecgInfo.res.RESCODE = dr["RESCODE"].ToString(); ecgInfo.MUSERName = dr["MUSERName"].ToString(); ecgInfo.MTIME = System.DateTime.Parse(dr["MTIME"].ToString()); if (!returnecg.Contains(ecgInfo)) { returnecg.Add(ecgInfo); } } return returnecg; } public static List SearchOPInfoList(string str, string dsconn) { try { List returntype = new List(); string sql = @"select a.OPCODE,a.OPDESC from dbo.ICSOP a left join ICSROUTE2OP b on b.OPID=a.ID WHERE ROUTECODE='" + str + "'"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSOPUIModel typemodel = new FormICSOPUIModel(); typemodel.OPCODE = dr["OPCODE"].ToString(); typemodel.OPDESC = dr["OPDESC"].ToString(); if (!returntype.Contains(typemodel)) returntype.Add(typemodel); } return returntype; } catch (Exception ex) { throw ex; } } public static List SearchRESInfoList(string str, string dsconn) { try { List returntype = new List(); string sql = @"select a.RESCODE,a.RESDESC from dbo.ICSRES a left join ICSOP2RES b on b.RESID=a.ID WHERE OPCODE='" + str + "'"; sql = string.Format(sql); DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0]; foreach (DataRow dr in dt.Rows) { FormICSRESUIModel typemodel = new FormICSRESUIModel(); typemodel.RESCODE = dr["RESCODE"].ToString(); typemodel.RESDESC = dr["RESDESC"].ToString(); if (!returntype.Contains(typemodel)) returntype.Add(typemodel); } return returntype; } catch (Exception ex) { throw ex; } } // #region 根据存货编码查找产品id // public static DataTable SelectItemId(string str, string wp) // { // string sql = @"select ID // from dbo.ICSINVENTORY // where INVCODE='" + str + "' and WorkPoint='" + wp + "'"; // sql = string.Format(sql); // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; // return dt; // } // #endregion // #region 根据工序代码查找工序id // public static DataTable SelectOpId(string str, string wp) // { // string sql = @"select ID // from dbo.ICSOP // where OPCODE='" + str + "'and WorkPoint='" + wp + "'"; // sql = string.Format(sql); // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; // return dt; // } // #endregion // #region 根据检验类型代码查找检验类型id // public static DataTable SelectCkgroupId(string str, string wp) // { // string sql = @"select ID // from dbo.ICSOQCCKGROUP // where CKGROUP='" + str + "'and WorkPoint='" + wp + "'"; // sql = string.Format(sql); // DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0]; // return dt; // } // #endregion #region delete public static void delete(List guidList, List codeList) { FramDataContext db = new FramDataContext(AppConfig.AppConnectString); db.Connection.Open(); db.Transaction = db.Connection.BeginTransaction(); try { var lines = db.ICSECG.Where(a => guidList.Contains(a.ID)); var line = db.ICSECG2EC.Where(a => codeList.Contains(a.ECGCODE)); if (line.Count() != 0) { throw new Exception("该不良代码组在不良代码组与不良代码的关系维护中已经使用,无法删除!"); } db.ICSECG.DeleteAllOnSubmit(lines); db.SubmitChanges(); db.Transaction.Commit(); } catch (Exception ex) { db.Transaction.Rollback(); throw ex; } } #endregion //#region 产品工序是否已经存在 //public static bool IsIncludingItemOP(string ITEMCODE, string OPCODE, string dsconn) //{ // FramDataContext db = new FramDataContext(dsconn); // db.Connection.Open(); // db.Transaction = db.Connection.BeginTransaction(); // try // { // var line = db.ICSMODELOP2CKGROUP.SingleOrDefault(a => a.ITEMCODE == ITEMCODE && a.OPCODE == OPCODE); // if (line == null) // return true; // else // return false; // } // catch (Exception ex) // { // db.Transaction.Rollback(); // throw ex; // } //} //#endregion } }