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.
908 lines
36 KiB
908 lines
36 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 ICSSoft.Base.Config.DBHelper;
|
|
using System.Data.SqlClient;
|
|
|
|
namespace ICSSoft.Frame.Data.DAL
|
|
{
|
|
public class ICSMODAL
|
|
{
|
|
|
|
#region 新增和修改
|
|
|
|
public static void Add(List<FormICSMOUIModel> moInfoList, string moroute, string dsconn)
|
|
{
|
|
int flag = 0;
|
|
string moid = "";
|
|
string mocode = "";
|
|
string itemcode = "";
|
|
string moseq = "";
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (FormICSMOUIModel moInfo in moInfoList)
|
|
{
|
|
bool isNew = false;
|
|
var line = db.ICSMO.SingleOrDefault(a => a.ID == moInfo.ID);
|
|
if (line == null)
|
|
{
|
|
isNew = true;
|
|
line = new ICSMO();
|
|
moid = AppConfig.GetGuid();
|
|
line.ID = moid;
|
|
//line.MOCODE = moInfo.MOCODE;
|
|
|
|
var mo = db.ICSMO.Where(a => a.MOCODE.Contains(moInfo.MOCODE) && a.MOTYPE == "1").OrderByDescending(a => a.MOCODE);
|
|
if (mo != null && mo.Count() > 0)
|
|
{
|
|
string code = mo.FirstOrDefault().MOCODE;
|
|
line.MOCODE = moInfo.MOCODE + "*" + (Convert.ToInt32(code.Substring(code.IndexOf("*") + 1)) + 1).ToString();
|
|
}
|
|
else
|
|
{
|
|
line.MOCODE = moInfo.MOCODE + "*1";
|
|
}
|
|
moInfo.MOCODE = line.MOCODE;
|
|
|
|
line.MOBIOSVER = "";
|
|
line.MOPCBAVER = "";
|
|
line.CUSCODE = "";
|
|
line.CUSNAME = "";
|
|
line.CUSITEMCODE = "";
|
|
line.ORDERNO = "";
|
|
line.ORDERSEQ = 0;
|
|
line.MOVER = "";
|
|
line.ISBOMPASS = "";
|
|
line.IDMERGERULE = Convert.ToDecimal(0);
|
|
//line.MORELEASETIME = DateTime.Now;
|
|
line.MOIMPORTTIME = DateTime.Now;
|
|
line.ISCOMPARESOFT = 0;
|
|
line.RMABILLCODE = "";
|
|
line.MOSEQ = "1";
|
|
line.REMOCODE = "";
|
|
line.REMOITEMCODE = "";
|
|
line.REMOITEMDESC = "";
|
|
line.REMOLOTNO = "";
|
|
line.REMOENABLED = "";
|
|
line.MOOP = "";
|
|
line.ITEMDESC = "";
|
|
//line.MOPLANENDTIME = DateTime.Now;
|
|
line.MOPLANLINE = "";
|
|
line.BackflushStorage = "";
|
|
line.WarningStopLine = "";
|
|
line.MOINPUTQTY = 0;
|
|
line.MOSCRAPQTY = 0;
|
|
line.MOACTQTY = 0;
|
|
line.MOUSER = "";
|
|
line.MOACTSTARTDATE = DateTime.Now;
|
|
line.MOACTENDDATE = DateTime.Now;
|
|
line.MOTYPE = moInfo.MOTYPE;
|
|
|
|
}
|
|
#region
|
|
mocode = moInfo.MOCODE;
|
|
itemcode = moInfo.ITEMCODE;
|
|
if (!string.IsNullOrEmpty(moInfo.ID))
|
|
moid = moInfo.ID;
|
|
line.MOMEMO = moInfo.MOMEMO;
|
|
line.MODESC = moInfo.MODESC;
|
|
line.MOPLANQTY = moInfo.MOPLANQTY;
|
|
line.MOPLANSTARTDATE = moInfo.MOPLANSTARTDATE;
|
|
line.MOPLANENDDATE = moInfo.MOPLANENDDATE;
|
|
line.FACTORY = moInfo.FACTORY;
|
|
line.CUSORDERNO = moInfo.CUSORDERNO;
|
|
line.MOUSER = moInfo.MOUSER;
|
|
line.MODOWNDATE = moInfo.MODOWNDATE;
|
|
line.MOSTATUS = moInfo.MOSTATUS;
|
|
line.ISCONINPUT = moInfo.ISCONINPUT;
|
|
line.ITEMCODE = moInfo.ITEMCODE;
|
|
line.MOPENDINGCAUSE = moInfo.MOPENDINGCAUSE;
|
|
line.OFFMOQTY = moInfo.OFFMOQTY;
|
|
line.MOBOM = moInfo.MOBOM;
|
|
|
|
line.MOVER = moInfo.MOVER;
|
|
|
|
line.MORemark = moInfo.MORemark;
|
|
line.WorkPoint = AppConfig.WorkPointCode;
|
|
line.MUSER = AppConfig.UserId;
|
|
line.MUSERName = AppConfig.UserName;
|
|
line.MTIME = DateTime.Now;
|
|
line.MOUSER = moInfo.MOUSER;
|
|
|
|
#endregion
|
|
if (isNew)
|
|
{
|
|
flag = 1;
|
|
db.ICSMO.InsertOnSubmit(line);
|
|
}
|
|
var line1 = db.ICSMO2ROUTE.Where(a => a.MOID == moInfo.ID);
|
|
|
|
db.ICSMO2ROUTE.DeleteAllOnSubmit(line1);
|
|
|
|
db.SubmitChanges();
|
|
}
|
|
db.Transaction.Commit();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
if (!string.IsNullOrEmpty(moroute))
|
|
{
|
|
AddMoRoute(moid, mocode, itemcode, moroute, dsconn);
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
#region select
|
|
public static ICSMO select(String guid, String Appconstr)
|
|
{
|
|
FramDataContext db = new FramDataContext(Appconstr);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.ID == guid);
|
|
return (ICSMO)line;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw new Exception(ex.Message);
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
public static DataTable GetDetail(String code, String seq, String Appconstr)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"SELECT
|
|
a.ID,
|
|
a.RouteCode,
|
|
b.ITEMCODE
|
|
FROM
|
|
ICSMO2User a
|
|
LEFT JOIN ICSMO b ON a.MOCODE=b.MOCODE AND a.MOSEQ=b.MOSEQ
|
|
where a.MOCODE='{0}' AND a.MOSEQ='{1}'
|
|
order by RouteCode";
|
|
sql = string.Format(sql, code, Convert.ToInt32(seq));
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
return dt;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
#region 新增和修改
|
|
|
|
public static void AddMoRoute(string id, string mocode, string itemcode, string routecode, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
FormICSMO2ROUTEUIModel model = new FormICSMO2ROUTEUIModel();
|
|
//string sqlone = @"select ID,MOCODE from ICSMO where MOCODE='" + mocode + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
//sqlone = string.Format(sqlone);
|
|
//DataTable dataone = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlone).Tables[0];
|
|
//foreach (DataRow dr in dataone.Rows)
|
|
//{
|
|
model.MOID = id;
|
|
model.MOCODE = mocode;
|
|
|
|
//}
|
|
string sqltwo = @"select ID,ROUTECODE,ROUTETYPE from ICSROUTE where ROUTECODE='" + routecode + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sqltwo = string.Format(sqltwo);
|
|
DataTable datatwo = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqltwo).Tables[0];
|
|
foreach (DataRow dr in datatwo.Rows)
|
|
{
|
|
model.ROUTEID = dr["ID"].ToString();
|
|
model.ROUTECODE = dr["ROUTECODE"].ToString();
|
|
model.ROUTETYPE = dr["ROUTETYPE"].ToString();
|
|
|
|
}
|
|
// string sqlthree = @"select OBCODE,OPBOMVER
|
|
// from ICSOPBOM
|
|
// where ITEMCODE='" + itemcode + "' and OBROUTE='" + routecode + "' and OPBOMVER='" + bom + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
// sqlthree = string.Format(sqlthree);
|
|
// DataTable datathree = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlthree).Tables[0];
|
|
// foreach (DataRow dr in datathree.Rows)
|
|
// {
|
|
//model.OPBOMCODE = dr["OBCODE"].ToString();
|
|
//model.OPBOMVER = dr["OPBOMVER"].ToString();
|
|
|
|
model.OPBOMCODE = "001";
|
|
model.OPBOMVER = "001";
|
|
//}
|
|
string sqlfour = @"select ISREF
|
|
from ICSITEM2ROUTE
|
|
where ITEMCODE='" + itemcode + "' and ROUTECODE='" + routecode + "' and WorkPoint='" + AppConfig.WorkPointCode + "'";
|
|
sqlfour = string.Format(sqlfour);
|
|
DataTable datafour = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlfour).Tables[0];
|
|
foreach (DataRow dr in datafour.Rows)
|
|
{
|
|
model.ISMROUTE = dr["ISREF"].ToString();
|
|
|
|
}
|
|
ICSMO2ROUTE line = new ICSMO2ROUTE();
|
|
line.MOID = model.MOID;
|
|
line.ROUTEID = model.ROUTEID;
|
|
line.MOCODE = model.MOCODE;
|
|
line.ROUTECODE = model.ROUTECODE;
|
|
line.ROUTETYPE = model.ROUTETYPE;
|
|
line.OPBOMCODE = model.OPBOMCODE;
|
|
line.OPBOMVER = model.OPBOMVER;
|
|
line.ISMROUTE = model.ISMROUTE;
|
|
line.WorkPoint = AppConfig.WorkPointCode;
|
|
line.MUSER = AppConfig.UserId;
|
|
line.MUSERName = AppConfig.UserName;
|
|
line.MTIME = DateTime.Now;
|
|
|
|
db.ICSMO2ROUTE.InsertOnSubmit(line);
|
|
db.SubmitChanges();
|
|
|
|
|
|
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 通过guid查询
|
|
public static List<FormICSMOUIModel> SearchMOInfoByCode(string moid, string dsconn)
|
|
{
|
|
List<FormICSMOUIModel> returnmmo = new List<FormICSMOUIModel>();
|
|
// string sql = @"
|
|
//select
|
|
// MOCODE,
|
|
// MOMEMO,
|
|
// MOTYPE,
|
|
// MODESC,
|
|
// MOBIOSVER,
|
|
// MOPCBAVER,
|
|
// MOPLANQTY,
|
|
// MOINPUTQTY,
|
|
// MOSCRAPQTY,
|
|
// MOACTQTY,
|
|
// MOPLANSTARTDATE,
|
|
// MOPLANENDDATE,
|
|
// MOACTSTARTDATE,
|
|
// MOACTENDDATE,
|
|
// FACTORY,
|
|
// CUSCODE,
|
|
// CUSNAME,
|
|
// CUSORDERNO,
|
|
// CUSITEMCODE,
|
|
// ORDERNO,
|
|
// ORDERSEQ,
|
|
// MOUSER,
|
|
// MODOWNDATE,
|
|
// MOSTATUS,
|
|
// MOVER,
|
|
// ISCONINPUT,
|
|
// ISBOMPASS,
|
|
// IDMERGERULE,
|
|
// WorkPoint,
|
|
// MUSER,
|
|
// MUSERName,
|
|
// EATTRIBUTE1,
|
|
// ITEMCODE,
|
|
// MOPENDINGCAUSE,
|
|
// MOIMPORTTIME,
|
|
// OFFMOQTY,
|
|
// ISCOMPARESOFT,
|
|
// RMABILLCODE,
|
|
// MOSEQ,
|
|
// REMOCODE,
|
|
// REMOITEMCODE,
|
|
// REMOITEMDESC,
|
|
// REMOLOTNO,
|
|
// REMOENABLED,
|
|
// MOBOM,
|
|
// MOOP,
|
|
// ITEMDESC,
|
|
// MOPLANLINE,
|
|
// BackflushStorage,
|
|
// WarningStopLine,
|
|
// MORemark,
|
|
// EATTRIBUTE4
|
|
//from ICSMO
|
|
//where ID='{0}'";
|
|
string sql = @"SELECT A.*,B.INVMODELGROUP FROM ICSMO A LEFT JOIN dbo.ICSINVENTORY B ON A.ITEMCODE=B.INVCODE where A.ID='{0}'";
|
|
sql = string.Format(sql, moid);
|
|
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
FormICSMOUIModel returnInfo = new FormICSMOUIModel();
|
|
returnInfo.MOCODE = dr["MOCODE"].ToString();
|
|
returnInfo.MOMEMO = dr["MOMEMO"].ToString();
|
|
returnInfo.MOTYPE = dr["MOTYPE"].ToString();
|
|
returnInfo.MODESC = dr["MODESC"].ToString();
|
|
returnInfo.MOBIOSVER = dr["MOBIOSVER"].ToString();
|
|
returnInfo.MOPCBAVER = dr["MOPCBAVER"].ToString();
|
|
returnInfo.MOPLANQTY = Convert.ToDecimal(dr["MOPLANQTY"].ToString());
|
|
returnInfo.MOINPUTQTY = Convert.ToDecimal(dr["MOINPUTQTY"].ToString());
|
|
returnInfo.MOSCRAPQTY = Convert.ToDecimal(dr["MOSCRAPQTY"].ToString());
|
|
returnInfo.MOACTQTY = Convert.ToDecimal(dr["MOACTQTY"].ToString());
|
|
returnInfo.MOPLANSTARTDATE = Convert.ToDateTime(dr["MOPLANSTARTDATE"].ToString());
|
|
returnInfo.MOPLANENDDATE = Convert.ToDateTime(dr["MOPLANENDDATE"].ToString());
|
|
returnInfo.MOACTSTARTDATE = Convert.ToDateTime(dr["MOACTSTARTDATE"].ToString());
|
|
returnInfo.MOACTENDDATE = Convert.ToDateTime(dr["MOACTENDDATE"].ToString());
|
|
returnInfo.FACTORY = dr["FACTORY"].ToString();
|
|
returnInfo.CUSCODE = dr["CUSCODE"].ToString();
|
|
returnInfo.CUSNAME = dr["CUSNAME"].ToString();
|
|
returnInfo.CUSORDERNO = dr["CUSORDERNO"].ToString();
|
|
returnInfo.CUSITEMCODE = dr["CUSITEMCODE"].ToString();
|
|
returnInfo.ORDERNO = dr["ORDERNO"].ToString();
|
|
returnInfo.ORDERSEQ = Convert.ToInt32(dr["ORDERSEQ"].ToString());
|
|
returnInfo.MOUSER = dr["MOUSER"].ToString();
|
|
returnInfo.MODOWNDATE = Convert.ToDateTime(dr["MODOWNDATE"].ToString());
|
|
returnInfo.MOSTATUS = dr["MOSTATUS"].ToString();
|
|
returnInfo.MOVER = dr["MOVER"].ToString();
|
|
returnInfo.ISCONINPUT = dr["ISCONINPUT"].ToString();
|
|
returnInfo.ISBOMPASS = dr["ISBOMPASS"].ToString();
|
|
returnInfo.IDMERGERULE = Convert.ToDecimal(dr["IDMERGERULE"].ToString());
|
|
returnInfo.ITEMCODE = dr["ITEMCODE"].ToString();
|
|
//returnInfo.MORELEASETIME = Convert.ToDateTime(dr["MORELEASETIME"].ToString());
|
|
returnInfo.MOPENDINGCAUSE = dr["MOPENDINGCAUSE"].ToString();
|
|
returnInfo.MOIMPORTTIME = Convert.ToDateTime(dr["MOIMPORTTIME"].ToString());
|
|
returnInfo.OFFMOQTY = Convert.ToDecimal(dr["OFFMOQTY"].ToString().Equals("") ? "0" : dr["OFFMOQTY"].ToString());
|
|
returnInfo.ISCOMPARESOFT = Convert.ToInt32(dr["ISCOMPARESOFT"].ToString().Equals("") ? "0" : dr["ISCOMPARESOFT"].ToString());
|
|
returnInfo.RMABILLCODE = dr["RMABILLCODE"].ToString();
|
|
returnInfo.MOSEQ = dr["MOSEQ"].ToString().Equals("") ? "0" : dr["MOSEQ"].ToString();
|
|
returnInfo.REMOCODE = dr["REMOCODE"].ToString();
|
|
returnInfo.REMOITEMCODE = dr["REMOITEMCODE"].ToString();
|
|
returnInfo.REMOITEMDESC = dr["REMOITEMDESC"].ToString();
|
|
returnInfo.REMOLOTNO = dr["REMOLOTNO"].ToString();
|
|
returnInfo.REMOENABLED = dr["REMOENABLED"].ToString();
|
|
returnInfo.MOBOM = dr["MOBOM"].ToString();
|
|
returnInfo.MOOP = dr["MOOP"].ToString();
|
|
returnInfo.ITEMDESC = dr["ITEMDESC"].ToString();
|
|
//returnInfo.MOPLANENDTIME = Convert.ToDateTime(dr["MOPLANENDTIME"].ToString());
|
|
returnInfo.MOPLANLINE = dr["MOPLANLINE"].ToString();
|
|
returnInfo.BackflushStorage = dr["BackflushStorage"].ToString();
|
|
returnInfo.WarningStopLine = dr["WarningStopLine"].ToString();
|
|
returnInfo.MORemark = dr["MORemark"].ToString();
|
|
returnInfo.EATTRIBUTE4 = dr["EATTRIBUTE4"].ToString();
|
|
returnInfo.CUSITEMCODE = dr["INVMODELGROUP"].ToString();
|
|
returnInfo.EATTRIBUTE1 = dr["EATTRIBUTE1"].ToString();
|
|
returnInfo.EATTRIBUTE2= dr["EATTRIBUTE2"].ToString();//是否是返工工单
|
|
if (!returnmmo.Contains(returnInfo))
|
|
{
|
|
returnmmo.Add(returnInfo);
|
|
}
|
|
}
|
|
return returnmmo;
|
|
|
|
}
|
|
#endregion
|
|
#region 删除
|
|
public static void deleteInfo(List<string> moidList, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var lines = db.ICSMO.Where(a => moidList.Contains(a.ID));
|
|
db.ICSMO.DeleteAllOnSubmit(lines);
|
|
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 代码是否存在
|
|
public static bool IsIncluding(string mocode, string dsconn)
|
|
{
|
|
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode);
|
|
if (line == null)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 查找最大的序列号
|
|
public static int SearchMaxS(string tou, string dsconn)
|
|
{
|
|
int max = 0;
|
|
string sql = @"select SUBSTRING(RCARD,LEN(RCARD)-4,5) as num from ICSMO2RCARD where MOCODE='" + tou + "' ";
|
|
sql = string.Format(sql);
|
|
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
|
|
foreach (DataRow dr in dt.Rows)
|
|
{
|
|
if (Convert.ToInt32(dr["num"].ToString()) > max)
|
|
max = Convert.ToInt32(dr["num"].ToString());
|
|
}
|
|
return max;
|
|
}
|
|
#endregion
|
|
#region 生成序列号
|
|
public static void AddMO2RCARD(List<string> rcaList, string moid, string mocode, string dsconn)
|
|
{
|
|
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO2RCARD.SingleOrDefault(a => a.RCARD == rcaList[0]);
|
|
if (line == null)
|
|
{
|
|
foreach (string rca in rcaList)
|
|
{
|
|
ICSMO2RCARD mo2rca = new ICSMO2RCARD();
|
|
mo2rca.ID = AppConfig.GetGuid();
|
|
mo2rca.MOID = moid;
|
|
mo2rca.MOCODE = mocode;
|
|
mo2rca.RCARD = rca;
|
|
mo2rca.PrintTimes = 0;
|
|
mo2rca.lastPrintUSER = "";
|
|
mo2rca.lastPrintTime = DateTime.Now;
|
|
mo2rca.MUSER = AppConfig.UserId;
|
|
mo2rca.MUSERName = AppConfig.UserName;
|
|
mo2rca.MTIME = DateTime.Now;
|
|
mo2rca.WorkPoint = AppConfig.WorkPointCode;
|
|
db.ICSMO2RCARD.InsertOnSubmit(mo2rca);
|
|
}
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
else
|
|
{
|
|
throw new Exception("生成失败");
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 删除序列号
|
|
public static void deleteSerial(List<string> serialList, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var lines = db.ICSMO2RCARD.Where(a => serialList.Contains(a.RCARD));
|
|
db.ICSMO2RCARD.DeleteAllOnSubmit(lines);
|
|
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 判断是否在工单首检记录中
|
|
public static bool isInFirstCheck(string moCode, string dsconn)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"select * from ICSFIRSTCHECKBYMO where MOCODE='" + moCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
|
|
if (dt.Rows.Count > 0)
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 最近一次检验是否合格
|
|
public static bool isQualified(string moCode, string dsconn)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"select CHECKRESULT
|
|
from ICSFIRSTCHECKBYMO
|
|
where MOCODE='" + moCode + "' and MTIME in (select MAX(MTIME) from ICSFIRSTCHECKBYMO where MOCODE='" + moCode + "') ";
|
|
sql = string.Format(sql);
|
|
DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
|
|
if (dt.Rows[0]["CHECKRESULT"].ToString() == "Y")
|
|
return true;
|
|
else
|
|
return false;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
#region 下发
|
|
public static void Send(string mocode, string moseq, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode && a.MOSEQ == moseq && a.WorkPoint == AppConfig.WorkPointCode);
|
|
line.MOSTATUS = "下发";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 取消下发
|
|
public static void cancelSend(string mocode, string moseq, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode && a.MOSEQ == moseq && a.WorkPoint == AppConfig.WorkPointCode);
|
|
line.MOSTATUS = "初始";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 暂停
|
|
public static void stop(string mocode, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode);
|
|
line.MOSTATUS = "暂停";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 取消暂停
|
|
public static void cancelStop(string mocode, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode);
|
|
line.MOSTATUS = "生产中";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#region 关单
|
|
public static void closeDan(string mocode, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode);
|
|
line.MOSTATUS = "关单";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
#region 子件资料信息
|
|
public static DataTable GetMOBOM(string MoSql)
|
|
{
|
|
try
|
|
{
|
|
string sql = @"select a.MOCODE,
|
|
CONVERT(int,a.SEQ) as SEQ,
|
|
a.MOBOMLINE,
|
|
a.MOBITEMQTY,
|
|
a.MOBITEMCODE,
|
|
a.MOBITEMNAME,
|
|
a.MOBITEMDESC,
|
|
b.INVSTD,
|
|
a.MOBOMITEMUOM,
|
|
b.INVMACHINETYPE,
|
|
StorageName
|
|
from ICSMOBOM a
|
|
LEFT JOIN ICSINVENTORY b ON a.ITEMCODE=b.INVCODE AND a.WorkPoint=b.WorkPoint
|
|
LEFT JOIN ICSStorage c ON b.INVMACHINETYPE=c.StorageCode
|
|
RIGHT JOIN (" + MoSql + ")d ON a.MOCODE=d.MOCODE AND a.SEQ=d.MOSEQ WHERE a.WorkPoint ='" + AppConfig.WorkPointCode + "'";
|
|
sql = string.Format(sql);
|
|
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
|
|
return dt;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
public static void BeginningSave(MoContext context)
|
|
{
|
|
SqlConnection conn = new SqlConnection(AppConfig.AppConnectString);
|
|
SqlCommand com = conn.CreateCommand();
|
|
SqlTransaction tran;
|
|
conn.Open();
|
|
tran = conn.BeginTransaction();
|
|
com.Transaction = tran;
|
|
try
|
|
{
|
|
string sqlStr = @"IF EXISTS(SELECT * FROM dbo.ICSMO WHERE BatchCode='" + context.BatchCode + @"')
|
|
RAISERROR('批次已经存在!!',16,0)";
|
|
com.CommandText = sqlStr;
|
|
com.ExecuteNonQuery();
|
|
string guid = AppConfig.GetGuid();
|
|
|
|
string sql = @"INSERT INTO [dbo].[ICSMO]
|
|
([Serial]
|
|
,[ItemCode]
|
|
,[ItemName]
|
|
,[ItemStd]
|
|
,[ComUnit]
|
|
,[AssComUnit]
|
|
,[CreateDate]
|
|
,[BatchCode]
|
|
,[Qty]
|
|
,[PackQuantiy]
|
|
,[Mtime]
|
|
,[Muser]
|
|
,[MoCode]
|
|
,[Free1]
|
|
,[Free2]
|
|
,[Free3]
|
|
,[Free4]
|
|
,Free5,Free6
|
|
,[AuxUnitCode]
|
|
,[ChangeRate]
|
|
,[AuxQty],MoDId,Whcode)
|
|
VALUES
|
|
(@Serial
|
|
,@ItemCode
|
|
,@ItemName
|
|
,@ItemStd
|
|
,@ComUnit
|
|
,@AssComUnit
|
|
,@CreateDate
|
|
,@BatchCode
|
|
,@Qty
|
|
,@PackQuantiy
|
|
,@Mtime
|
|
,@Muser
|
|
,@MoCode
|
|
,@Free1
|
|
,@Free2
|
|
,@Free3
|
|
,@Free4
|
|
,@Free5,@Free6
|
|
,@AuxUnitCode
|
|
,@ChangeRate
|
|
,@AuxQty,@MoDId,@Whcode)";
|
|
com.CommandText = sql;
|
|
com.Parameters.Clear();
|
|
com.Parameters.AddWithValue("@Serial", guid);
|
|
com.Parameters.AddWithValue("@ItemCode", context.cInvCode);
|
|
com.Parameters.AddWithValue("@ItemName", context.cInvName);
|
|
com.Parameters.AddWithValue("@ItemStd", context.cInvStd);
|
|
com.Parameters.AddWithValue("@ComUnit", context.cComUnitName1);
|
|
com.Parameters.AddWithValue("@AssComUnit", context.cComUnitName2);
|
|
com.Parameters.AddWithValue("@CreateDate", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@BatchCode", context.BatchCode);
|
|
com.Parameters.AddWithValue("@Qty", context.Qty);
|
|
com.Parameters.AddWithValue("@PackQuantiy", "0");
|
|
com.Parameters.AddWithValue("@Mtime", DateTime.Now.ToString());
|
|
com.Parameters.AddWithValue("@Muser", AppConfig.UserName);
|
|
com.Parameters.AddWithValue("@MoCode", context.MoCode);
|
|
com.Parameters.AddWithValue("@Free1", context.Free1);
|
|
com.Parameters.AddWithValue("@Free2", context.free2);
|
|
com.Parameters.AddWithValue("@Free3", context.Free3);
|
|
com.Parameters.AddWithValue("@Free4", context.Free4);
|
|
com.Parameters.AddWithValue("@Free5", context.MDeptCode);
|
|
com.Parameters.AddWithValue("@Free6", "");
|
|
com.Parameters.AddWithValue("@AuxUnitCode", context.AuxUnitCode);
|
|
com.Parameters.AddWithValue("@ChangeRate", context.ChangeRate);
|
|
com.Parameters.AddWithValue("@AuxQty", context.AuxQty);
|
|
com.Parameters.AddWithValue("@MoDId", context.MoDId);
|
|
com.Parameters.AddWithValue("@Whcode", context.Whcode);
|
|
|
|
com.ExecuteNonQuery();
|
|
com.Transaction.Commit();
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
com.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
public partial class MoContext
|
|
{
|
|
public string MoCode { get; set; }
|
|
public string cInvCode { get; set; }
|
|
public string cInvName { get; set; }
|
|
public string cInvStd { get; set; }
|
|
public string AuxQty { get; set; }
|
|
public string MDeptCode { get; set; }
|
|
public string ChangeRate { get; set; }
|
|
public string AuxUnitCode { get; set; }
|
|
public string Free1 { get; set; }
|
|
public string free2 { get; set; }
|
|
public string Free3 { get; set; }
|
|
public string Free4 { get; set; }
|
|
public string Qty { get; set; }
|
|
public string cComUnitName1 { get; set; }
|
|
public string cComUnitName2 { get; set; }
|
|
public string MoDId { get; set; }
|
|
public string NowQty { get; set; }
|
|
public string BatchCode { get; set; }
|
|
public string Whcode { get; set; }
|
|
}
|
|
|
|
public static int SendList(List<ICSMO> list, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
int u = 0;
|
|
foreach (ICSMO info in list)
|
|
{
|
|
int moFenpi = db.ICSITEMLot.Where(a => a.TransNO == info.MOCODE && a.TransLine == info.MOSEQ && a.TYPE == "工单" && a.WorkPoint == info.WorkPoint).Count();
|
|
if (moFenpi == 0)
|
|
{
|
|
//跳过没有分批的工单
|
|
continue;
|
|
}
|
|
u++;
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == info.MOCODE && a.MOSEQ == info.MOSEQ && a.WorkPoint == info.WorkPoint);
|
|
line.MOSTATUS = "下发";
|
|
db.SubmitChanges();
|
|
}
|
|
if (u == 0)
|
|
{
|
|
throw new Exception("工单分批后才可下发");
|
|
}
|
|
db.Transaction.Commit();
|
|
return u;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
finally
|
|
{
|
|
db.Connection.Close();
|
|
}
|
|
}
|
|
|
|
public static int CancelSendList(List<ICSMO> list, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
int u = 0;
|
|
foreach (ICSMO info in list)
|
|
{
|
|
int moPaigong = db.ICSMO2User.Where(a => a.MOCODE == info.MOCODE && a.MOSEQ.ToString() == info.MOSEQ && a.WorkPoint == info.WorkPoint).Count();
|
|
if (moPaigong > 0)
|
|
{
|
|
//跳过已派工的工单
|
|
continue;
|
|
}
|
|
u++;
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == info.MOCODE && a.MOSEQ == info.MOSEQ && a.WorkPoint == info.WorkPoint);
|
|
line.MOSTATUS = "初始";
|
|
db.SubmitChanges();
|
|
}
|
|
if (u == 0)
|
|
{
|
|
throw new Exception("已派工的工单不可取消下发");
|
|
}
|
|
db.Transaction.Commit();
|
|
return u;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
finally
|
|
{
|
|
db.Connection.Close();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|