锐腾搅拌上料功能
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

277 lines
9.3 KiB

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<FormICSECGUIModel> 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<FormICSECGUIModel> SearchEcgInfoById(string id, string dsconn)
{
List<FormICSECGUIModel> returnecg = new List<FormICSECGUIModel>();
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<FormICSOPUIModel> SearchOPInfoList(string str, string dsconn)
{
try
{
List<FormICSOPUIModel> returntype = new List<FormICSOPUIModel>();
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<FormICSRESUIModel> SearchRESInfoList(string str, string dsconn)
{
try
{
List<FormICSRESUIModel> returntype = new List<FormICSRESUIModel>();
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<String> guidList, List<String> 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
}
}