using System; using System.Collections.Generic; using System.Net.NetworkInformation; using System.Text; using System.Linq; using System.Data; using System.Threading; using Mesnac.Action.Base; using Mesnac.Controls.Base; using System.Windows.Forms; using Mesnac.Codd.Session; using System.IO; using Mesnac.Controls.Default; using Mesnac.Action.Feeding.Qingquan.BasicInfo; using Mesnac.Action.Feeding.Qingquan.ProducingPlan; namespace Mesnac.Action.Feeding.Qingquan.FeedingPlc { /// /// 修改称量次数 /// public class ModifyWeightNum : FeedingAction, IAction { //private bool IsHaveXiaoliao() //{ // List lst = new RecipeData().GetCurrentRecipeWeightInfo(); // foreach (RecipeData.RecipeWeightInfo item in lst) // { // if (item.WeightType == (int)RecipeData.WeightType.小料) // { // return true; // } // } // return false; //} private int ModifyAddress(string key) { //密炼1 if (key == PlcData.Instance.ModifyMixDoneNum.FieldKey) { return 1; } //胶料 if (key == PlcData.Instance.ModifyPloyDoneNum.FieldKey) { return 2; } if (key == PlcData.Instance.ModifyCBDoneNum.FieldKey) { return 4; } if (key == PlcData.Instance.ModifyOil1DoneNum.FieldKey) { return 8; } if (key == PlcData.Instance.ModifyOil2DoneNum.FieldKey) { return 16; } if (key == PlcData.Instance.ModifyPowderDoneNum.FieldKey) { return 32; } if (key == PlcData.Instance.ModifyDrugDoneNum.FieldKey) { return 64; } return 0; } public void Run(RuntimeParameter runtime) { base.RunIni(runtime); string msg = String.Empty; #region 判断当班计划界面是否打开 //if (PlanCommon.IsInit == false) //{ // msg = "当班计划还为初始化,请先打开当班计划,再进行此操作!"; // ShowMsg(msg, Language(1), MessageBoxButtons.OK, MessageBoxIcon.Information); // return; //} #endregion if (MessageBox.Show("确认修改称量次数吗?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) != DialogResult.Yes) { return; } IBaseControl c = base.GetMCControlByKey("MCTextBox1").FirstOrDefault(); int Num = 0; if (!int.TryParse(c.MCValue.ToString(), out Num)) { MessageBox.Show("请填写正确的次数!"); return; } base.LogDebug("修改称量次数为" + Num); bool isSuccess = false; int DoneNumFlag = 0; List lst = base.GetTControls(); string key = string.Empty; foreach (MCRadioButton rb in lst) { if (rb.Checked) { key = rb.MCKey; if (key == "ModifyDrugDoneNum") //如果是小料 { if (PlanCommon.IsHaveXiaoliao()) //如果配方中有小料 { PlcData.DataKeyValue data = PlcData.Instance.GetDataKeyValue(key); if (data != null && PlcData.Instance.PlcWriteByDataKey(data, new object[] { Num })) { DoneNumFlag = ModifyAddress(key); isSuccess = true; } } else { MessageBox.Show("此配方中没有小料!"); return; } } else { PlcData.DataKeyValue data = PlcData.Instance.GetDataKeyValue(key); if (data != null && PlcData.Instance.PlcWriteByDataKey(data, new object[] { Num })) { DoneNumFlag = ModifyAddress(key); isSuccess = true; } } break; } } if (isSuccess) { //if (IsHaveXiaoliao()) //{ // Num = ModifyAddress(key); // if (Num > 0) // { // PlcData.Instance.PlcWriteByDataKey(PlcData.Instance.XiaoLiaoCountChange, new object[] { Num }); // } //} //下传修改密炼完成次数标志 new SplitPlanAction().DownloadMixDoneNumFlag(DoneNumFlag); MessageBox.Show("修改称量次数成功!"); } else { MessageBox.Show("修改称量次数失败!"); } } } }