using System;
using System.Collections;
using System.Data;
using System.Windows.Forms;
using Core.Mes.Client.Comm.Server;
using Core.StlMes.Client.LgClassModel;
using CoreFS.CA06;
namespace Core.StlMes.Client.LgCommon
{
public partial class ucResAdditive : UserControl
{
private OpeBase _ob;
private LG_PROCESS _process;
private string _stove;
private string _station;
private string _disposalTime;
private string _userName;
private string _shifCode;
public ucResAdditive()
{
InitializeComponent();
}
#region 属性
///
/// 有值发生变化
///
public bool HasChanged
{
get { return toltalAdditiveChange || ucResAdditiveProcess1.Changed; }
}
public bool toltalAdditiveChange
{
get { return ucFL.HasChanged || ucHJ.HasChanged || ucWS.HasChanged || ucSTL.HasChanged; }
}
public bool CanSave
{
get { return ucResAdditiveProcess1.CanSave; }
}
///
/// 辅料TAB页可见
///
public bool FL_VISIBLE
{
get { return ultraTabControl1.Tabs["FL"].Visible; }
set
{
if (value != ultraTabControl1.Tabs["FL"].Visible)
ultraTabControl1.Tabs["FL"].Visible = value;
}
}
///
/// 合金TAB页可见
///
public bool HJ_VISIBLE
{
get { return ultraTabControl1.Tabs["HJ"].Visible; }
set
{
if (value != ultraTabControl1.Tabs["HJ"].Visible)
ultraTabControl1.Tabs["HJ"].Visible = value;
}
}
///
/// 喂丝TAB页可见
///
public bool WS_VISIBLE
{
get { return ultraTabControl1.Tabs["WS"].Visible; }
set
{
if (value != ultraTabControl1.Tabs["WS"].Visible)
ultraTabControl1.Tabs["WS"].Visible = value;
}
}
///
/// 手投料TAB页可见
///
public bool STL_VISIBLE
{
get { return ultraTabControl1.Tabs["STL"].Visible; }
set
{
if (value != ultraTabControl1.Tabs["STL"].Visible)
ultraTabControl1.Tabs["STL"].Visible = value;
}
}
#endregion
#region 调用
public void SetBase(OpeBase ob, string station,string UserName,string ShifCode, Action ac)
{
_ob = ob;
ucFL.SetOpeBase(ob);
ucHJ.SetOpeBase(ob);
ucWS.SetOpeBase(ob);
ucSTL.SetOpeBase(ob);
ucResAdditiveProcess1.SetOb(ob);
ucFL.SetHopper += () => ac();
ucHJ.SetHopper += () => ac();
ucWS.SetHopper += () => ac();
ucSTL.SetHopper += () => ac();
_userName = UserName;
_shifCode = ShifCode;
SetDevice_Position(station);
}
///
/// 设置工序
///
///
private void SetDevice_Position(string DEVICE_POSITION)
{
try
{
ucFL.DEVICE_POSITION = DEVICE_POSITION;
ucHJ.DEVICE_POSITION = DEVICE_POSITION;
ucWS.DEVICE_POSITION = DEVICE_POSITION;
ucSTL.DEVICE_POSITION = DEVICE_POSITION;
}
catch
{
}
}
// 设计物料名显示
///
/// 设计物料名显示
///
///
///
///
///
public void SetHopperInfo(string StationCode, DataTable dtMaterial, OpeBase ob)
{
try
{
var strMsg = "";
var bSuccess = false;
try
{
SetDevice_Position(StationCode);
var ds = ClsBusinessPack.GetHopperConfig(StationCode, out bSuccess, out strMsg, ob);
if ((ds != null) && (ds.Tables.Count > 0))
{
ucFL.SetHopperInfo(ds.Tables[0], dtMaterial);
ucHJ.SetHopperInfo(ds.Tables[0], dtMaterial);
ucWS.SetHopperInfo(ds.Tables[0], dtMaterial);
}
}
catch
{
}
try
{
var ds = ClsBusinessPack.GetManualAdditiveConfig(StationCode, out bSuccess, out strMsg, ob);
if ((ds != null) && (ds.Tables.Count > 0))
ucSTL.SetHopperInfo(ds.Tables[0], dtMaterial);
}
catch
{
}
ucResAdditiveProcess1.SetAdditiveProcess(StationCode, "01");
}
catch
{
}
}
public bool SaveAdditives()
{
if (toltalAdditiveChange)
{
var alMaterialCode = new ArrayList();
var alMaterialName = new ArrayList();
var alMaterialType = new ArrayList();
var alAddtType = new ArrayList();
var alAddtAmount = new ArrayList();
var alAddtOrigin = new ArrayList();
GetDataChanged(ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType,
ref alAddtAmount, ref alAddtOrigin);
var Args = new object[]
{
_stove, _station, "01", alMaterialCode, alMaterialName, alMaterialType, alAddtType,
alAddtAmount,
alAddtOrigin, _userName
};
var iRet = 0;
var strMsg = "";
try
{
ServerHelper.SetData("Core.LgMes.Server.LgDeviceManager.StlAdditive.SaveAdditives", Args, _ob);
SetResAdditiveData();
return true;
}
catch (Exception ex)
{
return false;
}
}
if (ucResAdditiveProcess1.Changed)
{
var result = ucResAdditiveProcess1.SaveDate();
if (result) SetResAdditiveData();
return result;
}
return true;
}
public void SetResAdditiveData()
{
SetResAdditiveData(_process, _stove, _station, _disposalTime);
}
///
/// 获取并设置岗位加料汇总数据
///
///
///
/// 岗位编号
/// 处理次数
///
public void SetResAdditiveData(LG_PROCESS PROCESS, string strHeatNo, string strStationCode,
string strDisposalTime)
{
_process = PROCESS;
_stove = strHeatNo;
_station = strStationCode;
_disposalTime = strDisposalTime;
try
{
var ds = ClsResAdditiveBLL.GetResAdditiveData(PROCESS, strHeatNo, strStationCode, strDisposalTime, _ob);
var additiveBuffer = new CommonAdditive();
ClsResAdditiveBLL.DataSetToAdditive(ref ds, ref additiveBuffer);
ucFL.SetAdditiveData(additiveBuffer);
ucHJ.SetAdditiveData(additiveBuffer);
ucWS.SetAdditiveData(additiveBuffer);
ucSTL.SetAdditiveData(additiveBuffer);
ucResAdditiveProcess1.SetData(PROCESS, strHeatNo, strStationCode, strDisposalTime);
}
catch
{
}
}
///
/// 获取加料数据修改信息
///
/// 加料物料编码
/// 加料物料名
/// 加料物料类型(FL\HJ\WS)
/// 加料类型(1:自动加料2:手投料)
/// 加料量
/// 原始量
public void GetDataChanged(ref ArrayList alMaterialCode, ref ArrayList alMaterialName,
ref ArrayList alMaterialType, ref ArrayList alAddtType, ref ArrayList alAddtAmount,
ref ArrayList alAddtOrigin)
{
alMaterialCode = new ArrayList();
alMaterialName = new ArrayList();
alMaterialType = new ArrayList();
alAddtType = new ArrayList();
alAddtAmount = new ArrayList();
alAddtOrigin = new ArrayList();
try
{
if (!toltalAdditiveChange) return;
GetDataChangedDetail(ucFL, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType,
ref alAddtAmount, ref alAddtOrigin);
GetDataChangedDetail(ucHJ, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType,
ref alAddtAmount, ref alAddtOrigin);
GetDataChangedDetail(ucWS, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType,
ref alAddtAmount, ref alAddtOrigin);
GetDataChangedDetail(ucSTL, ref alMaterialCode, ref alMaterialName, ref alMaterialType, ref alAddtType,
ref alAddtAmount, ref alAddtOrigin);
}
catch
{
}
}
///
/// 获取各选项卡加料数据修改信息
///
///
///
///
///
///
///
///
private void GetDataChangedDetail(ucResAdditiveBase ucHopper, ref ArrayList alMaterialCode,
ref ArrayList alMaterialName, ref ArrayList alMaterialType, ref ArrayList alAddtType,
ref ArrayList alAddtAmount, ref ArrayList alAddtOrigin)
{
try
{
if (ucHopper == null) return;
if ((alMaterialCode == null) || (alMaterialName == null) || (alMaterialType == null)) return;
if ((alAddtType == null) || (alAddtAmount == null) || (alAddtOrigin == null)) return;
var Keys = new ArrayList();
if ((ucHopper.htValueChanged != null) && (ucHopper.htValueChanged.Count > 0))
Keys = new ArrayList(ucHopper.htValueChanged.Keys);
object ValuePre = null;
object ValueCur = null;
string strCode = "", strName = "", strType = "", strValueCur = "", strValuePre = "";
var strSort = ((int) ucHopper.HpprCategory).ToString();
for (var i = 0; i < Keys.Count; i++)
{
strCode = Convert.ToString(Keys[i]);
strName = Convert.ToString(ucHopper.htCaptionChanged[strCode]);
strType = Convert.ToString(ucHopper.htMaterialtypeChanged[strCode]);
ValueCur = ucHopper.htValueChanged[strCode];
ValuePre = ucHopper.htValueInitial[strCode];
if (ValueCur == DBNull.Value) strValueCur = "";
else strValueCur = Convert.ToString(ValueCur);
if (ValuePre == DBNull.Value) strValuePre = "";
else strValuePre = Convert.ToString(ValuePre);
alMaterialCode.Add(strCode);
alMaterialName.Add(strName);
alMaterialType.Add(strType);
alAddtType.Add(strSort);
alAddtAmount.Add(strValueCur);
alAddtOrigin.Add(strValuePre);
}
}
catch
{
}
}
#endregion
}
}