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 } }