华恒Mes鼎捷代码
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.

375 lines
14 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ICSSoft.Frame.Data.Entity;
using ICSSoft.Base.Config.DBHelper;
using System.Data;
using System.Data.SqlClient;
using ICSSoft.Base.Config.AppConfig;
using ICSSoft.Frame.APP.Entity;
namespace ICSSoft.Frame.Data.DAL
{
public class ICSEQPSTPDAL
{
#region 新增和修改
public static void Add(List<FormICSEQPSTPUIModelNew> InfoList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
foreach (FormICSEQPSTPUIModelNew info in InfoList)
{
bool isNew = false;
var line = db.ICSEQPSTP.SingleOrDefault(a => a.ID == info.ID);
if (line == null)
{
isNew = true;
line = new ICSEQPSTP();
}
var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode == info.EQPTypeCode && a.ID != info.ID);
if (codes.ToList().Count > 0)
{
throw new Exception("已存在相同产品工序设备类型的标准工时");
}
line.ID = info.ID;
line.ITEMCODE = info.ITEMCODE;
line.OPCODE = info.OPCODE;
line.EQPCODE = info.EQPCODE;
line.ETTRCODE = info.ETTRCODE;
line.ISREF = info.ISREF;
line.Status = "New";
var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.ISREF == "是" && a.ID != info.ID);
if (line1.ToList().Count > 0 && info.ISREF == "是")
{
//throw new Exception("已存在相同产品工序的默认标准工时");
//已经存在则改为是
foreach (var stp in line1.ToList())
{
stp.ISREF = "否";
}
}
line.STIME = Convert.ToDecimal(info.STIME);
line.RTIME = Convert.ToDecimal(info.RTIME);
line.MUSER = AppConfig.UserId;
line.MUSERName = AppConfig.UserName;
line.MTIME = DateTime.Now;
line.WorkPoint = AppConfig.WorkPointCode;
line.EATTRIBUTE1 = info.EATTRIBUTE1;
line.EQPTypeCode = info.EQPTypeCode;
//20180626新增
line.BladeModelAndBrand = info.BladeModelAndBrand;
line.OutsourcingProperties = info.OutsourcingProperties;
line.ToolingNo = info.ToolingNo;
if (isNew)
db.ICSEQPSTP.InsertOnSubmit(line);
db.SubmitChanges();
}
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 新增和修改List
public static string AddList(List<FormICSEQPSTPUIModelNew> InfoList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
string str = "";
foreach (FormICSEQPSTPUIModelNew info in InfoList)
{
var codes = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode == info.EQPTypeCode);
List<ICSEQPSTP> list = codes.ToList();
if (list.Count > 0)
{
//已审核不做处理
if (list[0].Status == "Check")
{
var line = list[0];
line.ITEMCODE = info.ITEMCODE;
line.OPCODE = info.OPCODE;
line.EQPCODE = info.EQPCODE;
line.EQPTypeCode = info.EQPTypeCode;
line.ETTRCODE = info.ETTRCODE;
line.STIME = Convert.ToDecimal(info.STIME);
line.ISREF = info.ISREF;
line.RTIME = info.RTIME;
line.Status = info.Status;
line.MUSER = AppConfig.UserId;
line.MUSERName = AppConfig.UserName;
line.MTIME = DateTime.Now;
line.WorkPoint = AppConfig.WorkPointCode;
line.EATTRIBUTE1 = info.EATTRIBUTE1;
line.OutsourcingProperties = info.OutsourcingProperties;
line.BladeModelAndBrand = info.BladeModelAndBrand;
line.ToolingNo = info.ToolingNo;
db.SubmitChanges();
}
else //未审核时需要更新
{
//str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "设备类型" + info.EQPTypeCode + "已维护标准工时" + "\r\n";
//continue;
var line = list[0];
line.ITEMCODE = info.ITEMCODE;
line.OPCODE = info.OPCODE;
line.EQPCODE = info.EQPCODE;
line.EQPTypeCode = info.EQPTypeCode;
line.ETTRCODE = info.ETTRCODE;
line.STIME = Convert.ToDecimal(info.STIME);
line.ISREF = info.ISREF;
line.RTIME = info.RTIME;
line.Status = info.Status;
var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.ISREF == "是" && a.EQPTypeCode != info.EQPTypeCode);
if (line1.ToList().Count > 0 && info.ISREF == "是")
{
//str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "已存在默认标准工时" + "\r\n";
//continue;
foreach (var stp in line1.ToList())
{
stp.ISREF = "否";
}
}
line.OutsourcingProperties = info.OutsourcingProperties;
line.BladeModelAndBrand = info.BladeModelAndBrand;
line.ToolingNo = info.ToolingNo;
line.MUSER = AppConfig.UserId;
line.MUSERName = AppConfig.UserName;
line.MTIME = DateTime.Now;
line.WorkPoint = AppConfig.WorkPointCode;
line.EATTRIBUTE1 = info.EATTRIBUTE1;
db.SubmitChanges();
}
}
else
{
bool isNew = false;
var line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode == info.EQPTypeCode);
if (line == null)
{
isNew = true;
line = new ICSEQPSTP();
line.ID = AppConfig.GetGuid();
}
//line.ID = info.ID;
line.ITEMCODE = info.ITEMCODE;
line.OPCODE = info.OPCODE;
//line.EQPCODE = info.EQPCODE;
line.EQPTypeCode = info.EQPTypeCode;
line.ETTRCODE = info.ETTRCODE;
line.STIME = Convert.ToDecimal(info.STIME);
line.ISREF = info.ISREF;
line.RTIME = info.RTIME;
line.Status = info.Status;
var line1 = db.ICSEQPSTP.Where(a => a.ITEMCODE == info.ITEMCODE && a.OPCODE == info.OPCODE && a.EQPTypeCode != info.EQPTypeCode && a.ISREF == "是");
if (line1.ToList().Count > 0 && info.ISREF == "是")
{
//str += "存货编码:" + info.ITEMCODE + "工序代码:" + info.OPCODE + "已存在默认标准工时" + "\r\n";
foreach (var stp in line1.ToList())
{
stp.ISREF = "否";
}
//continue;
}
line.MUSER = AppConfig.UserId;
line.MUSERName = AppConfig.UserName;
line.MTIME = DateTime.Now;
line.WorkPoint = AppConfig.WorkPointCode;
line.EATTRIBUTE1 = info.EATTRIBUTE1;
line.OutsourcingProperties = info.OutsourcingProperties;
line.BladeModelAndBrand = info.BladeModelAndBrand;
line.ToolingNo = info.ToolingNo;
if (isNew)
db.ICSEQPSTP.InsertOnSubmit(line);
db.SubmitChanges();
}
}
db.Transaction.Commit();
return str;
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 通过ID查询
public static DataTable searchInfoByID(string ID, string dsconn)
{
// string sql = @"select a.ID,
//a.ITEMCODE,
//a.OPCODE,
//a.EQPCODE,
//a.ETTRCOde,
//a.STIME,
//a.RTIME,
//a.ISREF,
//a.OutsourcingProperties ,
//a.BladeModelAndBrand,
//a.ToolingNo,
//
//a.WorkPoint,
//a.MUSER,
//a.MUSERName,
//a.MTIME,
//a.EATTRIBUTE1,
//a.EQPTypeCode,
//b.INVNAME ItemName,
//c.OPDESC,
//d.EnumText as EQPTypeName,
//e.EQPName
//
// FROM ICSEQPSTP a
// left join ICSINVENTORY b on a.ITEMCODE=b.INVCODE
// left join ICSOP c on a.OPCODE=C.OPCODE
// left join ( select * from Sys_EnumValues where EnumKey='001') d on a.EQPTypeCode=d.EnumValue
// left join ICSEquipment e on a.EQPCODE=E.EQPCODE
// where a.ID='{0}'";
string sql = @"select a.ID,
a.ITEMCODE,
a.OPCODE,
a.EQPCODE,
a.ETTRCOde,
a.STIME,
a.RTIME,
a.ISREF,
a.OutsourcingProperties ,
a.BladeModelAndBrand,
a.ToolingNo,
a.WorkPoint,
a.MUSER,
a.MUSERName,
a.MTIME,
a.EATTRIBUTE1,
a.EQPTypeCode,
b.INVNAME ItemName,
c.OPDESC,
a.EQPTypeCode as EQPTypeCode,
-- d.TypeCODE AS EQPCODE,
d.TypeDESC as EQPTypeName
FROM ICSEQPSTP a
left join ICSINVENTORY b on a.ITEMCODE=b.INVCODE
left join ICSOP c on a.OPCODE=C.OPCODE
LEFT JOIN ICSEquipmentType d ON a.EQPTypeCode=d.TypeCODE
-- left join ( select * from Sys_EnumValues where EnumKey='001') d on a.EQPTypeCode=d.EnumValue
-- left join ICSEquipment e on a.EQPCODE=E.EQPCODE
where a.ID='{0}';";
sql = string.Format(sql, ID);
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
return dt;
}
#endregion
#region 是否存在
public static bool IsIncluding(string ItemCode, string OPCode, string eqptype, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var line = db.ICSEQPSTP.SingleOrDefault(a => a.ITEMCODE == ItemCode && a.OPCODE == OPCode && a.EQPTypeCode == eqptype);
if (line == null)
return true;
else
return false;
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 删除
public static void deleteInfo(List<string> codeList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var lines = db.ICSEQPSTP.Where(a => codeList.Contains(a.ID));
db.ICSEQPSTP.DeleteAllOnSubmit(lines);
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
#region 审核
public static void checkInfo(List<string> codeList, string dsconn)
{
FramDataContext db = new FramDataContext(dsconn);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
var lines = db.ICSEQPSTP.Where(a => codeList.Contains(a.ID));
foreach (var line in lines)
{
line.Status = "Check";
}
db.SubmitChanges();
db.Transaction.Commit();
}
catch (Exception ex)
{
db.Transaction.Rollback();
throw ex;
}
}
#endregion
}
}