华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1202 lines
49 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using ICSSoft.Frame.User.BLL;
using ICSSoft.Base.Language.Tool;
using ICSSoft.Base.UserControl.MessageControl;
using System.Data.SqlClient;
using ICSSoft.Base.Config.AppConfig;
using ICSSoft.Base.Report.Filter;
using ICSSoft.Base.Config.DBHelper;
using ICSSoft.Base.UserControl.FormControl;
using ICSSoft.Base.ReferForm.AppReferForm;
using ICSSoft.Base.Lable.PrintTool;
using ICSSoft.Frame.Data.DAL;
using ICSSoft.Frame.Data.BLL;
using ICSSoft.Frame.Data.Entity;
namespace ICSSoft.Frame.APP
{
public partial class FormICSMO2Lot : DevExpress.XtraEditors.XtraForm
{
private string sqltxt = "";
private string sqlconn = "";
String guid = AppConfig.GetGuid();
private DataTable dataSource = null;
//WorkPointBLL workBll = new WorkPointBLL();
string moid = "";
string mocode = "";//工单编码
string moseq = "";//生产订单行号
int monum;
string itemcode = "";
string LotNO = string.Empty;//批号20190711ZM
string MOTYPE = "";
string depts = "";
DataTable dttp;
#region 构造函数
public FormICSMO2Lot()
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.WindowState = FormWindowState.Maximized;
this.txtLOTQTY.Text = "1";
}
#endregion
public FormICSMO2Lot(string id, string code, int num, string ITEMCODE, string moSeq, string dept, DateTime MOPLANSTARTDATE, DateTime MOPLANENDDATE)//,DataTable dt
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.WindowState = FormWindowState.Maximized;
DateTime starts = MOPLANSTARTDATE;
DateTime ends = MOPLANENDDATE;
moid = id;
mocode = code;
monum = num;
moseq = moSeq;
itemcode = ITEMCODE;
depts = dept;//0816新增
this.txtLOTQTY.Text = "1";
//this.txtLOTQTY.Text =monum.ToString();
}
//一键分批的构造函数
//public FormICSMO2Lot(string id, string code, int num, string ITEMCODE, string moSeq)//,DataTable dt
//{
// InitializeComponent();
// this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
// this.WindowState = FormWindowState.Maximized;
// moid = id;
// mocode = code;
// monum = num;
// moseq = moSeq;
// itemcode = ITEMCODE;
// //this.txtLOTQTY.Text = "1";
// this.txtLOTQTY.Text = monum.ToString();
//}
#region 移动窗体
private const int WM_NCHITTEST = 0x84;
private const int HTCLIENT = 0x1;
private const int HTCAPTION = 0x2;
//首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
//重写窗体,使窗体可以不通过自带标题栏实现移动
protected override void WndProc(ref Message m)
{
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
switch (m.Msg)
{
case WM_NCHITTEST:
base.WndProc(ref m);
if ((int)m.Result == HTCLIENT)
m.Result = (IntPtr)HTCAPTION;
return;
}
//拦截双击标题栏、移动窗体的系统消息
if (m.Msg != 0xA3)
{
base.WndProc(ref m);
}
}
#endregion
#region SystemOptition
/// <summary>
/// 操作权限
/// </summary>
/// <returns></returns>
public DataTable RightOfExute()
{
DataTable rData = new DataTable();
rData.Columns.Add("BtnName");
rData.Columns.Add("ActionName");
//查看权限(必须有)
DataRow seeRow = rData.NewRow();
seeRow["BtnName"] = "see";
seeRow["ActionName"] = "查看";
rData.Rows.Add(seeRow);
List<Control> ControlList = new List<Control>();
ControlList.Add(btnSave);
//ControlList.Add(btnDelLable);
foreach (Control ctr in ControlList)
{
if (ctr.GetType() == typeof(SimpleButton))
{
DataRow dr = rData.NewRow();
dr["BtnName"] = ctr.Name;
dr["ActionName"] = ctr.Text;
rData.Rows.Add(dr);
}
}
rData.AcceptChanges();
return rData;
}
/// <summary>
/// 数据权限
/// </summary>
/// <returns></returns>
public DataTable RightOfData()
{
DataTable rData = new DataTable();
rData.Columns.Add("BodyName");
rData.Columns.Add("ControlName");
rData.Columns.Add("ControlCaption");
rData.AcceptChanges();
return rData;
}
#endregion
#region 退出
private void btnClose_Click(object sender, EventArgs e)
{
AppConfig.CloseFormShow(this.Text);
this.Close();
}
private void btnExit_Click(object sender, EventArgs e)
{
AppConfig.CloseFormShow(this.Text);
this.Close();
}
#endregion
//#region 过滤
//private string tempTableName = "";
//private void btnFilter_Click(object sender, EventArgs e)
//{
// FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name));
// filter.OldTempTableName = tempTableName;
// if (filter.ShowDialog() == DialogResult.OK)
// {
// DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
// try
// {
// _wait.Show();
// tempTableName = filter.NewTempTableName;
// sqltxt = filter.SqlText;
// sqlconn = filter.FilterConnectString;
// dataSource = filter.FilterData.Tables[0];
// grdDetail.DataSource = dataSource;
// grvDetail.BestFitColumns();
// rptPage.RecordNum = dataSource.Rows.Count;
// rptPage.PageSize = 500;
// rptPage.PageIndex = 1;
// rptPage.ReLoad();
// _wait.Close();
// }
// catch (Exception ex)
// {
// MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
// _wait.Close();
// }
// }
//}
//#endregion
#region 全选
private void btnSelect_Click(object sender, EventArgs e)
{
for (int i = 0; i < grvDetail.RowCount; i++)
{
grvDetail.SetRowCellValue(i, colisSelect, "Y");
}
}
#endregion
#region 全消
private void btnCanSelect_Click(object sender, EventArgs e)
{
for (int i = 0; i < grvDetail.RowCount; i++)
{
grvDetail.SetRowCellValue(i, colisSelect, "");
}
}
#endregion
#region 刷新
private void btnFalsh_Click(object sender, EventArgs e)
{
if (sqlconn == null || sqlconn == "")
{
return;
}
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在查找...请稍等...");
try
{
_wait.Show();
//FormFilter filter = new FormFilter(AppConfig.GetSourceId(this.Tag.ToString(), btnConfig.Name), false);
//filter.OldTempTableName = tempTableName;
//tempTableName = filter.NewTempTableName;
//DataTable data = DBHelper.ExecuteDataset(AppConfig.FrameConnectString, CommandType.Text, "select * from " + tempTableName).Tables[0];
dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
grdDetail.DataSource = dataSource;
rptPage.RecordNum = dataSource.Rows.Count;
rptPage.PageIndex = 1;
rptPage.ReLoad();
_wait.Close();
}
catch (Exception ex)
{
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
_wait.Close();
}
}
#endregion
#region 列表
private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.Info.IsRowIndicator && e.RowHandle >= 0)
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
#endregion
#region 双击选择
private void grvDetail_DoubleClick(object sender, EventArgs e)
{
if (grvDetail.FocusedRowHandle < 0)
{
return;
}
if (grvDetail.FocusedColumn == colisSelect)
{
if (grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colisSelect).ToString() == "")
{
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "Y");
}
else
{
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colisSelect, "");
}
}
}
#endregion
//#region 绑定数据源
//private void btnConfig_Click(object sender, EventArgs e)//绑定数据源
//{
// if (AppConfig.UserCode.ToLower() != "demo")
// {
// //ICSBaseSimpleCode.AppshowMessageBox("您没有权限设置数据源,请联系软件提供商!");
// return;
// }
// FormDataSource fdata = new FormDataSource(AppConfig.GetMenuId(this.Tag.ToString()), btnConfig.Name);
// fdata.ShowDialog();
//}
//#endregion
//#region 加载
//private void FormICSFACTORY_Load(object sender, EventArgs e)
//{
// btnFilter_Click(sender, e);
//}
//#endregion
//#region 增加
//private void btnAdd_Click(object sender, EventArgs e)
//{
// //SimpleButton btntemp = (SimpleButton)sender;
// //if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
// //{
// // //ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// // return;
// //}
// //FormICSFACTORYAdd add = new FormICSFACTORYAdd();
// //add.ShowDialog();
// ////btnFalsh_Click(null, null);
//}
//#endregion
//#region 修改
//private void btnEdit_Click(object sender, EventArgs e)
//{
// SimpleButton btntemp = (SimpleButton)sender;
// if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
// {
// ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// return;
// }
// int count = 0;
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// count++;
// }
// }
// if (count != 1)
// {
// ICSBaseSimpleCode.AppshowMessageBox("请选择数据,且只能选择一条进行编辑!!!");
// return;
// }
// try
// {
// string Code;
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// Code = grvDetail.GetRowCellValue(i, colMOID).ToString();
// FormICSFACTORYAdd add = new FormICSFACTORYAdd(Code);
// add.ShowDialog();
// }
// }
// //btnFalsh_Click(null, null);
// }
// catch (Exception ex)
// {
// //throw ex;
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
// }
//}
//#endregion
#region 删除
private void btnDel_Click(object sender, EventArgs e)
{
grvDetail.PostEditor();
this.Validate();
if (grvDetail.RowCount == 0)
return;
List<string> guidList = new List<string>();
List<string> codeList = new List<string>();
for (int i = 0; i < grvDetail.RowCount; i++)
{
guidList.Add(grvDetail.GetRowCellValue(i, colLOTNO).ToString());
}
if (guidList.Count == 0)
{
ICSBaseSimpleCode.AppshowMessageBox("请选择数据!");
return;
}
//删除 ICSITEMROUT2OPLot表中数据删除20190717ZM
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除该工单批次信息吗?删除后无法恢复,确定吗?") != DialogResult.OK)
return;
try
{
ICSMO2LotBLL.delete(guidList);
ICSBaseSimpleCode.AppshowMessageBox(0, "删除成功");
FormICSMO2Lot_Load(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
#endregion
#region 导出
private void btnOutPut_Click(object sender, EventArgs e)
{
try
{
FormOutExcel foe = new FormOutExcel(this.Tag.ToString(), grdDetail);
foe.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
//FormOutExcel foe = new FormOutExcel();
//if (foe.ShowDialog() == DialogResult.OK)
//{
// try
// {
// string outtype = foe._OutType;
// string exceltype = foe._ExcelType;
// string filename = foe._FileName;
// string url = foe._Url;
// string sheetname = foe._SheetName;
// if (outtype.ToLower() == "excel")
// {
// DevExpress.XtraPrinting.XlsExportOptions op = new DevExpress.XtraPrinting.XlsExportOptions();
// op.SheetName = sheetname;
// grdDetail.MainView.ExportToXls((url + "\\" + filename + (exceltype == "2003" ? ".xls" : ".xlsx")), op);
// }
// else
// {
// grdDetail.MainView.ExportToPdf(url + "\\" + filename + ".pdf");
// }
// MessageBox.Show("导出成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
// }
// catch (Exception ex)
// {
// MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
// }
//}
}
#endregion
private void FormICSMO2Lot_Load(object sender, EventArgs e)
{
try
{
//0816新增CUSITEMCODE
string sql = @"select '' as [isSelect],
b.MOPLANENDDATE as MOPLANENDDATE,
b.MOPLANSTARTDATE as MOPLANSTARTDATE,
b.CUSITEMCODE as CUSITEMCODE,
a.ID as ID,
b.ID as MOID,
a.LOTNO as LOTNO,
b.MOCODE as MOCODE,
a.MCODE as MCODE,
b.MOSEQ as TransLine,
a.LOTQTY as LOTQTY,
a.MUSERName as MUSERName,
a.VenderLotNO MOVER,
a.EATTRIBUTE3 MOINPUTQTY,
a.MTIME as MTIME
from dbo.ICSITEMLot a
left join ICSMO b on a.TransNO=b.MOCODE AND a.TransLine=b.MOSEQ
where b.ID='{0}' order by a.LOTNO asc";
sql = string.Format(sql, moid);
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
grdDetail.DataSource = dt;
this.txtMoQty.Text = monum.ToString();
//设置单件流
sql = @"select EnumValue from Sys_EnumValues
where EnumKey='028'";
DataTable dtKey = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
bool flag = false;
foreach (DataRow dr in dtKey.Rows)
{
if (itemcode.StartsWith(dr["EnumValue"].ToString()))
{
flag = true;
}
}
if (flag)
{
this.txtLOTQTY.Text = "1";
this.txtJYLotQty.Text = "1";
}
//else
//{
// GetLotQty(dttp);
//}
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
// sql = @"select isnull(c.[Expanded1],'1') as LotQty from ICSMO a
// left join Base_Inventory b on a.ItemCode=b.ITEMCODE
// left join Base_InventoryExpanded c on b.guid = c.guid
// where a.ID='{0}'";
// sql = string.Format(sql, moid);
// DataTable dt2 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
// if (dt2.Rows.Count > 0)
// {
// this.txtLOTQTY.Text = dt2.Rows[0][0].ToString();
// }
}
private void GetLotQty(DataTable DT)
{
if (DT.Rows.Count > 0)
{
DataRow dr = DT.Select("", "标准工时 DESC")[0];
int lotQty = (int)Math.Round(8 / Convert.ToDecimal(dr["标准工时"].ToString()), 0);
this.txtJYLotQty.Text = lotQty.ToString();
if (monum > lotQty)
{
this.txtLOTQTY.Text = lotQty + "";
}
else
{
this.txtLOTQTY.Text = monum.ToString();
}
this.txtOPCode.Text = dr["工序代码"].ToString();
this.txtSTime.Text = dr["标准工时"].ToString();
}
}
private void btnLot_Click(object sender, EventArgs e)
{
//根据ICSMOPickLog窜起来查确定是否领料。工单:MOCODE、生产订单行号:MOSEQ、子料:ITEMCODE(根据工单母料看子料)
//限制:如果‘是否领料’字段为‘否’,那么无法进行分批操作;
DataTable _dt = ICSMO2LotBLL.IsUsingMO(mocode, moseq);
if (_dt != null && _dt.Rows.Count > 0)
{
string isUsing = _dt.Rows[0][0].ToString();
#region 20210625吴健通知卡控拿掉
//if (!string.IsNullOrWhiteSpace(isUsing))
//{
// int _isUsing = Int32.Parse(isUsing);
// if (_isUsing <= 0)
// {
// ICSBaseSimpleCode.AppshowMessageBox("该工单料号还未领用,不能进行拆批");
// return;
// }
//}
#endregion
}
#region 20210804
//var line = db.ICSMO.SingleOrDefault(a => a.MOCODE == mocode && a.MOSEQ == moseq);
//line.MOSTATUS = "下发";
DataTable _dtIsSend = ICSMO2LotBLL.IsSendMO(mocode, moseq);
if (_dtIsSend != null && _dtIsSend.Rows.Count > 0)
{
string isSend = _dtIsSend.Rows[0][0].ToString();
if (isSend != "下发")
{
ICSBaseSimpleCode.AppshowMessageBox("该工单料号还未下发,不能进行拆批");
return;
}
}
#endregion
bool b = ICSMO2LotBLL.IsIncludingInMO2Lot(moid);
if (b)
{
ICSBaseSimpleCode.AppshowMessageBox("该工单已生成批次,若重新生成,请先删除原批次信息!");
return;
}
int num = 0;
int morow;//行数
int lotqty;//批次数量
int lotcount;//共分成多少批次
int ys;//余数
if (txtLOTQTY.Text.Trim() != "")
{
if (!int.TryParse(txtLOTQTY.Text.Trim(), out num))
{
ICSBaseSimpleCode.AppshowMessageBox("批次数量应该为正整数!");
return;
}
lotqty = int.Parse(txtLOTQTY.Text.Trim());
//lotqty = int.Parse(monum.ToString());
ys = monum % lotqty;
if (ys == 0)
{
morow = monum / lotqty;
}
else
{
morow = monum / lotqty + 1;
}
}
else
{
//lotqty = 1;
//morow = monum;
//ys = 0;
ICSBaseSimpleCode.AppshowMessageBox("每批数量不能为空!");
return;
}
string _sqlMOVER = @"SELECT
B.MOVER, B.MOINPUTQTY AS MOINPUTQTY, B.MOPLANQTY, MOTYPE ,
--0830新增
B.MOPLANSTARTDATE,
B.MOPLANENDDATE
FROM ICSMO B WHERE B.ID = '{0}' ";
_sqlMOVER = string.Format(_sqlMOVER, moid);
DataTable dtMOVER = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sqlMOVER).Tables[0];
string MOVER = string.Empty;
Decimal MOINPUTQTY = 0;
DateTime MOPLANSTARTDATE= AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss") ;//210830
DateTime MOPLANENDDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");//210830
if (dtMOVER != null && dtMOVER.Rows.Count > 0)
{
MOPLANSTARTDATE = (DateTime)dtMOVER.Rows[0]["MOPLANSTARTDATE"];
MOPLANENDDATE = (DateTime)dtMOVER.Rows[0]["MOPLANENDDATE"];
MOTYPE = dtMOVER.Rows[0]["MOTYPE"].ToString();
MOVER = dtMOVER.Rows[0][0].ToString();
Decimal _QTY = 0;
if (!string.IsNullOrWhiteSpace(dtMOVER.Rows[0][2].ToString()))
{
_QTY = Decimal.Parse(dtMOVER.Rows[0][2].ToString());
}
//20190924更改工单表中辅助计量数值,总数值/个数
MOINPUTQTY = Decimal.Parse(dtMOVER.Rows[0][1].ToString()) / _QTY;
}
//0826GJ
DataTable dt = new DataTable();
dt.Columns.Add("isSelect", typeof(string));
dt.Columns["isSelect"].Caption = "选择";
dt.Columns.Add("ID", typeof(string));
dt.Columns["ID"].Caption = "批次ID";
dt.Columns.Add("LOTNO", typeof(string));
dt.Columns["LOTNO"].Caption = "批号";
dt.Columns.Add("MOCODE", typeof(string));
dt.Columns["MOCODE"].Caption = "生产订单号";
dt.Columns.Add("TransLine", typeof(string));
dt.Columns["TransLine"].Caption = "生产订单行号";
dt.Columns.Add("PRODUCTDATE", typeof(DateTime));
dt.Columns["PRODUCTDATE"].Caption = "产品日期";
dt.Columns.Add("LOTQTY", typeof(int));
dt.Columns["LOTQTY"].Caption = "批次数量";
dt.Columns.Add("MCODE", typeof(string));
dt.Columns["MCODE"].Caption = "存货编码";
dt.Columns.Add("ACTIVE", typeof(string));
dt.Columns["ACTIVE"].Caption = "状态";
dt.Columns.Add("Exdate", typeof(DateTime));
dt.Columns["Exdate"].Caption = "日期";
dt.Columns.Add("WorkPoint", typeof(string));
dt.Columns["WorkPoint"].Caption = "站点";
dt.Columns.Add("MUSER", typeof(string));
dt.Columns["MUSER"].Caption = "维护人";
dt.Columns.Add("MUSERName", typeof(string));
dt.Columns["MUSERName"].Caption = "维护人名称";
dt.Columns.Add("MTIME", typeof(DateTime));
dt.Columns["MTIME"].Caption = "维护时间";
dt.Columns.Add("MOID", typeof(string));
dt.Columns["MOID"].Caption = "工单ID";
dt.Columns.Add("MOVER", typeof(string));
dt.Columns["MOVER"].Caption = "零件号";
dt.Columns.Add("MOINPUTQTY", typeof(Decimal));
dt.Columns["MOINPUTQTY"].Caption = "辅助计量单位";
dt.Columns.Add("MOPLANSTARTDATE", typeof(DateTime));
dt.Columns["MOPLANSTARTDATE"].Caption = "预计开工日期";
dt.Columns.Add("MOPLANENDDATE", typeof(DateTime));
dt.Columns["MOPLANENDDATE"].Caption = "预计完工日期";
//dt.Columns.Add("LOTSEQ", typeof(int));
//dt.Columns["LOTSEQ"].Caption = "产品跟踪单号流水号";
//dt.Columns.Add("LOTStatus", typeof(string));
//dt.Columns["LOTStatus"].Caption = "状态";
//dt.Columns.Add("TransNO", typeof(string));
//dt.Columns["TransNO"].Caption = "生产订单行号";
for (int i = 1; i <= morow; i++)
{
DataRow dr = dt.NewRow();
dr["isSelect"] = "";
dr["ID"] = Guid.NewGuid().ToString();
dr["MOID"] = moid;
string n = Convert.ToString(i);
n = n.PadLeft(4, '0');
dr["LOTNO"] = mocode + moseq + n;
//dr["LOTSEQ"] = i;
dr["MOCODE"] = mocode;
dr["MCODE"] = itemcode;
if (ys == 0 || i != morow)
{
dr["LOTQTY"] = lotqty;
}
else if (i == morow)
dr["LOTQTY"] = ys;
dr["TransLine"] = moseq;
//dr["LOTStatus"] = "新增";
dr["MUSERName"] = AppConfig.UserName;
dr["MTIME"] = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss").ToString();
dr["MOVER"] = MOVER;
dr["MOINPUTQTY"] = MOINPUTQTY;
//21.9.4新增
dr["MOPLANSTARTDATE"] = MOPLANSTARTDATE;
dr["MOPLANENDDATE"] = MOPLANENDDATE;
dt.Rows.Add(dr);
}
grdDetail.DataSource = dt;
btnFalsh_Click(null, null);
}
private void btnSave_Click(object sender, EventArgs e)
{
bool b = ICSMO2LotBLL.IsIncludingInMO2Lot(moid);
if (b)
{
ICSBaseSimpleCode.AppshowMessageBox("该工单已生成批次,若重新生成,请先删除原批次信息!");
return;
}
if (!string.IsNullOrWhiteSpace(this.txtLOTQTY.Text.Trim()))
{
if (Decimal.Parse(this.txtLOTQTY.Text.Trim()) < 0 || Decimal.Parse(this.txtLOTQTY.Text.Trim()) == 0)
{
ICSBaseSimpleCode.AppshowMessageBox("每批数量不能小于等于0!");
return;
}
}
else
{
ICSBaseSimpleCode.AppshowMessageBox("请填写分批数量!");
return;
}
#region 关联工单的默认途程
// string isref = "";
// string routeid = "";
// //查找工单--产品途程
// string sql1 = @"select ROUTEID,ISREF from ICSITEM2ROUTE where ITEMCODE='" + itemcode + "' and ISREF = '是' and WorkPoint='" + AppConfig.WorkPointCode + "'";
// sql1 = string.Format(sql1);
// DataTable data1 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql1).Tables[0];
// if (data1 != null && data1.Rows.Count > 0)
// {
// routeid = data1.Rows[0]["ROUTEID"].ToString();
// isref = data1.Rows[0]["ISREF"].ToString();
// ICSMOBLL.addRoute(moid, routeid, itemcode, isref, AppConfig.AppConnectString);
// }
// else
// {
// string sql = @"select a.ROUTEID,
// a.ISREF
// from ICSMODEL2ROUTE a
// left join Base_Inventory b on a.MODELCODE=b.ItemMainCategoryCode
// where b.ItemCode='" + itemcode + "' and a.ISREF = '是' and a.WorkPoint='" + AppConfig.WorkPointCode + "'";
// sql = string.Format(sql);
// DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
// if (data != null && data.Rows.Count > 0)
// {
// routeid = data.Rows[0]["ROUTEID"].ToString();
// isref = data.Rows[0]["ISREF"].ToString();
// ICSMOBLL.addRoute(moid, routeid, itemcode, isref, AppConfig.AppConnectString);
// }
// else
// {
// if (ICSBaseSimpleCode.AppshowMessageBoxRepose("该工单没有默认途程,是否继续生成批次?") != DialogResult.OK)
// {
// return;
// }
// }
// }
#endregion
#region 校验工单是否关联途程、工艺路线、工序
//mocode = code;
//moseq = moSeq;
//itemcode = ITEMCODE;
//string mocode = "";//工单编码
//string moseq = "";//生产订单行号
//string itemcode = "";
string _sql = @"SELECT DISTINCT
a.ITEMCODE,
b.ROUTECODE AS ROUTECODE,
e.OPCODE,
e.OPSEQ,
a.MOCODE AS MOCODE,
CONVERT (INT, a.MOSEQ) AS MOSEQ
FROM
ICSMO a
LEFT JOIN ICSMO2ROUTE b ON ( b.MOID = a.ID)
LEFT JOIN ICSITEMROUTE2OP e ON e.ROUTECODE = b.ROUTECODE AND a.ITEMCODE=e.ITEMCODE
WHERE
a.MOCODE = '" + mocode + "' AND a.MOSEQ = '" + moseq + "' AND a.ITEMCODE = '" + itemcode + "' ";
_sql = string.Format(_sql);
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
string ROUTECODE = string.Empty;
string OPCODE = string.Empty;
int OPSEQ = 0;
ROUTECODE = dr["ROUTECODE"].ToString();
OPCODE = dr["OPCODE"].ToString();
if (string.IsNullOrWhiteSpace(dr["OPSEQ"].ToString()))
{
OPSEQ = 0;
}
else
{
OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
}
if (string.IsNullOrWhiteSpace(ROUTECODE))
{
ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
return;
}
if (string.IsNullOrWhiteSpace(OPCODE))
{
ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
return;
}
if (OPSEQ <= 0)
{
ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
return;
}
}
}
else
{
ICSBaseSimpleCode.AppshowMessageBox("未获取到工单途程工序关系,请重新维护");
return;
}
#endregion
List<FormICSMO2LotUIModel> equipmentInfoList = new List<FormICSMO2LotUIModel>();
//List<WM_BarCode> barcodeList = new List<WM_BarCode>();
if (grvDetail.RowCount == 0)
{
ICSBaseSimpleCode.AppshowMessageBox("请先输入批数!");
return;
}
int NUM = 0;
for (int i = 0; i < grvDetail.RowCount; i++)
{
NUM += Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY));
}
if (NUM != monum)
{
ICSBaseSimpleCode.AppshowMessageBox("批次总数量与计划工单数量不等!");
return;
}
int row = 0;
for (int i = 0; i < grvDetail.RowCount; i++)
{
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
FormICSMO2LotUIModel equipmentInfo = new FormICSMO2LotUIModel();
equipmentInfo.ID = grvDetail.GetRowCellValue(i, colID).ToString();
equipmentInfo.MCODE = itemcode;
equipmentInfo.TYPE = "工单";
equipmentInfo.TransNO = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
equipmentInfo.TransLine = grvDetail.GetRowCellValue(i, colTransLine).ToString();
equipmentInfo.LotNO = grvDetail.GetRowCellValue(i, colLOTNO).ToString();
equipmentInfo.LOTQTY = Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY));
//equipmentInfo.MCODE = grvDetail.GetRowCellValue(i, colMCODE).ToString();
equipmentInfo.MUSER = AppConfig.UserId;
equipmentInfo.MUSERName = AppConfig.UserName;
equipmentInfo.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
equipmentInfo.WorkPoint = AppConfig.WorkPointCode;
equipmentInfo.EATTRIBUTE1 = null;
equipmentInfo.MOPLANSTARTDATE = grvDetail.GetRowCellValue(i, gridColumn1).ToString();
equipmentInfo.MOPLANENDDATE = grvDetail.GetRowCellValue(i, gridColumn2).ToString();
//0830新增
// equipmentInfo.
//20190916新增ZM
equipmentInfo.EATTRIBUTE3 = Decimal.Parse(grvDetail.GetRowCellValue(i, colMOINPUTQTY).ToString());//辅助计量
if (MOTYPE == "装配生产")
{
row++;
equipmentInfo.VenderLotNO = grvDetail.GetRowCellValue(i, colMOVER).ToString() + "-" + row.ToString();//add by summer 2020.10.27
equipmentInfo.EATTRIBUTE6 = "qichu" + row;
equipmentInfo.EATTRIBUTE7 = grvDetail.GetRowCellValue(i, colMOVER).ToString() + "-" + row.ToString();
}
//dr["MOVER"] = MOVER;
//dr["MOINPUTQTY"] = MOINPUTQTY;
equipmentInfoList.Add(equipmentInfo);
//20190711ZM
LotNO = equipmentInfo.LotNO;
//WM_BarCode barcode = new WM_BarCode();
//barcode.guid = AppConfig.GetGuid();
//barcode.SrcType = "WM_Order";
//barcode.Srcguid = grvDetail.GetRowCellValue(i, colMOID).ToString();
//barcode.RCVShipguid = grvDetail.GetRowCellValue(i, colMOID).ToString();
//barcode.BarCodeNo = grvDetail.GetRowCellValue(i, colLOTNO).ToString();
//barcode.BarCodeQty = Convert.ToInt32(grvDetail.GetRowCellValue(i, colLOTQTY).ToString());
//DataTable dt=ICSMO2LotBLL.searchForItem(itemcode,AppConfig.AppConnectString);
//if (dt != null && dt.Rows.Count > 0)
//{
// barcode.ItemGuid = dt.Rows[0]["guid"].ToString();
// barcode.ItemName = dt.Rows[0]["ItemName"].ToString();
//}
//barcode.ItemCode=itemcode;
//barcode.WorkPointCode = AppConfig.WorkPointCode;
//barcode.BarCodeStatus = "new";
//barcode.MUSERCode = AppConfig.UserCode;
//barcode.MUSERName = AppConfig.UserName;
//barcode.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
//barcodeList.Add(barcode);
}
try
{
ICSMO2LotBLL.Add(equipmentInfoList, AppConfig.AppConnectString);
//往ICSITEMROUT2OPLot表中插入数据
List<ICSITEMROUTE2OPLot> ITEMROUTE2OPList = new List<ICSITEMROUTE2OPLot>();
//foreach (DataRow dr in dt.Rows)
foreach (var item in equipmentInfoList)
{
foreach (DataRow dr in dt.Rows)
{
string ROUTECODE = string.Empty;
string OPCODE = string.Empty;
int OPSEQ = 0;
ROUTECODE = dr["ROUTECODE"].ToString();
OPCODE = dr["OPCODE"].ToString();
OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
if (string.IsNullOrWhiteSpace(ROUTECODE))
{
ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
return;
}
if (string.IsNullOrWhiteSpace(OPCODE))
{
ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
return;
}
if (OPSEQ <= 0)
{
ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
return;
}
string OPCONTROL = string.Empty;
string OPTIONALOP = string.Empty;
string IDMERGETYPE = string.Empty;
string IDMERGERULE = string.Empty;
string _sql_ = @"SELECT
OPCONTROL,
OPTIONALOP,
IDMERGETYPE,
IDMERGERULE
FROM
ICSITEMROUTE2OP
WHERE
ROUTECODE = '" + ROUTECODE + "' AND OPCODE = '" + OPCODE + "' AND OPSEQ = '" + OPSEQ + "'";
_sql_ = string.Format(_sql_);
DataTable _dt_ = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql_).Tables[0];
if (_dt_ != null && _dt_.Rows.Count > 0)
{
OPCONTROL = _dt_.Rows[0][0].ToString();
OPTIONALOP = _dt_.Rows[0][1].ToString();
IDMERGETYPE = _dt_.Rows[0][2].ToString();
IDMERGERULE = _dt_.Rows[0][3].ToString();
}
ICSITEMROUTE2OPLot ITEMROUTE2OP = new ICSITEMROUTE2OPLot();
ITEMROUTE2OP.ID = "";
ITEMROUTE2OP.ITEMCODE = itemcode;
ITEMROUTE2OP.LotNo = item.LotNO;// LotNO;
ITEMROUTE2OP.ROUTECODE = ROUTECODE;
ITEMROUTE2OP.OPCODE = OPCODE;
ITEMROUTE2OP.OPSEQ = OPSEQ;
ITEMROUTE2OP.OPCONTROL = OPCONTROL;
ITEMROUTE2OP.OPTIONALOP = OPTIONALOP;
ITEMROUTE2OP.IDMERGETYPE = IDMERGETYPE;
ITEMROUTE2OP.IDMERGERULE = 0;
ITEMROUTE2OP.MUSER = AppConfig.UserId;
ITEMROUTE2OP.MUSERName = AppConfig.UserName;
ITEMROUTE2OP.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
ITEMROUTE2OP.WorkPoint = AppConfig.WorkPointCode;
ITEMROUTE2OP.EATTRIBUTE1 = null;
ITEMROUTE2OPList.Add(ITEMROUTE2OP);
}
}
#region 20190716
// foreach (DataRow dr in dt.Rows)
// //grvDetail.RowCount
// {
// string ROUTECODE = string.Empty;
// string OPCODE = string.Empty;
// int OPSEQ = 0;
// ROUTECODE = dr["ROUTECODE"].ToString();
// OPCODE = dr["OPCODE"].ToString();
// OPSEQ = Int32.Parse(dr["OPSEQ"].ToString());
// if (string.IsNullOrWhiteSpace(ROUTECODE))
// {
// ICSBaseSimpleCode.AppshowMessageBox("未获取到途程,请维护");
// return;
// }
// if (string.IsNullOrWhiteSpace(OPCODE))
// {
// ICSBaseSimpleCode.AppshowMessageBox("未获取到工序,请维护");
// return;
// }
// if (OPSEQ <= 0)
// {
// ICSBaseSimpleCode.AppshowMessageBox("工序次序不符合规则,请重新维护");
// return;
// }
// string OPCONTROL = string.Empty;
// string OPTIONALOP = string.Empty;
// string IDMERGETYPE = string.Empty;
// string IDMERGERULE = string.Empty;
// string _sql_ = @"SELECT
// OPCONTROL,
// OPTIONALOP,
// IDMERGETYPE,
// IDMERGERULE
// FROM
// ICSITEMROUTE2OP
// WHERE
// ROUTECODE = '" + ROUTECODE + "' AND OPCODE = '" + OPCODE + "' AND OPSEQ = '" + OPSEQ + "'";
// _sql_ = string.Format(_sql_);
// DataTable _dt_ = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql_).Tables[0];
// if (_dt_ != null && _dt_.Rows.Count > 0)
// {
// OPCONTROL = _dt_.Rows[0][0].ToString();
// OPTIONALOP = _dt_.Rows[0][1].ToString();
// IDMERGETYPE = _dt_.Rows[0][2].ToString();
// IDMERGERULE = _dt_.Rows[0][3].ToString();
// }
// ICSITEMROUTE2OPLot ITEMROUTE2OP = new ICSITEMROUTE2OPLot();
// ITEMROUTE2OP.ITEMCODE = itemcode;
// ITEMROUTE2OP.LotNo = LotNO;
// ITEMROUTE2OP.ROUTECODE = ROUTECODE;
// ITEMROUTE2OP.OPCODE = OPCODE;
// ITEMROUTE2OP.OPSEQ = OPSEQ;
// ITEMROUTE2OP.OPCONTROL = OPCONTROL;
// ITEMROUTE2OP.OPTIONALOP = OPTIONALOP;
// ITEMROUTE2OP.IDMERGETYPE = IDMERGETYPE;
// ITEMROUTE2OP.IDMERGERULE = 0;
// ITEMROUTE2OP.MUSER = AppConfig.UserId;
// ITEMROUTE2OP.MUSERName = AppConfig.UserName;
// ITEMROUTE2OP.MTIME = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
// ITEMROUTE2OP.WorkPoint = AppConfig.WorkPointCode;
// ITEMROUTE2OP.EATTRIBUTE1 = null;
// ITEMROUTE2OPList.Add(ITEMROUTE2OP);
// }
#endregion
ICSMO2LotBLL.AddList(ITEMROUTE2OPList, AppConfig.AppConnectString);
btnFalsh_Click(null, null);
ICSBaseSimpleCode.AppshowMessageBox("保存成功");
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
//}
}
private void repositoryItemButtonEdit1_BottonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
ButtonEdit btn = (ButtonEdit)sender;
string sql = "select '新增' as 状态 union all select '使用' as 状态 union all select '停止' as 状态 WHERE 1=1";
//object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetHuaRongErpConnectString", new object[] { });
//if (obj == null)
//{
// ICSBaseSimpleCode.AppshowMessageBox(1, "ERP数据库连接取得失败!");
//}
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString.ToString(), CommandType.Text, sql).Tables[0];
FormDataRefer reForm = new FormDataRefer();
reForm.FormTitle = "批次状态";
DataTable menuData = data;
reForm.DataSource = menuData;
reForm.MSelectFlag = false;
reForm.RowIndexWidth = 35;
reForm.HideCols.Add("ID");
reForm.FormWidth = 500;
reForm.FormHeight = 500;
//reForm.FilterKey = btn.Text;
//grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, grvDetail.FocusedColumn).ToString().Trim();
if (reForm.ShowDialog() == DialogResult.OK)
{
DataTable retData = reForm.ReturnData;
foreach (DataRow dr in retData.Rows)
{
if (grvDetail.FocusedColumn == colLOTStatus)
{
grvDetail.SetRowCellValue(grvDetail.FocusedRowHandle, colLOTStatus, dr["状态"].ToString());
}
}
}
}
/// <summary>
/// 一键分批 0817
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void allbtnlot_Click(object sender, EventArgs e)
{
}
}
}