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 CoreFS.CA06; using Core.Mes.Client.Comm.Tool; using com.steering.pss.plnsaleord.order.model; using System.Collections; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Server; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm; using Infragistics.Win; namespace Core.StlMes.Client.PlnSaleOrd { public partial class ComPlnJGDJDeal : UserControl { int inNum = 0; public OpeBase _ob = null; public ComPlnJGDJDeal() { InitializeComponent(); Init(); } /// /// 初始化 /// public void Init() { EntityHelper.ShowGridCaption(ultraGridSaleOrder.DisplayLayout.Bands[0]); EntityHelper.ShowGridCaption(ultraGridBl.DisplayLayout.Bands[0]); comOrdJGDJPanel1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0; ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["BlGroupNum"].EditorComponent = ultraFileLook; ultraGridSaleOrder.DisplayLayout.Bands[0].Columns["BlGroupNum"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; PlanComm.setGridActivation(this.ultraGridSaleOrder.DisplayLayout.Bands[0], "CHC"); PlanComm.setGridActivation(this.ultraGridBl.DisplayLayout.Bands[0], "CHC", "Aimwallthick", "Lengthmax", "Lengthmin", "Aimlength", "JgblReqNum"); PlanComm.setGridActivation(this.ultraGridJgOrd.DisplayLayout.Bands[0], "CHC"); PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 3, "OrderQty", "Orderweight", "Planweight", "Paydownweight", "ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax"); PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 7, 2, "Totlength", "TotlengthM"); PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 2, "Outdiameter", "Wallthick", "Lengthmax", "Lengthmin", "LenToendMin", "LenToendMax", "LengthJg", "HeightOrdMax", "HeightOrdMin"); PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 5, 0, "Ordernum", "PaydownNum"); PlanComm.setGridDigitalCol(ultraGridSaleOrder.DisplayLayout.Bands[0], 3, 6, "WeightPerM"); PlanComm.setGridSummarySet(ultraGridSaleOrder, 3, "OrderQty", "Orderweight", "Planweight", "ReqQtysum", "ConfirmWtSum", "PaydownWtMin", "PaydownWtMax", "Paydownweight"); PlanComm.setGridSummarySet(ultraGridSaleOrder, 2, "TotlengthM"); PlanComm.setGridSummarySet(ultraGridSaleOrder, 0, "Ordernum", "PaydownNum", "TotlengthM"); PlanComm.setGridDigitalCol(ultraGridJgOrd.DisplayLayout.Bands[0], 5, 2, "MIN_D_JG", "MAX_D_JG", "DIAMETER_JG", "LENGTH_JG", "HEIGHT_JG", "WEIGHT_JG", "MIN_D", "MIN_H", "DIAMETER", "DIAMETER_PL", "HEIGHT_PL", "LENGTH_MIN", "LENGTH_MAX", "MIN_H_CP", "MAX_H_CP", "MIN_D_CP", "MAX_D_CP", "CHECK_J_VAL"); PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 5, 2, "Outdiameter", "Wallthick", "Aimwallthick", "Lengthmax", "Lengthmin", "Aimlength", "GetrateDj", "DimaterYlg", "HeightYlg"); PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 7, 3, "Singleweight", "JgblReqWeight", "Matchweight", "PlanWeight", "JgcutplanWt"); PlanComm.setGridDigitalCol(ultraGridBl.DisplayLayout.Bands[0], 5, 0, "JgblReqNum", "Matchnum", "JgcutplanNum"); } /// /// 获取查询条件信息 /// /// 查询条件信息 public ArrayList GetQueryCondition() { ArrayList ary = new ArrayList(); string strRollmonth = ""; string strAcceptNo = "";//接收批次号 string strOrderNo = ""; //合同号 string strOrderStatus = ""; //合同状态 string haveJg = ""; //是否有接箍 string haveDj = ""; //是否有短节 if (comOrdJGDJPanel1.checkBoxHvJg.Checked) { haveJg = "1"; } if (comOrdJGDJPanel1.checkBoxHvDj.Checked) { haveDj = "1"; } if (comOrdJGDJPanel1.checkBoxAcceptNo.Checked) { strAcceptNo = comOrdJGDJPanel1.ultraTextEditorAcceptNo.Text.Trim(); } if (comOrdJGDJPanel1.checkBoxForReqPORDERSTATUS.Checked) { strOrderStatus = comOrdJGDJPanel1.ctrlForQueryPORDERSTATUS.Value.ToString(); } if (comOrdJGDJPanel1.checkBoxForReqORDER_NO.Checked) { strOrderNo = comOrdJGDJPanel1.ctrlForQueryORDER_NO.Text.Trim(); } if (comOrdJGDJPanel1.checkBoxRollMonth.Checked) { strRollmonth = comOrdJGDJPanel1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM"); } ary.Add(strRollmonth); ary.Add(strAcceptNo); ary.Add(strOrderNo); ary.Add(strOrderStatus); ary.Add(haveJg); ary.Add(haveJg); ary.Add(haveDj); ary.Add(haveDj); return ary; } /// /// 根据信息栏查询 /// /// 查询条件信息 public void DoQuery(ArrayList ary) { if (ary == null) { return; } bindingSourceSaleOrd.DataSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleOrder", new object[] { ary }, _ob); DoQueryDjBl(ary); DoQueryJgOrd(ary); } /// /// 短节备料查询 /// /// public void DoQueryDjBl(ArrayList ary) { if (ary == null) { return; } bindingSourceBlOrd.DataSource = EntityHelper.GetData ("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryDjBlNeed", new object[] { ary }, _ob); foreach (UltraGridRow item in ultraGridBl.Rows) { if (item.Cells["Planstatus"].Text.Equals("待处理")) { //控制壁厚 item.Cells["Aimwallthick"].Appearance.BackColor = Color.FromArgb(255, 255, 192); item.Cells["Aimwallthick"].Appearance.BackHatchStyle = BackHatchStyle.None; item.Cells["Aimwallthick"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //最大长度 item.Cells["Lengthmax"].Appearance.BackColor = Color.FromArgb(255, 255, 192); item.Cells["Lengthmax"].Appearance.BackHatchStyle = BackHatchStyle.None; item.Cells["Lengthmax"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //最小长度 item.Cells["Lengthmin"].Appearance.BackColor = Color.FromArgb(255, 255, 192); item.Cells["Lengthmin"].Appearance.BackHatchStyle = BackHatchStyle.None; item.Cells["Lengthmin"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //控制长度 item.Cells["Aimlength"].Appearance.BackColor = Color.FromArgb(255, 255, 192); item.Cells["Aimlength"].Appearance.BackHatchStyle = BackHatchStyle.None; item.Cells["Aimlength"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; //备料需求支数 item.Cells["JgblReqNum"].Appearance.BackColor = Color.FromArgb(255, 255, 192); item.Cells["JgblReqNum"].Appearance.BackHatchStyle = BackHatchStyle.None; item.Cells["JgblReqNum"].Activation = Infragistics.Win.UltraWinGrid.Activation.AllowEdit; } else { //控制壁厚 item.Cells["Aimwallthick"].Appearance.BackColor = Color.Transparent; item.Cells["Aimwallthick"].Appearance.BackHatchStyle = BackHatchStyle.Default; item.Cells["Aimwallthick"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; //最大长度 item.Cells["Lengthmax"].Appearance.BackColor = Color.Transparent; item.Cells["Lengthmax"].Appearance.BackHatchStyle = BackHatchStyle.Default; item.Cells["Lengthmax"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; //最小长度 item.Cells["Lengthmin"].Appearance.BackColor = Color.Transparent; item.Cells["Lengthmin"].Appearance.BackHatchStyle = BackHatchStyle.Default; item.Cells["Lengthmin"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; //控制长度 item.Cells["Aimlength"].Appearance.BackColor = Color.Transparent; item.Cells["Aimlength"].Appearance.BackHatchStyle = BackHatchStyle.Default; item.Cells["Aimlength"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; //备料需求支数 item.Cells["JgblReqNum"].Appearance.BackColor = Color.Transparent; item.Cells["JgblReqNum"].Appearance.BackHatchStyle = BackHatchStyle.Default; item.Cells["JgblReqNum"].Activation = Infragistics.Win.UltraWinGrid.Activation.ActivateOnly; } } } /// /// 修改短节备料需求 /// public void DoUpdateDjBl() { int intUpdate = 0; ultraGridBl.UpdateData(); IQueryable checkRows = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'"); if (checkRows.Count() == 0) { MessageUtil.ShowTips("请勾选短节备料需求!!"); return; } string time = DateTime.Now.ToString(); ArrayList list1 = new ArrayList(); foreach (UltraGridRow item in checkRows) { if (item.Cells["Planstatus"].Text.Equals("待处理")) { intUpdate += 1; ArrayList list = new ArrayList(); list.Add(item.Cells["Aimwallthick"].Value.ToString()); list.Add(item.Cells["Lengthmax"].Value.ToString()); list.Add(item.Cells["Lengthmin"].Value.ToString()); list.Add(item.Cells["Aimlength"].Value.ToString()); list.Add(item.Cells["JgblReqNum"].Value.ToString()); list.Add(item.Cells["ReqBlId"].Value.ToString()); list.Add(item.Cells["Outdiameter"].Value.ToString()); list.Add(CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName()); list.Add(time); list1.Add(list); } } if (intUpdate == 0) { MessageUtil.ShowTips("请勾选计划状态为【待处理】的短节备料需求!"); return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "doUpdateDjBl"; ccp.ServerParams = new object[] { list1}; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp == null) { MessageUtil.ShowError("服务端处理失败!"); return; } if (ccp.ReturnCode < 0) { MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo); return; } if (ccp.ReturnCode!=-1) { MessageUtil.ShowTips(ccp.ReturnInfo.ToString()); if (ccp.ReturnInfo.Equals("修改短节备料需求成功!")) { DoQueryDjBl(GetQueryCondition()); } } } /// /// 接箍合同查询 /// /// public void DoQueryJgOrd(ArrayList ary) { if (ary == null) { return; } DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryJgOrder", new object[] { ary }, _ob); GridHelper.CopyDataToDatatable(dt, dataTable2, true); } /// /// 接箍处理 /// public void DoProcessJg() { ultraGridSaleOrder.UpdateData(); IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'"); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); ArrayList list = new ArrayList(); foreach (UltraGridRow uRow in checkRows) { list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "tranSactionJg"; ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp == null) { MessageUtil.ShowError("服务端处理失败!"); return; } if (ccp.ReturnCode < 0) { MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo); return; } if (ccp.ReturnObject != null) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); DoQuery(GetQueryCondition()); } } /// /// 撤消接箍处理 /// public void DoCancelJg() { ultraGridSaleOrder.UpdateData(); IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where("CHC = 'True'"); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); ArrayList list = new ArrayList(); foreach (UltraGridRow uRow in checkRows) { list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "cancelJg"; ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp == null) { MessageUtil.ShowError("服务端处理失败!"); return; } if (ccp.ReturnCode < 0) { MessageUtil.ShowError("服务端处理失败!\n" + ccp.ReturnInfo); return; } if (ccp.ReturnObject != null) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); DoQuery(GetQueryCondition()); } } /// /// 短节处理 /// public void DoProcessDj() { try { int defailNum = 0; string messageErr = ""; ultraGridSaleOrder.UpdateData(); IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where(" CHC = 'True'"); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } ArrayList paramBL = new ArrayList(); ArrayList paramUpdate = new ArrayList(); PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { continue; } if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("6") < 0 && dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("0") > 0) { if (dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("2")) { defailNum++; messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "没有短节!"; continue; } if (dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("1")) { defailNum++; messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "已处理短节!"; continue; } string desginKey = uRow.Cells["DesginKey"].Value.ToString(); if (desginKey.Equals("")) { defailNum++; messageErr = "合同" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "未找到质量设计!"; continue; } DataTable dtBl = queryBlCodeByGp(desginKey, uRow.Cells["BlGroupNum"].Value.ToString()); ArrayList listupdate = new ArrayList(); if (dtBl.Rows.Count > 0 && dtBl != null) { foreach (DataRow dr in dtBl.Rows) { string strCodeBl = dr["PSC_BL"].ToString();//备料码 DataTable dtbllist = QueryBlList(strCodeBl); if (dtbllist != null && dtbllist.Rows.Count > 0) { PlnPorderBlReqEntity blReqEntity = new PlnPorderBlReqEntity(); int planNum = (int)Math.Ceiling(double.Parse(dtStatus.Rows[0]["ORDERNUM"].ToString()) * (1 + double.Parse(dtStatus.Rows[0]["DELVRY_RANGE_MAX"].ToString()) / 100)); #region 备料清单信息 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;//单重 //每只备料管可切短节支数。 int eatchBlnum = (int)(aimlength / Convert.ToDouble(uRow.Cells["Lengthmax"].Value)); if(eatchBlnum==0) { int eatchBlnum_minL = (int)(Convert.ToDouble(dtbllist.Rows[0]["MAX_L"]) / Convert.ToDouble(uRow.Cells["Lengthmin"].Value)); if(eatchBlnum_minL >0) { eatchBlnum = 1; } else { PlanComm.WaitFromColse(this.Cursor); MessageBox.Show("备料管长度范围过小,不能满足合同要求!"); return; } } string specSameSale = "0"; if (uRow.Cells["Outdiameter"].Value.ToString().Equals(dtbllist.Rows[0]["MIN_D"].ToString()) && uRow.Cells["Wallthick"].Value.ToString().Equals(dtbllist.Rows[0]["MIN_H"].ToString()) && uRow.Cells["Steelcode"].Value.ToString().Equals(dtbllist.Rows[0]["STEELCODE"].ToString())) { specSameSale = "1"; } if(Convert.ToDouble(dtbllist.Rows[0]["MIN_L"])< Convert.ToDouble(uRow.Cells["Lengthmin"].Value)) { blReqEntity.Lengthmin =uRow.Cells["Lengthmin"].Value.ToString(); } else { blReqEntity.Lengthmin = dtbllist.Rows[0]["MIN_L"].ToString(); } blReqEntity.CodeDjBl = strCodeBl; blReqEntity.Bltype = "短节备料"; blReqEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); blReqEntity.OrderNo = uRow.Cells["OrderNo"].Value.ToString(); blReqEntity.OrderSeq = uRow.Cells["OrderSeq"].Value.ToString(); blReqEntity.DeliveryNo = uRow.Cells["DeliveryNo"].Value.ToString(); blReqEntity.CreateName = CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName(); blReqEntity.Outdiameter = min_d.ToString(); blReqEntity.Wallthick = min_h.ToString(); blReqEntity.Psc = QueryPsc(dtbllist.Rows[0]["PRODUCCODE"].ToString(), dtbllist.Rows[0]["STD_CODE"].ToString(), dtbllist.Rows[0]["STEELCODE"].ToString(), dtbllist.Rows[0]["STD_STYLE"].ToString()); blReqEntity.Msc = QueryPscForMsc(blReqEntity.Psc); blReqEntity.Singleweight = singleweight.ToString(); //单重 #endregion if (planNum % eatchBlnum == 0) { int blNum = (int)(planNum / eatchBlnum); blReqEntity.JgblReqWeight = (blNum * singleweight).ToString();//备料需求量 blReqEntity.JgblReqNum = blNum.ToString();//备料需求支数 } else { int blNum = (int)(planNum / eatchBlnum) + 1; blReqEntity.JgblReqWeight = (blNum * singleweight).ToString();//备料需求量 blReqEntity.JgblReqNum = blNum.ToString();//备料需求支数 } blReqEntity.SpecSameSale = specSameSale; paramBL.Add(blReqEntity); } else { defailNum++; messageErr = "备料码:" + strCodeBl + "未找到基础信息,请查看备料码是否已作废。"; continue; } } } //完成短节 listupdate.Add("1"); listupdate.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); paramUpdate.Add(listupdate); } else { defailNum++; if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("1") < 0) { messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "未接收!"; } //else //{ // messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" // + uRow.Cells["OrderSeq"].Value.ToString() // + "已经生产完了!"; //} continue; } } if (paramBL.Count == 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条处理成功," + defailNum + "条处理失败。\n" + messageErr); return; } int isSucceed = ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.tranSactionDj", new object[] { paramBL, paramUpdate }, _ob); PlanComm.WaitFromColse(this.Cursor); if (isSucceed > 0) { MessageUtil.ShowTips(paramBL.Count + "条处理成功," + defailNum + "条处理失败。\n" + messageErr); } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageBox.Show(ex.Message); } } DoQuery(GetQueryCondition()); } /// /// 撤消短节合同 /// public void DoCancelDj() { try { int defailNum = 0; string messageErr = ""; ultraGridSaleOrder.UpdateData(); IQueryable checkRows = ultraGridSaleOrder.Rows.AsQueryable().Where(" CHC = 'True'"); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } ArrayList list = new ArrayList(); PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { bool fl = false; DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { continue; } DataTable dtBl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.selectBlReqStatusByPk", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString() }, _ob); if (dtBl == null || dtBl.Rows.Count <= 0) { defailNum++; messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "没有对应的备料需求!"; continue; } foreach (DataRow dr in dtBl.Rows) { if (!dr["PLANSTATUS"].ToString().Trim().Equals("0")) { defailNum++; messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "的备料需求:" + dr["REQ_BL_ID"].ToString() + "已经确认。"; break; } fl = true; } if (fl && dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("6") < 0) { ArrayList param = new ArrayList(); if (!dtStatus.Rows[0]["DJBL_REQ_IS_OK"].ToString().Equals("1")) { defailNum++; messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "没有短节合同!"; continue; } param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); list.Add(param); } else if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("1") < 0) { defailNum++; messageErr = "合同:" + uRow.Cells["ORDER_NO"].Value.ToString() + "/" + uRow.Cells["ORDER_SEQ"].Value.ToString() + "还未接收!"; continue; } else { defailNum++; messageErr = "合同:" + uRow.Cells["OrderNo"].Value.ToString() + "/" + uRow.Cells["OrderSeq"].Value.ToString() + "已经生产完了!"; continue; } } if (list.Count == 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条撤销成功," + defailNum + "条撤销失败。\n" + messageErr); return; } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "doCancelDj"; ccp.ServerParams = new object[] { list }; PlanComm.WaitFromColse(this.Cursor); ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { MessageUtil.ShowTips(list.Count + "条撤销成功," + defailNum + "条撤销失败。\n" + messageErr); } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageBox.Show(ex.Message); } } DoQuery(GetQueryCondition()); } /// /// 短节备料确认 /// public void DoConfirmDj() { ultraGridBl.UpdateData(); ArrayList list = new ArrayList(); IQueryable ugrs = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'"); if (ugrs.Count() == 0) { MessageUtil.ShowTips("请勾选需要确认的备料需求。"); return; } foreach (UltraGridRow ugr in ugrs) { PlnPorderBlReqEntity blReqEntity = new PlnPorderBlReqEntity(); blReqEntity.ReqBlId = ugr.Cells["ReqBlId"].Value.ToString(); list.Add(blReqEntity); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "doConfirmBl"; ccp.ServerParams = new object[] { list, CoreFS.SA06.CoreUserInfo.UserInfo.GetUserName() }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnObject != null && !ccp.ReturnObject.ToString().Equals("")) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); } DoQuery(GetQueryCondition()); } } /// /// 短节备料取消确认 /// public void CanCelConfirmBl() { ultraGridBl.UpdateData(); ArrayList list = new ArrayList(); IQueryable ugrs = ultraGridBl.Rows.AsQueryable().Where("CHC = 'True'"); if (ugrs.Count() == 0) { MessageUtil.ShowTips("未勾选备料需求。"); return; } foreach (UltraGridRow ugr in ugrs) { list.Add(ugr.Cells["ReqBlId"].Value.ToString()); } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal"; ccp.MethodName = "canCelConfirmBl"; ccp.ServerParams = new object[] { list }; ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal); if (ccp.ReturnCode != -1) { if (ccp.ReturnObject != null && !ccp.ReturnObject.ToString().Equals("")) { MessageUtil.ShowTips(ccp.ReturnObject.ToString()); } DoQuery(GetQueryCondition()); } } /// /// 查询备料清单表 /// /// 备料码 public DataTable QueryBlList(string strCodeJg) { try { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryBlList", new object[] { strCodeJg }, _ob); return dt; } catch { return null; } } /// /// 查询产品码 /// /// 备料品名、标准、钢级、标准类别 /// 产品码 public string QueryPsc(string producCode, string stdCode, string steelCode, string stdStyle) { try { ArrayList param = new ArrayList(); param.Add(producCode); param.Add(stdCode); param.Add(steelCode); param.Add(stdStyle); param.Add(stdStyle); param.Add(stdStyle); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryblPsc", new object[] { param }, _ob); if (dt != null && dt.Rows.Count > 0) { return dt.Rows[0]["PSC"].ToString(); } else { return ""; } } catch { return ""; } } /// /// 查询产品码与冶金规范对应关系\ /// /// 产品码 /// 冶金规范码 public string QueryPscForMsc(string strPsc) { try { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryPscForMsc", new object[] { strPsc }, _ob); if (dt != null && dt.Rows.Count > 0) { return dt.Rows[0]["MSC"].ToString(); } else { return ""; } } catch { return ""; } } /// /// 查询一组短节备料码 /// /// 质量设计主键 /// 备料组号 /// private DataTable queryBlCodeByGp(string designKey, string gourpNum) { try { ArrayList param = new ArrayList(); param.Add(designKey); param.Add(gourpNum); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.queryBlCodeByGp", new object[] { param }, _ob); return dt; } catch { return null; } } private void ultraGridSaleOrder_AfterSelectChange(object sender, Infragistics.Win.UltraWinGrid.AfterSelectChangeEventArgs e) { try { for (int i = 0; i < ultraGridSaleOrder.Selected.Rows.Count; i++) { if (ultraGridSaleOrder.Selected.Rows[i].GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { ultraGridSaleOrder.Selected.Rows[i].Cells["CHC"].Value = true; } } } catch (Exception ex) { MessageBox.Show(ex.Message, "出错"); } } private void ultraFileLook_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { UltraGridRow ugr = ultraGridSaleOrder.ActiveRow; if (ugr == null) { return; } DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.querySaleStatus", new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString() }, _ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { return; } if (dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("4") < 0 && dtStatus.Rows[0]["PORDERSTATUS"].ToString().CompareTo("0") > 0) { //选择短节备料组 FrmGroupofDjBl ChooseGroup = new FrmGroupofDjBl(_ob); int orderNum = 0; int.TryParse(ugr.Cells["Ordernum"].Value.ToString(), out orderNum); ChooseGroup.DesginKey = ugr.Cells["DesginKey"].Value.ToString(); ChooseGroup.GroupNum = ugr.Cells["BlGroupNum"].Value.ToString(); ChooseGroup.OrdLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString(); ChooseGroup.ShowDialog(); //判断是否需要更新合同备料组 if (!ugr.Cells["BlGroupNum"].Value.ToString().Equals(ChooseGroup.GroupNum)) { try { ArrayList parms = new ArrayList(); ugr.Cells["BlGroupNum"].Value = ChooseGroup.GroupNum; parms.Add(ugr.Cells["BlGroupNum"].Value.ToString()); parms.Add(ugr.Cells["OrdLnDlyPk"].Value.ToString()); ServerHelper.SetData("com.steering.pss.plnsaleord.order.CorePlnOrdJgDjDeal.updateDjBlGroup", new object[] { parms }, _ob); } catch (Exception ex) { if (!(ex is MESException)) { MessageBox.Show(ex.Message); } } } if (ChooseGroup.IsCreatOk) { ugr.Cells["DjblReqIsOk"].Value = "是"; DoQuery(GetQueryCondition()); } } } private void ultraGridJgOrd_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridJgOrd.ActiveRow; if (ugr == null) { return; } ultraGridSaleOrder.UpdateData(); IQueryable uRows = ultraGridSaleOrder.Rows.AsQueryable().Where( " OrdLnDlyPk = '" + ugr.Cells["ORD_LN_DLY_PK"].Value.ToString() + "'"); ultraGridSaleOrder.ActiveRow = uRows.First(); } private void ultraGridSaleOrder_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridSaleOrder.ActiveRow; if (ugr == null) { return; } string orderNo = ugr.Cells["OrderNo"].Value.ToString(); string orderSeq = ugr.Cells["OrderSeq"].Value.ToString(); string deliveryNo = ugr.Cells["DeliveryNo"].Value.ToString(); IEnumerable ugrs = ultraGridBl.Rows.Where(a => a.Cells["OrderNo"].Value.ToString().Equals(orderNo) && a.Cells["OrderSeq"].Value.ToString().Equals(orderSeq) && a.Cells["DeliveryNo"].Value.ToString().Equals(deliveryNo)); foreach (UltraGridRow uRow in this.ultraGridBl.Rows) { if (ugrs.Contains(uRow)) { uRow.Appearance.ForeColor = System.Drawing.Color.DarkBlue; } else { uRow.Appearance.ForeColor = System.Drawing.Color.Black; } } if (ugrs.Count() > 0) { UltraGridRow ugrbl = ultraGridBl.ActiveRow; if (ugrbl == null) { return; } if (!ugrs.Contains(ugrbl)) { ultraGridBl.ActiveRow = ugrs.First(); } } ultraGridJgOrd.UpdateData(); IQueryable uRows = ultraGridJgOrd.Rows.AsQueryable().Where( " ORD_LN_DLY_PK = '" + ugr.Cells["OrdLnDlyPk"].Value.ToString() + "'"); foreach (UltraGridRow uRow in ultraGridJgOrd.Rows) { if (uRows.Contains(uRow)) { uRow.Appearance.ForeColor = System.Drawing.Color.DarkBlue; } else { uRow.Appearance.ForeColor = System.Drawing.Color.Black; } } if (uRows.Count() > 0) { UltraGridRow ugrJg = ultraGridJgOrd.ActiveRow; if (ugrJg == null) { return; } if (!uRows.Contains(ugrJg)) { ultraGridJgOrd.ActiveRow = uRows.First(); } } } private void ultraGridBl_AfterRowActivate(object sender, EventArgs e) { UltraGridRow ugr = ultraGridBl.ActiveRow; if (ugr == null) { return; } string orderNo = ugr.Cells["OrderNo"].Value.ToString(); string orderSeq = ugr.Cells["OrderSeq"].Value.ToString(); string deliveryNo = ugr.Cells["DeliveryNo"].Value.ToString(); ultraGridSaleOrder.UpdateData(); IEnumerable uRows = ultraGridSaleOrder.Rows.Where(a => a.Cells["OrderNo"].Value.ToString().Equals(orderNo) && a.Cells["OrderSeq"].Value.ToString().Equals(orderSeq) && a.Cells["DeliveryNo"].Value.ToString().Equals(deliveryNo)); ultraGridSaleOrder.ActiveRow = uRows.First(); } public void DoExport() { if(inNum==0||inNum==1){ GridHelper.ulGridToExcel(ultraGridSaleOrder, "销售合同"); } else if (inNum == 2) { GridHelper.ulGridToExcel(ultraGridBl, "短接备料需求"); } } private void ultraGridSaleOrder_Click(object sender, EventArgs e) { inNum = 1; } private void ultraGridSaleOrder_ClickCell(object sender, ClickCellEventArgs e) { inNum = 1; } private void ultraGridBl_Click(object sender, EventArgs e) { inNum = 2; } private void ultraGridBl_ClickCell(object sender, ClickCellEventArgs e) { inNum = 2; } } }