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 Infragistics.Win; using CoreFS.CA06; using Newtonsoft.Json; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; using System.Collections; using Core.Mes.Client.Comm; using Core.Mes.Client.Comm.Tool; using com.steering.pss.plnsaleord.order.model; using com.steering.pss.plnsaleord.ordAmCal.model; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.PopupWindow; namespace Core.StlMes.Client.PlnSaleOrd { public partial class FrmConfirmCraft : FrmBase { public FrmConfirmCraft() { InitializeComponent(); System.Threading.Thread t = new System.Threading.Thread(setGridColunmName); t.Start(); } private void setGridColunmName() { System.Threading.Thread.Sleep(3000); if (!this.IsDisposed) { Init(); } } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": //查询 DoQuery(GetQueryCondition()); break; case "ConfirmCraft":// 替换工艺 DoConfirmCraft(); break; case "RefresCraft":// 刷新工艺 DoRefresCraft(); break; case "Iussed"://下发 DoIussed(); break; case "ConcelIussed":// 取消下发 DoConcelIussed(); break; case "LookCraftFile"://查看工艺文件 if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { DoLookCraftFile(); } else { comOrdExportCtrl1.DoLookCraftFile(this.ob); } break; case "TechOrderLine": // if (ultraTabControl1.SelectedTab == ultraTabControl1.Tabs[0]) { TechOrderLine(); } else { comOrdExportCtrl1.TechOrderLine(); } break; case "ExportProc": PlanComm.Export(ref ultraGridSaleOrderProc, "计划" + DateTime.Now.ToString("yyyyMMdd")); break; case "QueryExp"://查询下发合同信息 comOrdExportCtrl1.DoQueryExp(); break; case "Export": //导出 comOrdExportCtrl1.DoExport(); break; case "GridExport": //按Grid导出 comOrdExportCtrl1.DoGridExport(); break; case "RefresDate"://刷新加载数据 RefresDate(); DoQuery(GetQueryCondition()); break; case "ModifyBaseMlPl": DoModifyBaseMlPl(); break; case "UpdateMonth"://修改排产月份 UpdateMonth(); break; case "BreakUp"://拆分 doBreakUp(); break; case "Merge"://合并 doMerge(); break; case "Close": //关闭 this.Close(); break; } } private void FrmConfirmCraft_Load(object sender, EventArgs e) { comOrdExportCtrl1.ComBLL(this.ob); comOrdExportCtrl1.UltraTextAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMM"); comOrdExportCtrl1.CheckBoxAcceptNoexport.Checked = true; comOrdExportCtrl1.UltraDateTimeDELVRY_EDATEFrom.DateTime = DateTime.Now.AddMonths(-1); comOrdExportCtrl1.UltraDateTimeDELVRY_EDATETo.DateTime = DateTime.Now; comQueryPanelSource1.checkBoxIsConfirm.Visible = true; comQueryPanelSource1.checkBoxIsConfirm.Checked = false; comQueryPanelSource1.checkBoxIsConfirm.Text = "待变更工艺"; comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("1", "已接收"); comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("2", "已下发"); comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("3", "生产中"); comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("4", "生产完成"); comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Items.Add("5", "缴库完毕"); comQueryPanelSource1.ctrlForQueryPORDERSTATUS.SelectedIndex = 0; comQueryPanelSource1.ultraTextEditorAcceptNo.Value = "X" + DateTime.Now.ToString("yyyyMMdd"); Init(); this.IsLoadUserView = true; } /// /// 刷新 /// private void RefresDate() { } private void Init() { comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent = comOrdExportCtrl1.ultraFileLook; comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; PlanComm.setGridDigitalCol(comOrdExportCtrl1.ultraGridExport.DisplayLayout.Bands[0], 5, 2, "RANGE_MIN", "RANGE_MAX", "OUTDIAMETER", "WALLTHICK"); EntityHelper.ShowGridCaption(ultraGridSaleOrderProc.DisplayLayout.Bands[0]); ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].EditorComponent = ultraFileLook; ultraGridSaleOrderProc.DisplayLayout.Bands[0].Columns["OrderAddDesc"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; PlanComm.setGridActivation(this.ultraGridSaleOrderProc.DisplayLayout.Bands[0], "CHC", "RollMonth"); PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3, "OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "Lengthmax", "Lengthmin", "PlanPMainMin", "AimWtEnd", "WeightJg"); PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 2, "Outdiameter", "Wallthick", "TotLenOneP", "HeightNkMin", "HeightNkMax", "LenToendMin", "LenToendMax", "LengthJg", "DimaterYlg", "HeightYlg", "LenRollMin", "LenRollMax", "HeightOrdMax", "HeightOrdMin", "AimWallthick", "RollLength", "ShrtLenRato", "LongLenRato", "AimOutdiameter", "FeedRate", "Coefficient", "CoefficientMin", "CheckJVal"); PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 3, "AimLenEnd", "AimLenRoll", "SiglLen", "EndlenSpecstd", "DifrncLenMax", "AvgLenMin", "Longest", "Shortest", "ZOrderweight"); PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 5, 0, "PlanNumD", "planNumBegin", "CutNumP", "ZOrdernum"); PlanComm.setGridDigitalCol(ultraGridSaleOrderProc.DisplayLayout.Bands[0], 3, 6, "WeightPerM", "WeightKzM"); PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 0, "PlanNumD"); PlanComm.setGridSummarySet(ultraGridSaleOrderProc, 3, "OrderQtyD", "PlanWtD", "FinishWt", "planWtBegin", "PlanPMain", "PlanPMainMin"); } /// /// 获取查询条件信息 /// /// 查询条件信息 private ArrayList GetQueryCondition() { ArrayList ary = new ArrayList(); string strRollmonth = ""; string strAcceptNo = "";//接收批次号 string strOrderNo = ""; //合同号 string strOrderStatus = ""; //合同状态 string haveJg = ""; //是否有接箍 string haveDj = ""; //是否有短节 string isGpOrder = ""; //是否是管坯合同 string ordSource = "";//合同来源 if (comQueryPanelSource1.checkBoxHvJg.Checked) { haveJg = "1"; } if (comQueryPanelSource1.checkBoxHvDj.Checked) { haveDj = "1"; } if (comQueryPanelSource1.checkBoxisGp.Checked) { isGpOrder = "1"; } if (comQueryPanelSource1.checkBoxAcceptNo.Checked) { strAcceptNo = comQueryPanelSource1.ultraTextEditorAcceptNo.Text.Trim(); } if (comQueryPanelSource1.checkBoxForReqORDER_NO.Checked) { strOrderNo = comQueryPanelSource1.ctrlForQueryORDER_NO.Text.Trim(); } if (comQueryPanelSource1.checkBoxForReqPORDERSTATUS.Checked) { strOrderStatus = comQueryPanelSource1.ctrlForQueryPORDERSTATUS.Value.ToString(); } if (comQueryPanelSource1.checkBoxRollMonth.Checked) { strRollmonth = comQueryPanelSource1.ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM"); } if (comQueryPanelSource1.checkBoxOrdSource.Checked) { ordSource = comQueryPanelSource1.ultraComboOrdSource.Value.ToString(); } ary.Add(strRollmonth); ary.Add(strAcceptNo); ary.Add(strOrderNo); ary.Add(strOrderStatus); ary.Add(haveJg); ary.Add(haveJg); ary.Add(haveDj); ary.Add(haveDj); ary.Add(isGpOrder); ary.Add(isGpOrder); ary.Add(ordSource); return ary; } /// /// 查询 /// private void DoQuery(ArrayList ary) { bool isConfirm = comQueryPanelSource1.checkBoxIsConfirm.Checked; string strFinish = ""; if (this.comQueryPanelSource1.checkBoxFinish.Checked) { strFinish = comQueryPanelSource1.ultraComboFinishEditor.Value.ToString(); } slmSaleOrderEntitybindingSource.DataSource = EntityHelper.GetData( "com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleOrder", new object[] { ary, strFinish, isConfirm,this.CustomInfo.ToString2() }, this.ob); foreach (UltraGridRow uRow in this.ultraGridSaleOrderProc.Rows) { if (uRow.Cells["CraftRenewSt"].Value.ToString().Trim().Equals("待替换")) { uRow.Appearance.BackColor = Color.FromArgb(255, 220, 190); } } } /// /// 确认替换新工艺 /// private void DoConfirmCraft() { try { int defailNum = 0; string messageErr = ""; ultraGridSaleOrderProc.UpdateData(); ArrayList list = new ArrayList(); ArrayList listLog = new ArrayList(); IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { //查询合同状态 DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.querySaleProcStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { defailNum++; continue; } if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("4") < 0) { double outdiameter = 0;///外径 double wallthick = 0; //壁厚 double.TryParse(uRow.Cells["Wallthick"].Value.ToString(), out wallthick); string outsStlPipeFl = dtStatus.Rows[0]["OUTS_STL_PIPE_FL"].ToString(); if (!double.TryParse(uRow.Cells["Outdiameter"].Value.ToString(), out outdiameter)) { if (messageErr.Equals("")) { messageErr = "交货行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "外径有误,请核对合同信息!"; } defailNum++; continue; } PlnSaleordProcEntity ordProcEntity = new PlnSaleordProcEntity(); PlnSaleordCrfEditLogEntity crfEditLog = new PlnSaleordCrfEditLogEntity(); ordProcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); ordProcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString(); ordProcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString(); if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals( dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString())) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "没有新的工艺!"; defailNum++; continue; } DataTable dtCraft = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.queryCraftDesign", new object[] { uRow.Cells["OrdLnPk"].Value.ToString(), dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString() }, this.ob); if (dtCraft == null || dtCraft.Rows.Count <= 0) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "没有找到新工艺的信息!"; defailNum++; continue; } string desginKey = dtCraft.Rows[0]["DESGIN_KEY"].ToString();//新的质量设计 if (desginKey.Equals("")) { messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "新的工艺没有经过工艺制定!"; defailNum++; continue; } string mscPline = dtStatus.Rows[0]["INDEX_SEQ"].ToString();//旧的制程 string bom = dtStatus.Rows[0]["BOM"].ToString();//旧的BOM string dPline = dtStatus.Rows[0]["GROUP_ROLL"].ToString();//旧的产线 ordProcEntity.DIsOk = dtStatus.Rows[0]["D_IS_OK"].ToString(); ordProcEntity.EIsOk = dtStatus.Rows[0]["E_IS_OK"].ToString(); ordProcEntity.GradecodeIsOk = dtStatus.Rows[0]["GRADECODE_IS_OK"].ToString(); crfEditLog.CraftSeqNew = dtStatus.Rows[0]["CRAFT_SEQ_NEW"].ToString(); crfEditLog.CraftSeqOld = dtStatus.Rows[0]["CRAFT_SEQ"].ToString(); crfEditLog.CreateName = UserInfo.GetUserName(); crfEditLog.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); crfEditLog.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString(); listLog.Add(crfEditLog); if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals(desginKey) || !dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1")) { list.Add(ordProcEntity); } else { OutOrdParamEntity outOrdParam = new OutOrdParamEntity(); InOrdParamEntity inOrdParam = new InOrdParamEntity(); PlnGetOrdAmount ordAmountCal = new PlnGetOrdAmount(this.ob); DateTime date = new DateTime(); string errMessage = ""; double putRate = 1; if (DateTime.TryParse(dtStatus.Rows[0]["ROLL_MONTH"].ToString(), out date)) { //投料率 putRate = FrmPlnSaleOrder.queryPutRate(date.Year, date.Month, this.ob); } #region 新的质量设计下的制程 DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryDesginPl", new object[] { desginKey }, this.ob); if (dtDegnPl != null && dtDegnPl.Rows.Count > 0) { if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", mscPline)) { //新的制程号 mscPline = dtDegnPl.Rows[0]["MSC_PLINE"].ToString(); ordProcEntity.IndexSeq = dtDegnPl.Rows[0]["MSC_PLINE"].ToString(); ordProcEntity.ProcessSeq = dtDegnPl.Rows[0]["WHOLE_BACKLOG"].ToString(); ordProcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString(); } else { //沿用旧的制程号 dtDegnPl.DefaultView.RowFilter = "MSC_PLINE='" + mscPline + "'"; DataTable dt = dtDegnPl.DefaultView.ToTable(); if (dt != null && dt.Rows.Count > 0) { mscPline = dt.Rows[0]["MSC_PLINE"].ToString(); ordProcEntity.IndexSeq = dt.Rows[0]["MSC_PLINE"].ToString(); ordProcEntity.ProcessSeq = dt.Rows[0]["WHOLE_BACKLOG"].ToString(); ordProcEntity.GradecodeAll = dt.Rows[0]["GRADENAME"].ToString(); } } } else { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到工艺向下的制程。"; defailNum++; continue; } #endregion #region 根据制程查询全程途经工序 ArrayList param = new ArrayList(); param.Add(desginKey); param.Add(mscPline); DataTable dtProcess = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryMscplPrc", new object[] { param }, this.ob); if (dtProcess != null && dtProcess.Rows.Count > 0) { string endgxCode = ordProcEntity.ProcessSeq.Substring(ordProcEntity.ProcessSeq.Length - 1); string gprocessC = ""; //加工二级工序 string fprocessC = ""; //热处理二级工序 ordProcEntity.GroupJgx = "/"; ordProcEntity.GroupRcl = "/"; ordProcEntity.BjType = "/"; foreach (DataRow dr in dtProcess.Rows) { if (dr["PROCESS_CODE"].ToString().Trim().Equals("H")) { ordProcEntity.GroupJgx = "200401"; } if (dr["PROCESS_CODE"].ToString().Trim().Equals("G")) { //经过加工工序 gprocessC = dr["PROCESS_CODE_C"].ToString(); //加工组 //string modelCode = uRow.Cells["ModelCode"].Value.ToString(); //string[] planGroups = FrmDefGroup.planGroups(desginKey, // mscPline, "G", this.ob); //if (planGroups != null) //{ // ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(planGroups, outdiameter, modelCode, this.ob); //} //else //{ // ordProcEntity.GroupJgx = FrmDefGroup.defgourpJgc(outdiameter, modelCode, this.ob); //} } if (dr["PROCESS_CODE"].ToString().Trim().Equals("F")) { //经过热处理工序 fprocessC = dr["PROCESS_CODE_C"].ToString(); ordProcEntity.ProcDescCRcl = dr["PROCESS_DESC_C"].ToString(); //热处理组 //double lengthmax = Convert.ToDouble(uRow.Cells["Lengthmax"].Value); //string modelCode = uRow.Cells["ModelCode"].Value.ToString(); //string[] planGroups = FrmDefGroup.planGroups(desginKey, // mscPline, "F", this.ob); //if (planGroups != null) //{ // ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(planGroups, outdiameter, wallthick, // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob); //} //else //{ // ordProcEntity.GroupRcl = FrmDefGroup.defgourpRcl(outdiameter, wallthick, // lengthmax, dr["PROCESS_CODE_C"].ToString(), modelCode, this.ob); //} } if (dr["PROCESS_CODE"].ToString().Trim().Equals("E")) { //经过镦拔扩工序 ordProcEntity.BjType = dr["PROCESS_DESC_C"].ToString(); } } } else { if (messageErr.Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到制程途径工序,请联系管理员。"; } defailNum++; continue; } #endregion #region BOM物料数据 //查询物料信息 //param.Clear(); //param.Add(mscPline); //param.Add(uRow.Cells["Msc"].Value.ToString()); //param.Add(uRow.Cells["MaterialNo"].Value.ToString()); //param.Add(ordProcEntity.ProcessSeq); DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom", new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), mscPline }, this.ob); if (dtBom != null && dtBom.Rows.Count > 0) { if (!PlanComm.isInDataTable(dtBom, "BOM", bom)) { bool isAvailBom = false;//是否存在可用BOM string errReason = "";//不可用原因 foreach (DataRow dr in dtBom.Rows) { #region 判断坯料的属性 string dinMaterial = ""; ///轧管投入物料(炼钢末工序产出物料) if (!dr["D_IN_MATERIAL_NO"].ToString().Equals("")) { dinMaterial = dr["D_IN_MATERIAL_NO"].ToString(); } else if (!dr["C_OUT_MATERIAL_NO"].ToString().Equals("")) { dinMaterial = dr["C_OUT_MATERIAL_NO"].ToString(); } else if (!dr["B_OUT_MATERIAL_NO"].ToString().Equals("")) { dinMaterial = dr["B_OUT_MATERIAL_NO"].ToString(); } else { dinMaterial = dr["A_OUT_MATERIAL_NO"].ToString(); } ordProcEntity.StuffProperty = PlnSaleOrderBase.stuffProperty(dinMaterial); #endregion //轧管去向 ordProcEntity.Abc = PlnSaleOrderBase.getPlnOrdZgAbc(dr["WHOLE_BACKLOG"].ToString(), dr["WHOLE_BACKLOG_DESC"].ToString()); bom = dr["BOM"].ToString(); ordProcEntity.Bom = dr["BOM"].ToString(); ordProcEntity.Gradecode = dr["GRADECODE"].ToString(); if (ordProcEntity.ProcessSeq.Contains("E")) { ordProcEntity.EIsOk = "0"; } else { ordProcEntity.EIsOk = "2"; } ordProcEntity.GradecodeIsOk = "0"; ordProcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString(); ordProcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString(); ordProcEntity.DimaterYlg = dr["DIMATER"].ToString(); ordProcEntity.HeightYlg = dr["HEIGHT"].ToString(); ordProcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey, mscPline, dr["BOM"].ToString(), this.ob); ordProcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey, mscPline, dr["BOM"].ToString(), this.ob); #region 默认轧管产线 ArrayList paramPline = new ArrayList(); paramPline.Add(dr["D_IN_MATERIAL_NO"].ToString()); paramPline.Add(dr["D_OUT_MATERIAL_NO"].ToString()); paramPline.Add(desginKey); paramPline.Add(mscPline); paramPline.Add(uRow.Cells["FinalUser"].Value.ToString()); paramPline.Add(uRow.Cells["Produccode"].Value.ToString()); DataTable dtDpl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getBomMaterialDpl", new object[] { paramPline }, this.ob); if (dtDpl != null && dtDpl.Rows.Count > 0) { if (!PlanComm.isInDataTable(dtDpl, "PLINE_CODE", dPline)) { ordProcEntity.DIsOk = "0"; //如果存在ASSEL机组,优选ASSEL机组 if (PlanComm.isInDataTable(dtDpl, "PLINE_CODE", "C012")) { if (FrmPlnSaleOrder.queryAsselFl(uRow.Cells["OrdLnPk"].Value.ToString(), this.ob)) { ordProcEntity.GroupRoll = "C012"; } else { bool isPline = false; foreach (DataRow drPine in dtDpl.Rows) { if (!drPine["PLINE_CODE"].ToString().Equals("C012")) { isPline = true; ordProcEntity.GroupRoll = drPine["PLINE_CODE"].ToString(); break; } } if (!isPline) { ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString(); } } } else { ordProcEntity.GroupRoll = dtDpl.Rows[0]["PLINE_CODE"].ToString(); } dPline = ordProcEntity.GroupRoll; } } else if (ordProcEntity.ProcessSeq.Contains("D")) { errReason = "未找到可用轧管机组(BOM:" + dr["BOM"].ToString() + ")。"; continue; } #endregion if (ordProcEntity.ProcessSeq.Contains("D") && !dPline.Trim().Equals("C072") && !outsStlPipeFl.Equals("121903") && !outsStlPipeFl.Equals("121902")) { #region 合同量转换 inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, mscPline, uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(), dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate); if (!ordAmountCal.isRightParam(inOrdParam, desginKey, dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage)) { errReason = errMessage; continue; } ordAmountCal.InEnity = inOrdParam; outOrdParam = ordAmountCal.getOrdAmount(); if (outOrdParam.ErrCode == -1) { errReason = "合同量转换出错(" + outOrdParam.ErrMessage + ")。"; continue; } #endregion } isAvailBom = true; break; } if (!isAvailBom) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + errReason; defailNum++; continue; } } } else { if (messageErr.Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到物料信息,请查看工艺制定。"; } defailNum++; continue; } #endregion #region 重算合同量 if (ordProcEntity.ProcessSeq.Contains("D") && !dPline.Trim().Equals("C072") && !outsStlPipeFl.Equals("121903") && !outsStlPipeFl.Equals("121902")) { inOrdParam = ordAmountCal.getInOrdPlnParam(desginKey, mscPline, uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString(), dPline, bom, dtStatus.Rows[0]["CODE_JG"].ToString(), putRate); if (!ordAmountCal.isRightParam(inOrdParam, desginKey, dtStatus.Rows[0]["CODE_JG"].ToString(), bom, dPline, out errMessage)) { messageErr = errMessage; defailNum++; continue; } ordAmountCal.InEnity = inOrdParam; outOrdParam = ordAmountCal.getOrdAmount(); if (outOrdParam.ErrCode == -1) { messageErr = "合同量转换出错(" + outOrdParam.ErrMessage + ")。"; defailNum++; continue; } ordProcEntity.WeightPerM = outOrdParam.WeightMi.ToString(); ordProcEntity.PlanWtD = outOrdParam.WeightInA.ToString(); ordProcEntity.PlanNumD = outOrdParam.PlanNum.ToString(); ordProcEntity.AimLenRoll = outOrdParam.AimlengthZg.ToString(); ordProcEntity.AimLenEnd = outOrdParam.AimLength.ToString(); ordProcEntity.PlanPMain = outOrdParam.WeightPc.ToString(); ordProcEntity.PlanTotLenD = (outOrdParam.PlanNum * outOrdParam.AimLength).ToString(); ordProcEntity.TotLenOneP = outOrdParam.TotLenOneP.ToString(); ordProcEntity.CutNumP = outOrdParam.CutNumP.ToString(); ordProcEntity.RollLength = outOrdParam.RollLength.ToString(); ordProcEntity.AimWallthick = outOrdParam.AimWallthick.ToString(); ordProcEntity.LenRollMax = outOrdParam.LenRollMax.ToString(); ordProcEntity.LenRollMin = outOrdParam.LenRollMin.ToString(); } #endregion list.Add(ordProcEntity); } } else { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "已生产完毕,不能改工艺!"; defailNum++; 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.CoreConfirmCraft"; ccp.MethodName = "updateCraftVersion"; ccp.ServerParams = new object[] { list, listLog }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode != -1) { if (defailNum == 0) { MessageUtil.ShowTips("替换成功,共" + list.Count + "条。"); } else { MessageUtil.ShowTips(list.Count + "条替换成功," + defailNum + "条替换失败。\n" + messageErr); } } else { MessageUtil.ShowTips("替换失败,共" + list.Count + "条。"); } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageUtil.ShowError(ex.Message); } } DoQuery(GetQueryCondition()); } /// /// 下发 /// private void DoIussed() { try { int defailNum = 0; string messageErr = ""; ultraGridSaleOrderProc.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { //if (IsLockCraft(uRow.Cells["OrdLnPk"].Value.ToString())) //{ // messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() // + "有工艺文件处于锁定状态,不能下发!"; // defailNum++; // continue; //} if (uRow.Cells["OrderSource"].Text.Equals("销售合同")) { if (uRow.Cells["OrderNoSeq"].Value != null) { int count = 0; foreach (UltraGridRow uRows in checkRows) { if (uRows.Cells["OrderNoSeq"].Value != null) { if (uRow.Cells["OrderNoSeq"].Value.ToString().Equals(uRows.Cells["OrderNoSeq"].Value.ToString())) { count++; } } } if (count > 1) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("排产分类为【销售合同】的合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "有重复,不能同时下发!"); return; } } } //查询合同状态 DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { defailNum++; continue; } if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1")) { DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryLineLocked", new object[] { uRow.Cells["OrdLnPk"].Value.ToString(), }, this.ob); if (dt == null || dt.Rows.Count <= 0) { defailNum++; continue; } if (!dt.Rows[0][0].ToString().Trim().Equals("0")) { messageErr = "合同行:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "处于销售变更冻结中!"; defailNum++; continue; } if (dtStatus.Rows[0]["PLAN_IS_OK"].ToString().Equals("0")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "计划未确认!"; defailNum++; continue; } if (dtStatus.Rows[0]["CRAFT_SEQ"].ToString().Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + uRow.Cells["PlnDivideId"].Value.ToString() + "无工艺!"; defailNum++; continue; } if (!dtStatus.Rows[0]["VALIDFLAG"].ToString().Trim().Equals("1")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + uRow.Cells["PlnDivideId"].Value.ToString() + "使用的不是有效工艺或工艺文件未上传!"; defailNum++; continue; } if (dtStatus.Rows[0]["E_IS_OK"].ToString().Equals("0") && !dtStatus.Rows[0]["BJ_TYPE"].ToString().Equals("镦粗")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "镦拔扩未确认!"; defailNum++; continue; } if (dtStatus.Rows[0]["INDEX_SEQ"].ToString().Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + uRow.Cells["PlnDivideId"].Value.ToString() + "无制程!"; defailNum++; continue; } if (dtStatus.Rows[0]["BOM"].ToString().Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + uRow.Cells["PlnDivideId"].Value.ToString() + "无BOM!"; defailNum++; continue; } if (dtStatus.Rows[0]["DESGIN_KEY"].ToString().Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到工艺制定数据,请制定工艺!"; defailNum++; continue; } ArrayList param = new ArrayList(); param.Add(UserInfo.GetUserName()); param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); param.Add(uRow.Cells["PlnDivideId"].Value.ToString()); param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString()); param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString()); param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString()); param.Add(uRow.Cells["OrderNoSeq"].Value.ToString()); param.Add(uRow.Cells["OrderSource"].Value.ToString()); list.Add(param); } else { if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("1") > 0) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发过了!"; } defailNum++; continue; } } if (list.Count <= 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条下发成功," + defailNum + "条下发失败。\n" + messageErr); return; } string flag = "0"; if (comQueryPanelSource1.checkBox1.Checked) { flag = "1"; } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft"; ccp.MethodName = "iussedOrder"; ccp.ServerParams = new object[] { list, flag }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); int suceedNum = list.Count; if (ccp.ReturnCode != -1) { if (ccp.ReturnObject != null && ccp.ReturnObject.GetType().FullName.Trim().Equals("System.Object[]")) { object[] message = (object[])ccp.ReturnObject; defailNum += (int)message[0]; suceedNum = suceedNum - (int)message[0]; messageErr = message[1].ToString(); } MessageUtil.ShowTips(suceedNum + "条下发成功," + defailNum + "条下发失败。\n" + messageErr); } if (suceedNum > 0) { DoQuery(GetQueryCondition()); } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageUtil.ShowError(ex.Message); } } } /// /// 刷新工艺 /// private void DoRefresCraft() { int defailNum = 0; string messageErr = ""; ArrayList list = new ArrayList(); ultraGridSaleOrderProc.UpdateData(); IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } //PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { //查询合同状态 DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectPlnOrderStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { defailNum++; continue; } if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("1")) { ArrayList param = new ArrayList(); PlnSaleordProcEntity orderPrcEntity = new PlnSaleordProcEntity(); string ordLnPk = uRow.Cells["OrdLnPk"].Value.ToString(); string desginKey = ""; string dinMaterialNo = dtStatus.Rows[0]["D_IN_MATERIAL_NO"].ToString(); string doutMaterialNo = dtStatus.Rows[0]["D_OUT_MATERIAL_NO"].ToString(); orderPrcEntity.CraftSeq = dtStatus.Rows[0]["CRAFT_SEQ"].ToString(); orderPrcEntity.IndexSeq = dtStatus.Rows[0]["INDEX_SEQ"].ToString(); orderPrcEntity.ProcessSeq = dtStatus.Rows[0]["PROCESS_SEQ"].ToString(); orderPrcEntity.FIsOk = dtStatus.Rows[0]["F_IS_OK"].ToString(); orderPrcEntity.GroupRcl = dtStatus.Rows[0]["GROUP_RCL"].ToString(); orderPrcEntity.Bom = dtStatus.Rows[0]["BOM"].ToString(); orderPrcEntity.GroupRoll = dtStatus.Rows[0]["GROUP_ROLL"].ToString(); orderPrcEntity.Gradecode = dtStatus.Rows[0]["GRADECODE"].ToString(); orderPrcEntity.OrdLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); orderPrcEntity.PlnDivideId = uRow.Cells["PlnDivideId"].Value.ToString(); #region 对比制程有无变化 DataTable dtDegnPl = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreConfirmCraft.selectCraftDesgin", new object[] { ordLnPk, orderPrcEntity.CraftSeq }, this.ob); if (dtDegnPl != null && dtDegnPl.Rows.Count > 0) { DataRow dr = null; if (!PlanComm.isInDataTable(dtDegnPl, "MSC_PLINE", orderPrcEntity.IndexSeq)) { dr = dtDegnPl.Rows[0]; } else { dtDegnPl.DefaultView.RowFilter = "MSC_PLINE = '" + orderPrcEntity.IndexSeq + "'"; dr = dtDegnPl.DefaultView.ToTable().Rows[0]; } desginKey = dr["DESGIN_KEY"].ToString(); orderPrcEntity.IndexSeq = dr["MSC_PLINE"].ToString(); if (!dr["WHOLE_BACKLOG"].ToString().Equals(orderPrcEntity.ProcessSeq)) { orderPrcEntity.ProcessSeq = dr["WHOLE_BACKLOG"].ToString(); if (dr["WHOLE_BACKLOG"].ToString().Contains('F')) { if (orderPrcEntity.FIsOk.Equals("2")) { orderPrcEntity.FIsOk = "0"; orderPrcEntity.GroupRcl = ""; } } else { orderPrcEntity.FIsOk = "2"; orderPrcEntity.GroupRcl = "/"; } } orderPrcEntity.GradecodeAll = dtDegnPl.Rows[0]["GRADENAME"].ToString(); if (orderPrcEntity.ProcessSeq.Equals("")) { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到制程经过的工序。"; defailNum++; continue; } } else { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到工艺下的制程信息,请联系工艺人员。"; defailNum++; continue; } #endregion #region 对比BOM物料有无变化 //param.Clear(); //param.Add(orderPrcEntity.IndexSeq); //param.Add(uRow.Cells["Msc"].Value.ToString()); //param.Add(uRow.Cells["MaterialNo"].Value.ToString()); //param.Add(orderPrcEntity.ProcessSeq); DataTable dtBom = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreOrderDesignBom.getOrdLineMscBom", new object[] { desginKey, uRow.Cells["Msc"].Value.ToString(), orderPrcEntity.IndexSeq }, this.ob); if (dtBom != null && dtBom.Rows.Count > 0) { DataRow dr = null; if (!PlanComm.isInDataTable(dtBom, "BOM", orderPrcEntity.Bom)) { dtBom.DefaultView.RowFilter = "D_IN_MATERIAL_NO = '" + dinMaterialNo + "'"; DataTable dt1 = dtBom.DefaultView.ToTable(); if (dt1.Rows.Count > 0) { //有相同轧管规格的BOM dt1.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'"; if (dt1.DefaultView.ToTable().Rows.Count > 0) { //有相同钢种的BOM dr = dt1.DefaultView.ToTable().Rows[0]; } else { dr = dt1.Rows[0]; } } else { dtBom.DefaultView.RowFilter = "GRADECODE = '" + orderPrcEntity.Gradecode + "'"; if (dtBom.DefaultView.ToTable().Rows.Count > 0) { dr = dtBom.DefaultView.ToTable().Rows[0]; } else { dr = dtBom.Rows[0]; } } } else { dtBom.DefaultView.RowFilter = "BOM = '" + orderPrcEntity.Bom + "'"; dr = dtBom.DefaultView.ToTable().Rows[0]; } orderPrcEntity.Bom = dr["BOM"].ToString(); orderPrcEntity.GroupRollAll = dr["D_PLINE"].ToString(); orderPrcEntity.Gradecode = dr["GRADECODE"].ToString(); orderPrcEntity.EInMaterialDesc = dr["E_IN_MATERIAL_DESC"].ToString(); orderPrcEntity.EInMaterialNo = dr["E_IN_MATERIAL_NO"].ToString(); orderPrcEntity.DimaterYlg = dr["DIMATER"].ToString(); orderPrcEntity.HeightYlg = dr["HEIGHT"].ToString(); orderPrcEntity.GroupJgx = FrmDefGroup.DefJgxGourp(desginKey, orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob); orderPrcEntity.GroupRcl = FrmDefGroup.DefRclGourp(desginKey, orderPrcEntity.IndexSeq, dr["BOM"].ToString(), this.ob); } else { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "未找到制程" + orderPrcEntity.IndexSeq + "向下的物料信息。"; defailNum++; continue; } #endregion list.Add(orderPrcEntity); } else { messageErr = "合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "已经下发了!"; defailNum++; 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.CoreConfirmCraft"; ccp.MethodName = "updateRefresCraft"; ccp.ServerParams = new object[] { list }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); //PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode != -1) { if (defailNum == 0) { MessageUtil.ShowTips("刷新成功,共" + list.Count + "条。"); } else { MessageUtil.ShowTips(list.Count + "条刷新成功," + defailNum + "条刷新失败。\n" + messageErr); } } } /// /// 取消下发 /// private void DoConcelIussed() { try { ArrayList messageErr = new ArrayList(); ultraGridSaleOrderProc.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } PlanComm.WaitFromOpen(this.Cursor); foreach (UltraGridRow uRow in checkRows) { DataTable dtStatus = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.querySaleProcStatus", new object[] { uRow.Cells["OrdLnDlyPk"].Value.ToString(), uRow.Cells["PlnDivideId"].Value.ToString() }, this.ob); if (dtStatus == null || dtStatus.Rows.Count <= 0) { messageErr.Add(""); continue; } if (dtStatus.Rows[0]["PLANSTATUS"].ToString().Equals("2")) { ArrayList param = new ArrayList(); param.Add(UserInfo.GetUserName()); param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); param.Add(uRow.Cells["PlnDivideId"].Value.ToString()); param.Add(dtStatus.Rows[0]["ORDER_UNIT"].ToString()); param.Add(dtStatus.Rows[0]["PLAN_WT_D"].ToString()); param.Add(dtStatus.Rows[0]["PLAN_NUM_D"].ToString()); list.Add(param); } else { if (dtStatus.Rows[0]["PLANSTATUS"].ToString().CompareTo("2") > 0) { messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "已经生产了!"); } else { messageErr.Add("合同:" + uRow.Cells["OrderNoSeq"].Value.ToString() + "/" + uRow.Cells["DeliveryNo"].Value.ToString() + "还未下发!"); } continue; } } if (list.Count == 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]); return; } CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft"; ccp.MethodName = "canCelIussed"; ccp.ServerParams = new object[] { list,UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode != -1) { int suceed = list.Count; if (ccp.ReturnObject != null) { List message = (List)JsonConvert.DeserializeObject( ccp.ReturnObject.ToString(), typeof(List)); foreach (string reason in message) { messageErr.Add(reason); suceed--; } } if (messageErr.Count > 0) { MessageUtil.ShowTips(suceed + "条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]); } else { MessageUtil.ShowTips(suceed + "条撤消成功,0条撤消失败。"); } } } catch (Exception ex) { PlanComm.WaitFromColse(this.Cursor); if (!(ex is MESException)) { MessageUtil.ShowError(ex.Message); } } DoQuery(GetQueryCondition()); } /// ///排产合同拆分 /// private void doBreakUp() { ultraGridSaleOrderProc.UpdateData(); IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选排产合同!"); return; } if (checkRows.Count() > 1) { MessageUtil.ShowWarning("不能一次性拆分多条合同!"); return; } int num = 0; double wgt = 0; double ratio = 0; ArrayList jsonList = new ArrayList(); foreach (UltraGridRow uRow in checkRows) { ArrayList list = new ArrayList(); if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收")) { MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!"); return; } if (!uRow.Cells["PlanWtD"].Text.Trim().Equals("")) { num = int.Parse(uRow.Cells["PlanNumD"].Value.ToString()); wgt = double.Parse(uRow.Cells["PlanWtD"].Value.ToString()); } //重量与支数比例 ratio = wgt / num; list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); list.Add(uRow.Cells["PlnDivideId"].Value.ToString()); list.Add(ratio.ToString()); jsonList.Add(list); } FrmSpitWgtSProc frmSpitWgt = new FrmSpitWgtSProc(wgt, num, ratio, ob); frmSpitWgt.ShowDialog(); double spitWgt = frmSpitWgt.AlreadySpitWgt; int spitNum = frmSpitWgt.AlreadySpitNum; if (spitWgt <= 0) { return; } if (MessageUtil.ShowYesNoAndQuestion("是否拆分?") == DialogResult.No) { return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft"; ccp.MethodName = "doBreakUp"; ccp.ServerParams = new object[] { jsonList, spitWgt.ToString(), spitNum.ToString(), this.UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("拆分成功!")) { DoQuery(GetQueryCondition()); } } /// /// 合并 /// private void doMerge() { ultraGridSaleOrderProc.UpdateData(); IQueryable checkRows = this.ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0 || checkRows.Count() == 1) { MessageUtil.ShowTips("请选择多个排产合同!"); return; } //if (checkRows.Count() > 1) //{ // MessageUtil.ShowWarning("不能一次性拆分多条合同!"); // return; //} int num = 0; double wgt = 0; double ratio = 0; ArrayList jsonList = new ArrayList(); string ordLnDlyPk = ""; string orderSource = ""; foreach (UltraGridRow uRow in checkRows) { ArrayList list = new ArrayList(); if (!uRow.Cells["Planstatus"].Text.Trim().Equals("已接收")) { MessageUtil.ShowTips("选中的合同不是已接收状态,不能拆分!"); return; } if (ordLnDlyPk.Equals("")) { ordLnDlyPk = uRow.Cells["OrdLnDlyPk"].Value.ToString(); } if (orderSource.Equals("")) { orderSource = uRow.Cells["OrderSource"].Value.ToString(); } if (!uRow.Cells["OrdLnDlyPk"].Value.ToString().Equals(ordLnDlyPk) || !uRow.Cells["OrderSource"].Value.ToString().Equals(orderSource)) { MessageUtil.ShowTips("相同合同并且合同来源也相同才能合并!"); return; } list.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); list.Add(uRow.Cells["PlnDivideId"].Value.ToString()); jsonList.Add(list); } if (MessageUtil.ShowYesNoAndQuestion("是否合并?") == DialogResult.No) { return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft"; ccp.MethodName = "doMerge"; ccp.ServerParams = new object[] { jsonList }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("合并成功!")) { DoQuery(GetQueryCondition()); } } /// /// 查看上传工艺文件 /// private void DoLookCraftFile() { UltraGridRow ugr = this.ultraGridSaleOrderProc.ActiveRow; if (ugr == null) { return; } DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath", new object[] { ugr.Cells["OrdLnDlyPk"].Value.ToString(), ugr.Cells["PlnDivideId"].Value.ToString() }, this.ob); if (dtPath != null && dtPath.Rows.Count > 0) { ArrayList listPIC = new ArrayList(); foreach (DataRow dr in dtPath.Rows) { listPIC.Add(dr["CRAFT_PATH"].ToString()); } dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC); orderAsk.Text = "查看上传工艺文件"; orderAsk.Show(); } } private void ultraTabControl1_SelectedTabChanged(object sender, Infragistics.Win.UltraWinTabControl.SelectedTabChangedEventArgs e) { if (toolMenu != null) { if (e.Tab.TabPage == ultraTabPageControlOrd) { setTab1Appearance(DefaultableBoolean.True); setTab2Appearance(DefaultableBoolean.False); } else if (e.Tab.TabPage == ultraTabPageControlExport) { setTab1Appearance(DefaultableBoolean.False); setTab2Appearance(DefaultableBoolean.True); } } } private void FrmConfirmCraft_Shown(object sender, EventArgs e) { setTab1Appearance(DefaultableBoolean.True); setTab2Appearance(DefaultableBoolean.False); } private void setTab1Appearance(DefaultableBoolean appearance) { #region tab1显示或隐藏 if (toolMenu.Toolbars[0].Tools.Exists("Query")) { toolMenu.Toolbars[0].Tools["Query"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("ConfirmCraft")) { toolMenu.Toolbars[0].Tools["ConfirmCraft"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("RefresCraft")) { toolMenu.Toolbars[0].Tools["RefresCraft"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("Iussed")) { toolMenu.Toolbars[0].Tools["Iussed"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("ConcelIussed")) { toolMenu.Toolbars[0].Tools["ConcelIussed"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("RefresDate")) { toolMenu.Toolbars[0].Tools["RefresDate"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("ModifyBaseMlPl")) { toolMenu.Toolbars[0].Tools["ModifyBaseMlPl"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("ExportProc")) { toolMenu.Toolbars[0].Tools["ExportProc"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("UpdateMonth")) { toolMenu.Toolbars[0].Tools["UpdateMonth"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("BreakUp")) { toolMenu.Toolbars[0].Tools["BreakUp"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("Merge")) { toolMenu.Toolbars[0].Tools["Merge"].InstanceProps.Visible = appearance; } #endregion } private void setTab2Appearance(DefaultableBoolean appearance) { #region tab1显示或隐藏 if (toolMenu.Toolbars[0].Tools.Exists("QueryExp")) { toolMenu.Toolbars[0].Tools["QueryExp"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("Export")) { toolMenu.Toolbars[0].Tools["Export"].InstanceProps.Visible = appearance; } if (toolMenu.Toolbars[0].Tools.Exists("GridExport")) { toolMenu.Toolbars[0].Tools["GridExport"].InstanceProps.Visible = appearance; } #endregion } /// /// 验证合同行工艺文件有没有锁定的(true- 锁定,false - 无锁定) /// /// 合同行pk /// private bool IsLockCraft(string ordLnPk) { bool isLocked = false; DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftLockFlag", new object[] { ordLnPk }, this.ob); if (dt != null && dt.Rows.Count > 0) { if (!dt.Rows[0][0].ToString().Trim().Equals("0")) { isLocked = true; } } return isLocked; } /// /// 查看附加要求贴图 /// /// /// private void ultraFileLook_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { try { UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow; if (ugr == null) { return; } string askNo = ugr.Cells["AddAskNo"].Value.ToString(); ArrayList listPIC = new ArrayList(); DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CorePlnSaleOrder.queryAddAsk", new object[] { askNo }, this.ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow dr in dt.Rows) { listPIC.Add(dr["PIC"].ToString()); } } dlgOrderAskLook orderAsk = new dlgOrderAskLook(this.ob, listPIC); orderAsk.Show(); } catch (Exception ex) { if (!(ex is MESException)) { MessageBox.Show(ex.Message); } } } private void ultraGridSaleOrderProc_AfterSelectChange(object sender, AfterSelectChangeEventArgs e) { foreach (UltraGridRow uRow in ultraGridSaleOrderProc.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { uRow.Cells["CHC"].Value = true; } } } /// /// 小时能力维护 /// private void DoModifyBaseMlPl() { UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow; if (ugr == null) { return; } string ordLnDlyPk = ugr.Cells["OrdLnDlyPk"].Value.ToString(); string plnDivideId = ugr.Cells["PlnDivideId"].Value.ToString(); FrmOrdProcessBasePl processBasePl = new FrmOrdProcessBasePl(ordLnDlyPk, plnDivideId, this.ob); processBasePl.ShowDialog(); } /// /// 合同行工艺文件 /// private void TechOrderLine() { UltraGridRow ugr = ultraGridSaleOrderProc.ActiveRow; if (ugr == null) { return; } string ordLnPk = ugr.Cells["OrdLnPk"].Value.ToString(); string designKey = ugr.Cells["DesginKey"].Value.ToString(); string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true" + "&desgin_key=" + designKey + "&lnpk=" + ordLnPk; FrmOutExcel outPut = new FrmOutExcel(url); outPut.Show(); } /// /// 修改排产月份 /// private void UpdateMonth() { try { ArrayList messageErr = new ArrayList(); ultraGridSaleOrderProc.UpdateData(); ArrayList list = new ArrayList(); IQueryable checkRows = ultraGridSaleOrderProc.Rows.AsQueryable().Where(" CHC = 'True' "); if (checkRows.Count() == 0) { MessageUtil.ShowTips("未勾选合同!"); return; } foreach (UltraGridRow uRow in checkRows) { if (uRow.Cells["RollMonth"].Value.ToString().Equals("")) { MessageUtil.ShowTips("排产月份不能为空!"); return; } ArrayList param = new ArrayList(); param.Add(uRow.Cells["OrdLnDlyPk"].Value.ToString()); param.Add(uRow.Cells["PlnDivideId"].Value.ToString()); param.Add(uRow.Cells["RollMonth"].Text.ToString().Trim()); list.Add(param); } if (list.Count == 0) { PlanComm.WaitFromColse(this.Cursor); MessageUtil.ShowTips("0条撤消成功," + messageErr.Count + "条撤消失败。\n" + messageErr[0]); return; } PlanComm.WaitFromOpen(this.Cursor); CoreClientParam ccp = new CoreClientParam(); ccp.ServerName = "com.steering.pss.plnsaleord.order.CoreConfirmCraft"; ccp.MethodName = "updateMonth"; ccp.ServerParams = new object[] { list, UserInfo.GetUserName() }; ccp = this.ExecuteNonQuery(ccp, CoreInvokeType.Internal); PlanComm.WaitFromColse(this.Cursor); if (ccp.ReturnCode == -1) return; MessageUtil.ShowTips(ccp.ReturnInfo); if (ccp.ReturnInfo.Equals("排产月份调整成功!")) { DoQuery(GetQueryCondition()); } } catch (Exception ex) { MessageUtil.ShowError("请输入正确的时间格式!"); //if (!(ex is MESException)) //{ // MessageUtil.ShowError(ex.Message); //} } } private void ultraGridSaleOrderProc_KeyUp(object sender, KeyEventArgs e) { PlanComm.setGridCopyActColumn(this.ultraGridSaleOrderProc, "CHC", e, "RollMonth"); } } }