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

581 lines
20 KiB

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ICSSoft.Frame.Data.DAL;
using ICSSoft.Frame.Data.Entity;
namespace ICSSoft.Frame.Data.BLL
{
public class ICSCollectBLL
{
public static void Save(string Appconstr, ICSLOTSIMULATION simulation)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//校验传入数据是否符合采集要求
ICSCollectDAL.CheckInfo(db, simulation);
//保存数据
ICSCollectDAL.Save(db, simulation);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static string SaveList(string Appconstr, List<ICSLOTONWIP> onwiplist, List<ICSPO_PoMain> polist, List<ICSWareHouseLotInfoLog> loglist)
{
string errormessage = "";
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
foreach (ICSLOTONWIP info in onwiplist)
{
//校验传入数据是否符合采集要求
string opmessage = ICSCollectDAL.CheckInfoWW(db, info);
//校验工艺路线是否有新增工序且未派工
string routemessage = ICSCollectDAL.CheckRoute(db, info);
if (opmessage == "" && routemessage == "")
{
//保存数据
ICSCollectDAL.Save(db, info);
}
else
{
errormessage += opmessage + routemessage;
}
}
if (errormessage == "")
{
//采购订单已发数量更新
foreach (ICSPO_PoMain info in polist)
{
ICSCollectDAL.UpdatePOInfo(db, info);
}
//日志表条码对应采购订单信息记录
foreach (ICSWareHouseLotInfoLog info in loglist)
{
ICSCollectDAL.AddLogInfo(db, info);
}
}
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
return errormessage;
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static string SaveList(string Appconstr, List<ICSLOTSIMULATION> infolist, List<ICSLOTONWIP> listOnwip, List<ICSPO_PoMain> polist, List<ICSWareHouseLotInfoLog> loglist)
{
string errormessage = "";
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
foreach (ICSLOTONWIP info in listOnwip)
{
//校验传入数据是否符合采集要求
string opmessage = ICSCollectDAL.CheckInfoWW(db, info);
//校验工艺路线是否有新增工序且未派工
string routemessage = ICSCollectDAL.CheckRoute(db, info);
if (opmessage == "" && routemessage == "")
{
//保存数据
ICSCollectDAL.Save(db, info);
}
else
{
errormessage += opmessage + routemessage;
}
}
if (errormessage == "")
{
//采购订单已发数量更新
foreach (ICSPO_PoMain info in polist)
{
ICSCollectDAL.UpdatePOInfo(db, info);
}
//日志表条码对应采购订单信息记录
foreach (ICSWareHouseLotInfoLog info in loglist)
{
ICSCollectDAL.AddLogInfo(db, info);
}
}
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
return errormessage;
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void CheckListEnd(string Appconstr, List<ICSLOTSIMULATION> infolist)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//foreach (ICSLOTSIMULATION info in infolist)
//{
// //校验传入数据是否符合采集要求
// ICSCollectDAL.CheckInfo(db, info);
// //保存数据
// ICSCollectDAL.Save(db, info);
//}
//批量委外自动开工完工
ICSCollectDAL.CheckListEnd(db, infolist);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void SaveListEnd(string Appconstr, List<ICSLOTSIMULATION> infolist)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//foreach (ICSLOTSIMULATION info in infolist)
//{
// //校验传入数据是否符合采集要求
// ICSCollectDAL.CheckInfo(db, info);
// //保存数据
// ICSCollectDAL.Save(db, info);
//}
//批量委外自动开工完工
ICSCollectDAL.CheckAutoOP(db, infolist);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void Transfer(string Appconstr, ICSLOTSIMULATION simulation)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//校验传入数据是否符合采集要求
ICSCollectDAL.CheckTransferInfo(db, simulation);
//保存数据
ICSCollectDAL.Transfer(db, simulation);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void SaveItem(string Appconstr, ICSLOTONWIPITEM simulation)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//校验传入数据是否符合采集要求
ICSCollectDAL.CheckItemInfo(db, simulation);
//保存数据
ICSCollectDAL.SaveItem(db, simulation);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void Pause(string Appconstr, ICSLOTSIMULATION simulation)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//校验传入数据是否符合采集要求
ICSLOTSIMULATION sim = db.ICSLOTSIMULATION.SingleOrDefault(a => a.LOTNO == simulation.LOTNO && a.OPCODE == simulation.OPCODE);
if (sim == null)
{
throw new Exception("该批次工序不是在制品不可暂停!");
}
else if (sim.CollectStatus.Equals("COLLECT_END"))
{
throw new Exception("该工序已经完工,不能暂停!");
}
else if (sim.LOTStatus.Equals("暂停"))
{
throw new Exception("该批次工序已经暂停!");
}
//保存数据
ICSCollectDAL.Pause(db, sim);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
public static void CancelPause(string Appconstr, ICSLOTSIMULATION simulation)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//保存数据
ICSCollectDAL.CancelPause(db, simulation);
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
//结算料费
public static void Calculate(string Appconstr, List<string> list)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
//保存数据
ICSCollectDAL.Calculate(db, list, "不合格");
db.SubmitChanges();
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
//第一次判定
//public static void FirstResult(string Appconstr, List<ICSLOTONWIPCheck> list, List<string> idList)
//{
// FramDataContext db = new FramDataContext(Appconstr);
// db.Connection.Open();
// db.Transaction = db.Connection.BeginTransaction();
// try
// {
// if (string.IsNullOrWhiteSpace(Appconstr))
// throw new Exception("连接字符串不能为空!");
// //保存数据
// ICSCollectDAL.FirstResult(db, list, idList);
// db.SubmitChanges();
// db.Transaction.Commit();
// db.Connection.Close();
// }
// catch (Exception ex)
// {
// db.Transaction.Rollback();
// db.Connection.Close();
// throw ex;
// }
//}
////第二次判定
//public static void SecondResult(string Appconstr, List<ICSLOTONWIPCheck> list, List<string> idList)
//{
// FramDataContext db = new FramDataContext(Appconstr);
// db.Connection.Open();
// db.Transaction = db.Connection.BeginTransaction();
// try
// {
// if (string.IsNullOrWhiteSpace(Appconstr))
// throw new Exception("连接字符串不能为空!");
// //保存数据
// ICSCollectDAL.SecondResult(db, list, idList);
// db.SubmitChanges();
// db.Transaction.Commit();
// db.Connection.Close();
// }
// catch (Exception ex)
// {
// db.Transaction.Rollback();
// db.Connection.Close();
// throw ex;
// }
//}
#region 获取跟踪单当前的采集信息
public static ICSLOTSIMULATION GetSimInfoByLotNo(string LotNo, string dsconn)
{
try
{
return ICSCollectDAL.GetSimInfoByLotNo(LotNo, dsconn);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
#region 检查当前检验的工序是否是委外工(True:委外,Flase:非委外)
public static bool GetLotOPInfoByCode(string LotNo, string OPCode, string dsconn)
{
try
{
return ICSCollectDAL.GetLotOPInfoByCode(LotNo, OPCode, dsconn);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
//public static void TResult(string Appconstr, List<ICSLOTONWIPCheck> list)
//{
// FramDataContext db = new FramDataContext(Appconstr);
// db.Connection.Open();
// db.Transaction = db.Connection.BeginTransaction();
// try
// {
// if (string.IsNullOrWhiteSpace(Appconstr))
// throw new Exception("连接字符串不能为空!");
// //保存数据
// ICSCollectDAL.TResult(db, list);
// db.SubmitChanges();
// db.Transaction.Commit();
// db.Connection.Close();
// }
// catch (Exception ex)
// {
// db.Transaction.Rollback();
// db.Connection.Close();
// throw ex;
// }
//}
#region GetModel
//public static ICSLOTONWIPCheck GetModel(string id, string dsconn)
//{
// try
// {
// return ICSCollectDAL.GetModel(id, dsconn);
// }
// catch (Exception ex)
// {
// throw ex;
// }
//}
#endregion
#region AddPDF
public static void AddPDF(string id, string fname, string dsconn)
{
try
{
ICSCollectDAL.AddPDF(id, fname, dsconn);
}
catch (Exception ex)
{
throw ex;
}
}
#endregion
//public static void RResult(string Appconstr, List<ICSLOTONWIPCheck> list)
//{
// FramDataContext db = new FramDataContext(Appconstr);
// db.Connection.Open();
// db.Transaction = db.Connection.BeginTransaction();
// try
// {
// if (string.IsNullOrWhiteSpace(Appconstr))
// throw new Exception("连接字符串不能为空!");
// //保存数据
// ICSCollectDAL.RResult(db, list);
// db.SubmitChanges();
// db.Transaction.Commit();
// db.Connection.Close();
// }
// catch (Exception ex)
// {
// db.Transaction.Rollback();
// db.Connection.Close();
// throw ex;
// }
//}
//删除开工未完工的记录
public static void DataDelete(string Appconstr, List<FormICSCollectDataDeleteUIModel> infolist, List<FormICSCollectWWDataDeleteUIModel> wwinfolist)
{
FramDataContext db = new FramDataContext(Appconstr);
db.Connection.Open();
db.Transaction = db.Connection.BeginTransaction();
try
{
if (string.IsNullOrWhiteSpace(Appconstr))
throw new Exception("连接字符串不能为空!");
if (infolist.Count != 0)
{
ICSCollectDAL.DataDelete(db, infolist);
}
if (wwinfolist.Count != 0)
{
ICSCollectDAL.DataDeleteForWW(db, wwinfolist);
}
db.Transaction.Commit();
db.Connection.Close();
}
catch (Exception ex)
{
db.Transaction.Rollback();
db.Connection.Close();
throw ex;
}
}
#region 判断第二次检验是否与第一次检验相同(True:相同;False:不同)
//public static string CheckFSDifferent(string Appconstr, List<ICSLOTONWIPCheck> infolist, List<string> LotNO, List<string> OPCode)
//{
// FramDataContext db = new FramDataContext(Appconstr);
// db.Connection.Open();
// db.Transaction = db.Connection.BeginTransaction();
// try
// {
// string Result = ICSCollectDAL.CheckFSDifferent(db, infolist, LotNO, OPCode);
// db.Connection.Close();
// return Result;
// }
// catch (Exception ex)
// {
// db.Connection.Close();
// throw new Exception(ex.Message);
// }
//}
#endregion
/// <summary>
/// 委外发料/收料
/// </summary>
/// <param name="send">是否是发料</param>
/// <param name="ds">ds中的dt为每个跟踪单连续委外工序信息</param>
/// <param name="conn">套接字</param>
public static void OutsourceSubmit(bool send, System.Data.DataSet ds, string conn)
{
ICSCollectDAL.OutsourceSubmit(send, ds, conn);
}
public static void DeleteWW(System.Data.DataSet ds, string conn)
{
ICSCollectDAL.DeleteWW(ds, conn);
}
}
}