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.

159 lines
5.3 KiB
C#

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
{
/// <summary>
/// 修改称量次数
/// </summary>
public class ModifyWeightNum : FeedingAction, IAction
{
//private bool IsHaveXiaoliao()
//{
// List<RecipeData.RecipeWeightInfo> 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<MCRadioButton> lst = base.GetTControls<MCRadioButton>();
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("修改称量次数失败!");
}
}
}
}