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.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.SaleOrder.BLL; using Core.StlMes.Client.SaleOrder.Control; using CoreFS.CA06; using CoreFS.SA06; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.SaleOrder.Dialog { public partial class CraftOrdDesignFilePopup : FrmBase { private ArrayList _listOrdLnPk; private CraftFileApplyCtrl _craftFileApplyCtrl; private PlaSaleOrdProcCtrl _plaSaleOrdProcCtrl; private bool _isMultiChoice = false; public bool IsMultiChoice { get { return _isMultiChoice; } set { _isMultiChoice = value; } } private string _craftNos = ""; public string CraftNos { get { return _craftNos; } set { _craftNos = value; } } public CraftOrdDesignFilePopup() { InitializeComponent(); } public CraftOrdDesignFilePopup(ArrayList listOrdLnPk, string customInfo, OpeBase ob) { InitializeComponent(); this.ob = ob; this.CustomInfo = customInfo; this._listOrdLnPk = listOrdLnPk; craftImg.ButtonsRight.Clear(); Query(); } protected override void OnLoad(EventArgs e) { base.OnLoad(e); ultraGrid1.DisplayLayout.Override.FilterOperandStyle = FilterOperandStyle.UseColumnEditor; } private void CraftOrdDesignFilePopup_Load(object sender, EventArgs e) { if (CustomInfo == "CraftAppFile") { _craftFileApplyCtrl = new CraftFileApplyCtrl(splitContainer1.Panel2, ob); } else if (CustomInfo == "PlaOrdProc") { craftImg.ButtonsRight.Clear(); _plaSaleOrdProcCtrl = new PlaSaleOrdProcCtrl(splitContainer1.Panel2, ob, "CraftFile"); } else if (CustomInfo == "CraftQuery") { craftImg.ButtonsRight.Clear(); this.splitContainer1.Panel2Collapsed = true; this.ultraGrid1.DisplayLayout.Bands[0].Columns["CHK"].Hidden = true; ultraGrid1.DisplayLayout.Bands[0].Override.AllowUpdate = Infragistics.Win.DefaultableBoolean.False; ultraGrid1.DisplayLayout.Bands[0].Override.AllowDelete = Infragistics.Win.DefaultableBoolean.False; ckValid.Visible = true; ckValid.Checked = true; } else if (CustomInfo == "AppointCraftFile") { craftImg.ButtonsRight.Clear(); this.splitContainer1.Panel2Collapsed = true; } else if (CustomInfo == "AppointTmpCraftFile") { craftImg.ButtonsRight.Clear(); this.splitContainer1.Panel2Collapsed = true; } else if(CustomInfo == "ChoiceCraftNo") { craftImg.ButtonsRight.Clear(); this.splitContainer1.Panel2Collapsed = true; ultraToolbarsManager1.Tools["确认选择"].SharedProps.Visible = true; ultraToolbarsManager1.Tools["指定工艺文件"].SharedProps.Visible = false; } if (CustomInfo != "CraftQuery") { Query(); } } public override void ToolBar_Click(object sender, string ToolbarKey) { base.ToolBar_Click(sender, ToolbarKey); switch (ToolbarKey) { case "Query": Query(); break; case "SavePsc": SavePsc(); break; case "SetMemo": SetMemo(); break; case "DeleteCraft": DeleteCraft(); break; case "InvalidCraftFile": InvalidCraftFile("0"); break; case "ValidCraftFile": InvalidCraftFile("1"); break; case "BatchDownLoad": BatchDownLoad(); break; case "Export": GridHelper.ulGridToExcel(ultraGrid1, "工艺文件信息"); break; } } /// /// 批量下载文件 /// public void BatchDownLoad() { if (ultraGrid1.Selected.Rows.Count <= 0) { MessageUtil.ShowWarning("请拖选您要批量下载的工艺文件!"); return; } List pathList = new List(); foreach (UltraGridRow uRow in ultraGrid1.Selected.Rows) { if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow)) { string filePathOld = uRow.GetValue("CRAFT_PATH_OLD"); if (filePathOld != "") pathList.Add(filePathOld); } } dlgOrderAskDown down = new dlgOrderAskDown(this.ob, pathList); down.DeleteButton.Visible = false; down.ShowDialog(); //打开下载后的文件夹 if (down.Pic != "") System.Diagnostics.Process.Start("Explorer.exe", down.Pic); } private void InvalidCraftFile(string validflag) { IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); if (rows.Count() == 0) { MessageUtil.ShowWarning("请选择一条记录!"); return; } string craftKey = rows.First().GetValue("CRAFT_KEY"); string craftNo = rows.First().GetValue("CRAFT_NO"); string craftNoV = rows.First().GetValue("CRAFT_NO_V"); if (MessageUtil.ShowYesNoAndQuestion(string.Format("是否确认{0}该工艺文件!", (validflag == "0" ? "作废" : "恢复"))) == System.Windows.Forms.DialogResult.No) { return; } ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.invalidCraftFile", new object[] { craftKey, validflag }, ob); MessageUtil.ShowTips((validflag == "0" ? "作废" : "恢复") + "成功!"); Relocate(craftNo, craftNoV); } private void SavePsc() { _craftFileApplyCtrl.Save(); } public void Query() { try { this.Cursor = Cursors.WaitCursor; string craftNo = ""; string memo = ""; string validflag = "999"; if (labelTextBox1.Checked) craftNo = labelTextBox1.Text.Trim(); if (labelTextBox2.Checked) memo = labelTextBox2.Text.Trim(); if (ckValid.Checked) validflag = "1"; DataTable dt = ServerHelper.GetData( "com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftOrdDesignFile", new object[] { CustomInfo, craftNo, memo, labelCheckBox1.Checked.ToString(), validflag }, ob); GridHelper.CopyDataToDatatable(dt, this.dataTable1, true); string[] craftNos = _craftNos.Split(','); foreach (UltraGridRow row in ultraGrid1.Rows) { row.Cells["MEMO"].Activation = Activation.ActivateOnly; if (CustomInfo == "ChoiceCraftNo" && craftNos.Contains(row.GetValue("CRAFT_NO"))) { row.SetValue("CHK", "True"); } } if (ckValid.Checked) { ultraGrid1.DisplayLayout.Bands[0].Columns["EFFECT_TIME"].Hidden = false; } else { ultraGrid1.DisplayLayout.Bands[0].Columns["EFFECT_TIME"].Hidden = true; } } finally { this.Cursor = Cursors.Default; } } private void Relocate(string craftNo, string craftNoV) { Query(); IQueryable rows = ultraGrid1.Rows.AsQueryable().Where( a => a.GetValue("CRAFT_NO") == craftNo && a.GetValue("CRAFT_NO_V") == craftNoV); if (rows.Count() > 0) { rows.First().Activate(); } } private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e) { switch (e.Tool.Key) { case "指定工艺文件": AppointCraft(); break; case "确认选择": Choice(); break; case "Query": Query(); break; } } private void Choice() { ultraGrid1.UpdateData(); IQueryable rows = ultraGrid1.Rows.AsQueryable().Where("CHK = 'True'"); //if (rows.Count() == 0) //{ // MessageUtil.ShowWarning("请选择一行记录!"); // return; //} _craftNos = string.Join(",", rows.Select(a => a.GetValue("CRAFT_NO"))); this.DialogResult = System.Windows.Forms.DialogResult.OK; } private bool SaveCraft() { ultraGrid1.UpdateData(); IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); UltraGridRow row = null; if (rows.Count() > 0) { row = rows.First(); if (row.GetValue("CREATE_TIME") != "") { MessageUtil.ShowWarning("不能修改已保存的工艺文件!"); return false; } } else { MessageUtil.ShowWarning("请选择一行记录!"); return false; } ArrayList list = new ArrayList(); list.Add(row.GetValue("CRAFT_NO")); list.Add(row.GetValue("CRAFT_NO_V")); list.Add(row.GetValue("CRAFT_PATH_OLD")); list.Add(CoreUserInfo.UserInfo.GetUserName()); list.Add(row.GetValue("CRAFT_KEY")); ServerHelper.SetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.insertCraftOrdDesignFile", new object[] { list }, ob); return true; } private void UpgradeCraft() { } private void AppointCraft() { ultraGrid1.UpdateData(); IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); if (rows.Count() == 0) { MessageUtil.ShowWarning("请选择一条工艺文件进行指定!"); return; } foreach (ArrayList list in _listOrdLnPk) { DataTable dtCraftDesignSts = GetCraftDesignSts(list[2].ToString()); if (dtCraftDesignSts.Rows.Count > 0) { if (dtCraftDesignSts.Rows[0]["DESIGN_STS"].ToString() != "S" || dtCraftDesignSts.Rows[0]["VALIDFLAG"].ToString() != "2") { MessageUtil.ShowWarning("请选择制定中并且设计状态通过的合同行进行指定工艺!"); return; } } else { MessageUtil.ShowWarning("请选择制定中并且设计状态通过的合同行进行指定工艺!"); return; } } ArrayList parm = new ArrayList(); foreach (ArrayList list in _listOrdLnPk) { if (GetCraftValidCntByOrdLnPk(list[2].ToString()) > 0) { if (MessageUtil.ShowYesNoAndQuestion("合同号" + list[0].ToString() + " 合同行" + list[1].ToString() + "存在有效的工艺文件,是否确认重新指定工艺文件?") == System.Windows.Forms.DialogResult.Yes) { parm.Add(list[2]); } } else { parm.Add(list[2]); } } if (MessageUtil.ShowYesNoAndQuestion("是否确认指定工艺文件?") == System.Windows.Forms.DialogResult.No) { return; } string craftNo = rows.First().GetValue("CRAFT_NO"); string craftPath = rows.First().GetValue("CRAFT_PATH_OLD"); string craftNoV = rows.First().GetValue("CRAFT_NO_V"); string memo = rows.First().GetValue("MEMO"); string name = UserInfo.GetUserName(); ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.saveCraftNoBatch", new object[] { parm, craftNo, craftPath, craftNoV, memo, name }, ob); MessageUtil.ShowTips("指定成功!"); this.Close(); } private DataTable GetCraftDesignSts(string ordLnPk) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftDesignSts", new object[] { ordLnPk }, ob); return dt; } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { ultraGrid1.UpdateData(); if (e.Cell.Column.Key == "CHK" && !_isMultiChoice) { if (e.Cell.Value.ToString() == "True") { e.Cell.Row.Cells["MEMO"].Activation = Activation.AllowEdit; IQueryable rows = ultraGrid1.Rows.AsQueryable().Where( a => ((a.GetValue("CRAFT_NO") != e.Cell.Row.GetValue("CRAFT_NO") || a.GetValue("CRAFT_NO_V") != e.Cell.Row.GetValue("CRAFT_NO_V")) && a.GetValue("CHK") == "True")); if (rows.Count() > 0) { rows.First().Cells["MEMO"].Activation = Activation.ActivateOnly; rows.First().Cells["CHK"].Value = false; } } else { e.Cell.Row.Cells["MEMO"].Activation = Activation.ActivateOnly; } } ultraGrid1.UpdateData(); } private void craftImg_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { UltraGridRow row = ultraGrid1.ActiveRow; string filePathOld = row.GetValue("CRAFT_PATH_OLD"); string filePathNew = ""; if (e.Button.Key.ToLower().Equals("select")) { dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePathOld); down.DeleteButton.Visible = false; down.ShowDialog(); } else if (e.Button.Key.ToLower().Equals("insert")) { string guid = Guid.NewGuid().ToString("N").ToUpper(); dlgOrderAskDown down = new dlgOrderAskDown(this.ob, filePathOld); down.CtrlFileDown1.FilePath = filePathOld; if (down.CtrlFileDown1.List.Count > 0) { MessageUtil.ShowWarning("只能上传一份文件!"); return; } List list = new List(); FileBean bean = new FileBean(); OpenFileDialog file = new OpenFileDialog(); file.Multiselect = false; DialogResult drStat; drStat = file.ShowDialog(); if (drStat == DialogResult.OK) { string fileName = file.FileName; string filena = System.IO.Path.GetFileName(fileName); string craftNo = filena.Split('.')[0]; if (!craftNo.ToUpper().Contains("SJ") && !craftNo.ToUpper().Contains("KZ")) { MessageUtil.ShowWarning("工艺文件号必须包含SJ或者KZ!"); return; } filePathNew = "Qcm/Craft/" + guid + "/"; row.Cells["CRAFT_NO"].Value = craftNo; row.Cells["CRAFT_PATH"].Value = filena; row.Cells["CRAFT_PATH_OLD"].Value = filePathNew + filena; row.Cells["CRAFT_NO_V"].Value = "00"; row.Cells["CREATE_NAME"].Value = CoreUserInfo.UserInfo.GetUserName(); row.Cells["CRAFT_KEY"].Value = guid; //if (GetCraftCraftNoCnt(craftNo) > 0) //{ // MessageUtil.ShowWarning("该工艺文件号已被录入为单次使用工艺文件,不能再录入为多次使用的工艺文件!"); // return; //} string strCraftNoV = GetCraftFileMaxCraftNoV(craftNo); if (GetCraftFileCraftNoCnt(craftNo) > 0) { //row.Cells["CRAFT_NO_V"].Value = strCraftNoV; //if (MessageUtil.ShowYesNoAndQuestion("系统已存在该工艺文件号,是否确认升级版本到"+ strCraftNoV +"?") == DialogResult.No) //{ // Relocate(guid); // return; //} MessageUtil.ShowWarning("系统已存在此工艺文件号!"); return; } if (SaveCraft() == false) return; bean = new FileBean(); bean.setFileName(filena); bean.setPathName(filePathNew); bean.setFile(FileHelper.FileToArray(fileName)); list.Add(bean); bool isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list); if (isSuccess) { MessageBox.Show("上传成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } else { MessageBox.Show("上传失败", "提示", MessageBoxButtons.OK, MessageBoxIcon.Question); } Relocate(row.GetValue("CRAFT_NO"), row.GetValue("CRAFT_NO_V")); } //if (fileName != "") //{ // if (row.GetValue("CRAFT_NO") == "") // { // row.Cells["CRAFT_NO"].Value = fileName; // } // down.DeleteButton.Visible = _isPopup; // down.Pic = filePath2; // down.ShowDialog(); // if (down.CtrlFileDown1.List.Count == 0) // { // craftOrdDesign.CraftPath = ""; // _craftOrdDesignBLL.UpdateCraftPath(craftOrdDesign, "0", "1"); // ultraGrid1.ActiveRow.Cells["CraftPath"].Value = ""; // } //} } } private void SetMemo() { IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); if (rows.Count() == 0) { MessageUtil.ShowWarning("请选择一条记录!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认修改备注信息?") == System.Windows.Forms.DialogResult.No) { return; } string craftNo = rows.First().GetValue("CRAFT_NO"); string craftNoV = rows.First().GetValue("CRAFT_NO_V"); string memo = rows.First().GetValue("MEMO"); string craftKey = rows.First().GetValue("CRAFT_KEY"); ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.setCraftFile", new object[] { craftNo, memo, craftKey }, ob); MessageUtil.ShowTips("修改成功!"); Relocate(craftNo, craftNoV); } private void DeleteCraft() { IQueryable rows = ultraGrid1.Rows.AsQueryable().Where(a => a.GetValue("CHK") == "True"); if (rows.Count() == 0) { MessageUtil.ShowWarning("请选择一条记录!"); return; } string craftKey = rows.First().GetValue("CRAFT_KEY"); string craftNo = rows.First().GetValue("CRAFT_NO"); string craftNoV = rows.First().GetValue("CRAFT_NO_V"); string ordLnPk = rows.First().GetValue("ORD_LN_PK"); string craftSeq = rows.First().GetValue("CRAFT_SEQ"); string craftFilePathOld = rows.First().GetValue("CRAFT_PATH_OLD"); CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob); DataTable dtCraftFile = GetCraftFileByPk(craftKey); if (rows.First().GetValue("CRAFT_TYPE") == "G" && dtCraftFile.Rows[0]["VALIDFLAG"].ToString() != "0") { MessageUtil.ShowWarning("只能删除已作废的工艺文件!"); return; } if (rows.First().GetValue("CRAFT_TYPE") == "G" && craftOrdDesignBLL.GetCraftCraftNoCnt(craftNo) > 0) { MessageUtil.ShowWarning("该工艺文件号已被合同行使用,不能删除!"); return; } CraftOrdDesignEntity craftOrdDesignEntity = new CraftOrdDesignEntity(); if (rows.First().GetValue("CRAFT_TYPE") == "L") { craftOrdDesignEntity = craftOrdDesignBLL.QueryByPk(new CraftOrdDesignEntity() { OrdLnPk = ordLnPk, CraftSeq = decimal.Parse(craftSeq) }); } if (rows.First().GetValue("CRAFT_TYPE") == "L" && craftOrdDesignEntity.Validflag != "0") { MessageUtil.ShowWarning("只能删除已作废的工艺文件!"); return; } if (rows.First().GetValue("CRAFT_TYPE") == "L" && craftOrdDesignBLL.GetCraftNoCntOutLn(craftNo, craftNoV, ordLnPk) > 0) { MessageUtil.ShowWarning("该工艺文件号已被其它合同使用,不能删除!"); return; } if (MessageUtil.ShowYesNoAndQuestion("是否确认删除该工艺文件?") == System.Windows.Forms.DialogResult.No) { return; } if (FileHelper.Delete(craftFilePathOld) == false) { MessageUtil.ShowWarning("删除工艺文件失败,请重试!"); return; } ServerHelper.SetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.deleteCraftFile", new object[] { craftKey, craftNo, craftNoV }, ob); MessageUtil.ShowTips("删除成功!"); Relocate(craftNo, craftNoV); } private int GetCraftFileCraftNoCnt(string craftNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileCraftNoCnt", new object[] { craftNo }, ob); return int.Parse(dt.Rows[0][0].ToString()); } private DataRow GetCraftFileByPk(string craftNo, string craftNoV) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileByPk", new object[] { craftNo, craftNoV }, ob); return dt.Rows[0]; } private string GetCraftFileMaxCraftNoV(string craftNo) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.DAL.CraftOrdDesignDAL.getCraftFileMaxCraftNoV", new object[] { craftNo }, ob); return dt.Rows[0][0].ToString(); } private int GetCraftCraftNoCnt(string craftNo) { CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob); return craftOrdDesignBLL.GetCraftCraftNoCnt(craftNo); } private void ultraGrid1_BeforeRowInsert(object sender, BeforeRowInsertEventArgs e) { if (CustomInfo != "CraftAppFile" && CustomInfo != "PlaOrdProc") { e.Cancel = true; } } private int GetCraftValidCntByOrdLnPk(string ordLnPk) { CraftOrdDesignBLL craftOrdDesignBLL = new CraftOrdDesignBLL(ob); return craftOrdDesignBLL.GetCraftValidCntByOrdLnPk(ordLnPk); } /// /// 通过主键获取工艺文件 /// /// /// private DataTable GetCraftFileByPk(string craftKey) { DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.ReviewForm.CoreOrderReviewTechnology.getCraftFileByPk", new object[] { craftKey }, ob); return dt; } private void ultraGrid1_AfterRowActivate(object sender, EventArgs e) { ultraGrid1.UpdateData(); UltraGridRow row = ultraGrid1.ActiveRow; if (CustomInfo == "CraftAppFile") { _craftFileApplyCtrl.Query(new CraftFileApplyEntity() { CraftNo = row.GetValue("CRAFT_NO"), CraftNoV = row.GetValue("CRAFT_NO_V"), CraftKey = row.GetValue("CRAFT_KEY") }); } else if (CustomInfo == "PlaOrdProc") { _plaSaleOrdProcCtrl.Query(new PlnSaleordProcEntity() { CraftFileNo = row.GetValue("CRAFT_NO"), CraftNoV = row.GetValue("CRAFT_NO_V") }, ""); } } private void ultraGrid1_InitializeRow(object sender, InitializeRowEventArgs e) { //if (e.Row.GetValue("VALIDFLAG") == "无效") //{ // e.Row.Appearance.ForeColor = Color.Red; //} e.Row.Cells["ADD_ASK"].Value = "查看"; } private void ultraGrid1_ClickCellButton(object sender, CellEventArgs e) { UltraGridRow row = ultraGrid1.ActiveRow; if (row == null) return; string craftKey = row.Cells["CRAFT_KEY"].Value.ToString(); string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineAsk.cpt&op=view&desgin_key=" + craftKey + ""; FrmRepExcel fre = new FrmRepExcel(this.ob, url); //fre.AutoSize = true; fre.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height); fre.Text = "附加要求"; fre.ShowDialog(); } } }