You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

996 lines
40 KiB
C#

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

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
{
/// <summary>
/// 车报表存盘辅助类
/// </summary>
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; //间隔时间
/// <summary>
/// 构造方法
/// </summary>
/// <param name="_saveDataPerLot">Plc每车存盘数据对象</param>
/// <param name="_lotBarcode">车数据</param>
/// <param name="_shelfBarcode">架子数据</param>
/// <param name="_lotWeight">车称重重数据</param>
/// <param name="_recipeInfo">配方数据</param>
/// <param name="_planInfo">计划数据</param>
/// <param name="_planExecuteData">计划执行数据</param>
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 - 保存当前车主存盘信息
/// <summary>
/// 保存当前车主存盘信息
/// </summary>
/// <param name="dbType">数据类型,网络数据库、本地数据库</param>
/// <param name="dbHelper">数据访问对象</param>
/// <param name="isNet">是否为网络版</param>
/// <returns>保存成功返回true保存失败返回false</returns>
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
/// <summary>
/// 获取备注字段值
/// </summary>
/// <param name="saveDataPerLotHandler"></param>
/// <returns></returns>
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;
}
/// <summary>
/// 获取当前配方中每架子的车数
/// </summary>
/// <returns>返回每架子对应的车数</returns>
private int GetShifNum()
{
return RecipeCache.Instance.RecipeInfo.ShelfLotCount;
}
/// <summary>
/// 更新车报表中的超差标志、设定重量和实际重量
/// </summary>
/// <param name="dbType">数据类型:网络库、本地库</param>
/// <param name="dbHelper">数据访问对象</param>
/// <param name="isNet">是否为网络版</param>
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;
}
}
/// <summary>
/// 获取间隔时间(本次密炼开始时间 - 上一车的结束时间 - 加胶时间)
/// </summary>
/// <returns></returns>
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;
}
}
/// <summary>
/// 获取上一车的密炼结束时间
/// </summary>
/// <returns>返回上一车的密炼结束时间</returns>
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;
}
}
/// <summary>
/// 保存上一车的密炼结束时间
/// </summary>
/// <param name="prevLotEndTime"></param>
private void SetPrevLotEndTime(DateTime prevLotEndTime)
{
FeedingAction action = new FeedingAction();
action.UpdateSysValue("PrevLotEndTime", String.Format("{0:yyyy-MM-dd HH:mm:ss}", prevLotEndTime));
}
#region 更新本地库车报表的上传标志
/// <summary>
/// 更新本地库车报表的上传标志
/// </summary>
/// <param name="localHelper">本地库数据连接对象</param>
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
}
}