using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Mesnac.Codd.Session;
using System.Data;
using Mesnac.Action.Feeding.BasicInfo;
namespace Mesnac.Action.Feeding.FinishBatch
{
///
/// 车报表存盘辅助类
///
public class PptLotSaveHelper
{
private SaveDataPerLotHandler saveDataPerLot = null;
private LotBarcode lotBarcode = null;
private ShelfBarcode shelfBarcode = null;
private LotWeight lotWeight = null;
private RecipeData.RecipeInfo recipeInfo = null;
private RecipeData.PptPlanInfo planInfo = null;
private PlanExecuteData planExecuteData = null;
private bool isGetBWB = false; //是否获取了间隔时间
private int bwb = 0; //间隔时间
///
/// 构造方法
///
/// Plc每车存盘数据对象
/// 车数据
/// 架子数据
/// 车称重重数据
/// 配方数据
/// 计划数据
/// 计划执行数据
public PptLotSaveHelper(SaveDataPerLotHandler _saveDataPerLot, LotBarcode _lotBarcode, ShelfBarcode _shelfBarcode, LotWeight _lotWeight, RecipeData.RecipeInfo _recipeInfo, RecipeData.PptPlanInfo _planInfo, PlanExecuteData _planExecuteData)
{
this.saveDataPerLot = _saveDataPerLot;
this.lotBarcode = _lotBarcode;
this.shelfBarcode = _shelfBarcode;
this.lotWeight = _lotWeight;
this.recipeInfo = _recipeInfo;
this.planInfo = _planInfo;
this.planExecuteData = _planExecuteData;
}
#region SavePptLotData - 保存当前车主存盘信息
///
/// 保存当前车主存盘信息
///
/// 数据类型,网络数据库、本地数据库
/// 数据访问对象
/// 是否为网络版
/// 保存成功返回true,保存失败返回false
public bool SavePptLotData(Mesnac.Basic.DataSourceFactory.MCDbType dbType, DbHelper dbHelper, bool isNet)
{
try
{
FeedingAction action = new FeedingAction();
string G_UserID = action.GetConfigValue("LastUserID", String.Empty); //获取工号
string ZJSID = String.Empty;
if (isNet && dbType == Basic.DataSourceFactory.MCDbType.Server)
{
ZJSID = "0";// action.GetMainHanderCodeByUserCode(G_UserID); //获取主机手ID
}
string MemNote = this.GetMemNote(this.saveDataPerLot); //获取车次备注
#region 基本信息
dbHelper.CommandType = CommandType.Text;
StringBuilder sqlstr_field = new StringBuilder();
StringBuilder sqlstr_value = new StringBuilder();
string fieldName = string.Empty;
string valueName = string.Empty;
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
sqlstr_field.Append("INSERT INTO Ppt_Lot(");
}
else
{
sqlstr_field.Append("INSERT INTO PptLotData(");
}
sqlstr_value.Append(" ) VALUES (");
#region 数据整理
#region Barcode
fieldName = "Barcode";
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, lotBarcode.Barcode);
#endregion
#region PlanDate
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Plan_Date";
}
else
{
fieldName = "PlanDate";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(planInfo.PlanDate)));
#endregion
#region MaterCode
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Mater_Code";
}
else
{
fieldName = "MaterCode";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, this.recipeInfo.RecipeMaterialCode.Trim());
#endregion
#region MaterName
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Mater_Name";
}
else
{
fieldName = "MaterName";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, this.recipeInfo.RecipeMaterialName.Trim());
#endregion
#region EquipCode
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Equip_Code";
}
else
{
fieldName = "EquipCode";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, planInfo.RecipeEquipCode.Trim());
#endregion
#region SerialID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Serial_Id";
}
else
{
fieldName = "SerialID";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, planExecuteData.MixingFinishedCount);
#endregion
#region SerialBatchID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Serial_BatchID";
}
else
{
fieldName = "SerialBatchID";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, lotBarcode.SerialBatchId);
#endregion
#region ShiftID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Shift_Id";
}
else
{
fieldName = "ShiftID";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, planInfo.ShiftID);
#endregion
#region ClassID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Shift_Class";
}
else
{
fieldName = "ClassID";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, planInfo.ClassID);
#endregion
#region EdtCode
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Edt_Code";
}
else
{
fieldName = "EdtCode";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, this.recipeInfo.RecipeVersionID);
#endregion
#region PlanID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "plan_id";
}
else
{
fieldName = "PlanID";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, planInfo.PlanID.Trim());
#endregion
#region StartDatetime
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Start_Datetime";
}
else
{
fieldName = "StartDatetime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:yyyy-MM-dd HH:mm:ss}", saveDataPerLot.StrTime));
#endregion
#region SetWeight
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Set_Weight";
}
else
{
fieldName = "SetWeight";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, lotWeight.SetWeight);
#endregion
#region RealWeight
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Real_Weight";
}
else
{
fieldName = "RealWeight";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, lotWeight.RealWeight);
#endregion
#region ShelfBarcode
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Shelf_Barcode";
}
else
{
fieldName = "ShelfBarcode";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, shelfBarcode.Barcode.Trim());
#endregion
#region done_rtime 排胶时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "done_rtime";
}
else
{
fieldName = "DoneRtime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.TimeOpenDoor);
#endregion
#region Done_Allrtime 炼胶总时间(卸料门关到位时刻)
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Done_Allrtime";
}
else
{
fieldName = "DoneAllRtime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
if (saveDataPerLot.Done_allrtime > 0)
{
dbHelper.AddParameter(valueName, saveDataPerLot.Done_allrtime);
}
else
{
dbHelper.AddParameter(valueName, SaveDataPerLotHandler.RecipeTime);
}
#endregion
#region Bwb_Time 间隔时间 本车密炼开始时间-上车的密炼结束时间(暂时按0处理)
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Bwb_Time";
}
else
{
fieldName = "BwbTime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
if (!this.isGetBWB)
{
this.bwb = this.GetBwb();
this.isGetBWB = true;
}
dbHelper.AddParameter(valueName, this.bwb);
#endregion
#region Error_Sgn 超差报警
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Error_Sgn";
}
else
{
fieldName = "ErrorSgn";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, PptWeighDataHelper.LotErrorSgn);
#endregion
#region Test_Result 检验标志,默认0
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Test_Result";
}
else
{
fieldName = "TestResult";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, "0");
#endregion
#region Pj_Temp 排胶温度
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Pj_Temp";
}
else
{
fieldName = "PjTemp";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:F2}", saveDataPerLot.TempOpenDoor));
#endregion
#region Pj_Power 排胶功率
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Pj_Power";
}
else
{
fieldName = "PjPower";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:F2}", saveDataPerLot.PowerOpenDoor));
#endregion
#region Pj_Ener 排胶能量
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Pj_Ener";
}
else
{
fieldName = "PjEner";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:F2}", saveDataPerLot.EnergyOpenDoor));
#endregion
#region Rub_Status 胶料称称量状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "RubStatus";
}
else
{
fieldName = "RubStatus";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.RubStatus >= 1 ? "1" : "0");
#endregion
#region CB_Status 炭黑秤称量状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "CBStatus";
}
else
{
fieldName = "CBStatus";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.CBStatus >= 1 ? "1" : "0");
#endregion
#region Powder_Status 粉料秤称量状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "PowderStatus";
}
else
{
fieldName = "PowderStatus";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.FLStatus >= 1 ? "1" : "0");
#endregion
#region Oil_Status 油秤1称量状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "OilStatus";
}
else
{
fieldName = "OilStatus";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.OilStatus >= 1 ? "1" : "0");
#endregion
#region Oil2_Status 油秤2称量状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Oil2Status";
}
else
{
fieldName = "Oil2Status";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.Oil2Status >= 1 ? "1" : "0");
#endregion
#region Mix_Status 密炼机状态
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Mix_Status";
}
else
{
fieldName = "MixStatus";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.MixStatus >= 1 ? "1" : "0");
#endregion
#region Poly_DisTime 加胶时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Poly_DisTime";
}
else
{
fieldName = "PolyDisTime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.RubTime);
#endregion
#region CB_DisTime 加炭黑时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "CB_DisTime";
}
else
{
fieldName = "CBDisTime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.CBTime);
#endregion
#region Oil_DisTime 加油时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Oil_DisTime";
}
else
{
fieldName = "OilDisTime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.OilTime);
#endregion
#region Oil2_DisTime 加油2时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Oil2_DisTime";
}
else
{
fieldName = "Oil2DisTime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.Oil2Time);
#endregion
#region Powder_Distime 加粉料时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Powder_Distime";
}
else
{
fieldName = "PowderDistime";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.FlTime);
#endregion
#region CB_Batch 炭黑车次
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "CB_Batch";
}
else
{
fieldName = "CBBatch";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.CBFinshNum);
#endregion
#region Oil_Batch 油1车次
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Oil_Batch";
}
else
{
fieldName = "OilBatch";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.OilFinshNum);
#endregion
#region Oil2_Batch 油2车次
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Oil2_Batch";
}
else
{
fieldName = "Oil2Batch";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.Oil2FinshNum);
#endregion
#region Poly_Batch 胶料车次
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Poly_Batch";
}
else
{
fieldName = "PolyBatch";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.RubFinshNum);
#endregion
#region Powder_Batch 粉料车次
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Powder_Batch";
}
else
{
fieldName = "PowderBatch";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, saveDataPerLot.FLFinshNum);
#endregion
#region Used_Flag 使用标志:0不可用1可用2已用,默认为1
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Used_Flag";
}
else
{
fieldName = "UsedFlag";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, "1");
#endregion
#region Worker_barcode 工号、主机手ID
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "worker_barcode";
}
else
{
fieldName = "WorkerBarcode";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, G_UserID);
#endregion
#region Mem_note
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Mem_note";
}
else
{
fieldName = "MemNote";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, MemNote);
#endregion
#region Warning_sgn 超时报警 暂时用0
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Warning_sgn";
}
else
{
fieldName = "WarningSgn";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, 0);
#endregion
#region Shelf_num 每架子的车数
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Shelf_num";
}
else
{
fieldName = "Shelfnum";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, this.GetShifNum());
#endregion
#region Limit_Time 暂时默认null
//if (dbType == Basic.DataSourceFactory.MCDbType.Server)
//{
// fieldName = "Limit_Time";
//}
//else
//{
// fieldName = "LimitTime";
//}
//valueName = "@" + fieldName;
//sqlstr_field.Append(fieldName).Append(",");
//sqlstr_value.Append(valueName).Append(",");
//dbHelper.AddParameter(valueName, "0");
#endregion
#region Max_time 暂时默认null
//if (dbType == Basic.DataSourceFactory.MCDbType.Server)
//{
// fieldName = "Max_time";
//}
//else
//{
// fieldName = "Maxtime";
//}
//valueName = "@" + fieldName;
//sqlstr_field.Append(fieldName).Append(",");
//sqlstr_value.Append(valueName).Append(",");
//dbHelper.AddParameter(valueName, "0");
#endregion
#region Lot_Energy 排胶能量
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "Lot_Energy";
}
else
{
fieldName = "LotEnergy";
}
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName).Append(",");
sqlstr_value.Append(valueName).Append(",");
dbHelper.AddParameter(valueName, String.Format("{0:F2}", saveDataPerLot.EnergyOpenDoor));
#endregion
#region SDSTime 上顶栓时间
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
fieldName = "SDS_Time";
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName);
sqlstr_value.Append(valueName);
dbHelper.AddParameter(valueName, "0");
}
else
{
fieldName = "SDSTime";
valueName = "@" + fieldName;
sqlstr_field.Append(fieldName);
sqlstr_value.Append(valueName);
dbHelper.AddParameter(valueName, "0");
}
#endregion
#endregion
#endregion
#region 配置信息
//PlcRecipeReader reader = PlcSchemaHandler.Instance.GetPlcRecipeReader("PptLot").FirstOrDefault();
//if (reader == null)
//{
// ICSharpCode.Core.LoggingService.Info("在PlcSchema.xml文件中缺少对PptLot的存盘配置...");
//}
//else
//{
// foreach (PlcRecipeReaderItem item in reader.ItemList)
// {
// fieldName = item.DataFieldName;
// valueName = "@" + fieldName;
// sqlstr_field.Append(fieldName).AppendLine(",");
// sqlstr_value.Append(valueName).AppendLine(",");
// dbHelper.AddParameter(valueName, PlcData.Instance.PlcLastValueRead(item.PlcFiledName));
// }
//}
#endregion
#region 执行存储
sqlstr_value.Append(")"); //结束SQL语句
dbHelper.CommandText = sqlstr_field.ToString() + sqlstr_value.ToString();
dbHelper.ExecuteNonQuery();
#endregion
#region 重置报警信号
PptWeighDataHelper.LotErrorSgn = 0;
#endregion
return true;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("存盘业务-保存车报表失败:" + ex.Message);
return false;
}
}
#endregion
///
/// 获取备注字段值
///
///
///
private string GetMemNote(SaveDataPerLotHandler saveDataPerLotHandler)
{
string memStr = String.Empty;
if (saveDataPerLot.RubFinshNum > 0)
{
memStr += "胶料车次:" + saveDataPerLot.RubFinshNum + " ";
}
if (saveDataPerLot.CBFinshNum > 0)
{
memStr += "炭黑车次:" + saveDataPerLot.CBFinshNum + " ";
}
if (saveDataPerLot.FLFinshNum > 0)
{
memStr += "粉料车次:" + saveDataPerLot.FLFinshNum + " ";
}
if (saveDataPerLot.OilFinshNum > 0)
{
memStr += "油1车次:" + saveDataPerLot.OilFinshNum + " ";
}
if (saveDataPerLot.Oil2FinshNum > 0)
{
memStr += "油2车次:" + saveDataPerLot.Oil2FinshNum + " ";
}
return memStr;
}
///
/// 获取当前配方中每架子的车数
///
/// 返回每架子对应的车数
private int GetShifNum()
{
return RecipeCache.Instance.RecipeInfo.ShelfLotCount;
}
///
/// 更新车报表中的超差标志、设定重量和实际重量
///
/// 数据类型:网络库、本地库
/// 数据访问对象
/// 是否为网络版
public bool UpdateErrorSgnAndWeight(Mesnac.Basic.DataSourceFactory.MCDbType dbType, DbHelper dbHelper)
{
try
{
string strSql = String.Empty;
if (dbType == Basic.DataSourceFactory.MCDbType.Server)
{
strSql = "update Ppt_Lot set Set_Weight=@SetWeight,Real_Weight=@RealWeight,Error_Sgn = @ErrorSgn where Barcode = @Barcode";
}
else
{
strSql = "update PptLotData set SetWeight=@SetWeight,RealWeight=@RealWeight,ErrorSgn = @ErrorSgn where Barcode = @Barcode";
}
dbHelper.ClearParameter();
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@SetWeight", this.lotWeight.SetWeight);
dbHelper.AddParameter("@RealWeight", this.lotWeight.RealWeight);
dbHelper.AddParameter("@ErrorSgn", PptWeighDataHelper.LotErrorSgn);
dbHelper.AddParameter("@Barcode", lotBarcode.Barcode);
dbHelper.ExecuteNonQuery();
return true;
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error("更新车报表中的超差标志、设定重量和实际重量失败:" + ex.Message, ex);
return false;
}
}
///
/// 获取间隔时间(本次密炼开始时间 - 上一车的结束时间 - 加胶时间)
///
///
public int GetBwb()
{
DateTime prevLotEndTime = DateTime.Now;
DateTime currBeginTime = DateTime.Parse(this.saveDataPerLot.StrTime);
if (this.GetPrevLotEndTime(out prevLotEndTime))
{
if (this.saveDataPerLot.Done_allrtime > this.saveDataPerLot.TimeOpenDoor)
{
this.SetPrevLotEndTime(currBeginTime.AddSeconds(this.saveDataPerLot.Done_allrtime)); //保存当前车的密炼结束时间
}
else
{
this.SetPrevLotEndTime(currBeginTime.AddSeconds(SaveDataPerLotHandler.RecipeTime)); //保存当前车的密炼结束时间
}
TimeSpan ts = currBeginTime - prevLotEndTime; //本次密炼开始时间 - 上一车的结束时间
int totalSeconds = Convert.ToInt32(ts.TotalSeconds) -this.saveDataPerLot.RubTime; //再减加胶时间
if (totalSeconds > 100000)
{
return 400;
}
else if (totalSeconds < 0)
{
return 0;
}
else
{
return totalSeconds;
}
}
else
{
if (this.saveDataPerLot.Done_allrtime > this.saveDataPerLot.TimeOpenDoor)
{
this.SetPrevLotEndTime(currBeginTime.AddSeconds(this.saveDataPerLot.Done_allrtime)); //保存当前车的密炼结束时间
}
else
{
this.SetPrevLotEndTime(currBeginTime.AddSeconds(SaveDataPerLotHandler.RecipeTime)); //保存当前车的密炼结束时间
}
return 0;
}
}
///
/// 获取上一车的密炼结束时间
///
/// 返回上一车的密炼结束时间
private bool GetPrevLotEndTime(out DateTime prevLotEndTime)
{
prevLotEndTime = DateTime.Now;
DateTime dt2 = DateTime.Now;
FeedingAction action = new FeedingAction();
string strPrevLotEndTime = action.GetSysValue("PrevLotEndTime");
if (String.IsNullOrEmpty(strPrevLotEndTime))
{
prevLotEndTime.AddSeconds(-400);
return false;
}
else if (DateTime.TryParse(strPrevLotEndTime, out dt2))
{
prevLotEndTime = dt2;
return true;
}
else
{
prevLotEndTime.AddSeconds(-400);
return false;
}
}
///
/// 保存上一车的密炼结束时间
///
///
private void SetPrevLotEndTime(DateTime prevLotEndTime)
{
FeedingAction action = new FeedingAction();
action.UpdateSysValue("PrevLotEndTime", String.Format("{0:yyyy-MM-dd HH:mm:ss}", prevLotEndTime));
}
#region 更新本地库车报表的上传标志
///
/// 更新本地库车报表的上传标志
///
/// 本地库数据连接对象
public void UpdateIsUpFlag(DbHelper localHelper)
{
try
{
string strSql = "update PptLotData set IsUpFlag=1 where Barcode = @Barcode";
localHelper.ClearParameter();
localHelper.CommandText = strSql;
localHelper.AddParameter("@Barcode", this.lotBarcode.Barcode.Trim());
localHelper.ExecuteNonQuery();
}
catch (Exception ex)
{
ICSharpCode.Core.LoggingService.Error(String.Format("更新本地库车报表[{0}]上传标志失败:{1}", this.lotBarcode.Barcode, ex.Message));
}
}
#endregion
}
}