using System; 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.Server; using CoreFS.CA06; using CoreFS.SA06; using System.Collections; using Core.Mes.Client.Comm.Control; using Infragistics.Win.UltraWinGrid; using Infragistics.Win; using Infragistics.Win.UltraWinGrid.ExcelExport; using System.IO; using Infragistics.Excel; using System.Diagnostics; using Core.Mes.Client.Comm; namespace Core.StlMes.Client.Plan.Order { /// /// 备料组选择界面 /// @author:杨天海 /// @version:v1.1 /// @date:2015.05.01 /// public partial class FrmGroupofDjBl : FrmBase { /// /// 质量设计desgin_key /// private string desgin_key = ""; public string Desgin_key { get { return desgin_key; } set { desgin_key = value; } } /// /// 备料组 /// private string group_num = ""; public string Group_num { get { return group_num; } set { group_num = value; } } /// /// 合同计划支数 /// private string plan_num = ""; public string Plan_num { get { return plan_num; } set { plan_num = value; } } /// /// 合同号 /// private string order_no = ""; public string Order_no { get { return order_no; } set { order_no = value; } } /// /// 和同行号 /// private string order_seq = ""; public string Order_seq { get { return order_seq; } set { order_seq = value; } } /// /// 交货编码 /// private string delivery_no = ""; public string Delivery_no { get { return delivery_no; } set { delivery_no = value; } } /// /// 合同长度描述 /// private string lengthdisc = ""; public string Lengthdisc { get { return lengthdisc; } set { lengthdisc = value; } } /// /// 形成短节合同状态 /// private bool isCreatOk = false; public bool IsCreatOk { get { return isCreatOk; } set { isCreatOk = value; } } private double lengthMax = 0; /// /// 销售合同短节长度上限 /// public double LengthMax { get { return lengthMax; } set { lengthMax = value; } } private int orderNum = 0; /// /// 短节合同订货支数 /// public int OrderNum { get { return orderNum; } set { orderNum = value; } } /// /// 钢级(牌号)代码 /// private string steelcode; /// /// 钢级(牌号)代码 /// public string Steelcode { get { return steelcode; } set { steelcode = value; } } /// /// 钢级(牌号)名称 /// private string steelname; /// /// 钢级(牌号)名称 /// public string Steelname { get { return steelname; } set { steelname = value; } } /// /// 外径 /// private string outdiameter; /// /// 外径 /// public string Outdiameter { get { return outdiameter; } set { outdiameter = value; } } /// /// 壁厚 /// private string wallthick; /// /// 壁厚 /// public string Wallthick { get { return wallthick; } set { wallthick = value; } } public FrmGroupofDjBl() { InitializeComponent(); } /// /// 构造 /// /// public FrmGroupofDjBl(OpeBase ob) { this.ob = ob; InitializeComponent(); } private void FrmGroupofDjBl_Load(object sender, EventArgs e) { FrmSaleOrderOP SaleOrder = new FrmSaleOrderOP(this.ob); DataTable dt = SaleOrder.QueryBlCode(Desgin_key); DataTable dtGroup = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.queryBlGroup", new object[] { Desgin_key }, this.ob); GridHelper.CopyDataToDatatable(dtGroup, dataTable1, true); foreach (UltraGridRow uRow in ultraGrid1.Rows) { uRow.Cells["PLAN_NUM"].Value = Plan_num; uRow.Cells["LENGTHDISC"].Value = Lengthdisc; uRow.Cells["STEELCODE"].Value = steelcode; uRow.Cells["STEELNAME"].Value = steelname; uRow.Cells["OUTDIAMETER"].Value = outdiameter; uRow.Cells["WALLTHICK"].Value = wallthick; if (uRow.Cells["GROUP_NUM"].Value.ToString().Equals(Group_num)) { uRow.Cells["CHECK"].Value = true; } } dataTable2.Clear(); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { DataTable dtBlList = SaleOrder.QueryBlList(dr["PSC_BL"].ToString()); if (dtBlList != null && dtBlList.Rows.Count > 0) { double min_d = Convert.ToDouble(dtBlList.Rows[0]["MIN_D"]); double min_h = Convert.ToDouble(dtBlList.Rows[0]["MIN_H"]); double Weight_One = PlanComm.WeightOfMi(min_d, min_h);//米单重(吨/米) double aimlength = (Convert.ToDouble(dtBlList.Rows[0]["MAX_L"]) + Convert.ToDouble(dtBlList.Rows[0]["MIN_L"])) / 2; double singleweight = aimlength * Weight_One;//单重 double eatchBlnum = aimlength / lengthMax;//每只备料管可切短节支数。 DataRow drNew = dataTable2.NewRow(); drNew["GROUP_NUM"] = dr["GROUP_NUM"].ToString(); drNew["PSC_BL"] = dtBlList.Rows[0]["PSC_BL"].ToString(); drNew["PRODUCNAME"] = dtBlList.Rows[0]["PRODUCNAME"].ToString(); drNew["STD_NAME"] = dtBlList.Rows[0]["STD_NAME"].ToString(); drNew["STEELNAME"] = dtBlList.Rows[0]["STEELNAME"].ToString(); drNew["STD_STYLE_DESC"] = dtBlList.Rows[0]["STD_STYLE_DESC"].ToString(); drNew["MODEL_DESC"] = dtBlList.Rows[0]["MODEL_DESC"].ToString(); drNew["MIN_D"] = dtBlList.Rows[0]["MIN_D"].ToString(); drNew["MIN_H"] = dtBlList.Rows[0]["MIN_H"].ToString(); drNew["USE_DESC"] = dtBlList.Rows[0]["USE_DESC"].ToString(); drNew["MIN_L"] = dtBlList.Rows[0]["MIN_L"].ToString(); drNew["MAX_L"] = dtBlList.Rows[0]["MAX_L"].ToString(); drNew["MEMO"] = dtBlList.Rows[0]["MEMO"].ToString(); drNew["SINGLEWEIGHT"] = singleweight; drNew["STEELCODE"] = dtBlList.Rows[0]["STEELCODE"].ToString(); drNew["STD_CODE"] = dtBlList.Rows[0]["STD_CODE"].ToString(); drNew["PRODUCCODE"] = dtBlList.Rows[0]["PRODUCCODE"].ToString(); drNew["STD_STYLE"] = dtBlList.Rows[0]["STD_STYLE"].ToString(); drNew["BLGTODJNUM"] = eatchBlnum; if (OrderNum % eatchBlnum == 0) { drNew["JGBL_REQ_NUM"] = (int)(OrderNum / eatchBlnum); drNew["JGBL_REQ_WEIGHT"] = (int)(OrderNum / eatchBlnum) * singleweight; } else { drNew["JGBL_REQ_NUM"] = (int)(OrderNum / eatchBlnum) + 1; drNew["JGBL_REQ_WEIGHT"] = ((int)(OrderNum / eatchBlnum) + 1) * singleweight; } dataTable2.Rows.Add(drNew); } } } PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[0], "CHECK"); PlanComm.setGridActivation(ultraGrid1.DisplayLayout.Bands[1], "JGBL_REQ_NUM"); } /// /// 确定按钮 /// /// /// private void ultraButton1_Click(object sender, EventArgs e) { foreach(UltraGridRow uRow in ultraGrid1.Rows) { if (Convert.ToBoolean(uRow.Cells["CHECK"].Text)) { ArrayList status = new ArrayList(); status.Add(this.Order_no); status.Add(this.Order_seq); status.Add(this.Delivery_no); DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plan.order.CoreSaleOrderOP.querySaleByPrimary", new object[] { status }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("查询销售合同状态失败!"); return; } if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().Equals("1") && dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("0")) { ArrayList listBL = new ArrayList(); ArrayList paramUpdate = new ArrayList(); ArrayList listupdate = new ArrayList(); foreach (UltraGridRow cRow in uRow.ChildBands[0].Rows) { #region 短节备料需求处理 FrmSaleOrderOP SaleOrder = new FrmSaleOrderOP(this.ob); string strPSC = "";//产品码 string strCodeBl = cRow.Cells["PSC_BL"].Value.ToString();//备料码 ArrayList parms = new ArrayList(); double aimlength = (Convert.ToDouble(cRow.Cells["MAX_L"].Value) + Convert.ToDouble(cRow.Cells["MIN_L"].Value)) / 2; string specSameSale = "0"; if (dtStatus.Rows[0]["OUTDIAMETER"].ToString().Equals(cRow.Cells["MIN_D"].Value.ToString()) && dtStatus.Rows[0]["WALLTHICK"].ToString().Equals(cRow.Cells["MIN_H"].Value.ToString()) && dtStatus.Rows[0]["STEELCODE"].ToString().Equals(cRow.Cells["STEELCODE"].Value.ToString())) { specSameSale = "1"; } parms.Add("短节备料"); parms.Add(Order_no); parms.Add(Order_seq); parms.Add(Delivery_no); parms.Add(strCodeBl); parms.Add("0"); //计划状态 parms.Add(CoreUserInfo.UserInfo.GetUserName()); parms.Add(DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); #region 备料清单信息 parms.Add(cRow.Cells["STEELCODE"].Value.ToString()); parms.Add(cRow.Cells["STEELNAME"].Value.ToString()); parms.Add("");//钢种代码 parms.Add(cRow.Cells["MIN_D"].Value.ToString());//外径 parms.Add(cRow.Cells["MIN_H"].Value.ToString());//壁厚 parms.Add("");//控制壁厚 parms.Add(cRow.Cells["MAX_L"].Value.ToString()); parms.Add(cRow.Cells["MIN_L"].Value.ToString()); parms.Add(aimlength.ToString());//控制长度 parms.Add(cRow.Cells["STD_CODE"].Value.ToString()); parms.Add(cRow.Cells["STD_NAME"].Value.ToString()); strPSC = SaleOrder.QueryPsc(cRow.Cells["PRODUCCODE"].Value.ToString(), cRow.Cells["STD_CODE"].Value.ToString(), cRow.Cells["STEELCODE"].Value.ToString(), cRow.Cells["STD_STYLE"].Value.ToString()); parms.Add(SaleOrder.QueryPscForMsc(strPSC)); parms.Add(cRow.Cells["SINGLEWEIGHT"].Value.ToString()); //单重 #endregion parms.Add(cRow.Cells["JGBL_REQ_WEIGHT"].Value.ToString()); //备料需求量 parms.Add(cRow.Cells["JGBL_REQ_NUM"].Value.ToString()); //备料需求支数 parms.Add(specSameSale); listBL.Add(parms); #endregion } //更新销售合同 paramUpdate.Add("1"); paramUpdate.Add(dtStatus.Rows[0]["ORD_LN_DLY_PK"].ToString()); listupdate.Add(paramUpdate); int isSucceed = ServerHelper.SetData("com.steering.pss.plan.order.CoreSaleOrderOP.tranSactionDj", new object[] { listBL,listupdate }, this.ob); if (isSucceed > 0) { Core.Mes.Client.Comm.Tool.MessageUtil.ShowTips("形成短节合同成功!"); IsCreatOk = true; } else { Core.Mes.Client.Comm.Tool.MessageUtil.ShowError("形成短节合同失败!"); } } Group_num = uRow.Cells["GROUP_NUM"].Value.ToString(); this.Close(); return; } } MessageBox.Show("请选择短节备料组!"); } /// /// 取消按钮 /// /// /// private void ultraButton2_Click(object sender, EventArgs e) { this.Close(); } /// /// 控制单选 /// /// /// private void ultraGrid1_CellChange(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("CHECK")) { if (Convert.ToBoolean(e.Cell.Row.Cells["CHECK"].Text)) { foreach (UltraGridRow uRow in ultraGrid1.Rows) { if (uRow != e.Cell.Row) { uRow.Cells["CHECK"].Value = false; } } } } } private void ultraGrid1_AfterCellUpdate(object sender, CellEventArgs e) { if (e.Cell.Column.Key.Equals("JGBL_REQ_NUM") && e.Cell.Row.Cells["JGBL_REQ_NUM"].DataChanged) { e.Cell.Row.Update(); int num = 0; double singleweight = 0; if (int.TryParse(e.Cell.Row.Cells["JGBL_REQ_NUM"].Value.ToString(), out num) && double.TryParse(e.Cell.Row.Cells["SINGLEWEIGHT"].Value.ToString(), out singleweight)) { e.Cell.Row.Cells["JGBL_REQ_WEIGHT"].Value = (num * singleweight).ToString(); } else { e.Cell.Row.Cells["JGBL_REQ_NUM"].Value = 0; e.Cell.Row.Cells["JGBL_REQ_WEIGHT"].Value = 0; } } } } }