/*===================================================================
* 程序说明: 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("作废失败");
}
}
}
}