华恒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.

1985 lines
89 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.Linq;
using System.Linq;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using DevExpress.XtraGrid.Views.BandedGrid;
using DevExpress.XtraGrid.Columns;
using DevExpress.XtraGrid;
using System.IO;
using System.Threading;
using ICSSoft.Base.Language.Tool;
using ICSSoft.Base.Config.AppConfig;
using ICSSoft.Base.UserControl.MessageControl;
using ICSSoft.Base.Config.DBHelper;
using ICSSoft.Base.Report.Filter;
using ICSSoft.Base.UserControl.FormControl;
using ICSSoft.Base.Report.GridReport;
using ICSSoft.Base.ReferForm.AppReferForm;
using ICSSoft.Frame.Data.BLL;
using Newtonsoft.Json;
using System.Net;
using System.Configuration;
using ICSSoft.Entity.PU_AppVouch;
using ICSSoft.Frame.Data.Entity.WWModel;
using ICSSoft.Frame.Data.DAL;
using ICSSoft.Frame.Data.Entity;
using ICSSoft.Base.Lable.PrintTool;
namespace ICSSoft.Frame.APP
{
public partial class FormICSMO : DevExpress.XtraEditors.XtraForm
{
private string sqltxt = "";
private string sqlconn = "";
String guid = AppConfig.GetGuid();
private DataTable dataSource = null;
static string APIURL = System.Configuration.ConfigurationSettings.AppSettings["APIURL"].ToString();
static string DataCollectWW = APIURL + "APICreatePR";
//static string DataCollectWW = "http://localhost:51182/api/"+ "APICreatePR";
private DataSet ds = new DataSet();
private DataTable body = null;
#region 构造函数
public FormICSMO()
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.WindowState = FormWindowState.Maximized;
foreach (DevExpress.XtraGrid.Columns.GridColumn col in grvDetail.Columns)
{
if (col.Name == "picturesee")
{
col.OptionsColumn.ReadOnly = false;
}
else
col.OptionsColumn.ReadOnly = true;
col.OptionsColumn.AllowEdit = true;
if (col.Name == "colisSelect")
col.OptionsColumn.AllowEdit = false;
// col.OptionsColumn.ReadOnly = true;
}
}
#endregion
#region 操作权限
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(btnCreatePR);
ControlList.Add(btnModify);
ControlList.Add(btnDel);
ControlList.Add(btnOutPut);
ControlList.Add(BtnCancelCloseMO);
ControlList.Add(btnCancelAll);
ControlList.Add(btnRefresh);
ControlList.Add(txtsend);
ControlList.Add(txtcancelSend);
ControlList.Add(btnBatch);
ControlList.Add(btnExit);
ControlList.Add(txtstop);
ControlList.Add(txtcancelStop);
ControlList.Add(txtcloseDan);
ControlList.Add(btnLot1);
ControlList.Add(btnprint);
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;
}
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 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 列表
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 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 = 499;
rptPage.PageIndex = 1;
rptPage.ReLoad();
rptPage.PageSize = 500;
rptPage.PageIndex = 1;
rptPage.ReLoad();
_wait.Close();
//_wait.Show();
//ds.Reset();
//dataSource = null;
//body = null;
//tempTableName = filter.NewTempTableName;
//sqltxt = filter.SqlText;
//sqlconn = filter.FilterConnectString;
//dataSource = filter.FilterData.Tables[0].Copy();
//dataSource.TableName = "Hand";
//ds.Tables.Add(dataSource);
//body = ICSMOBLL.GetMOBOM(sqltxt).Copy();
//body.TableName = "Body";
//ds.Tables.Add(body);
//DataRelation dr = new DataRelation("子件资料", new DataColumn[] { ds.Tables["Hand"].Columns["MOCODE"], ds.Tables["Hand"].Columns["MOSEQ"] }, new DataColumn[] { ds.Tables["Body"].Columns["MOCODE"], ds.Tables["Body"].Columns["SEQ"] });
//ds.Relations.Add(dr);
//grdDetail.DataSource = ds.Tables["Hand"];
//grvDetail.BestFitColumns();
//rptPage.RecordNum = dataSource.Rows.Count;
//rptPage.PageSize = 499;
//rptPage.PageIndex = 1;
//rptPage.ReLoad();
//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 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 rptPage_PageIndexChanged(object Sender, EventArgs e)
{
DataTable data = AppConfig.GetPageData(dataSource, rptPage.PageIndex, rptPage.PageSize).Copy();
//DataTable data = AppConfig.GetPageDataByDb(tempTableName, "pagerowindex", rptPage.PageSize, rptPage.PageIndex, dataSource.Rows.Count);
grdDetail.DataSource = data;
}
#endregion
#region 过滤方法
private void FormContainerManager_FormClosing(object sender, FormClosingEventArgs e)
{
AppConfig.DropTemTable(tempTableName);
}
#endregion
#region 全选
private void btnSelectAll_Click(object sender, EventArgs e)
{
grvDetail.PostEditor();
this.Validate();
for (int i = 0; i < grvDetail.RowCount; i++)
{
grvDetail.SetRowCellValue(i, colisSelect, "Y");
}
}
#endregion
#region 全消
private void btnCancelAll_Click(object sender, EventArgs e)
{
grvDetail.PostEditor();
this.Validate();
for (int i = 0; i < grvDetail.RowCount; i++)
{
grvDetail.SetRowCellValue(i, colisSelect, "");
}
}
#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 btnDel_Click(object sender, EventArgs e)
{
#region
//SimpleButton btntemp = (SimpleButton)sender;
//if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
//{
// ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// return;
//}
//List<string> moidList = new List<string>();
//for (int i = 0; i < grvDetail.RowCount; i++)
//{
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// string moid;
// if (grvDetail.GetRowCellValue(i, colMOTYPE).ToString() == "1")
// {
// moidList.Add(grvDetail.GetRowCellValue(i, colID).ToString());
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("非返程工单,不能删除!!!");
// return;
// }
// }
//}
//if (moidList.Count == 0 || moidList == null)
//{
// ICSBaseSimpleCode.AppshowMessageBox("请选择数据");
// return;
//}
//if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定删除工单吗?删除后无法恢复,确定吗?") != DialogResult.OK)
//{
// btnCancelAll_Click(sender, e);
// return;
//}
//try
//{
// ICSMOBLL.deleteInfo(moidList, AppConfig.AppConnectString);
// ICSBaseSimpleCode.AppshowMessageBox("删除成功");
//}
//catch (Exception ex)
//{
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
//}
//btnRefresh_Click(null, null);
#endregion
//批次删除
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确认删除批次信息吗?删除后无法恢复!")==DialogResult.OK) {
int count = 0;
List<ICSMO> list = new List<ICSMO>();
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect) == "Y") {
count++;
string mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
string moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
string status = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
if (ICSMO2LotBLL.IsKG(grvDetail.GetRowCellValue(i, colMOCODE).ToString(), grvDetail.GetRowCellValue(i, colMOSEQ).ToString()))
{
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已开工,无法删除批次!");
return;
}
if (ICSMO2LotBLL.IsPG(grvDetail.GetRowCellValue(i, colMOCODE).ToString(), grvDetail.GetRowCellValue(i, colMOSEQ).ToString()))
{
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已派工,请先取消派工!");
return;
}
ICSMO mo = new ICSMO();
mo.MOCODE = mocode;
mo.MOSEQ = moseq;
list.Add(mo);
}
}
if (count <= 0) {
ICSBaseSimpleCode.AppshowMessageBox("请选择要删除批次信息的工单!");
}
try
{
ICSMOBLL.DeleteLotno(list);
ICSBaseSimpleCode.AppshowMessageBox("删除成功!");
}
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
#region 刷新
private void btnRefresh_Click(object sender, EventArgs e)
{
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];
if (!string.IsNullOrWhiteSpace(sqlconn))
{
dataSource = DBHelper.ExecuteDataset(sqlconn, CommandType.Text, sqltxt).Tables[0];
grdDetail.DataSource = dataSource;
grvDetail.BestFitColumns();
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 btnCreate_Click(object sender, EventArgs e)
{
SimpleButton btntemp = (SimpleButton)sender;
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
{
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
return;
}
try
{
if (ICSBaseSimpleCode.AppshowMessageBoxRepose("确定产生委外请购单吗?") != DialogResult.OK)
{
return;
}
else
{
DevExpress.Utils.WaitDialogForm _wait = new DevExpress.Utils.WaitDialogForm("正在创建...请稍等...");
try
{
_wait.Show();
bool isright = true;
List<PU_AppVouch> listcontextWW = new List<PU_AppVouch>();
List<PU_AppVouchs> contextsWWList = new List<PU_AppVouchs>();
PU_AppVouch contextWW = new PU_AppVouch();
contextWW.UserCode = AppConfig.UserCode;
contextWW.UserName = AppConfig.UserName;
//contextWW.TargetAccount =AppConfig.GetDataBaseNameByConnectString(AppConfig.GetDataBaseConnectStringByKey("[]"));
contextWW.TargetAccount = ConfigurationManager.AppSettings["TargetAccountU8"];
List<string> dept = new List<string>();
string sqladdress = "select '['+DBIPADDRESS+']'+'.'+DBNAME as address from Sys_DataBase where dbsourcename='ERP'";
string ipaddress = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqladdress).Tables[0].Rows[0]["address"].ToString();
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
#region MyRegion
//工单工号
string MOCode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
string MCODE = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
string MOSEQ = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
string MOSTATUS = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
string ItemName = grvDetail.GetRowCellValue(i, colITEMNAME).ToString();
string MOPLANQTY = grvDetail.GetRowCellValue(i, colMOPLANQTY).ToString();
string MOPLANENDDATE = grvDetail.GetRowCellValue(i, colMOPLANENDDATE).ToString();
string deptname = grvDetail.GetRowCellValue(i, colcDepName).ToString();
if (!dept.Contains(deptname)) {
dept.Add(deptname);
}
if (dept.Count > 1) {
ICSBaseSimpleCode.AppshowMessageBox("请选择相同部门的工单行!");
return;
}
string U8Sql = @"SELECT COUNT( c.IssQty)
FROM "+ipaddress+ @".dbo.mom_order a
INNER JOIN " + ipaddress + @".dbo.mom_orderdetail b ON a.MoId = b.MoId
INNER JOIN " + ipaddress + @".dbo.mom_moallocate c ON b.MoDId = c.MoDId
WHERE a.MoCode = '" + MOCode + "' and b.SortSeq='" + MOSEQ + "' and c.IssQty>0";
DataTable U8Dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, U8Sql).Tables[0];
if (U8Dt != null && U8Dt.Rows.Count > 0)
{
string IssQty = U8Dt.Rows[0][0].ToString();
int _IssQty = 0;
if (string.IsNullOrWhiteSpace(IssQty))
{
_IssQty = Int32.Parse(IssQty);
if (_IssQty > 0)
{
_wait.Close();
ICSBaseSimpleCode.AppshowMessageBox("工单:" + MOCode + ",行号:" + MOSEQ + "在U8中已经领料,不能创建请购单!!!");
return;
}
}
}
string u8sql = "select cDefine22 from " + ipaddress + @".dbo.PU_AppVouchs where cDefine22='" + MOCode + "' and cDefine24='"+MOSEQ+"'";
DataTable dt1 = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, u8sql).Tables[0];
if (dt1.Rows.Count > 0) {
_wait.Close();
ICSBaseSimpleCode.AppshowMessageBox("工单:" + MOCode + ",行号:" + MOSEQ + "在U8中已创建请购单,请不要重复创建!!");
return;
}
if (MOSTATUS != "初始")
{
_wait.Close();
ICSBaseSimpleCode.AppshowMessageBox("工单:" + MOCode + ",行号:" + MOSEQ + "不是初始状态,不能创建请购单!!!");
return;
}
string lotNO = string.Empty;
string sqlCheck = @"SELECT bPurchase FROM ICSINVENTORY WHERE INVCODE='" + MCODE + "' ";
DataTable dtCheck = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlCheck).Tables[0];
string bPurchase = string.Empty;
if (dtCheck != null && dtCheck.Rows.Count > 0)
{
bPurchase = dtCheck.Rows[0]["bPurchase"].ToString();
}
if (bPurchase != "1")
{
_wait.Close();
//throw new Exception("料号:" + MCODE + "的外购标识是false,不允许请购!");
ICSBaseSimpleCode.AppshowMessageBox("料号:" + MCODE + "的外购标识是false,不允许请购!!!");
return;
}
string sql = @"SELECT DISTINCT MOSTATUS from ICSMO WHERE MOCODE='" + MOCode + "' AND MOSEQ='" + MOSEQ + "' ";
DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
if (dt != null && dt.Rows.Count > 0)
{
foreach (DataRow dr1 in dt.Rows)
{
string PRLineID = dr1["MOSTATUS"].ToString();
if (PRLineID == "关闭")
{
_wait.Close();
ICSBaseSimpleCode.AppshowMessageBox("该工单已经关闭,不能生成请购单!!!");
return;
}
}
}
#region
// string sqlQty = @"
//SELECT A.MOCODE, B.MCODE AS MCODE, C.INVNAME, A.OPCODE, D.OPDESC AS PRLineID, COUNT (B.LOTQTY) AS PRQty,
//ISNULL(MIN(A.StartPlanDate), GETDATE()) StartPlanDate, ISNULL(MAX(A.EndPlanDate), GETDATE()) EndPlanDate
//FROM ICSMO2User A LEFT JOIN ICSITEMLot B ON A.LOTNO = B.LotNO LEFT JOIN ICSOP D ON D.OPCODE = A.OPCODE
//LEFT JOIN ICSINVENTORY C ON B.MCODE = C.INVCODE WHERE A.MOCODE = '" + MOCode + "' AND B.MCODE = '" + MCODE + @"'
//AND A.MOSEQ = '" + MOSEQ + @"' AND A.EATTRIBUTE1 = 1 AND (A.PRLineID IS NULL OR A.PRLineID = '')
//GROUP BY A.MOCODE, A.OPCODE, B.MCODE, C.INVNAME, D.OPDESC ";//UPDATE BY SUMMER 2020.06.17
#endregion
//DataTable dtQty = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlQty).Tables[0];
string _EnumKey = "00010";
string sqlcInvCCode = @"SELECT DISTINCT EnumText from Sys_EnumValues WHERE EnumKey='" + _EnumKey + "' ";
DataTable dtcInvCCode = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqlcInvCCode).Tables[0];
string _cInvCCode = string.Empty;
if (dtcInvCCode != null && dtcInvCCode.Rows.Count > 0)
{
_cInvCCode = dtcInvCCode.Rows[0][0].ToString();
}
string sqldepart = @"SELECT MDeptCode
FROM " + ipaddress + @".dbo.mom_order a
INNER JOIN " + ipaddress + @".dbo.mom_orderdetail b ON a.MoId = b.MoId
WHERE a.MoCode = '" + MOCode + "' and b.SortSeq='" + MOSEQ + "'";
DataTable depart = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sqldepart).Tables[0];
if (depart.Rows.Count > 0)
{
contextWW.cDepCode = depart.Rows[0]["MDeptCode"].ToString();
}
else
contextWW.cDepCode = "";
PU_AppVouchs contextsWW = new PU_AppVouchs();
contextsWW.cInvCCode = _cInvCCode;//物料大类
contextsWW.cInvCode = MCODE;// _dr["MCODE"].ToString();//料号
contextsWW.cInvName = ItemName;//_dr["INVNAME"].ToString();//料号名称
contextsWW.OPCode = null;// _dr["OPCODE"].ToString();//工序
contextsWW.iQuantity = Decimal.Parse(MOPLANQTY);// Decimal.Parse(_dr["PRQty"].ToString());
contextsWW.iNum = Int32.Parse(MOSEQ);// lotinfo.LOTQTY * Convert.ToDecimal(lotinfo.EATTRIBUTE3);
contextsWW.MOCode = MOCode;//工单号
contextsWW.PRLine = "";//_dr["PRLineID"].ToString();//工序
contextsWW.dArriveDate = null;// Convert.ToDateTime(_dr["StartPlanDate"].ToString()).ToShortDateString();
if (string.IsNullOrWhiteSpace(MOPLANENDDATE))
{
contextsWW.dRequirDate = null; ;// Convert.ToDateTime(_dr["EndPlanDate"].ToString()).ToShortDateString();
}
else
{
contextsWW.dRequirDate = MOPLANENDDATE;
}
contextsWW.LotNo = "";//产品产品跟踪单号
contextsWWList.Add(contextsWW);
#endregion
}
}
contextWW.list = contextsWWList;
listcontextWW.Add(contextWW);
string WWPR = JsonConvert.SerializeObject(listcontextWW);
string iresultMO = HttpPost(DataCollectWW, WWPR);
U8Result INVINResultMO = new U8Result();
INVINResultMO = JsonConvert.DeserializeObject<U8Result>(iresultMO);
StringBuilder str = new StringBuilder();
str.AppendLine("创建U8请购单接口:" + WWPR);
str.AppendLine("接口返回结果:" + INVINResultMO.code);
str.AppendLine("接口返回数据:" + INVINResultMO.msg);
ICSMO2UserDAL.WriteLogFile(str.ToString(), "创建U8请购单接口");
if (INVINResultMO.code != "200")
{
_wait.Close();
throw new Exception(INVINResultMO.msg);
}
List<PU_AppVouchs> _list = new List<PU_AppVouchs>();
if (!string.IsNullOrWhiteSpace(INVINResultMO.msg))
{
_list = JsonConvert.DeserializeObject<List<PU_AppVouchs>>(INVINResultMO.msg.ToString());
}
else
{
_wait.Close();
throw new Exception("未获取到请购单数据!");
}
//--MOBIOSVER
string code = "";
foreach (PU_AppVouchs vouch in _list)
{
string sqlUpdate = @"UPDATE ICSMO SET MOSTATUS='关闭',PRDate='"+ DateTime.Now + "' WHERE MOCODE='"+vouch.MOCode+"' AND MOSEQ='"+vouch.iNum+"' ";
DBHelper.ExecuteNonQuery(AppConfig.AppConnectString, CommandType.Text, sqlUpdate);
code = vouch.Code;
}
_wait.Close();
ICSBaseSimpleCode.AppshowMessageBox("产生请购单:"+code+"成功!");
btnRefresh_Click(null, null);
}
catch (Exception _ex)
{
_wait.Close();
throw new Exception(_ex.ToString());
}
}
}
catch (Exception ex)
{
throw new Exception(ex.ToString());
}
btnRefresh_Click(null, null);
}
#endregion
public static string HttpPost(string url, string body)
{
try
{
Encoding encoding = Encoding.UTF8;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.Accept = "application/json, text/javascript, */*"; //"text/html, application/xhtml+xml, */*";
request.ContentType = "application/json; charset=utf-8";
byte[] buffer = encoding.GetBytes(body);
request.ContentLength = buffer.Length;
request.GetRequestStream().Write(buffer, 0, buffer.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader reader = new StreamReader(response.GetResponseStream(), encoding))
{
return reader.ReadToEnd();
}
}
catch (WebException ex)
{
var res = (HttpWebResponse)ex.Response;
StringBuilder sb = new StringBuilder();
StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8);
sb.Append(sr.ReadToEnd());
throw new Exception(sb.ToString());
}
}
#region 修改
private void btnModify_Click(object sender, EventArgs e)
{
//已经分批的不能修改途程20190717ZM
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 moid;
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
moid = grvDetail.GetRowCellValue(i, colID).ToString();
bool issplit = ChechIsSplit(moid);
if (issplit)
{
ICSBaseSimpleCode.AppshowMessageBox("已经分批过的不能进行修改");
return;
}
else
{
FormICSMOAdd add = new FormICSMOAdd(moid);
add.ShowDialog();
}
//}
//else
//{
// ICSBaseSimpleCode.AppshowMessageBox("非返程工单,不能修改!!!");
// return;
//}
}
}
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
//throw ex;
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
#endregion
private bool ChechIsSplit(string moid)
{
bool isSplit = false;
string mocode = string.Empty; ;
string MOSEQ = string.Empty;
string sql = @" SELECT MOCODE,MOSEQ FROM ICSMO WHERE ID='" + moid + "' ";
sql = string.Format(sql);
DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
if (data != null && data.Rows.Count > 0)
{
mocode = data.Rows[0][0].ToString();
MOSEQ = data.Rows[0][1].ToString();
}
string _sql = @"
SELECT COUNT(*) AS num FROM
ICSITEMLot b
WHERE b.TransNO='" + mocode + "' AND B.TransLine='" + MOSEQ + "' ";
_sql = string.Format(_sql);
DataTable _data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
if (_data != null || _data.Rows.Count > 0)
{
int a = Int32.Parse(_data.Rows[0][0].ToString());
if (a > 0)
{
isSplit = true;
}
}
return isSplit;
//if (isSplit)
//{
// ICSBaseSimpleCode.AppshowMessageBox("已经分批过的不能进行修改");
// return;
//}
}
private void ICSItemLot_FormClosing(object sender, FormClosingEventArgs e)
{
AppConfig.DropTemTable(tempTableName);
}
private void FormICSMO_Load(object sender, EventArgs e)
{
btnFilter_Click(sender, e);
}
private void grvDetail_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
if (e.RowHandle >= 0 && e.Column.FieldName == "DCTCODE")
{
//e.DisplayText = FormatHelper.
e.CellValue = "cccc";
}
if (e.RowHandle > 0 && e.Column.FieldName == "isexpection" && e.CellValue.ToString() == "是")
{
e.Appearance.BackColor = Color.Red;
}
}
//生成序列号
private void newRcard_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 moID;
// string moCode;
// decimal qty = 0.00m;
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// moID = grvDetail.GetRowCellValue(i, colID).ToString();
// moCode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// qty = decimal.Parse(grvDetail.GetRowCellValue(i, colMOPLANQTY).ToString());
// FormICSMO2RCARDAdd rec = new FormICSMO2RCARDAdd(moID, moCode, qty);
// rec.ShowDialog();
// }
// }
// btnRefresh_Click(null, null);
//}
//catch (Exception ex)
//{
// //throw ex;
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
//}
}
private void repSerialButtonEdit_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
}
/// <summary>
/// 下发
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void txtsend_Click(object sender, EventArgs e)
{
#region 工艺路线默认匹配 自控参考
//SimpleButton btntemp = (SimpleButton)sender;
//if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
//{
// ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// return;
//}
//int count = 0;
//List<string> docNoList = new List<string>();
//for (int i = 0; i < grvDetail.RowCount; i++)
//{
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// string docNo = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// docNoList.Add(docNo);
// count++;
// }
//}
//if (count <= 0)
//{
// ICSBaseSimpleCode.AppshowMessageBox("请选择数据!!!");
// return;
//}
//try
//{
// string msg = "";
// List<string> mocodeList = new List<string>();
// List<FormICSMORoute_IsRef> MORouteList = new List<FormICSMORoute_IsRef>();
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// string mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// string moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
// string itemCode = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
// string state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
// bool IsHasRoute = ICSMOBLL.IshasROUTE(mocode, AppConfig.AppConnectString);//icsmo2route 是否有值
// bool hasRoute = ICSMOBLL.hasROUTE(mocode, itemCode, AppConfig.AppConnectString);
//
// if (!IsHasRoute && !hasRoute)
// {
// msg += "工单代码:" + mocode + " 没有关联工艺路线,不能下发!\n";
// }
// ICSROUTE Route = ICSMOBLL.hasIsRefROUTE(itemCode, AppConfig.AppConnectString);
// if (!IsHasRoute && Route == null)//判断是否无默认工艺路线
// {
// msg += "工单代码:" + mocode + " 无默认工艺路线,不能下发!\n";
// }
// if (string.IsNullOrEmpty(msg))
// {
// FormICSMORoute_IsRef item = new FormICSMORoute_IsRef();
// item.MOCODE = mocode;
// item.MOSEQ = moseq;
// item.Route = Route;
// item.isRef = "是";
// mocodeList.Add(mocode);
// if (!IsHasRoute)
// {
// MORouteList.Add(item);
// }
// }
// }
// }
// if (msg != "")
// {
// ICSBaseSimpleCode.AppshowMessageBox(msg);
// return;
// }
// //直接下发
// foreach (string code in mocodeList)
// {
// ICSMOBLL.Sends(code, MOSEQ, AppConfig.AppConnectString);
// }
// if (MORouteList != null && MORouteList.Count > 0)
// {
// ICSMOBLL.ADDIsRefRoute(MORouteList, AppConfig.AppConnectString);
// }
// ICSBaseSimpleCode.AppshowMessageBox("下发成功");
// btnRefresh_Click(null, null);
//}
//catch (Exception ex)
//{
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
//}
#endregion 匹配默认
#region 081 GJ 下发
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 == 0)
{
ICSBaseSimpleCode.AppshowMessageBox("请至少选择一条数据进行下发操作!!!");
return;
}
try
{
string mocode = "";
string moseq = "";
string status = "";
List<ICSMO> moinfolist = new List<ICSMO>();
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
string id = grvDetail.GetRowCellValue(i, MOID1).ToString();
mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
status = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
string itemCode = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
#region 判断工单是否是初始状态
if (status != "初始")
{
ICSBaseSimpleCode.AppshowMessageBox("选中工单:" + mocode + "对应行:" + moseq + "不是初始状态,无法下发!!!");
return;
}
#endregion
#region 0827
string IsHasRoute = string.Empty;
if (string.IsNullOrWhiteSpace(id))
{
IsHasRoute = ICSMOBLL.IshasROUTE(id, AppConfig.AppConnectString);//icsmo2route 返回工单的工艺路线
}
if (string.IsNullOrWhiteSpace(IsHasRoute))
{
string Route = ICSMOBLL.hasIsRefROUTE(itemCode, AppConfig.AppConnectString);//存货是否有默认路线
FormICSMOUIModel mo = new FormICSMOUIModel();
mo.ID = grvDetail.GetRowCellValue(i, colID).ToString();
mo.MOCODE = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// mo.MOMEMO = grvDetail.GetRowCellValue(i, colMOMEMO).ToString();
//mo.MOTYPE = txtMOTYPE.Text;
//mo.MODESC = grvDetail.GetRowCellValue(i, colMODESC).ToString();
mo.MOTYPE = "1";//工单类型默认为1
mo.MOPLANQTY = Convert.ToDecimal(grvDetail.GetRowCellValue(i, colMOPLANQTY).ToString());
mo.MOPLANSTARTDATE = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colMOPLANSTARTDATE).ToString());
mo.MOPLANENDDATE = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colMOPLANENDDATE).ToString());
mo.FACTORY = grvDetail.GetRowCellValue(i, colFACTORY).ToString();
// mo.CUSORDERNO = grvDetail.GetRowCellValue(i, colCUSORDERNO).ToString();
// mo.MOUSER = grvDetail.GetRowCellValue(i, colMOUSER).ToString();
mo.MODOWNDATE = Convert.ToDateTime(grvDetail.GetRowCellValue(i, colMOPLANSTARTDATE).ToString());
mo.MOSTATUS = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
// GetRowCellValue(i, colMOMEMO).ToString(); grvDetail.GetRowCellValue(i, colMODESC).ToString();
//mo.ISCONINPUT = txtISCONINPUT.Text;
//if (txtISCONINPUT.Checked)
// mo.ISCONINPUT = "是";
//else
// mo.ISCONINPUT = "否";
//mo.
mo.ITEMCODE = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
mo.MOSEQ = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
// mo.MOPENDINGCAUSE = grvDetail.GetRowCellValue(i, colMOPENDINGCAUSE).ToString();
// 9.1注释 mo.OFFMOQTY = Convert.ToDecimal(txtOFFMOQTY.Text.Equals("") ? "0" : txtOFFMOQTY.Text);
mo.MOBOM = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
// mo.MORemark = grvDetail.GetRowCellValue(i, colMORemark).ToString();
// mo.MOVER =grvDetail.GetRowCellValue(i, colMODESC).ToString();
ICSMOBLL.Add(mo, Route, AppConfig.AppConnectString);
//if (flag == 0)
//{
//ICSBaseSimpleCode.AppshowMessageBox("匹配成功");
//this.Close();
// this.DialogResult = DialogResult.Yes;
//}
//else if (flag == 1)
//{
// ICSBaseSimpleCode.AppshowMessageBox("修改成功");
// this.Close();
// this.DialogResult = DialogResult.Yes;
//}
// add.ShowDialog();
// }
//}
//else
//{
// ICSBaseSimpleCode.AppshowMessageBox(" 没有默认工艺路线,不能下发!!!\n");
// return;
//}
}
#region 废弃的
//bool hasRoute = ICSMOBLL.hasROUTE(mocode, itemCode, AppConfig.AppConnectString);//工单号(mocode)是否有路线
//ICSROUTE Route = ICSMOBLL.hasIsRefROUTE(itemCode, AppConfig.AppConnectString);//存货是否有默认路线
//if (!IsHasRoute && !hasRoute)
//{
// ICSBaseSimpleCode.AppshowMessageBox("工单代码:" + mocode + " 没有关联工艺路线,不能下发!\n");
// return;
//}
//if (IsHasRoute && Route != null)//判断是否默认工艺路线
//{
// string moid = grvDetail.GetRowCellValue(i, colID).ToString();
// bool issplit = ChechIsSplit(moid);
// if (issplit)
// {
// ICSBaseSimpleCode.AppshowMessageBox("已经分批过的不能进行修改!!");
// return;
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("有默认的工艺路线\n");
// FormICSMOAdd add = new FormICSMOAdd(moid);
// add.ShowDialog();
#endregion
#endregion
#region 下发前检验工单是否绑定工艺路线
ICSMO2ROUTE morouteinfo = ICSMOBLL.selectmo2routebyid(grvDetail.GetRowCellValue(i, colID).ToString(), AppConfig.AppConnectString);
if (morouteinfo == null)
{
ICSBaseSimpleCode.AppshowMessageBox("选中工单:" + mocode + "对应行:" + moseq + "尚未绑定工艺路线,无法下发!!!");
return;
}
#endregion
ICSMO moinfo = new ICSMO();
moinfo.MOCODE = mocode;
moinfo.MOSEQ = moseq;
moinfolist.Add(moinfo);
}
}
ICSMOBLL.Send(moinfolist, AppConfig.AppConnectString);
ICSBaseSimpleCode.AppshowMessageBox("下发成功");
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
#endregion
#region 注释的原版0819
// 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 mocode = "";
// string moseq = "";
// string state = "";
// string moid = ""; //0819
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
// moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
// moid = grvDetail.GetRowCellValue(i, colID).ToString(); //0819
// }
// }
// #region 20210804 下发之后才能分批,不是分批之后在下发。
// string sendSql = @"SELECT * FROM ICSITEMLot WHERE TransNO='" + mocode + "' ";
// sendSql = string.Format(sendSql);
// DataTable sendData = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sendSql).Tables[0];
// if (sendData == null || sendData.Rows.Count < 1)
// {
// ICSBaseSimpleCode.AppshowMessageBox("只有分完批次才能下发!");
// return;
// }
// #endregion
// --工艺路线,代码(途程代码)的sql语句
// string _sql = @"SELECT
// c.ROUTECODE --工艺路线,代码(途程代码)
// FROM
// ICSMO a
// LEFT JOIN ICSMO2ROUTE c ON a.ID = c.MOID
// LEFT JOIN (
// SELECT
// b.MOCODE,
// CONVERT (INT, b.MOSEQ) AS MOSEQ,
// b.ITEMCODE,
// COUNT (*) AS IsUse
// FROM
// ICSMOPickLog a
// INNER JOIN ICSMO b ON (
// a.MOCode = b.MOCODE
// AND b.MOSEQ = a.MOSEQ
// AND a.ITEMCODE = b.ITEMCODE
// )
// GROUP BY
// b.MOCODE,
// b.MOSEQ,
// b.ITEMCODE
// ) d ON (
// d.MOCODE = a.MOCODE
// AND d.MOSEQ = a.MOSEQ
// AND d.ITEMCODE = a.ITEMCODE
// )
// WHERE 1 = 1
// AND a.MOCODE = '" + mocode + "' AND a.MOSEQ =" + moseq + " ORDER BY a.MOCODE, CONVERT (INT, a.MOSEQ)";
// _sql = string.Format(_sql);
// DataTable data = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, _sql).Tables[0];
// string _ROUTECODE = string.Empty;//--工艺路线,代码(途程代码)
// if (data != null && data.Rows.Count > 0)
// {
// _ROUTECODE = data.Rows[0][0].ToString();//--工艺路线,代码(途程代码)
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("工单尚未绑定工艺路线不能下发!");
// return;
// }
// if (string.IsNullOrWhiteSpace(_ROUTECODE))//--工艺路线,代码(途程代码)
// {
// ICSBaseSimpleCode.AppshowMessageBox("工单尚未绑定工艺路线不能下发!!");
// return;
// }
// 判断是否是初始状态
// if (state.Equals("初始"))
// {
// //判断是否在工单首检记录表中
// if (ICSMOBLL.isInFirstCheck(mocode, AppConfig.AppConnectString))
// {
// //判断(最近的时间)是否合格
// if (ICSMOBLL.isQualified(mocode, AppConfig.AppConnectString))
// {
// ICSMOBLL.Send(mocode, moseq, AppConfig.AppConnectString);
// ICSBaseSimpleCode.AppshowMessageBox("下发成功");
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("不合格,不能下发");
// return;
// //}
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("不存在工单首检记录中");
// return;
// }
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("不是初始状态,不能下发");
// return;
// }
// btnRefresh_Click(null, null);
// } //try
// catch (Exception ex)
// {
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
// }
#endregion
}
//取消下发
private void txtcancelSend_Click(object sender, EventArgs e)
{
SimpleButton btntemp = (SimpleButton)sender;
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
{
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
return;
}
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
//if (!grvDetail.GetRowCellValue(i, colMOSTATUS).ToString().Equals("下发"))
//{
// ICSBaseSimpleCode.AppshowMessageBox("工单: "+grvDetail.GetRowCellValue(i, colMOCODE).ToString()+" 不是下发状态,不能取消下发");
// return;
//}
if (ICSMO2LotBLL.IsKG(grvDetail.GetRowCellValue(i, colMOCODE).ToString(), grvDetail.GetRowCellValue(i, colMOSEQ).ToString())) {
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已开工,无法取消下发!");
return;
}
if (ICSMO2LotBLL.IsPG(grvDetail.GetRowCellValue(i, colMOCODE).ToString(), grvDetail.GetRowCellValue(i, colMOSEQ).ToString())) {
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已派工,请先取消派工!");
return;
}
if (ICSMO2LotBLL.IsIncludingInMO2Lot(grvDetail.GetRowCellValue(i, colID).ToString())) {
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已分批,请先删除分批再取消下发!");
return;
}
}
}
try
{
string mocode = "";
string state = "";
string moseq = "";
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
ICSMOBLL.cancelSend(mocode, moseq, AppConfig.AppConnectString);
}
}
ICSBaseSimpleCode.AppshowMessageBox("取消下发成功");
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
//暂停
private void txtstop_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 mocode = "";
// string state = "";
// for (int i = 0; i < grvDetail.RowCount; i++)
// {
// if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
// {
// mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
// state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
// }
// }
// //判断是否是生产中状态
// if (state.Equals("生产中"))
// {
// ICSMOBLL.stop(mocode, AppConfig.AppConnectString);
// ICSBaseSimpleCode.AppshowMessageBox("暂停成功");
// }
// else
// {
// ICSBaseSimpleCode.AppshowMessageBox("不是生产中状态,不能暂停");
// return;
// }
// btnRefresh_Click(null, null);
//}
//catch (Exception ex)
//{
// ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
//}
}
//取消暂停
private void txtcancelStop_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 mocode = "";
string state = "";
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
}
}
//判断是否是暂停状态
if (state.Equals("暂停"))
{
ICSMOBLL.cancelStop(mocode, AppConfig.AppConnectString);
ICSBaseSimpleCode.AppshowMessageBox("取消暂停成功");
}
else
{
ICSBaseSimpleCode.AppshowMessageBox("不是暂停状态,不能取消暂停");
return;
}
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
//关单
private void txtcloseDan_Click(object sender, EventArgs e)
{
SimpleButton btntemp = (SimpleButton)sender;
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
{
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
return;
}
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
if (grvDetail.GetRowCellValue(i, colMOSTATUS).ToString().Equals("关单")) {
ICSBaseSimpleCode.AppshowMessageBox("工单: " + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + " 已经是关单状态,不能关单!");
return;
}
}
}
try
{
List<string> ID = new List<string>();
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
string id = grvDetail.GetRowCellValue(i, colID).ToString();
ID.Add(id);
}
}
FormICSMOClose add = new FormICSMOClose(ID);
add.ShowDialog();
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
//批次信息
private void btnBatch_Click(object sender, EventArgs e)
{
//SimpleButton btntemp = (SimpleButton)sender;
//if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
//{
// ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// return;
//}
//FormICSMO2Lot add = new FormICSMO2Lot();
//add.ShowDialog();
//btnRefresh_Click(null, null);
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 id;
string code;
int Qty = 0;
string itemcode;
string dept;//0816新增
DateTime MOPLANSTARTDATE;
DateTime MOPLANENDDATE;
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
dept = grvDetail.GetRowCellValue(i, colcDepName).ToString();//0816新增字段
id = grvDetail.GetRowCellValue(i, colID).ToString();
code = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
Qty = (int)Convert.ToDecimal(grvDetail.GetRowCellValue(i, colMOPLANQTY).ToString());
itemcode = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
string moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
MOPLANSTARTDATE = Convert.ToDateTime((grvDetail.GetRowCellValue(i, colMOPLANSTARTDATE)));
MOPLANENDDATE = Convert.ToDateTime((grvDetail.GetRowCellValue(i, colMOPLANENDDATE)));
FormICSMO2LOT1 add = new FormICSMO2LOT1(id, code, Qty, itemcode, moseq, dept, MOPLANSTARTDATE, MOPLANENDDATE);
add.ShowDialog();
btnRefresh_Click(null, null);
}
}
//判断是否是关单状态
//if (!(state.Equals("关单")))
//{
//}
//else
//{
// ICSBaseSimpleCode.AppshowMessageBox("已经是关单状态");
// return;
//}
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
#region 取消关单
private void BtnCancelCloseMO_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 ID = "";
string state = "";
for (int i = 0; i < grvDetail.RowCount; i++)
{
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
ID = grvDetail.GetRowCellValue(i, colID).ToString();
state = grvDetail.GetRowCellValue(i, colMOSTATUS).ToString();
}
}
if ((state.Equals("关单")))
{
//判断是否是关单状态
ICSMOBLL.CancleCloseDan(ID, AppConfig.AppConnectString);
ICSBaseSimpleCode.AppshowMessageBox("取消关单成功");
}
else
{
ICSBaseSimpleCode.AppshowMessageBox("非关单状态,不能取消关单");
return;
}
btnRefresh_Click(null, null);
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
#endregion
/// <summary>
/// 新增的 [一键分批按钮] 按钮0818
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnLot1_Click(object sender, EventArgs e)
{
try
{
//根据ICSMOPickLog窜起来查确定是否领料。工单:MOCODE、生产订单行号:MOSEQ、子料:ITEMCODE(根据工单母料看子料)
//限制:如果‘是否领料’字段为‘否’,那么无法进行分批操作;
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")
// if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
{
count++;
}
}
if (count == 0)
{
ICSBaseSimpleCode.AppshowMessageBox("请至少选择一条数据进行分批!");
return;
}
else
{
List<ICSITEMLot> lotinfoList = new List<ICSITEMLot>();
List<ICSITEMROUTE2OPLot> oplotinfoList = new List<ICSITEMROUTE2OPLot>();
for (int i = 0; i < grvDetail.RowCount; i++)
{
//if (Convert.ToBoolean(grvDetail.GetRowCellValue(i, colisSelect).ToString()))
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y")
{
string ITEMCODE = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
string mocode = grvDetail.GetRowCellValue(i, colMOCODE).ToString();
string moseq = grvDetail.GetRowCellValue(i, colMOSEQ).ToString();
string moplanstartdate= grvDetail.GetRowCellValue(i, colMOPLANSTARTDATE).ToString();
string moplanenddate = grvDetail.GetRowCellValue(i, colMOPLANENDDATE).ToString();
ICSMO moinfo = ICSMOBLL.selectbyid(grvDetail.GetRowCellValue(i, colID).ToString(), AppConfig.AppConnectString);
if (moinfo.MOSTATUS != "下发")
{
ICSBaseSimpleCode.AppshowMessageBox("选中工单:" + mocode + "对应行号:" + moseq + "尚未下发,不能分批!");
return;
}
string ItemCode = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
string RouteCode = grvDetail.GetRowCellValue(i, colMOROUTE).ToString();
bool b = ICSMO2LotBLL.IsIncludingInMO2Lot(grvDetail.GetRowCellValue(i, colID).ToString());
if (b)
{
ICSBaseSimpleCode.AppshowMessageBox("选中工单:" + mocode + "对应行号:" + moseq + "已生成批次,若要重新生成,请先删除原批次信息!");
return;
}
#region ICSITEMLot表
ICSITEMLot lotinfo = new ICSITEMLot();
lotinfo.MCODE = ITEMCODE;//0827新增
lotinfo.ID = AppConfig.GetGuid();
lotinfo.LotNO = mocode + moseq + "0001";
lotinfo.TransNO = mocode;
lotinfo.TransLine = moseq;
// lotinfo.ItemCODE = grvDetail.GetRowCellValue(i, colITEMCODE).ToString();
lotinfo.VENDORITEMCODE = "";
lotinfo.VENDORCODE = "";
lotinfo.VenderLotNO = "";
lotinfo.PRODUCTDATE = AppConfig.GetSeverDateTime("yyyy-MM-dd HH:mm:ss");
lotinfo.LOTQTY = Convert.ToDecimal(grvDetail.GetRowCellValue(i, colMOPLANQTY).ToString());
lotinfo.ACTIVE = "Y";
lotinfo.Exdate = Convert.ToDateTime("2999-12-31 00:00:00.000");
lotinfo.WorkPoint = AppConfig.WorkPointCode;
lotinfo.MUSER = AppConfig.UserCode;
lotinfo.MUSERName = AppConfig.UserName;
lotinfo.MTIME = DateTime.Now;
lotinfo.EATTRIBUTE1 = "";
lotinfo.TYPE = "工单";
lotinfo.MOPLANSTARTDATE = moplanstartdate;
lotinfo.MOPLANENDDATE = moplanenddate;
lotinfoList.Add(lotinfo);
#endregion
#region 根据Code获取工艺路线信息
List<ICSITEMROUTE2OP> opinfolist = ICSITEMROUTE2OPBLL.selectinfobycode(ItemCode, RouteCode, AppConfig.AppConnectString);
#endregion
#region 写入ICSItemRoute2OPLot表
foreach (ICSITEMROUTE2OP opinfo in opinfolist)
{
ICSITEMROUTE2OPLot oplotinfo = new ICSITEMROUTE2OPLot();
oplotinfo.ITEMCODE = ItemCode;
oplotinfo.ROUTECODE = RouteCode;
oplotinfo.OPCODE = opinfo.OPCODE;
oplotinfo.OPSEQ = opinfo.OPSEQ;
oplotinfo.OPCONTROL = "";
oplotinfo.OPTIONALOP = "";
oplotinfo.IDMERGERULE = 0;
oplotinfo.IDMERGETYPE = "";
oplotinfo.MUSER = AppConfig.UserCode;
oplotinfo.MUSERName = AppConfig.UserName;
oplotinfo.MTIME = DateTime.Now;
oplotinfo.WorkPoint = AppConfig.WorkPointCode;
oplotinfo.EATTRIBUTE1 = "";
oplotinfo.LotNo = mocode + moseq + "0001";
oplotinfo.ID = AppConfig.GetGuid();
oplotinfoList.Add(oplotinfo);
}
#endregion
}
}
ICSMO2LotBLL.OP2LotAdd(lotinfoList, oplotinfoList, AppConfig.AppConnectString);
ICSBaseSimpleCode.AppshowMessageBox("分批成功");
btnRefresh_Click(null, null);
}
}
catch (Exception ex)
{
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
private void simpleButton1_Click(object sender, EventArgs e)
{
AppConfig.CloseFormShow(this.Text);
this.Close();
}
private void repositoryItemButtonEdit1_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e)
{
try
{
string url = @"http://172.16.12.155:8999/api/GetPLMToken";
//string url = @"http://localhost:51182/api/GetPLMToken";
FormICSProductionReport.SearchPart Bills = new FormICSProductionReport.SearchPart();
//Bills.ItemCode = "20100003035";
//Bills.ItemCode = "20100000670";
//Bills.ItemCode = "20800001904";
Bills.ItemCode = grvDetail.GetRowCellValue(grvDetail.FocusedRowHandle, colITEMCODE).ToString();
Bills.size = 100;
Bills.extra = "DWGSW";
string JsonData = JsonConvert.SerializeObject(Bills);
//try
//{
// //Bills = JsonConvert.DeserializeObject<List<SearchPart>>(JsonData.ToString());
// Bills = JsonConvert.DeserializeObject<SearchPart>(JsonData.ToString());
//}
#region MyRegion
BaseModel rtn = PLM.PLMMap(url, JsonData);
if (rtn.code == "200")
{
#region MyRegion
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]");
if (string.IsNullOrWhiteSpace(connectionString))
{
ICSBaseSimpleCode.AppshowMessageBox("没有获取到FTP链接,请在数据源中先配置FTP");
return;
}
string[] ftps = connectionString.Split(';');
string ftpServerIP = ftps[0].Split('=')[1];
//string ftpRemotePath = ftps[1].Split('=')[1];
string ftpRemotePath = "";
string ftpUserID = ftps[2].Split('=')[1];
string ftpPassword = ftps[3].Split('=')[1];
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
//FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword);
//string filePath = System.IO.Path.GetTempPath() + "\\Drawing";
string filePath = AppDomain.CurrentDomain.BaseDirectory + "\\Drawing";
if (!Directory.Exists(filePath))
{
Directory.CreateDirectory(filePath);
}
string fileName = Bills.ItemCode + ".pdf";
ftpWeb.Download(filePath + "\\", fileName);
string filePathName = filePath + "\\" + fileName;
//string fileName = logAdress + Bills.ItemCode + ".pdf";
string ftpURL = "ftp://" + ftpServerIP + "/" + fileName;
//if (!string.IsNullOrEmpty(fileName))
if (!string.IsNullOrEmpty(filePathName))
{
FileDrawing.LoadPDF(filePathName);
}
#endregion
}
else
{
ICSBaseSimpleCode.AppshowMessageBox("调用PLM接口返回异常:" + rtn.code + ";" + rtn.msg);
return;
}
#endregion
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
private void grvDetail_Click(object sender, EventArgs e)
{
}
private void simpleButton2_Click(object sender, EventArgs e)
{
try {
SimpleButton btntemp = (SimpleButton)sender;
if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
{
ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
return;
}
string para1 = "1 and ";
for (int i = 0; i < grvDetail.RowCount; i++) {
if (grvDetail.GetRowCellValue(i, colisSelect).ToString() == "Y") {
para1 += " (a.mocode='" + grvDetail.GetRowCellValue(i, colMOCODE).ToString() + "' and a.moseq='" + grvDetail.GetRowCellValue(i, colMOSEQ).ToString() + "') OR";
}
}
if (para1 == "1 and ") {
ICSBaseSimpleCode.AppshowMessageBox("请选择要打印的数据!");
return;
}
para1=para1.TrimEnd("OR".ToCharArray());
List<PrintPara> parasList = new List<PrintPara>();
PrintPara para = new PrintPara();
para.PrintKey = "1=1";
para.PrintValues = new object[] { para1 };
parasList.Add(para);
FormPrintDialog f = new FormPrintDialog("099", this.Text, parasList, false, null);
f.ShowDialog();
}
catch (Exception ex) {
ICSBaseSimpleCode.AppshowMessageBox(ex.Message);
}
}
}
}