|
|
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(); } } } }
|