完善功能

main
liulb@mesnac.com 1 year ago
parent a22fbeabc7
commit ec2e2bbb82

@ -276,7 +276,7 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
{ {
fsql.Transaction(() => fsql.Transaction(() =>
{ {
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows(); var affrows =Convert.ToInt32(fsql.Insert<LR_plan>(lrPlan).ExecuteIdentity());
if (affrows < 1) if (affrows < 1)
{ {
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
@ -307,13 +307,14 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
{ {
fsql.Transaction(() => fsql.Transaction(() =>
{ {
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows(); var affrows = Convert.ToInt32(fsql.Insert<LR_plan>(lrPlan).ExecuteIdentity());
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
//判断是否插入成功 //判断是否插入成功
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
}); });
} }
else else
@ -325,7 +326,10 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出 throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows(); affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows();
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
}); });
} }
} }

@ -9,6 +9,7 @@ using Mesnac.Action.Base;
using Mesnac.Codd.Session; using Mesnac.Codd.Session;
using System.Reflection; using System.Reflection;
using Mesnac.Controls.Base; using Mesnac.Controls.Base;
using System.Timers;
namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
{ {
@ -17,6 +18,11 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
/// </summary> /// </summary>
public class InitFormAction : ChemicalWeighingAction,IAction public class InitFormAction : ChemicalWeighingAction,IAction
{ {
/// <summary>
/// 刷新
/// </summary>
public static event EventHandler OnRefreshPlan;
#region 字段定义 #region 字段定义
public static bool IsFirstRun = true; //是否首次运行 public static bool IsFirstRun = true; //是否首次运行
@ -52,24 +58,12 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
//DbMCControl pptShiftControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Shiftime").FirstOrDefault(); //DbMCControl pptShiftControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "Pmt_Shiftime").FirstOrDefault();
DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "xl_plan").FirstOrDefault(); //获取本机台计划网格控件 DbMCControl clientGridControl = this.GetDbMCControlByKey(Mesnac.Basic.DataSourceFactory.MCDbType.Local, "xl_plan").FirstOrDefault(); //获取本机台计划网格控件
//if (planDateControl == null)
//{
// ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少日期选择控件...");
// return;
//}
//if (pptShiftControl == null)
//{
// ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少班次组合框控件...");
// return;
//}
if (clientGridControl == null) if (clientGridControl == null)
{ {
ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少计划列表网格控件..."); ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少计划列表网格控件...");
return; return;
} }
this._runtime = runtime; this._runtime = runtime;
//this._planDateControl = planDateControl;
//this._pptShiftControl = pptShiftControl;
this._clientGridControl = clientGridControl; this._clientGridControl = clientGridControl;
#endregion #endregion
@ -102,26 +96,6 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
if (dgv != null) if (dgv != null)
{ {
PlanHelper.SetDataGridViewStyle(dgv); //设置网格样式 PlanHelper.SetDataGridViewStyle(dgv); //设置网格样式
//双击时取消选择行(取消高亮显示)
//dgv.CellDoubleClick += delegate(object sender, DataGridViewCellEventArgs e)
//{
// if (dgv.Rows != null && dgv.Rows.Count > 0)
// {
// foreach (DataGridViewRow row in dgv.Rows)
// {
// row.Selected = false;
// }
// }
//};
//dgv.VisibleChanged += delegate(object sender, EventArgs e)
//{
// PlanHelper.SetBackColor(dgv);
//};
////PlanHelper.SetBackColor(dgv);
//ContextMenuStrip cms = new ContextMenuStrip();
//cms.Items.Add("称量明细");
//dgv.ContextMenuStrip = cms;
//cms.Click += Cms_Click;
} }
} }
@ -140,54 +114,24 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
/// </summary> /// </summary>
private void InitData() private void InitData()
{ {
#region 取消事件绑定 System.Timers.Timer timer = new System.Timers.Timer(10000);
timer.Elapsed += new ElapsedEventHandler(StartServer1);
//List<DesignAction> valueChangedList = null; timer.AutoReset = true;
//List<DesignAction> cacheValueChangedList = new List<DesignAction>(); timer.Enabled = true;
//PropertyInfo pi1 = this._planDateControl.BaseControl.GetType().GetProperty("ValueChangedList"); timer.Start();
//if (pi1 != null)
//{
// valueChangedList = pi1.GetValue(this._planDateControl.BaseControl) as List<DesignAction>;
// cacheValueChangedList.AddRange(valueChangedList);
// valueChangedList.Clear();
//}
//List<DesignAction> selectedChanged = null;
//List<DesignAction> cacheSelectedChanged = new List<DesignAction>();
//PropertyInfo pi2 = this._pptShiftControl.BaseControl.GetType().GetProperty("SelectedChanged");
//if (pi2 != null)
//{
// selectedChanged = pi2.GetValue(this._pptShiftControl.BaseControl) as List<DesignAction>;
// cacheSelectedChanged.AddRange(selectedChanged);
// selectedChanged.Clear();
//}
#endregion
}
//DataTable shiftTable = ProductHelper.GetShiftData();
//this._pptShiftControl.BaseControl.BindDataSource = shiftTable;
if (PlanHelper.PlanLog != null) private void StartServer1(object sender, ElapsedEventArgs e)
{
#region 业务实现
if (OnRefreshPlan != null)
{ {
OnRefreshPlan(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty);
//如果记录了上次执行计划的时间和班次,则把日期和班次设置为上次的值
//this._planDateControl.BaseControl.MCValue = PlanHelper.PlanLog.LastDate;
//this._pptShiftControl.BaseControl.MCValue = PlanHelper.PlanLog.LastShiftID;
//this._planDateControl.BaseControl.MCValue = DateTime.Now.Date;
//this._pptShiftControl.BaseControl.MCValue = PlanHelper.PlanLog.LastShiftID;
#region 重新绑定事件
//if (pi1 != null && valueChangedList != null)
//{
// valueChangedList.AddRange(cacheValueChangedList);
//}
//if (pi2 != null && selectedChanged != null)
//{
// selectedChanged.AddRange(cacheSelectedChanged);
//}
#endregion
} }
#endregion
} }
#endregion #endregion

