锐腾搅拌上料功能
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

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