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.
1387 lines
51 KiB
1387 lines
51 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;
|
|
using System.Security.Cryptography;
|
|
using System.IO;
|
|
|
|
namespace ICSSoft.Frame.Data.DAL
|
|
{
|
|
public class ICSMODAL
|
|
{
|
|
#region 0822 下发
|
|
|
|
#region 下发
|
|
public static void Sends(string mocode, string seqcode, 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 == seqcode);
|
|
line.MOSTATUS = "下发";
|
|
// line.SEGCODE = segcode;
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
|
|
|
|
#region 判断工单途程是否存在(ICSMO2ROUTE,ICSITEM2ROUTE)
|
|
//public static string hasROUTE(string moCode, string moseq,string itemCode, string dsconn)
|
|
//{
|
|
// //try
|
|
// //{
|
|
// // string sql = @"select * from ICSMO2ROUTE where MOCODE='" + moCode + "'";
|
|
// // sql = string.Format(sql);
|
|
// // DataTable dt = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sql).Tables[0];
|
|
// // if (dt.Rows.Count > 0)
|
|
// // return "该工单" + moCode + "已经存在了工艺路线";
|
|
// // else
|
|
// // {
|
|
// // string sqlI = @"select * from ICSITEM2ROUTE where ITEMCODE='" + itemCode + "'";
|
|
// // sqlI = string.Format(sqlI);
|
|
// // DataTable dtI = DBHelper.ExecuteDataset(dsconn, CommandType.Text, sqlI).Tables[0];
|
|
// // if (dtI.Rows.Count > 0)
|
|
// // return;
|
|
// // else
|
|
// // return;
|
|
// // }
|
|
// //}
|
|
// //catch (Exception ex)
|
|
// //{
|
|
|
|
// // throw ex;
|
|
// //}
|
|
//}
|
|
#endregion
|
|
|
|
#region 判断工单 途程是否存在
|
|
public static string IshasROUTE(string MOID, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO2ROUTE.Where(a => a.MOID == MOID);
|
|
if (line != null && line.Count() > 0)
|
|
{
|
|
return line.First().ROUTECODE;
|
|
}
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
return "";
|
|
}
|
|
#endregion
|
|
|
|
#region 判断默认途程是否存在
|
|
public static string hasIsRefROUTE(string itemCode, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSITEM2ROUTE.Where(a => a.ITEMCODE == itemCode && (a.ISREF == "是"));
|
|
if (line != null && line.Count() > 0)
|
|
{
|
|
string routecode = line.First().ROUTECODE;
|
|
var route = db.ICSROUTE.SingleOrDefault(a => a.ROUTECODE == routecode);
|
|
if (route != null)
|
|
{
|
|
return route.ROUTECODE;
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return null;
|
|
}
|
|
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
|
|
|
|
#region 根据工单ID获取工单工艺路线信息
|
|
public static ICSMO2ROUTE selectmo2routebyid(string moid, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO2ROUTE.SingleOrDefault(a => a.MOID == moid);
|
|
return line;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 下发
|
|
public static void Send(List<ICSMO> moinfolist, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (ICSMO moinfo in moinfolist)
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == moinfo.MOCODE && a.MOSEQ == moinfo.MOSEQ);
|
|
line.MOSTATUS = "下发";
|
|
line.SendDATE = DateTime.Now;
|
|
db.SubmitChanges();
|
|
}
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
#endregion
|
|
|
|
|
|
#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;
|
|
moseq = moInfo.MOSEQ;
|
|
var mo = db.ICSMO.Where(a => a.MOCODE.Contains(moInfo.MOCODE) && a.MOTYPE == "1" && a.MOSEQ == moInfo.MOSEQ).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 = line.MOSEQ;
|
|
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;
|
|
moseq = moInfo.MOSEQ;
|
|
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.MOSEQ = moInfo.MOSEQ;
|
|
|
|
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, moseq);
|
|
}
|
|
|
|
}
|
|
#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, string moseq)
|
|
{
|
|
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;
|
|
line.EATTRIBUTE1 = moseq;
|
|
|
|
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}'";
|
|
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();
|
|
if (!string.IsNullOrWhiteSpace(dr["IDMERGERULE"].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();
|
|
|
|
if (!string.IsNullOrWhiteSpace(dr["MOIMPORTTIME"].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();
|
|
|
|
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);
|
|
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);
|
|
line.MOSTATUS = "初始";
|
|
line.SendDATE = null;
|
|
//取消下发删除工单绑定工艺路线 --2022/6/1
|
|
var mo2route = db.ICSMO2ROUTE.Where(a => a.MOCODE == mocode && a.EATTRIBUTE1 == moseq).FirstOrDefault();
|
|
if (mo2route != null)
|
|
{
|
|
db.ICSMO2ROUTE.DeleteOnSubmit(mo2route);
|
|
}
|
|
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(List<string> id, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (string ID in id)
|
|
{
|
|
|
|
var line = db.ICSMO.SingleOrDefault(a => a.ID == ID);
|
|
line.MOSTATUS = "关单";
|
|
line.CloseDate = DateTime.Now;
|
|
db.SubmitChanges();
|
|
|
|
}
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
#endregion
|
|
public static void closeDan(string ID, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
|
|
|
|
var line = db.ICSMO.SingleOrDefault(a => a.ID == ID);
|
|
line.MOSTATUS = "关单";
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
|
|
}
|
|
|
|
#region 取消关单
|
|
public static void CancleCloseDan(string ID, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
var line = db.ICSMO.SingleOrDefault(a => a.ID == ID);
|
|
line.MOSTATUS = "初始";
|
|
line.CloseDate = null;
|
|
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
|
|
|
|
#region 删除批次信息
|
|
public static void DeleteLotno(List<ICSMO> icsmo)
|
|
{
|
|
FramDataContext frame = new FramDataContext(AppConfig.AppConnectString);
|
|
frame.Connection.Open();
|
|
frame.Transaction = frame.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (ICSMO mo in icsmo)
|
|
{
|
|
var itemlot = frame.ICSITEMLot.Where(a => a.TransNO == mo.MOCODE && a.TransLine == mo.MOSEQ);
|
|
List<string> lotno = itemlot.Select(a => a.LotNO).ToList();
|
|
frame.ICSITEMLot.DeleteAllOnSubmit(itemlot);
|
|
//更改工单分批状态
|
|
var Icsmo = frame.ICSMO.Where(a => a.MOCODE == mo.MOCODE && a.MOSEQ == mo.MOSEQ).SingleOrDefault();
|
|
Icsmo.EATTRIBUTE2 = null;
|
|
//删除条码关联工艺路线
|
|
var itemroute = frame.ICSITEMROUTE2OPLot.Where(a => lotno.Contains(a.LotNo));
|
|
frame.ICSITEMROUTE2OPLot.DeleteAllOnSubmit(itemroute);
|
|
frame.SubmitChanges();
|
|
}
|
|
frame.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
frame.Transaction.Rollback();
|
|
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; }
|
|
}
|
|
|
|
|
|
|
|
#region 工单接口
|
|
public static void delete(List<Tuple<string, string>> tuples, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (var tuple in tuples)
|
|
{
|
|
var line = db.ICSMO.Where(a => a.MOCODE == tuple.Item1 && a.MOSEQ == tuple.Item2).FirstOrDefault();
|
|
if (line == null)
|
|
throw new Exception($"未查询到对应工单信息,MoCode:{tuple.Item1},Moseq:{tuple.Item2}");
|
|
if (line.SendDATE != null)
|
|
throw new Exception($"存在工单已下发,无法删除,MoCode:{tuple.Item1},Moseq:{tuple.Item2}");
|
|
if (db.ICSITEMLot.Where(a => a.TransNO == line.MOCODE && a.TransLine == line.MOSEQ).FirstOrDefault() != null)
|
|
throw new Exception($"存在工单已分批,无法删除,MoCode:{tuple.Item1},Moseq:{tuple.Item2}");
|
|
db.ICSMO.DeleteOnSubmit(line);
|
|
}
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
finally {
|
|
db.Connection.Close();
|
|
}
|
|
|
|
}
|
|
|
|
public static void Update(List<MoModifityData> updates, string dsconn)
|
|
{
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
foreach (var tuple in updates)
|
|
{
|
|
var line = db.ICSMO.Where(a => a.MOCODE == tuple.Mocode && a.MOSEQ == tuple.MOSEQ.ToString()).FirstOrDefault();
|
|
bool send = false;
|
|
if (line == null)
|
|
throw new Exception($"未查询到对应工单信息,MoCode:{tuple.Mocode},Moseq:{tuple.MOSEQ.ToString()}");
|
|
|
|
if (line.SendDATE != null)
|
|
send = true;
|
|
|
|
if (db.ICSITEMLot.Where(a => a.TransNO == line.MOCODE && a.TransLine == line.MOSEQ).FirstOrDefault() != null)
|
|
send = true;
|
|
|
|
|
|
if (tuple.MTIME != null)
|
|
line.MTIME = (DateTime)tuple.MTIME;
|
|
|
|
if (tuple.MOPLANSTARTDATE != null)
|
|
{
|
|
line.MOPLANSTARTDATE = (DateTime)tuple.MOPLANSTARTDATE;
|
|
line.MOACTSTARTDATE = (DateTime)tuple.MOPLANSTARTDATE;
|
|
}
|
|
|
|
|
|
if (tuple.MOPLANQTY != null)
|
|
{
|
|
if (send&&tuple.MOPLANQTY!=line.MOPLANQTY)
|
|
{
|
|
throw new Exception($"存在工单已下发或分批,无法更新数量,MoCode:{tuple.Mocode},Moseq:{tuple.MOSEQ}");
|
|
}
|
|
line.MOPLANQTY = (Decimal)tuple.MOPLANQTY;
|
|
}
|
|
|
|
|
|
if (tuple.MOPLANENDDATE != null)
|
|
{
|
|
line.MOPLANENDDATE = (DateTime)tuple.MOPLANENDDATE;
|
|
line.MOACTENDDATE = (DateTime)tuple.MOPLANENDDATE;
|
|
}
|
|
|
|
if (tuple.MODOWNDATE != null)
|
|
line.MODOWNDATE = (DateTime)tuple.MODOWNDATE;
|
|
|
|
if (tuple.MTIME != null)
|
|
line.MTIME = (DateTime)tuple.MTIME;
|
|
|
|
if (tuple.MOBIOSVER != null)
|
|
line.MOBIOSVER = tuple.MOBIOSVER == true ? "关闭" : "审核";
|
|
|
|
if (!String.IsNullOrEmpty(tuple.CreateUser))
|
|
{
|
|
line.MUSER = tuple.CreateUser;
|
|
line.MUSERName = tuple.CreateUser;
|
|
|
|
}
|
|
if (!string.IsNullOrEmpty(tuple.ProjectCode))
|
|
line.ORDERNO = tuple.ProjectCode;
|
|
|
|
if (!string.IsNullOrEmpty(tuple.ProjectSeq))
|
|
line.EATTRIBUTE1= tuple.ProjectSeq;
|
|
|
|
if (!String.IsNullOrEmpty(tuple.MDeptName))
|
|
line.MDeptCode = tuple.MDeptName;
|
|
|
|
if (!String.IsNullOrEmpty(tuple.MDeptCode))
|
|
line.EATTRIBUTE3 = tuple.MDeptCode;
|
|
|
|
if (!String.IsNullOrEmpty(tuple.CostCenter))
|
|
line.EATTRIBUTE4 = tuple.CostCenter;
|
|
|
|
if (!String.IsNullOrEmpty(tuple.MotherMo))
|
|
line.MODESC = tuple.MotherMo;
|
|
|
|
if (!String.IsNullOrEmpty(tuple.SuperiorMo))
|
|
line.MOMEMO = tuple.SuperiorMo;
|
|
|
|
|
|
if (!string.IsNullOrEmpty(tuple.ITEMCODE))
|
|
{
|
|
if (send&&tuple.ITEMCODE!=line.ITEMCODE)
|
|
{
|
|
throw new Exception($"存在工单已下发或分批,无法更新物料,MoCode:{tuple.Mocode},Moseq:{tuple.MOSEQ}");
|
|
}
|
|
|
|
if (db.ICSMO2ROUTE.Where(a => a.MOID == line.ID).FirstOrDefault() != null&&tuple.ITEMCODE!=line.ITEMCODE)
|
|
{
|
|
throw new Exception($"存在工单已关联途程,无法更新工单物料,MoCode:{tuple.MOSEQ},Moseq:{tuple.MOSEQ}");
|
|
}
|
|
var item = db.ICSINVENTORY.Where(a => a.INVCODE == tuple.ITEMCODE).FirstOrDefault();
|
|
if (item == null)
|
|
throw new Exception($"物料不存在!ItemCode:{tuple.ITEMCODE}");
|
|
|
|
line.ITEMCODE = tuple.ITEMCODE;
|
|
}
|
|
|
|
}
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
finally {
|
|
|
|
db.Connection.Close();
|
|
}
|
|
}
|
|
|
|
|
|
public static void Add(List<MoInsertData> updates, string dsconn)
|
|
{
|
|
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
db.Transaction = db.Connection.BeginTransaction();
|
|
try
|
|
{
|
|
|
|
string workpoint = db.Sys_User.FirstOrDefault().WorkPointCode;
|
|
foreach (var tuple in updates)
|
|
{
|
|
var line = db.ICSMO.Where(a => a.MOCODE == tuple.Mocode && a.MOSEQ == tuple.MOSEQ.ToString()).FirstOrDefault();
|
|
if (line != null)
|
|
throw new Exception($"工单已存在! MoCode:{tuple.Mocode},Moseq:{tuple.MOSEQ.ToString()}");
|
|
|
|
var item = db.ICSINVENTORY.Where(a => a.INVCODE == tuple.ITEMCODE).FirstOrDefault();
|
|
if (item == null)
|
|
throw new Exception($"物料不存在!ItemCode:{tuple.ITEMCODE}");
|
|
|
|
line = new ICSMO();
|
|
|
|
line.ID = Guid.NewGuid().ToString();
|
|
|
|
line.MOCODE = tuple.Mocode;
|
|
line.MOSEQ = tuple.MOSEQ.ToString();
|
|
line.MOTYPE = "正常";
|
|
line.MOINPUTQTY = 0;
|
|
line.MOSCRAPQTY = 0;
|
|
line.MOSCRAPQTY = 0;
|
|
line.MOACTQTY = 0;
|
|
line.ORDERSEQ = 0;
|
|
line.MOSTATUS = "初始";
|
|
line.WorkPoint = workpoint;
|
|
line.MORELEASETIME = tuple.MOPLANSTARTDATE;
|
|
line.MUSERName = tuple.CreateUser;
|
|
line.MTIME = (DateTime)tuple.CreateTime;
|
|
line.MOPLANSTARTDATE = (DateTime)tuple.MOPLANSTARTDATE;
|
|
line.MOACTSTARTDATE = (DateTime)tuple.MOPLANSTARTDATE;
|
|
line.MOPLANQTY = (Decimal)tuple.MOPLANQTY;
|
|
line.MOPLANENDDATE = (DateTime)tuple.MOPLANENDDATE;
|
|
line.MOACTENDDATE = (DateTime)tuple.MOPLANENDDATE;
|
|
line.MODOWNDATE = (DateTime)tuple.MODOWNDATE;
|
|
line.MOBIOSVER = tuple.MOBIOSVER == true ? "关闭" : "审核";
|
|
line.MUSER = tuple.CreateUser;
|
|
line.MDeptCode = tuple.MDeptName;
|
|
line.EATTRIBUTE3 = tuple.MDeptCode;
|
|
line.EATTRIBUTE1 = tuple.ProjectSeq;
|
|
line.ITEMCODE = tuple.ITEMCODE;
|
|
line.ORDERNO = tuple.ProjectCode;
|
|
line.EATTRIBUTE4 = tuple.CostCenter;
|
|
line.MOMEMO = tuple.SuperiorMo;
|
|
line.MODESC = tuple.MotherMo;
|
|
line.MOBOM = "";
|
|
db.ICSMO.InsertOnSubmit(line);
|
|
}
|
|
db.SubmitChanges();
|
|
db.Transaction.Commit();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
db.Transaction.Rollback();
|
|
throw ex;
|
|
}
|
|
finally {
|
|
db.Connection.Close();
|
|
}
|
|
}
|
|
|
|
|
|
|
|
public static Sys_User Login(string userName, string Password, string dsconn)
|
|
{
|
|
|
|
FramDataContext db = new FramDataContext(dsconn);
|
|
db.Connection.Open();
|
|
try
|
|
{
|
|
|
|
var pas = ToMd5(Password);
|
|
var user = db.Sys_User.Where(a => a.UserCode == userName && a.UserPwd == pas).FirstOrDefault();
|
|
if (user == null)
|
|
throw new Exception("用户名或密码不正确!");
|
|
|
|
return user;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
public static string ToMd5(string str)
|
|
{
|
|
return Encrypt(str, "&%#@?,:*_");
|
|
}
|
|
|
|
|
|
private static string Encrypt(string strText, string strEncrKey)
|
|
{
|
|
byte[] rgbKey = new byte[0];
|
|
byte[] rgbIV = new byte[] { 18, 52, 86, 120, 144, 171, 205, 239 };
|
|
string result;
|
|
try
|
|
{
|
|
rgbKey = Encoding.UTF8.GetBytes(strEncrKey.Substring(0, 8));
|
|
DESCryptoServiceProvider descryptoServiceProvider = new DESCryptoServiceProvider();
|
|
byte[] bytes = Encoding.UTF8.GetBytes(strText);
|
|
MemoryStream memoryStream = new MemoryStream();
|
|
CryptoStream cryptoStream = new CryptoStream(memoryStream, descryptoServiceProvider.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
|
|
cryptoStream.Write(bytes, 0, bytes.Length);
|
|
cryptoStream.FlushFinalBlock();
|
|
result = Convert.ToBase64String(memoryStream.ToArray());
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
result = ex.Message;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
#endregion
|
|
}
|
|
}
|
|
|