@ -114,11 +114,18 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("未查询到数据", selectedPlanId)); ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("未查询到数据", selectedPlanId));
return; return;
} }
if (isPrenatalTest == 1)
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 1 });//产前检查表标识
}
else
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 0 });
}
//下传计划给PLC //下传计划给PLC
bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList); bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList);
if (IsSucess) if (IsSucess)
{ {
//回写计划任务状态 3:任务执行中 //回写计划任务状态 3:任务执行中
Xl_DowLoadPlan plan = materialList.FirstOrDefault(); Xl_DowLoadPlan plan = materialList.FirstOrDefault();
if (isPrenatalTest == 1) if (isPrenatalTest == 1)
@ -164,7 +171,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
{ {
#region 业务实现 #region 业务实现
DataTable table = PlanHelper.GetPlanData(); DataTable table = PlanHelper.GetPlanData2(isPrenatalTest);
lock (String.Empty) lock (String.Empty)
{ {
//本地计划 //本地计划

@ -2790,6 +2790,29 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
} }
#endregion #endregion
#region 获取本机台全部的计划数据
/// <summary>
/// 获取本机台全部的计划数据
/// </summary>
/// <returns>返回符合条件的计划数据表</returns>
public static DataTable GetPlanData2(int check)
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string strSql = "SELECT Plan_Serial,Recipe_ID,Recipe_Name,Equip_Code,Version,Plan_Id,Plan_Num,Real_Num,Plan_State,Plan_StateText,Start_Date,End_Date,Plan_Date FROM xl_plan where IsPrenatalTest=@IsPrenatalTest ORDER BY Plan_State,left(Plan_Id,8),Plan_Serial";
dbHelper.CommandText = strSql;
dbHelper.ClearParameter();
dbHelper.AddParameter("@IsPrenatalTest", check);
DataTable table = dbHelper.ToDataTable();
return table;
}
#endregion
#region 根据计划号获取当前计划 #region 根据计划号获取当前计划
/// <summary> /// <summary>
/// 根据计划号获取当前计划 /// 根据计划号获取当前计划
@ -3442,8 +3465,52 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
return false; return false;
} }
} }
public static bool UpdateCheckLrPlanCompletedQuantity(Xl_DowLoadPlan dp, int tcheckBatch, int state, DateTime endTime, double totalWeight,int flagNum)
{
try
{
DbHelper dbHelper = Mesnac.Basic.DataSourceFactory.Instance.GetDbHelper(Mesnac.Basic.DataSourceFactory.MCDbType.Local);
if (dbHelper == null)
{
throw new Exception(Mesnac.Basic.LanguageHelper.DataBaseConnectError);
}
dbHelper.ClearParameter();
dbHelper.CommandType = CommandType.Text;
string strSql = "update lr_plan set Real_Num = @Real_Num,Plan_State=@PlanState,Total_Weight=@Total_Weight,End_Date=@End_Date where Plan_Id = @Plan_Id and FlagNum=@FlagNum";
dbHelper.CommandText = strSql;
dbHelper.AddParameter("@Real_Num", tcheckBatch);
dbHelper.AddParameter("@Plan_Id", dp.Plan_Id);
dbHelper.AddParameter("@Total_Weight", totalWeight);
dbHelper.AddParameter("@PlanState", state);
//dbHelper.AddParameter("@Plan_StateText", StateToShow(state));
dbHelper.AddParameter("@FlagNum", flagNum);
dbHelper.AddParameter("@End_Date", endTime.ToString("yyyy-MM-dd HH:mm:ss"));
dbHelper.ExecuteNonQuery();
return true;
}
catch (Exception)
{
return false;
}
}
#endregion #endregion
//public bool UpdateCheckLrPlan(xl_plan plan, LR_plan)
//{
// IFreeSql fsql = FreeHelper.Instance;
// fsql.Transaction(() =>
// {
// var affrows = fsql.Update<xl_plan>(lrWeigh).ExecuteAffrows();
// if (affrows < 1)
// throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
// affrows = fsql.Update<LR_plan>(bin).ExecuteAffrows();
// if (affrows < 1)
// throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出
// });
//}
#endregion #endregion

