/*=================================================================== * 程序说明: WOMDAA的数据管理窗体 * 作者资料: 孙中吕 * 创建日期: 2024/05/20 05:58:20 * 最后修改: 2024/05/20 05:58:20 * * 注: 本文件由代码生成器(Code Generator)自动生成。 * 版权所有 Copyright 2006~2024, C/S框架网(www.cscode.net) *===================================================================*/ using CSFramework.DB; using CSFrameworkV5.Business; using CSFrameworkV5.Common; using CSFrameworkV5.Core; using CSFrameworkV5.Interfaces; using CSFrameworkV5.Library; using CSFrameworkV5.Library.CommonClass; using CSFrameworkV5.Models; using CSFrameworkV5.Order.womdaa; using DevExpress.XtraEditors; using DevExpress.XtraEditors.Controls; using DevExpress.XtraGrid; using DevExpress.XtraGrid.Views.Base; using DevExpress.XtraGrid.Views.Grid; using NPOI.HSSF.UserModel; using NPOI.SS.UserModel; using NPOI.XSSF.UserModel; using SqlSugar; using System; using System.Collections.Generic; using System.Data; using System.Drawing; using System.IO; using System.Linq; using System.Windows.Forms; using CSFrameworkV5.Language; namespace CSFrameworkV5.Order { /// /// WOMDAA的资料管理窗体,由代码生成器(Code Generator)自动生成 /// public partial class frmOrder : frmBaseBusinessForm { private bllWOMDAA _BLLInstance; //业务逻辑层对象引用 public frmOrder() { InitializeComponent(); _BLLInstance = new bllWOMDAA(); var sqlstr = "select LINE_NO 产线编码,LINE_NAME 产线名称,DeptName 车间名称,MEMO 备注 from MES_LINE"; txtDAA042.Properties.ValueMember = "产线名称"; txtDAA042.Properties.DisplayMember = "产线名称"; txtDAA042.Properties.ShowClearButton = false; txtDAA042.Properties.DataSource = _BLLInstance.GETDAT(sqlstr); //长日期显示模式 this.txtDAA020.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True; //显示当前时间 this.txtDAA020.EditValue = DateTime.Now; //长日期显示模式 this.txtDAA021.Properties.VistaEditTime = DevExpress.Utils.DefaultBoolean.True; //显示当前时间 this.txtDAA021.EditValue = DateTime.Now; } private void frmOrder_Load(object sender, EventArgs e) { InitializeForm(); //自定义初始化操作 Init(); //筛选框 gvSummary.OptionsView.ShowGroupPanel = false; gvSummary.OptionsView.ShowAutoFilterRow = true; if (splitContainerEditorAndDetailGrid != null && layoutGroup.OptionsTableLayoutGroup.RowDefinitions.Count != 0) splitContainerEditorAndDetailGrid.SplitterPosition = Convert.ToInt32(Math.Round( layoutGroup.OptionsTableLayoutGroup.RowDefinitions .Count * layoutGroup.OptionsTableLayoutGroup .RowDefinitions[0].Height, 0)) + 30; if (splitContainerSearchAndSummary != null && layoutGroupSearch .OptionsTableLayoutGroup.RowDefinitions .Count != 0) splitContainerSearchAndSummary.SplitterPosition = Convert.ToInt32(Math.Round( (layoutGroupSearch.OptionsTableLayoutGroup .RowDefinitions.Count - 1) * layoutGroupSearch.OptionsTableLayoutGroup .RowDefinitions[0].Height, 0)) + 60; } private void Init() { var sql = "select * from WOMDAA order by DAA001 desc offset 0 rows fetch next 100 rows only"; var dt = _BLLInstance.GETDAT(sql); DoBindingSummaryGrid(dt); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. } protected override void InitializeForm() { _BLL = new bllWOMDAA(); //实例化基类的业务逻辑层 _BLLInstance = _BLL as bllWOMDAA; //当前窗体的业务层逻辑层对象引用 _SummaryView = new DevGridView( gvSummary); //实例化数据视图,此接口可支持不同的视图,比如表格GridControl,树视图TreeList. //_ActiveEditor = txtid;//进入修改状态,显示第一个焦点的输入框,可以不设置 //_KeyEditor = txtid;//主键字段输入框,可以不设置 _DetailGroupControl = pcDetailEditor; //【资料编辑】页面所有文本输入框的容器 base.InitializeForm(); picNote.Image = Globals.LoadImage("32_Notes.png"); frmGridCustomize.RegisterGrid(gvSummary); //注册表格组件,自动添加样式管理、弹出菜单 DevStyle.SetGridControlLayout(gcSummary, false); //主表表格样式设置 DevStyle.SetSummaryGridViewLayout(gvSummary); //主表表格样式设置 BindingSummaryNavigator(controlNavigatorSummary, gcSummary); //绑定表格导航按钮的数据源. gvSummary.DoubleClick += new EventHandler(OnGridViewDoubleClick); //绑定主表的DoubleClick事件 DevStyle.SetGridControlLayout(gcDetail0, true); //明细表表格样式设置 DevStyle.SetDetailGridViewLayout(gvDetail0); //明细表表格样式设置 gcDetail0.EmbeddedNavigator.ButtonClick += new NavigatorButtonClickEventHandler( OnEmbeddedNavigatorButtonClick); //绑定明细表格的按钮事件 gvDetail0.CellValueChanged += new CellValueChangedEventHandler( OnCellValueChanged); //绑定明细表格单元格数据修改时触发的事件 #region 以下代码全自动生成,请调整排版和顺序 #endregion ShowSummaryPage(true); //初始化完成后显示表格页 } //修改单元格数据时触发的事件 private void OnCellValueChanged(object sender, CellValueChangedEventArgs e) { //开发实例:修改单元格关联更新其它列的值 //参考(frmPO/frmSO).OnCellValueChanged方法} } /// /// 明细表格按钮事件 /// /// /// private void OnEmbeddedNavigatorButtonClick(object sender, NavigatorButtonClickEventArgs e) { try { var gc = (GridControl)((GridControlNavigator)sender).Parent; var gridView = (GridView)gc.Views[0]; //每个GridControl默认有一个GridView. if (e.Button.ImageIndex == DetailButtons.Add || e.Button.ImageIndex == DetailButtons.Insert) CreateOneDetail(gridView, e.Button.ImageIndex); else if (e.Button == gc.EmbeddedNavigator.Buttons.CustomButtons[ DetailButtons.Delete]) if (Msg.AskQuestion("确定要删除这条记录?")) gridView.DeleteRow(gridView.FocusedRowHandle); e.Handled = true; } catch (Exception ex) { LogUserOperate.Write(ex); Msg.ShowException(ex); } } /// /// 重要!!当按钮状态改变时触发的事件, /// /// protected override void ButtonStateChanged(UpdateType currentState) { var isEditMode = currentState == UpdateType.Add || currentState == UpdateType.Modify; //设置编辑页面的文本框控件只读和可编辑状态 SetDetailEditorsAccessable(pcDetailEditor, isEditMode); //设置明细表格的按钮禁用和可用状态 SetGridCustomButtonAccessable(gcDetail0, isEditMode); //设置明细表格的可修改状态 gvDetail0.OptionsBehavior.Editable = isEditMode; lbStateName.Text = UpdateTypeName; } //有明细表:绑定单据明细表的数据源. protected override void DoBindingDetailGrid(DataSet dataSource) { gcDetail0.DataSource = null; gcDetail0.DataSource = dataSource.Tables[DAA01.__TableName]; } /// /// 绑定【编辑页面】所有文本输入框的数据源 /// /// 数据源 protected override void DoBindingSummaryEditor(DataTable summary) { DoBindingEditorPanel(pcDetailEditor, summary); //在此绑定其它自定义组件的数据源,参考frmCustomer的DoBindingSummaryEditor方法 } public override void DoAdd(IButtonInfo sender) { base.DoAdd(sender); if (_UpdateType == UpdateType.Add) { // 在此添加所需的代码 txtDAA022.Properties.ReadOnly = true; txtDAA022.Enabled = false; SetEditorBindingValue(txtDAA022, "新建", true); var nextDaa001 = getNextDaa001(); SetEditorBindingValue(txtDAA001, nextDaa001, true); } } public override void DoEdit(IButtonInfo sender) { base.DoEdit(sender); if (_UpdateType == UpdateType.Modify) { //点击修改按钮时先清空下拉框的值 txtDAA022.Properties.Items.Clear(); txtDAA022.Properties.ReadOnly = true; txtDAA022.Enabled = false; //手动填充下拉框的值 txtDAA022.Properties.Items.AddRange(new object[] { "新建", "下达", "开工", "暂停", "完工" }); //将ComboboxEdit下拉框设置为不可手动输入 txtDAA022.Properties.TextEditStyle = TextEditStyles.DisableTextEditor; } } //创建一条明细记录 private void CreateOneDetail(GridView gridView, int buttonIndex) { var gridControl = gridView.GridControl; var detailTableName = (string)gridView.Tag; //若要取排序序号,要将光标移到最后一行 if (buttonIndex == DetailButtons.Add) gridView.MoveLast(); //若表格无记录,转换为新增状态 if (gridView.RowCount == 0) buttonIndex = DetailButtons.Add; var row = _BLL.CurrentBusiness.Tables[detailTableName].NewRow(); row["ID"] = Guid.NewGuid(); row["PID"] = _BLL.DataBindRow["ID"]; row["DAA001"] = txtDAA001.Text; row["BGDATE"] = DateTime.Now.ToString("yyyy/MM/dd"); //增加一条明细记录 if (buttonIndex == DetailButtons.Add) { _BLL.CurrentBusiness.Tables[detailTableName].Rows.Add(row); gridControl.RefreshDataSource(); //立即刷新数据源 gridView.FocusedRowHandle = gridView.RowCount - 1; //光标移到到最后一条记录 } else if (buttonIndex == DetailButtons.Insert) //插入一条明细记录 { _BLL.CurrentBusiness.Tables[detailTableName].Rows .InsertAt(row, gridView.FocusedRowHandle); gridView.FocusedRowHandle = gridView.FocusedRowHandle - 1; } gridView.FocusedColumn = gridView.VisibleColumns[0]; } public override void DoSave(IButtonInfo sender) // 保存数据 { UpdateLastControl(); //更新最后一个文本输入框的数据 try { frmWaitingEx.ShowMe(this); var dsTemplate = _BLL.CreateSaveData(_BLL.CurrentBusiness); //创建用于保存的临时数据 if (dsTemplate == null) return; var result = _BLL.Update(dsTemplate); //调用业务逻辑层Update()方法保存数据 if (result.Success) //保存成功, 不需要重新加载数据,更新缓存数据即可. { if (_UpdateType == UpdateType.Add) _BLL.DataBindRow[WOMDAA.__KeyName] = result.DocNo; //更新单据号码 if (_UpdateType == UpdateType.Modify) _BLL.NotifyUser(); //发送短信或Email通知制单人 UpdateSummaryCurrentRow(_BLL .DataBindRow); //刷新表格当前记录的缓存数据. DoBindingSummaryEditor(_BLL .DataBinder); //重新绑定文本框的数据源,刷新数据 if (_UpdateType == UpdateType.Add) gvSummary.MoveLast(); //若是新增操作,要移动到取后一条记录. base.DoSave(sender); //调用基类的方法. 此行代码应放较后位置. frmWaitingEx.HideMe(this); try { frmWaitingEx.ShowMe(this); //实例化查询参数 var P = new QueryWOMDAA { //DAA001 = ConvertEx.ToString(txt_DAA001.EditValue), //DAA015 = ConvertEx.ToString(txt_DAA015.EditValue), //DAA022 = ConvertEx.ToString(txt_DAA022.EditValue) }; var dt = _BLLInstance.Query(P); DoBindingSummaryGrid(dt); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!"); } finally { frmWaitingEx.HideMe(this); } Msg.ShowInformation("保存成功!"); } else { Msg.Warning("保存失败!"); } } finally { frmWaitingEx.HideMe(this); } } /// /// 保存数据后,更新表格中当前记录的数据(更新缓存资料) /// /// 当前修改的记录 /// 当前单据号码 protected void UpdateSummaryCurrentRow(DataRow currentRow) { //若表格没有数据源,要下载当前单据的数据 if (gcSummary.DataSource == null || gvSummary.RowCount == 0) { //实例化查询参数 var P = new QueryWOMDAA { DAA001 = "", DAA015 = "", DAA022 = "" }; var dt = _BLLInstance.Query(P); //获取数据 DoBindingSummaryGrid(dt); //绑定主表表格的数据源 } else { //调用基类方法更新表格中当前记录的缓存数据 base.UpdateSummaryRow(currentRow); } } private void btnEmpty_Click(object sender, EventArgs e) { ClearContainerEditorText(pnlSearch); } private void btnQuery_Click(object sender, EventArgs e) { //查询数据 try { frmWaitingEx.ShowMe(this); //实例化查询参数 var P = new QueryWOMDAA { //DAA001 = ConvertEx.ToString(txt_DAA001.EditValue), //DAA015 = ConvertEx.ToString(txt_DAA015.EditValue), //DAA022 = ConvertEx.ToString(txt_DAA022.EditValue) }; var dt = _BLLInstance.Query(P); DoBindingSummaryGrid(dt); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!"); } finally { frmWaitingEx.HideMe(this); } } //给明细表绑定KeyDown事件,控制按回车事件 private void gvDetail_KeyDown(object sender, KeyEventArgs e) { var gridView = (GridView)sender; //表格按回车键自动跳转到下一个可编辑列, 若是最后一列,自动新增一条记录 GridMovetor.OnGridViewKeyDown(gridView, e); } private void buttonEdit1_Click(object sender, EventArgs e) { var dlg = new OpenFileDialog(); dlg.Filter = "所有EXCEL文件|*.xlsx;*.xls"; dlg.FileName = "EXCEL文件"; if (DialogResult.OK == dlg.ShowDialog()) buttonEdit1.Text = dlg.FileName; } private void simpleButton1_Click(object sender, EventArgs e) { try { var DllNameT = ""; var DllName = ""; if (buttonEdit1.Text == "") { Msg.Warning("请先选择文件!!!"); return; } var list = new List(); try { DllNameT = buttonEdit1.Text; DllName = DllNameT.Substring(DllNameT.LastIndexOf("\\") + 1) .ToString(); //Console.OutputEncoding = System.Text.Encoding.UTF8; IWorkbook workbook = null; using (var file = new FileStream(DllNameT, FileMode.Open, FileAccess.Read)) { if (DllName.IndexOf(".xlsx") > 0) // 2007及以后版本 workbook = new XSSFWorkbook(file); else if (DllName.IndexOf(".xls") > 0) // 2003版本 workbook = new HSSFWorkbook(file); } var db1 = SqlSugarHelper.GetInstance(); var date = DateTime.Now.ToString("yyyyMMdd"); var user = Loginer.CurrentUser.Account; //NumberOfSheets sheet的总数,要注意是否有隐藏的sheet for (var sheetNum = 0; sheetNum < workbook.NumberOfSheets; sheetNum++) { var sheet = workbook.GetSheetAt(sheetNum); var rows = sheet.GetRowEnumerator(); var headerRow = sheet.GetRow(sheet.FirstRowNum); int cellCount = headerRow.LastCellNum; //读取body for (var i = sheet.FirstRowNum + 1; i <= sheet.LastRowNum; i++) { var order = new Models.Order(); order.id = GetUniqueIDTO22(); var row = sheet.GetRow(i); //DataRow dataRow = dt.NewRow(); //for (int j = row.FirstCellNum; j < cellCount; j++) for (var j = 0; j < cellCount; j++) { switch (j) { case 0: order.Daa001 = row.GetCell(j) == null ? null : row.GetCell(j).ToString(); if (string.IsNullOrEmpty(order.Daa001)) { if (list.Count == 0) { order.Daa001 = getNextDaa001(); } else { var max = list.Max(s => s.Daa001); var number = Convert.ToInt32( max.Substring( max.Length - 3)) + 1; order.Daa001 = date + string.Format( "{0:D3}", number); } } var count = db1 .Queryable() .Where(s => s.Daa001 == order.Daa001) .Count(); if (count > 0) { Msg.Warning(order.Daa001 + "工单号重复"); return; } break; case 1: order.Daa014 = row.GetCell(j).ToString(); break; case 2: order.Daa015 = row.GetCell(j).ToString(); break; case 3: order.Daa016 = row.GetCell(j).ToString(); break; case 4: order.Daa027 = Convert.ToInt32(row.GetCell(j) .ToString()); break; case 5: order.ISOk = 0; break; case 6: order.Daa020 = row.GetCell(j).ToString(); break; case 7: order.Daa021 = row.GetCell(j).ToString(); break; case 8: order.LineNo = row.GetCell(j).ToString(); break; case 9: order.DeptName = row.GetCell(j).ToString(); break; case 10: order.Daa042 = row.GetCell(j).ToString(); break; case 11: order.Daa022 = row.GetCell(j).ToString(); break; } //dt.Rows.Add(dataRow); order.Daa022Date = DateTime.Now.ToString( "yyyy-MM-dd HH:mm:ss"); order.Daa022By = user; } list.Add(order); } SqlSugarHelper.UseTransactionWithOracle(db => db.Insertable(list).ExecuteCommand()); } } catch (Exception EE) { Msg.Warning(EE.Message.ToString()); return; } // TestUpload(); Msg.Warning("上传成功!!!"); buttonEdit1.Text = ""; var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid ShowSummaryPage(true); //显示Summary页面. if (gvSummary.RowCount == 0) Msg.Warning("没有找到数据!"); } catch (Exception ex) { Msg.Warning(ex.ToString()); throw; } } /// /// 生成22位的唯一数字,并发可用 /// /// private string GetUniqueIDTO22() { //System.Threading.Thread.Sleep(1); //保证yyyyMMddHHmmssffff唯一 var rd = new Random( BitConverter.ToInt32(Guid.NewGuid().ToByteArray(), 0)); var strUniqueID = DateTime.Now.ToString("yyyyMMddHHmmssffff") + rd.Next(1000, 9999); return strUniqueID; } private void txtDAA020_EditValueChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtDAA020.EditValue.ToString())) { var formattedDate = DateTime .Parse(txtDAA020.EditValue.ToString()) .ToString("yyyy-MM-dd HH:mm:ss"); SetEditorBindingValue(txtDAA020, formattedDate.ToString(), true); } } private void txtDAA021_EditValueChanged(object sender, EventArgs e) { if (!string.IsNullOrEmpty(txtDAA021.EditValue.ToString())) { var formattedDate = DateTime .Parse(txtDAA021.EditValue.ToString()) .ToString("yyyy-MM-dd HH:mm:ss"); SetEditorBindingValue(txtDAA021, formattedDate.ToString(), true); } } private string getNextDaa001() { var date = DateTime.Now.ToString("yyyyMMdd"); var db = SqlSugarHelper.GetInstance(); var max = db.Queryable() .Where(s => SqlFunc.StartsWith(s.Daa001, date)) .Max(s => s.Daa001); if (string.IsNullOrEmpty(max)) return date + "001"; var number = Convert.ToInt32(max.Substring(max.Length - 3)) + 1; return date + string.Format("{0:D3}", number); } private void gvSummary_RowStyle(object sender, RowStyleEventArgs e) { var hand = e.RowHandle; //行号 if (hand < 0) return; var dr = gvSummary.GetDataRow(hand); if (dr == null) return; //int selectedHandle = gridView1.GetSelectedRows()[hand]; var daa027 = Convert.ToInt32(gvSummary.GetRowCellValue(hand, "DAA027") .ToString()); var isok = Convert.ToInt32(gvSummary.GetRowCellValue(hand, "ISOk") .ToString()); if (isok > daa027) { e.Appearance.ForeColor = Color.Red; //字体颜色 e.Appearance.BackColor = Color.Linen; //行背景颜色 //e.Appearance.BackColor2 = Color.Blue;//渐变颜色 } } private void gvSummary_RowCellStyle(object sender, RowCellStyleEventArgs e) { var hand = e.RowHandle; //行号 if (hand < 0) return; var dr = gvSummary.GetDataRow(hand); if (dr == null) return; //int selectedHandle = gridView1.GetSelectedRows()[hand]; var daa027 = Convert.ToInt32(gvSummary.GetRowCellValue(hand, "DAA027") .ToString()); var isok = Convert.ToInt32(gvSummary.GetRowCellValue(hand, "ISOk") .ToString()); if (isok > daa027) { e.Appearance.ForeColor = Color.Red; //字体颜色 e.Appearance.BackColor = Color.Linen; //行背景颜色 //e.Appearance.BackColor2 = Color.Blue;//渐变颜色 } } private void txtDAA042_EditValueChanged(object sender, EventArgs e) { var s = txtDAA042.EditValue.ToString(); if (string.IsNullOrEmpty(s)) return; var row = txtDAA042.Properties.GetRowByKeyValue(s) as DataRowView; SetEditorBindingValue(txtLINE_NO, row["产线编码"].ToString(), true); SetEditorBindingValue(txtDeptName, row["车间名称"].ToString(), true); SetEditorBindingValue(txtDAA042, row["产线名称"].ToString(), true); } public override void DoDelete(IButtonInfo sender) { var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var s = row["DAA022"].ToString(); if ("新建".Equals(s)) base.DoDelete(sender); else Msg.Warning("只允许删除新建的工单"); } public override void InitButtons() { //base.InitButtons(); Buttons.AddRange(GetBusinessButtons()); Buttons.AddRange(GetPrintableButtons()); var dataButton = GetDataOperatableButtons(); //数据操作按钮 Buttons.AddRange(dataButton); var btnClose = ToolbarRegister.CreateButton("btnClose", LanLib.Get("关闭"), ToolBarGroup.关闭窗体, Globals.LoadBitmap("32_Exit.png"), new Size(57, 28), false, true, DoClose); var btnRefresh4 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("刷新"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, DoRefreshData); //下达 SendOut var btnRefresh1 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("下达"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, SendOut); //开工 Start var btnRefresh2 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("开工"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, Start); //暂停后开工 StartWorkAfterSuspension var btnRefresh3 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("暂停后开工"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, StartWorkAfterSuspension); // 暂停 suspend var btnRefresh5 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("暂停"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, Suspend); //手动完工 End var btnRefresh6 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("手动完工"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, End); //报工作废 Invalidate var btnRefresh7 = ToolbarRegister.CreateButton("btnRefreshDataDict", LanLib.Get("报工作废"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true, true, Invalidate); if (Loginer.CurrentUser.Account != "查询") { _buttons.AddButton(btnClose); _buttons.AddButton(btnRefresh4); _buttons.AddButton(btnRefresh1); _buttons.AddButton(btnRefresh2); _buttons.AddButton(btnRefresh3); _buttons.AddButton(btnRefresh5); _buttons.AddButton(btnRefresh6); _buttons.AddButton(btnRefresh7); } } private void DoRefreshData(IButtonInfo sender) { var P = new QueryWOMDAA { //DAA001 = ConvertEx.ToString(txt_DAA001.EditValue), //DAA015 = ConvertEx.ToString(txt_DAA015.EditValue), //DAA022 = ConvertEx.ToString(txt_DAA022.EditValue) }; var dt = _BLLInstance.Query(P); DoBindingSummaryGrid(dt); //绑定主表的Grid } private void SendOut(IButtonInfo sender) { var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var daa022 = row["DAA022"].ToString(); if ("新建".Equals(daa022)) { //获取当前用户 var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var id = row["id"].ToString(); var daa022New = "下达"; var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db => { string text = daa022New + "-" + time + "-" + user + ";"; return db.Updateable() .SetColumns(order => order.Daa022 == daa022New) .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("审核成功,工单状态已修改"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("审核失败"); } } else { Msg.Warning(daa022 + "状态无需下发"); } } private void Start(IButtonInfo sender) { //审核 下一步 var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var daa022 = row["DAA022"].ToString(); if ("下达".Equals(daa022)) { //获取当前用户 var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var id = row["id"].ToString(); var daa022New = "开工"; var lineNo = row["LINE_NO"].ToString(); var deptName = row["DeptName"].ToString(); var daa042 = row["DAA042"].ToString(); var db = SqlSugarHelper.GetInstance(); var count = db.Queryable() .Where(s => s.Daa042 == daa042 && s.Daa022 == daa022New && s.DeptName == deptName && s.LineNo == lineNo).Count(); if (count > 0) { Msg.Warning("当前产线已经存在已开工的工单,无法审核"); return; } var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db1 => { string text = daa022New + "-" + time + "-" + user + ";"; return db1.Updateable() .SetColumns(order => order.Daa022 == daa022New) .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("审核成功,工单状态已修改"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("审核失败"); } } else { Msg.Warning(daa022 + "状态无需审核"); } } //StartWorkAfterSuspension private void StartWorkAfterSuspension(IButtonInfo sender) { //审核 下一步 var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var daa022 = row["DAA022"].ToString(); if ("暂停".Equals(daa022)) { //获取当前用户 var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var id = row["id"].ToString(); var daa022New = "开工"; var lineNo = row["LINE_NO"].ToString(); var deptName = row["DeptName"].ToString(); var daa042 = row["DAA042"].ToString(); var db = SqlSugarHelper.GetInstance(); var count = db.Queryable() .Where(s => s.Daa042 == daa042 && s.Daa022 == daa022New && s.DeptName == deptName && s.LineNo == lineNo).Count(); if (count > 0) { Msg.Warning("当前产线已经存在已开工的工单,无法审核"); return; } var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db1 => { string text = daa022New + "-" + time + "-" + user + ";"; return db1.Updateable() .SetColumns(order => order.Daa022 == daa022New) .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("审核成功,工单状态已修改"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("审核失败"); } } else { Msg.Warning(daa022 + "状态无需审核"); } } //Suspend private void Suspend(IButtonInfo sender) { //暂停 var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var daa022 = row["DAA022"].ToString(); if (!"开工".Equals(daa022)) { Msg.Warning("只有开工状态下才允许暂停"); return; } var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var id = row["id"].ToString(); var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db => { string text = "暂停-" + time + "-" + user + ";"; return db.Updateable() .SetColumns(order => order.Daa022 == "暂停") .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("暂停成功,工单状态已修改"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("暂停失败"); } } private void End(IButtonInfo sender) { //获取选中行 var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var id = row["id"].ToString(); //获取当前用户 var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db => { string text = "完工-" + time + "-" + user + ";"; return db.Updateable() .SetColumns(order => order.Daa022 == "完工") .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("手动结案成功"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("手动结案失败"); } } private void Invalidate(IButtonInfo sender) { //报废 回退到新建 var row = _SummaryView.GetDataRow(_SummaryView.FocusedRowHandle); if (row == null) return; var daa022 = row["DAA022"].ToString(); if ("完工".Equals(daa022) || "新建".Equals(daa022) || "暂停".Equals(daa022)) { Msg.Warning(daa022 + "状态不能作废"); return; } var user = Loginer.CurrentUser.Account; var time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); var id = row["id"].ToString(); var useTransactionWithOracle = SqlSugarHelper.UseTransactionWithOracle(db => { string text = "新建-" + time + "-" + user + ";"; return db.Updateable() .SetColumns(order => order.Daa022 == "新建") .SetColumns(order => order.Daa022Date == time) .SetColumns(order => order.Daa022By == user) .SetColumns(order => order.Notes == order.Notes + text) .Where(s => s.id == id).ExecuteCommand(); }); if (useTransactionWithOracle > 0) { Msg.Warning("作废成功,工单状态已修改"); var dt = _BLLInstance.Query(new QueryWOMDAA()); DoBindingSummaryGrid(dt); //绑定主表的Grid } else { Msg.Warning("作废失败"); } } } }