完善功能

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

@ -276,7 +276,7 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
var affrows =Convert.ToInt32(fsql.Insert<LR_plan>(lrPlan).ExecuteIdentity());
if (affrows < 1)
{
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
@ -307,13 +307,14 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
{
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)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!");//抛出异常,回滚事务,事务退出
});
}
else
@ -325,7 +326,10 @@ namespace Mesnac.Action.ChemicalWeighing.BinManage
if (affrows < 1)
throw new Exception("存盘物料详细数据失败!"); //抛出异常,回滚事务,事务退出
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 System.Reflection;
using Mesnac.Controls.Base;
using System.Timers;
namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
{
@ -17,6 +18,11 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
/// </summary>
public class InitFormAction : ChemicalWeighingAction,IAction
{
/// <summary>
/// 刷新
/// </summary>
public static event EventHandler OnRefreshPlan;
#region 字段定义
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 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)
{
ICSharpCode.Core.LoggingService<InitFormAction>.Error("{当班计划-窗体加载} 缺少计划列表网格控件...");
return;
}
this._runtime = runtime;
//this._planDateControl = planDateControl;
//this._pptShiftControl = pptShiftControl;
this._clientGridControl = clientGridControl;
#endregion
@ -102,26 +96,6 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
if (dgv != null)
{
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>
private void InitData()
{
#region 取消事件绑定
//List<DesignAction> valueChangedList = null;
//List<DesignAction> cacheValueChangedList = new List<DesignAction>();
//PropertyInfo pi1 = this._planDateControl.BaseControl.GetType().GetProperty("ValueChangedList");
//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();
//}
System.Timers.Timer timer = new System.Timers.Timer(10000);
timer.Elapsed += new ElapsedEventHandler(StartServer1);
timer.AutoReset = true;
timer.Enabled = true;
timer.Start();
#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)
{
//如果记录了上次执行计划的时间和班次,则把日期和班次设置为上次的值
//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
OnRefreshPlan(this._runtime.BaseControl.MCRoot, System.EventArgs.Empty);
}
#endregion
}
#endregion

@ -114,11 +114,18 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
ICSharpCode.Core.LoggingService<PlcPlanHelper>.Debug(String.Format("未查询到数据", selectedPlanId));
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
bool IsSucess = PlcPlanHelper.ManualXlPlanToPlc(materialList);
if (IsSucess)
{
//回写计划任务状态 3:任务执行中
Xl_DowLoadPlan plan = materialList.FirstOrDefault();
if (isPrenatalTest == 1)
@ -164,7 +171,7 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
{
#region 业务实现
DataTable table = PlanHelper.GetPlanData();
DataTable table = PlanHelper.GetPlanData2(isPrenatalTest);
lock (String.Empty)
{
//本地计划

@ -2790,6 +2790,29 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
}
#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 根据计划号获取当前计划
/// <summary>
/// 根据计划号获取当前计划
@ -3442,8 +3465,52 @@ namespace Mesnac.Action.ChemicalWeighing.Product.XlPlan
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
//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

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

@ -505,6 +505,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
@ -518,6 +519,7 @@ namespace Mesnac.Action.ChemicalWeighing.Report
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
lrWeigh.MainId = affrows;
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
throw new Exception("存盘详细数据失败!");//抛出异常,回滚事务,事务退出
@ -531,14 +533,16 @@ namespace Mesnac.Action.ChemicalWeighing.Report
{
fsql.Transaction(() =>
{
var affrows = fsql.Insert<LR_plan>(lrPlan).ExecuteAffrows();
var affrows =Convert.ToInt32(fsql.Insert<LR_plan>(lrPlan).ExecuteIdentity());
//判断是否插入成功
if (affrows < 1)
throw new Exception("存盘计划详细数据失败!"); //抛出异常,回滚事务,事务退出
lrWeigh.MainId = affrows;
affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
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)
throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出
affrows = fsql.Insert<Hw_BinAlarm>(alarm).ExecuteAffrows();
@ -553,7 +557,8 @@ namespace Mesnac.Action.ChemicalWeighing.Report
var affrows = fsql.Insert<LR_weigh>(lrWeigh).ExecuteAffrows();
if (affrows < 1)
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)
throw new Exception("保存库存实时数据失败!");//抛出异常,回滚事务,事务退出
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_Batch, new object[] { item.Plan_Num });//设定执行数量
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)
@ -1055,11 +1048,12 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
{
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();//当前执行的批次
if (tcheckBatch == down.Plan_Num)
{
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 });
}
}
@ -2654,7 +2648,8 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
weigh.Real_Weight = real_Weight;
weigh.Real_Error = error;
weigh.MainId = lrPlan.ID;
weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
lrPlan.Plan_Id = item.Plan_Id;
lrPlan.Real_Num = batch;
lrPlan.Total_Weight = totalWeight;
@ -2703,8 +2698,10 @@ namespace Mesnac.Action.ChemicalWeighing.XlPlcHelper
weigh.Set_Error = item.Set_Error;
weigh.Real_Weight = real_Weight;
weigh.Real_Error = error;
weigh.EndTime = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
var binInfo = BinHelper.GetFristBinInfo(item.Station);
binInfo.Equip_Code = "00";
binInfo.BinWeight = binInfo.BinWeight - real_Weight;
Hw_BinAlarm alarm = new Hw_BinAlarm();

Loading…
Cancel
Save