@ -97,7 +97,9 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
//ChemicalWeighingPlc.PlcPlanHelper.sender = runtime; //ChemicalWeighingPlc.PlcPlanHelper.sender = runtime;
//XlPlcHelper.OnChangePlan -= Process_Event; //XlPlcHelper.OnChangePlan -= Process_Event;
//XlPlcHelper.OnChangePlan += Process_Event; //XlPlcHelper.OnChangePlan += Process_Event;
//定时刷新
InitFormAction.OnRefreshPlan -= Process_Event;
InitFormAction.OnRefreshPlan += Process_Event;
IsFirstRun = false; IsFirstRun = false;
} }

@ -505,6 +505,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report
//判断是否插入成功 //判断是否插入成功
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows(); affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
@ -518,6 +519,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report
//判断是否插入成功 //判断是否插入成功
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
lrWeigh.MainId = affrows;
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows(); affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
@ -531,14 +533,16 @@ namespace Mesnac.Action.ChemicalWeighing.Report
{ {
fsql.Transaction(() => fsql.Transaction(() =>
{ {
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows(); var affrows =Convert.ToInt32(fsql.Insert<LR_plan>(lrPlan).ExecuteIdentity());
//判断是否插入成功 //判断是否插入成功
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出 throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
lrWeigh.MainId = affrows;
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows(); affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Pmt_Bin>(bin).ExecuteAffrows(); affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows(); affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
@ -553,7 +557,8 @@ namespace Mesnac.Action.ChemicalWeighing.Report
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows(); var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Pmt_Bin>(bin).ExecuteAffrows(); bin.Equip_Code = "00";
affrows = fsql.Update<Pmt_Bin>(bin.Bin_Serial).Set(a => a.BinWeight, bin.BinWeight).ExecuteAffrows();
if (affrows < 1) if (affrows < 1)
throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出 throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows(); affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();

@ -337,14 +337,7 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
//BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_RecipeName, new object[] { item.Recipe_Name }); //配方名称 //BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_RecipeName, new object[] { item.Recipe_Name }); //配方名称
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Batch, new object[] { item.Plan_Num });//设定执行数量 BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Batch, new object[] { item.Plan_Num });//设定执行数量
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Plan_Serial, new object[] { item.Plan_Serial }); //计划号 BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Set_Plan_Serial, new object[] { item.Plan_Serial }); //计划号
if (item.IsPrenatalTest == 1)
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 2 });//产前检查表标识
}
else
{
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_plc_Spare7, new object[] { 0 });
}
} }
switch (item.Station) switch (item.Station)
@ -1055,11 +1048,12 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
{ {
if (BasePlcHelper.Instance.plt_Read1Jc.NowValue.ToInt() == 1) if (BasePlcHelper.Instance.plt_Read1Jc.NowValue.ToInt() == 1)
{ {
double tcheckWeight = BasePlcHelper.Instance.plt_TCheck_Weight.NowValue.ToInt();//检量秤重量 double tcheckWeight = BasePlcHelper.Instance.plt_TCheck_Weight.NowValue.ToInt()/100;//检量秤重量
int tcheckBatch = BasePlcHelper.Instance.plt_Batch.NowValue.ToInt();//当前执行的批次 int tcheckBatch = BasePlcHelper.Instance.plt_Batch.NowValue.ToInt();//当前执行的批次
if (tcheckBatch == down.Plan_Num) if (tcheckBatch == down.Plan_Num)
{ {
PlanHelper.UpdateCheckPlanCompletedQuantity(down, tcheckBatch, 8, DateTime.Now, tcheckWeight); PlanHelper.UpdateCheckPlanCompletedQuantity(down, tcheckBatch, 8, DateTime.Now, tcheckWeight);
PlanHelper.UpdateCheckLrPlanCompletedQuantity(down, tcheckBatch, 8, DateTime.Now, tcheckWeight, down.FlagNum);
BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Read1Jc, new object[] { 2 }); BasePlcHelper.Instance.PlcWriteByDataKey(BasePlcHelper.Instance.plt_Read1Jc, new object[] { 2 });
} }
} }
@ -2654,7 +2648,8 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
weigh.Real_Weight = real_Weight; weigh.Real_Weight = real_Weight;
weigh.Real_Error = error; weigh.Real_Error = error;
weigh.MainId = lrPlan.ID; weigh.MainId = lrPlan.ID;
weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
lrPlan.Plan_Id = item.Plan_Id; lrPlan.Plan_Id = item.Plan_Id;
lrPlan.Real_Num = batch; lrPlan.Real_Num = batch;
lrPlan.Total_Weight = totalWeight; lrPlan.Total_Weight = totalWeight;
@ -2703,8 +2698,10 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
weigh.Set_Error = item.Set_Error; weigh.Set_Error = item.Set_Error;
weigh.Real_Weight = real_Weight; weigh.Real_Weight = real_Weight;
weigh.Real_Error = error; weigh.Real_Error = error;
weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var binInfo = BinHelper.GetFristBinInfo(item.Station); var binInfo = BinHelper.GetFristBinInfo(item.Station);
binInfo.Equip_Code = "00";
binInfo.BinWeight = binInfo.BinWeight - real_Weight; binInfo.BinWeight = binInfo.BinWeight - real_Weight;
Hw_BinAlarm alarm = new Hw_BinAlarm(); Hw_BinAlarm alarm = new Hw_BinAlarm();

Loading…
Cancel
Save