using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Format;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
using Core.StlMes.Client.PlnSaleOrd.工序排产;
using Core.StlMes.Client.PlnSaleOrd.工序排产.entity;
using CoreFS.CA06;
using Infragistics.Win;
using Infragistics.Win.UltraWinGrid;
namespace Core.StlMes.Client.PlnSaleOrd
{
public partial class FrmPlnOrderZzS : FrmBase
{
///
/// 订单编号
///
private string _ProPlanId = "";
///
/// 排产序号
///
private string _GxPlanNo = "";
///
/// 行首背景色
///
private Color _BackColor = new Color();
///
/// 调整行集合
///
private ArrayList _EntityList = null;
public FrmPlnOrderZzS()
{
this.IsLoadUserView = true;
InitializeComponent();
}
private void FrmPlnOrderZzS_Load(object sender, EventArgs e)
{
if (CustomInfo == null) { CustomInfo = ""; }
//设置列头名称
EntityHelper.ShowGridCaption(ultraGridZz.DisplayLayout.Bands[0]);
BaseHelper.setOtherColumnReadOnly(ultraGridZz, new string[] { "CHC", "PlineCode", "PlanTimeB", "RepairType", "PlanUsetime" });
BaseHelper.setColumnBackColor(ultraGridZz, new string[] { "PlineCode" });
BaseHelper.InitCellPosition(ultraGridZz, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "PlanWtS", "PlanNumS", "PlanUsetime", "GxProSeq",
"PlnDivideId", "DiameterLz","LenGpSingle","CutNumGp","CutLoseLen","LengthLz","WtCastOne","CastNumCalc","FurnaceNumCalc","FurnaceWt","PlanedWt","PlanedNum",
"Finishweight","FinishNum","CastNum","FurnaceNum","AddWtBegin","AddWtEnd","AddWtAhead","ProcessingCostA","TotalCostA","ProcessingCostB","TotalCostB"});
BaseHelper.setUltraGridColumnMaxInput(ultraGridZz, new string[] { "PlanWtS" });
PlanHelper.InitDropPline("B", "", comPline, this.ob);
PlanHelper.InitRepairType(ultraGridZz, this);
PlanHelper.InitEditPline("B", "", ultraGridZz, this);
if (CustomInfo != "0") { BaseHelper.ForbidSort(ultraGridZz); }
BaseHelper.GridColumnSum(ultraGridZz, new string[] { "PlanWtS" });
BaseHelper.GridColumnCount(ultraGridZz, new string[] { "PlanNumS" });
BaseHelper.InitCellPositionMiddle(ultraGridZz, new string[] { "IsRepairPln", "IsPlanOk", "IfConnectAhead", "IfConnectNext", "IfMonitorLg" });
_BackColor = ultraGridZz.DisplayLayout.Override.RowSelectorAppearance.BackColor;
}
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query"://查询
Query();
break;
case "Capacity"://产线能力维护
Capacity();
break;
case "AddRepairPlan"://检修计划
AddRepairPlan();
break;
case "DeleteRepairPlan"://删除检修计划
DeleteRepairPlan();
break;
case "PlineChange"://产线调整
PlineChange();
break;
case "TimeChange"://时间调整
TimeChange();
break;
case "StatusChange"://状态调整
StatusChange();
break;
case "InitData"://耗时初始化
Init();
break;
case "Spit"://拆分订单
Spit();
break;
case "Merge"://合并订单
Merge();
break;
case "Issued"://下发
Issued("0");
break;
case "CancelIssued"://取消下发
Issued("1");
break;
case "Export": //导出
GridHelper.ulGridToExcel(ultraGridZz, "铸造排产信息");
break;
default:
break;
}
}
private void chcPline_CheckedChanged(object sender, EventArgs e)
{
if (chcPline.Checked) { comPline.ReadOnly = false; } else { comPline.ReadOnly = true; }
if (chcProPlanId.Checked) { txtProPlanId.ReadOnly = false; } else { txtProPlanId.ReadOnly = true; }
}
private void ultraGridZz_InitializeRow(object sender, InitializeRowEventArgs e)
{
PlanHelper.ControlCellEdit(e.Row);
}
///
/// 查询
///
private void Query()
{
//产线
string plineCode = "";
if (chcPline.Checked) { plineCode = comPline.Value == null ? "" : comPline.Value.ToString(); }
//如果是排产界面,则下拉框的产线不能为空,需要排序
if (!CustomInfo.Equals("0") && plineCode.Equals("")) { MessageUtil.ShowTips("请选择产线!"); return; }
//执行状态
string[] statusArr = new string[4] { "", "", "", "" };
if (ultraCheckEditor1.Checked) { statusArr[0] = "0"; }
if (ultraCheckEditor2.Checked) { statusArr[1] = "1"; }
if (ultraCheckEditor3.Checked) { statusArr[2] = "2"; }
if (ultraCheckEditor3.Checked) { statusArr[3] = "3"; }
//订单编号
string proPlanId = "";
if (chcProPlanId.Checked) { proPlanId = txtProPlanId.Text.Trim(); }
List listSource = EntityHelper.GetData
("com.steering.pss.plnsaleord.processOrder.base.ProducHelper.queryPlanOrderB", new object[] { plineCode, proPlanId, statusArr }, this.ob);
plnOrderCastOSEntityBindingSource.DataSource = listSource;
//激活操作行代码
if ((!_ProPlanId.Equals("") && !_GxPlanNo.Equals("")) || _EntityList != null)
foreach (UltraGridRow ugr in ultraGridZz.Rows)
{
if (!_ProPlanId.Equals("") && !_GxPlanNo.Equals(""))
{
if (ugr.Cells["ProPlanId"].Text.Trim().Equals(_ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(_GxPlanNo))
{
ugr.Activate();
break;
}
}
if (_EntityList != null)
{
for (int i = 0; i < _EntityList.Count; i++)
{
PlnOrderCastSEntity jgxsEntity = (PlnOrderCastSEntity)_EntityList[i];
if (ugr.Cells["ProPlanId"].Text.Trim().Equals(jgxsEntity.ProPlanId) && ugr.Cells["GxPlanNo"].Text.Trim().Equals(jgxsEntity.GxPlanNo))
{
ugr.Appearance.BackColor = Color.Wheat;
ugr.Activate();
}
}
}
}
_EntityList = null;
_ProPlanId = "";
_ProPlanId = "";
}
///
/// 产线能力维护
///
private void Capacity()
{
UltraGridRow ugr = ultraGridZz.ActiveRow;
if (ugr == null)
{
return;
}
string inMaterialNo = ugr.Cells["WlidIn"].Text;
string outMaterialNo = ugr.Cells["MaterialNo"].Text;
string plineCode = ugr.Cells["PlineCode"].Value.ToString();
FrmBaseMaterialBPl frmBaseMaterialBPl = new FrmBaseMaterialBPl(inMaterialNo, outMaterialNo, plineCode, this.ob);
frmBaseMaterialBPl.ShowDialog();
}
///
/// 新增检修计划
///
private void AddRepairPlan()
{
if (comPline.Value == null || comPline.Value.ToString().Equals(""))
{
MessageUtil.ShowTips("请选择产线!");
return;
}
FrmJxjh frmJxjh = new FrmJxjh(this.ob, comPline.Value.ToString(), "B");
frmJxjh.ShowDialog();
Query();
}
///
/// 折分订单
///
private void Spit()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.SpitPlanOrder(list,"B",this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 合并订单
///
private void Merge()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.MergePlanOrder(list,"B",this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 产线调整
///
private void PlineChange()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.PlineChange(list,"B",this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 初始化
///
private void Init()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.InitData(list, "B", this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 状态调整
///
private void StatusChange()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.StatusChange(list,"B",this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 时间调整
///
private void TimeChange()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.TimeChange(list, "B", this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
///
/// 排序
///
///
///
private void ultraGridZzS_MouseDown(object sender, MouseEventArgs e)
{
//排产查询界面,不能排序
if (CustomInfo.Equals("0"))
{ return;}
try
{ ultraGridZz.UpdateData();}
catch (Exception)
{ MessageUtil.ShowWarning("数据异常,请刷新数据!");return;
}
if (e.Button == MouseButtons.Right)
{
//移动行
ArrayList entityList = ProducHelper.GetChcRows(ultraGridZz);
if (entityList == null || entityList.Count == 0)
{ return;
}
//定位行
UIElement myUIElement = ultraGridZz.DisplayLayout.UIElement.ElementFromPoint(new Point(e.X, e.Y));
UltraGridCell myCell = (UltraGridCell)myUIElement.GetContext(typeof(UltraGridCell));
if (myCell == null){ return ; }
UltraGridRow ugr = myCell.Row;
if (ugr == null){ return ; }
PlnOrderCastSEntity entityD = (PlnOrderCastSEntity)ugr.ListObject;
bool flag = ProducHelper.SortPlanOrder(entityList, entityD, "B", "",this.ob);
if (flag) {
_EntityList = entityList;
Query();
}
}
}
private void ultraGridZzS_AfterRowActivate(object sender, EventArgs e)
{
UltraGridRow ugrAc = ultraGridZz.ActiveRow;
if (ugrAc == null)
{
return;
}
foreach (UltraGridRow ugr in ultraGridZz.Rows)
{
if (ugr.Cells["ProPlanId"].Text.Equals(ugrAc.Cells["ProPlanId"].Text))
{
ugr.RowSelectorAppearance.BackColor = Color.LightGreen;
}
else
{
ugr.RowSelectorAppearance.BackColor = _BackColor;
}
if (ugr.Cells["PlanUsetime"].Value == null || ugr.Cells["PlanUsetime"].Value.ToString().Equals("") || Convert.ToDouble(ugr.Cells["PlanUsetime"].Value.ToString()) <= 0)
{
ugr.Cells["PlanUsetime"].Appearance.BackColor = Color.MistyRose;
}
if (ugr.Cells["ExeStatus"].Value.ToString().Equals("生产中"))
{
ugr.Cells["PlanTimeB"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128);
}
if (ugr.Cells["IsRepairPln"].Text.Equals("Y"))
{
ugr.Cells["PlanUsetime"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128);
ugr.Cells["RepairType"].Appearance.BackColor = System.Drawing.Color.FromArgb(255, 255, 128);
}
}
}
private void ultraGridZzS_CellChange(object sender, CellEventArgs e)
{
try
{
ultraGridZz.UpdateData();
if (e.Cell.Column.Key.Equals("PlineCode"))
{
IQueryable chcRows = ultraGridZz.Rows.AsQueryable().Where(a => a.GetValue("CHC") == "True");
if (CustomInfo.Equals("0"))
{
e.Cell.Row.Cells["PlineName"].Value = e.Cell.Text;
}
else
{
if (chcRows != null && chcRows.Count() > 0)
{
foreach (UltraGridRow ugr in chcRows)
{
ugr.Cells["PlineCode"].Value = e.Cell.Value.ToString();
ugr.Cells["PlineName"].Value = e.Cell.Text;
}
}
}
}
}
catch (Exception)
{
}
}
///
/// 删除检修计划
///
public void DeleteRepairPlan()
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.DeleteRepairPlan(list, "B", this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
private void comPline_ValueChanged(object sender, EventArgs e)
{
if (comPline == null)
{
return;
}
else
{
if (!CustomInfo.Equals("0"))
{
Query();
}
}
}
///
/// 下发(取消)
///
private void Issued(string isFlag)
{
ArrayList list = ProducHelper.GetChcRows(ultraGridZz);
bool flag = ProducHelper.issuedPlanOrder(list, UserInfo.GetUserName(), isFlag, "B", this.ob);
if (flag)
{
_ProPlanId = ((PlnOrderCastSEntity)list[0]).ProPlanId;
_GxPlanNo = ((PlnOrderCastSEntity)list[0]).GxPlanNo;
Query();
}
}
private void ultraGridZz_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
{
foreach (UltraGridRow uRow in ultraGridZz.Selected.Rows)
{
if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
{
uRow.Cells["CHC"].Value = true;
}
}
}
}
}