using directPacking;
|
using MyGlassEdit.ng.optima.model;
|
using MyGlassEdit.ng.optima.server;
|
using ng.optima.config;
|
using ng.optima.server;
|
using ng.optima.util;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Diagnostics;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
using Utility;
|
|
namespace MyGlassEdit.EDIT.功能
|
{
|
public partial class 工程管理 : Form
|
{
|
public 工程管理()
|
{
|
InitializeComponent();
|
}
|
|
DataTable show_data = new DataTable();
|
任务 formMain;
|
|
|
/// <summary>
|
/// 当前查询的玻璃颜色
|
/// </summary>
|
string CURRENT_GLASS_COLOR = null;
|
/// <summary>
|
/// 当前查询的玻璃厚度
|
/// </summary>
|
string CURRENT_GLASS_THICKNESS = null;
|
string inputText = "输入工程号或流程卡号";
|
string cmbStateFirst = "全部";//状态筛选第一个
|
/// <summary>
|
/// 当前筛选的工程状态
|
/// </summary>
|
string PROJECT_STATE = "0";
|
|
|
#region 显示类
|
string c_shijian = "创建时间";
|
string c_moxi = "膜系";
|
string c_houdu = "厚度";
|
string c_gongcheng = "工程号";
|
string c_liuchengka = "流程卡";
|
string c_zhuangtai = "状态";
|
#endregion
|
|
|
|
#region 操作类
|
string strCurrentOperate = "当前操作";
|
string strNotSelectProject = "未选中工程,请选中工程后再进行当前操作!";
|
string strProjectReceived = "工程已被生产领取,无法进行当前操作!";
|
string strProjectIsHeat = "当前工程已进行钢化模拟计算";
|
string strProjectCancelHeat = "是否确认撤销当前工程模拟计算结果";
|
string strProjectIsLayout = "当前工程已经进行了优化排版,请先撤销优化";
|
string strProjectNotAllowProduce = "当前工程状态不可设置允许生产";
|
string strProjectProduceNot = "当前工程状态生产不可见";
|
string strProjectDeteleConfirm = "是否确认删除工程";
|
string strProjectList = "工程管理";
|
string strExeclSave = "表格保存成功,是否打开?";
|
//string strViewCutLayout = "当前工程还未进行钢化模拟计算后的优化排版";
|
string strProjectNotHeat = "当前工程还未进行钢化模拟计算";
|
string strProjectCancelOptima = "是否确认撤销当前工程的优化";
|
string strOperateSuccess = "操作成功";
|
string strOperateError = "操作失败";
|
string strProjectInitErr = "当前工程状态不允许初始化";
|
string strProjectInitConfirm = "是否确认初始化当前工程?\r\n\r\n工程初始化会将工程回退到新创建的状态,\r\n操作成功后的工程会在【创建工程】功能页中显示。";
|
string strProjectNotLayout = "当前工程还未进行冷加工优化排版";
|
#endregion
|
|
private static readonly NLog.Logger Logger = NLog.LogManager.GetCurrentClassLogger();
|
public 工程管理(任务 f)
|
{
|
LanguageSet();
|
InitializeComponent();
|
|
|
formMain = f;
|
BtnShowSet();
|
SetFormShow();
|
}
|
|
void LanguageSet() {
|
switch (Setting.language)
|
{
|
case 1:
|
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("en");
|
inputText = "Enter project number or process card number";
|
cmbStateFirst = "All";
|
c_shijian = "Create time";
|
c_moxi = "Glass Type";
|
c_houdu = "Thickness";
|
c_gongcheng = "Project Number";
|
c_liuchengka = "Process Card Collection";
|
c_zhuangtai = "State";
|
|
strNotSelectProject = "The project is not selected. Please select the project before performing the current operation!";
|
strProjectReceived = "The project has been produced and cannot be operated!";
|
strProjectIsHeat = "Steel simulation calculation has been carried out for the current project";
|
strProjectCancelHeat = "Do you confirm to cancel the simulation calculation results of the current project?";
|
strProjectIsLayout = "The current project has been optimized and laid out. Please undo the optimization before proceeding!";
|
strProjectNotAllowProduce = "The current project status cannot be set to allow production";
|
strProjectProduceNot = "The current engineering status is not visible in production";
|
strProjectDeteleConfirm = "Do you confirm to delete the project?";
|
strProjectList = "ProjectList";
|
strExeclSave = "The table was saved successfully, do you want to open it?";
|
//strViewCutLayout = "当前工程还未进行钢化模拟计算后的优化排版";
|
strProjectNotHeat = "The current project has not yet been tempered simulation calculation";
|
strProjectCancelOptima = "Are you sure you want to cancel the optimization of the current project?";
|
strOperateSuccess = "Operation successful!";
|
strOperateError = "Operation failed!";
|
strProjectInitErr = "The current project status does not allow initialization!";
|
strProjectInitConfirm = "Are you sure you want to initialize the current project?\r\nProject initialization will roll back the project to a newly created state.\r\nAfter a successful operation, the project will be displayed in the[Create Project] function page.";
|
strProjectNotLayout = "The current project has not been optimized for typesetting!";
|
break;
|
case 2:
|
Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("ru");
|
inputText = "Введите Номер проекта";
|
cmbStateFirst = "Всего";
|
c_shijian = "Создание времени";
|
c_moxi = "Типы покрытий";
|
c_houdu = "Толщина стенок";
|
c_gongcheng = "Номер проекта";
|
c_liuchengka = "Комбинация карточки процесса";
|
c_zhuangtai = "Состояние";
|
break;
|
default:
|
break;
|
}
|
|
|
|
|
}
|
|
private void lblSearch_Click(object sender, EventArgs e)
|
{
|
lblGlassNum.Text = "0";
|
lblGlassArea.Text = "0";
|
lblStockNum.Text = "0";
|
lblStockArea.Text = "0";
|
|
CURRENT_GLASS_COLOR = CURRENT_GLASS_THICKNESS = null;
|
|
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
|
}
|
|
|
/// <summary>
|
/// 筛选工程数据
|
/// </summary>
|
void FilterPorjectData(string color, string thickness)
|
{
|
|
dgvProject.Focus();
|
|
//SELECT* FROM `pp`.`v_ru_optimize_project_manage` WHERE `Создание времени` >= '2024-4-20 14:41:40' LIMIT 0,1000
|
|
//时间
|
string sDate = dtpStartDate.Value.ToString("yyyy-MM-dd");
|
string eDate = dtpEndDate.Value.ToString("yyyy-MM-dd 23:59:59");
|
|
StringBuilder strFilter = new StringBuilder();
|
strFilter.AppendFormat(" where `{2}` >= '{0}' and `{2}` <= '{1}' ", sDate, eDate, c_shijian);
|
|
string pType = Setting.language == 1 ? "Type" : "类型";
|
string pNo = Setting.language == 1 ? "Project Number" : "工程号";
|
|
//补片
|
strFilter.Append($" and {pType} = 0 ");
|
|
//膜系
|
if (color != null && thickness != null)
|
{
|
|
strFilter.AppendFormat(" and `{2}` = '{0}' and `{3}` = '{1}' ", color, thickness, c_moxi, c_houdu);
|
}
|
|
//输入框
|
string qInfo = txtQuery.Text.Trim() == inputText ? null : txtQuery.Text.Trim();
|
|
if (!string.IsNullOrEmpty(qInfo))
|
{
|
if (qInfo.ToUpper().First() != 'P' && !qInfo.ToUpper().StartsWith("NG"))
|
{
|
strFilter.AppendFormat(" and (`{1}` REGEXP '{0}' or `{2}` REGEXP '{0}')", qInfo, c_gongcheng, c_liuchengka);
|
}
|
else
|
{
|
if (qInfo.ToUpper().First() == 'P')
|
{
|
qInfo = qInfo.TrimStart('P').TrimStart('p');
|
strFilter.AppendFormat(" and `{1}` REGEXP '{0}'", qInfo, c_gongcheng);
|
}
|
else if (qInfo.ToUpper().StartsWith("NG"))
|
{
|
qInfo = qInfo.Remove(0,2);
|
strFilter.AppendFormat(" and `{1}` REGEXP '{0}' ", qInfo, c_liuchengka);
|
}
|
}
|
}
|
|
////状态
|
//if (PROJECT_STATE == "0")
|
//{
|
|
// strFilter.AppendFormat(" and `{0}` > 0 ", c_zhuangtai);
|
//}
|
//else {
|
|
// strFilter.AppendFormat(" and `{1}` = {0} ", PROJECT_STATE, c_zhuangtai);
|
//}
|
|
strFilter.AppendFormat($" and `{pNo}` REGEXP 'B'");
|
|
//"select * from v_en_optimize_project_manage where `Create time` >= '2024-12-25' and `Create time` <= '2025-06-23 23:59:59' and 类型 = 0 and `State` > 0 and 工程号 REGEXP 'B' "
|
show_data = ProjectDB.SelectProject(strFilter.ToString());
|
|
//dgvProject.AllowUserToResizeColumns = true;
|
|
LoadProjectInfo();
|
|
dgvShowColumnsSet();
|
dgvShowRowSet();
|
}
|
|
void dgvShowColumnsSet()
|
{
|
|
if (Setting.language == 0)
|
{
|
//dgvProject.ColumnHeadersHeight = 30;
|
|
dgvProject.Columns["Id"].Visible = false;
|
|
dgvProject.Columns[0].Frozen = true;
|
dgvProject.Columns[1].Frozen = true;
|
for (int i = 1; i < dgvProject.ColumnCount; i++)
|
{
|
dgvProject.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
|
|
if (i > dgvProject.ColumnCount - 4)
|
{
|
dgvProject.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
//continue;
|
}
|
|
switch (i)
|
{
|
case 2://工程号
|
|
dgvProject.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
break;
|
case 3://名称
|
dgvProject.Columns[i].Width = 100;
|
break;
|
case 4://膜系
|
case 5://厚度
|
case 6://类型
|
dgvProject.Columns[i].Width = 80;
|
break;
|
case 7://连线状态
|
//dgvProject.Columns[i].Visible = false;
|
//dgvProject.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
|
//dgvProject.Columns[i].Width = 120;
|
dgvProject.Columns[i].Visible = false;
|
break;
|
case 8://数量
|
case 9://面积
|
dgvProject.Columns[i].Width = 80;
|
break;
|
case 10://流程卡数量
|
case 11://原片使用数量
|
//dgvProject.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
|
dgvProject.Columns[i].Width = 120;
|
break;
|
case 12://流程卡列表
|
dgvProject.Columns[i].Width = 200;
|
break;
|
//case 13://最小掰边
|
case 14://钢化装载率
|
case 15://钢化炉数
|
//case 16://平均切裁率
|
//case 17://有效切裁率
|
//case 18://尾片切裁率
|
case 19://原料使用数-第一次优化
|
case 20://平均切裁率-第一次优化
|
//case 21://备注
|
//case 22://操作人
|
//case 23://创建时间
|
|
// break;
|
case 24://修改时间
|
case 25://Public_status:公开状态
|
case 26://createrId,创建人ID
|
case 27://state:工程状态
|
case 28://online_status :连线状态
|
dgvProject.Columns[i].Visible = false;
|
break;
|
default:
|
dgvProject.Columns[i].Width = 150;
|
break;
|
}
|
}
|
}
|
else
|
{
|
dgvProject.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.ColumnHeader;
|
|
}
|
dgvProject.Columns[12].ContextMenuStrip = MenuFlowCard;
|
|
dgvProject.AllowUserToResizeColumns = true;
|
dgvProject.Refresh();
|
//dgvProject.Columns[11].Width = 150;
|
}
|
|
|
void dgvShowRowSet()
|
{
|
if (!dgvProject.Columns.Contains("public_status"))
|
{
|
return;
|
}
|
|
for (int i = 1; i < dgvProject.RowCount; i++)
|
{
|
dgvProject.Rows[i].ReadOnly = true;
|
string isPublic = dgvProject.Rows[i].Cells["public_status"].Value.ToString();
|
if (isPublic == "1")
|
{
|
|
dgvProject.Rows[i].Cells[1].Style.BackColor = ColorUtil.SelectedColor;
|
}
|
|
object oS = dgvProject.Rows[i].Cells["online_status"].Value;
|
string onlineStatus = oS == null ? "1" : oS.ToString();
|
if (onlineStatus == "1" || string.IsNullOrEmpty(onlineStatus))
|
{
|
//dgvProject.Rows[i].Cells[7].Value = "连线生产";
|
dgvProject.Rows[i].Cells[7].Style.BackColor = ColorUtil.SelectedColor;
|
|
}
|
else
|
{
|
//dgvProject.Rows[i].Cells[7].Value = "单机生产";
|
dgvProject.Rows[i].Cells[7].Style.BackColor = Color.Red;
|
}
|
}
|
|
}
|
|
|
/// <summary>
|
/// 加载工程状态下拉选择框
|
/// </summary>
|
void LoadProjectState()
|
{
|
|
cmbProjectState.Items.Add(cmbStateFirst);
|
|
if (Setting.language == 0)
|
{
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("初始状态", "1"));
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("第一次优化", "2"));
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("模拟计算", "10"));
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("优化完成", "20"));
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("生产可见", "100"));
|
cmbProjectState.Items.Add(new KeyValuePair<string, string>("生产领取", "200"));
|
|
}
|
else {
|
cmbProjectState.Items.Add("1");
|
cmbProjectState.Items.Add("2");
|
cmbProjectState.Items.Add("10");
|
cmbProjectState.Items.Add("20");
|
cmbProjectState.Items.Add("100");
|
cmbProjectState.Items.Add("200");
|
}
|
|
cmbProjectState.SelectedIndex = 0;
|
}
|
|
|
/// <summary>
|
/// 显示工程信息
|
/// </summary>
|
void LoadProjectInfo()
|
{
|
|
int gTotal = 0;
|
double gTotalArea = 0;
|
|
int sTotal = 0;
|
double sTotalArea = 0;
|
|
foreach (DataRow dr in show_data.Rows)
|
{
|
//gTotal += dr["数量"] == DBNull.Value ? 0 : Convert.ToInt32(dr["数量"].ToString());
|
//gTotalArea += dr["面积"] == DBNull.Value ? 0 : Convert.ToDouble(dr["面积"]);
|
//sTotal += dr["原片使用数量"] == DBNull.Value ? 0 : Convert.ToInt32(dr["原片使用数量"]);
|
|
|
gTotal += dr[8] == DBNull.Value ? 0 : Convert.ToInt32(dr[8].ToString());//"数量"
|
gTotalArea += dr[9] == DBNull.Value ? 0 : Convert.ToDouble(dr[9]);//"面积"
|
sTotal += dr[11] == DBNull.Value ? 0 : Convert.ToInt32(dr[11]);//"原片使用数量"
|
}
|
|
dgvProject.Visible = true;
|
dgvProject.DataSource = show_data.DefaultView;
|
|
lblGlassNum.Text = (Convert.ToInt32(lblGlassNum.Text) + gTotal).ToString();
|
lblGlassArea.Text = (Convert.ToDouble(lblGlassArea.Text.Trim()) + gTotalArea).ToString();
|
lblStockNum.Text = (Convert.ToInt32(lblStockNum.Text.Trim()) + sTotal).ToString();
|
|
|
}
|
|
private void 工程管理_Load(object sender, EventArgs e)
|
{
|
|
txtQuery.Text = inputText;
|
dtpStartDate.Value = DateTime.Now.AddDays(-globel.DefaultDisplayDays);
|
dtpEndDate.Value = DateTime.Now;
|
|
//dgvProject.AutoGenerateColumns = true;
|
//dgvProject.RegistScrollToEndEvent(dataGrid_OnScrollToEnd);
|
|
dgvProject.DoubleBufferedDataGirdView(true);
|
|
dgvProject.Visible = false;
|
|
LoadProjectState();
|
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
//QueryProjectData();
|
}
|
|
/// <summary>
|
/// 设置窗体显示大小和位置
|
/// </summary>
|
void SetFormShow()
|
{
|
if (formMain.Width > 1660)
|
{
|
return;
|
|
}
|
int w = this.Width;
|
int h = this.Height;
|
|
float wr = (formMain.Width * 1.0f / 1920);
|
float hr = (formMain.Height * 1.0f / 1080);
|
|
this.Width = Convert.ToInt32(w * wr);
|
this.Height = Convert.ToInt32(h * hr);
|
|
this.StartPosition = FormStartPosition.CenterScreen;
|
|
}
|
|
void BtnShowSet()
|
{
|
labelUtil.setLabelName(ref lblBtnExport);
|
labelUtil.setLabelName(ref lblBtnHeat);
|
labelUtil.setLabelName(ref lblbtnHeatLayout);
|
labelUtil.setLabelName(ref lblBtnOptimize);
|
labelUtil.setLabelName(ref lblbtnOptimizeLayout);
|
labelUtil.setLabelName(ref lblBtnSearch);
|
|
if (Setting.language == 0) {
|
|
lblBtnExport.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
lblBtnHeat.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
lblbtnHeatLayout.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
lblBtnOptimize.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
lblbtnOptimizeLayout.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
lblBtnSearch.Paint += new PaintEventHandler(labelUtil.label_Paint);
|
|
}
|
|
this.lblBtnExport.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
this.lblBtnHeat.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
this.lblbtnHeatLayout.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
this.lblBtnOptimize.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
this.lblbtnOptimizeLayout.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
this.lblBtnSearch.MouseEnter += new System.EventHandler(labelUtil.lblBtn_MouseEnter);
|
|
this.lblBtnExport.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
this.lblBtnHeat.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
this.lblbtnHeatLayout.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
this.lblBtnOptimize.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
this.lblbtnOptimizeLayout.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
this.lblBtnSearch.MouseLeave += new System.EventHandler(labelUtil.lblBtn_MouseLeave);
|
|
}
|
|
private void tableLayoutPanel1_Paint(object sender, PaintEventArgs e)
|
{
|
|
}
|
|
private void dgvProject_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
{
|
if (e.RowIndex > -1)
|
{
|
|
//DGVtRigthClickOperate(0);
|
|
//if (e.ColumnIndex == 2)
|
//{
|
|
// //dgvProjectData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value = "https://mp.csdn.net";
|
|
// //MessageBox.Show(dgvProject.Rows[e.RowIndex].Cells["工程号"].Value.ToString());
|
|
// //System.Diagnostics.Process.Start("iexplore.exe", dgvProjectData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
|
//}
|
|
}
|
}
|
|
private void dgvProject_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
|
{
|
GridViews.DGVAddRowIndex(dgvProject, e);
|
}
|
|
/// <summary>
|
/// 工程列表右键操作
|
/// </summary>
|
/// <param name="type"></param>
|
void DGVtRigthClickOperate(int type)
|
{
|
if (dgvProject.CurrentRow == null && !(type == 4 || type == 5))
|
{
|
globel.ShowFromWarningMessage(strNotSelectProject);
|
return;
|
}
|
|
//操作的工程编号
|
string OPERATION_PROJECT_NO = "";
|
//工程状态
|
string PORJECT_STATE = "";
|
|
if (dgvProject.CurrentRow != null)
|
{
|
//OPERATION_PROJECT_NO = dgvProject.CurrentRow.Cells["工程号"].Value.ToString();
|
//PORJECT_STATE = dgvProject.CurrentRow.Cells["状态"].Value.ToString();
|
|
OPERATION_PROJECT_NO = dgvProject.CurrentRow.Cells[1].Value.ToString();//"工程号"
|
PORJECT_STATE = dgvProject.CurrentRow.Cells[27].Value.ToString();//"状态"
|
}
|
|
|
//生产领取的工程不许进行的操作
|
if (type == 1 || type == 2 || type == 3 || type == 9 || type == 10|| type == 13)
|
{
|
|
if (PORJECT_STATE == "200")
|
{
|
globel.ShowFromWarningMessage(strProjectReceived);
|
return;
|
}
|
}
|
Logger.Info($"{strCurrentOperate}:{OPERATION_PROJECT_NO}");
|
switch (type)
|
{
|
case 0://打开
|
|
|
|
if (PORJECT_STATE == "10")
|
{
|
DGVtRigthClickOperate(2);
|
|
}
|
else if (PORJECT_STATE == "2")
|
{
|
|
DGVtRigthClickOperate(1);
|
}
|
else if (Convert.ToInt32(PORJECT_STATE) > 10)
|
{
|
DGVtRigthClickOperate(7);
|
}
|
return;
|
case 1://钢化模拟计算
|
//if (Convert.ToInt32(PORJECT_STATE) > 2)
|
//{
|
// globel.ShowFromWarningMessage(strProjectIsHeat);
|
// return;
|
//}
|
//模拟计算 g = new 模拟计算(OPERATION_PROJECT_NO, formMain);
|
//if (g.ShowDialog() == DialogResult.OK)
|
//{
|
// this.Close();
|
//}
|
|
|
return;
|
case 2://优化排版
|
if (Convert.ToInt32(PORJECT_STATE) < 10)
|
{
|
globel.ShowFromWarningMessage(strProjectNotHeat);
|
return;
|
}
|
|
if (globel.TemperedMode)
|
{
|
if (formMain.ShowHeatProjectGlassDetails(OPERATION_PROJECT_NO))
|
{
|
//formMain.currentOperateProject = OPERATION_PROJECT_NO;
|
//formMain.txtProjectNo.Text = OPERATION_PROJECT_NO;
|
this.Close();
|
}
|
|
}
|
else {
|
if (formMain.ShowProjectGlassDetails(OPERATION_PROJECT_NO))
|
{
|
|
this.Close();
|
}
|
}
|
|
break;
|
case 3://删除工程
|
if (globel.ShowFromConfirmMessage(strProjectDeteleConfirm+" " + OPERATION_PROJECT_NO))
|
{
|
OperationModel om = PatchProjectDB.DeletePatchProject(OPERATION_PROJECT_NO);
|
if (om.state)
|
{
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
return;
|
}
|
Logger.Info($"{strCurrentOperate}:{OPERATION_PROJECT_NO}:{om.info}");
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError+"\r\n"+om.info);
|
|
|
return;
|
if (!ProjectDB.DeleteProject(OPERATION_PROJECT_NO, PORJECT_STATE)) {
|
|
globel.ShowFromWarningMessage(strCurrentOperate+"\r\n"+strOperateError);
|
return;
|
}
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
if (formMain.openProject!=null && OPERATION_PROJECT_NO == formMain.openProject.project_no) {
|
|
formMain.openProject.state = -2;
|
}
|
}
|
|
break;
|
case 4://刷新
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
break;
|
|
case 5://导出表格数据
|
|
string fileName = strProjectList+"-" + DateTime.Now.ToString("yyyyMMddHHmm");
|
|
string filePath = DataGrieViewReport.StreamReportByDGV(dgvProject, fileName);
|
|
//string filePath = DataGrieViewReport.StreamReport(show_data, fileName);
|
if (string.IsNullOrEmpty(filePath))
|
{
|
return;
|
}
|
if (globel.ShowFromConfirmMessage(strExeclSave))
|
{
|
fileUtil.SysOpenFile(filePath);
|
}
|
|
break;
|
case 6://只看此膜系
|
|
//CURRENT_GLASS_COLOR = dgvProject.CurrentRow.Cells["膜系"].Value.ToString();
|
//CURRENT_GLASS_THICKNESS = dgvProject.CurrentRow.Cells["厚度"].Value.ToString();
|
|
|
CURRENT_GLASS_COLOR = dgvProject.CurrentRow.Cells[3].Value.ToString();//"膜系"
|
CURRENT_GLASS_THICKNESS = dgvProject.CurrentRow.Cells[4].Value.ToString();//"厚度"
|
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
|
break;
|
|
case 7://查看优化版图
|
if (Convert.ToInt32(PORJECT_STATE) < 20)
|
{
|
globel.ShowFromWarningMessage(strProjectNotLayout);
|
return;
|
}
|
|
if (formMain.OpenOptimizeProject(OPERATION_PROJECT_NO))
|
{
|
this.Close();
|
}
|
|
break;
|
case 8://查看钢化版图
|
|
if (Convert.ToInt32(PORJECT_STATE) >= 10)
|
{
|
//http://10.153.19.11:801/#/new-page?current=
|
string url = string.Format("http://{0}:801/#/new-page?current={1}", Service.ERPService, OPERATION_PROJECT_NO);
|
Process.Start(url);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strProjectNotHeat);
|
return;
|
}
|
return;
|
|
|
break;
|
|
case 9://撤销优化
|
if (PORJECT_STATE != "20")
|
{
|
globel.ShowFromWarningMessage(strProjectNotLayout);
|
return;
|
}
|
if (globel.ShowFromConfirmMessage(strProjectCancelOptima))
|
{
|
if (ProjectDB.CancelProject(OPERATION_PROJECT_NO, PORJECT_STATE))
|
{
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError);
|
}
|
}
|
break;
|
case 10://允许生产
|
if (PORJECT_STATE == "20")
|
{
|
if (ProjectDB.UpdateProjectStateByNo(OPERATION_PROJECT_NO, "100"))
|
{
|
globel.ShowFromOKMessage(strCurrentOperate + "\r\n" + strOperateSuccess);
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError);
|
}
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strProjectNotAllowProduce);
|
return;
|
}
|
break;
|
|
case 11://设置生产不可见
|
if (PORJECT_STATE == "100")
|
{
|
if (ProjectDB.UpdateProjectStateByNo(OPERATION_PROJECT_NO, "20", 0))
|
{
|
globel.ShowFromOKMessage(strCurrentOperate + "\r\n" + strOperateSuccess);
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError);
|
}
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strProjectProduceNot);
|
return;
|
}
|
break;
|
case 12://撤销模拟计算
|
|
if (Convert.ToInt32( PORJECT_STATE)<10)
|
{
|
globel.ShowFromWarningMessage(strProjectNotHeat);
|
return;
|
}
|
if (Convert.ToInt32(PORJECT_STATE) > 10) {
|
|
globel.ShowFromWarningMessage(strProjectIsLayout);
|
return;
|
}
|
if (globel.ShowFromConfirmMessage(strProjectCancelHeat))
|
{
|
if (ProjectDB.CacelProjectAnalog(OPERATION_PROJECT_NO, PORJECT_STATE))
|
{
|
globel.ShowFromOKMessage(strCurrentOperate + "\r\n" + strOperateSuccess);
|
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError);
|
}
|
}
|
|
break;
|
case 13://初始化工程
|
if (Convert.ToInt32(PORJECT_STATE) >20) {
|
globel.ShowFromWarningMessage(strProjectInitErr);
|
return;
|
}
|
|
if (globel.ShowFromConfirmMessage(strProjectInitConfirm))
|
{
|
if (ProjectDB.InitProject(OPERATION_PROJECT_NO))
|
{
|
//globel.ShowFromOKMessage("操作成功!");
|
|
globel.ShowFromOKMessage(strCurrentOperate + "\r\n" + strOperateSuccess);
|
|
|
FilterPorjectData(CURRENT_GLASS_COLOR, CURRENT_GLASS_THICKNESS);
|
}
|
else
|
{
|
globel.ShowFromWarningMessage(strCurrentOperate + "\r\n" + strOperateError);
|
}
|
}
|
break;
|
case 14://复刻工程
|
if (Convert.ToInt32(PORJECT_STATE) < 20) {
|
globel.ShowFromWarningMessage(strProjectNotLayout);
|
return;
|
|
}
|
//工程复刻 copy = new 工程复刻(OPERATION_PROJECT_NO);
|
//if (copy.ShowDialog() == DialogResult.OK) {
|
|
// DGVtRigthClickOperate(4);
|
//}
|
|
break;
|
case 15://显示流程卡
|
|
//// 获取指定列的单元格样式
|
//DataGridViewCellStyle cellStyle = dgvProject.Columns[11].DefaultCellStyle;
|
//// 设置单元格样式的水平对齐方式为左对齐
|
//cellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft;
|
//// 应用更改后的单元格样式到指定列
|
//dgvProject.Columns[11].DefaultCellStyle = cellStyle;
|
|
dgvProject.Columns[12].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
|
dgvProject.FirstDisplayedScrollingColumnIndex = 11;
|
TSMIHideFlowCard.Visible = true;
|
TSMIShowFlowCard.Visible = false;
|
dgvProject.Refresh();
|
break;
|
case 16://隐藏流程卡
|
|
//dgvProject.Columns[11].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
|
|
dgvProject.Columns[12].AutoSizeMode = DataGridViewAutoSizeColumnMode.None;
|
dgvProject.Columns[12].Width = 200;
|
dgvProject.FirstDisplayedScrollingColumnIndex = 3;
|
TSMIHideFlowCard.Visible = false;
|
TSMIShowFlowCard.Visible = true;
|
|
dgvProject.Refresh();
|
break;
|
case 17://OPTIMA优化
|
//this.Close();
|
//OPTIMA优化 oPTIMA = new OPTIMA优化(OPERATION_PROJECT_NO);
|
|
//if (oPTIMA.ShowDialog() == DialogResult.OK) {
|
|
// DGVtRigthClickOperate(4);
|
//}
|
|
break;
|
default:
|
break;
|
}
|
|
|
}
|
|
//打开工程
|
private void TSMIOpen_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIOpen.Text;
|
DGVtRigthClickOperate(0);
|
}
|
|
//钢化模拟计算
|
private void TSMIHeatCalculate_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIHeatCalculate.Text;
|
DGVtRigthClickOperate(1);
|
}
|
|
//去优化排版
|
private void TSMIGoOptimize_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIGoOptimize.Text;
|
DGVtRigthClickOperate(2);
|
}
|
|
//删除工程
|
private void TSMIRemove_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIRemove.Text;
|
DGVtRigthClickOperate(3);
|
}
|
|
//刷新
|
private void TSMIRefresh_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIRefresh.Text;
|
DGVtRigthClickOperate(4);
|
}
|
|
//导出表格数据
|
private void TSMIExport_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIExport.Text;
|
DGVtRigthClickOperate(5);
|
}
|
|
//只看当前膜系
|
private void TSMILookOnlyColor_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMILookOnlyColor.Text;
|
DGVtRigthClickOperate(6);
|
}
|
|
private void txtQuery_Enter(object sender, EventArgs e)
|
{
|
|
bool isName = !string.IsNullOrWhiteSpace(txtQuery.Text.Trim()) && (txtQuery.Text.Trim() != inputText);
|
txtQuery.ForeColor = Color.Black;
|
txtQuery.Text = isName == false ? "" : txtQuery.Text.Trim();
|
}
|
|
private void txtQuery_Leave(object sender, EventArgs e)
|
{
|
bool isName = !string.IsNullOrWhiteSpace(txtQuery.Text.Trim()) && (txtQuery.Text.Trim() != inputText);
|
txtQuery.ForeColor = isName == false ? Color.Gray : Color.Black;
|
txtQuery.Text = isName == false ? inputText : txtQuery.Text.Trim();
|
}
|
|
//查看优化版图
|
private void lblbtnOptimizeLayout_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = lblbtnOptimizeLayout.Text;
|
DGVtRigthClickOperate(7);
|
}
|
|
//钢化模拟计算
|
private void lblBtnHeat_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = lblBtnHeat.Text;
|
DGVtRigthClickOperate(1);
|
}
|
|
//查看钢化版图
|
private void lblbtnHeatLayout_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = lblbtnHeatLayout.Text;
|
DGVtRigthClickOperate(8);
|
}
|
|
//撤销优化
|
private void TSMIDelete_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIDelete.Text;
|
DGVtRigthClickOperate(9);
|
}
|
|
private void lblBtnOptimize_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = lblBtnOptimize.Text;
|
DGVtRigthClickOperate(2);//去优化排版
|
}
|
|
private void lblBtnExport_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = lblBtnExport.Text;
|
DGVtRigthClickOperate(5);//导出表格数据
|
}
|
|
private void dtpStartDate_CloseUp(object sender, EventArgs e)
|
{
|
if (((DateTimePicker)sender).Checked)
|
{
|
if (dtpStartDate.Value >= dtpEndDate.Value)
|
{
|
return;
|
}
|
}
|
}
|
|
private void dtpEndDate_CloseUp(object sender, EventArgs e)
|
{
|
if (((DateTimePicker)sender).Checked)
|
{
|
if (dtpEndDate.Value < dtpStartDate.Value)
|
{
|
return;
|
}
|
}
|
}
|
|
private void dtpStartDate_Leave(object sender, EventArgs e)
|
{
|
DateTime result;
|
if (DateTime.TryParse(dtpStartDate.Text, out result))
|
{
|
dtpStartDate.Value = result;
|
}
|
}
|
|
private void TSMIAllowProduct_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIAllowProduct.Text;
|
DGVtRigthClickOperate(10);//设置允许生产
|
}
|
|
private void TSMIOpenUrl_Click(object sender, EventArgs e)
|
{
|
|
}
|
|
private void TSMINoProduct_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMINoProduct.Text;
|
DGVtRigthClickOperate(11);//设置生产不可见
|
}
|
|
private void dgvProject_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
|
{
|
if (e.RowIndex > -1)
|
{
|
|
DGVtRigthClickOperate(0);
|
}
|
}
|
|
|
/// <summary>
|
/// 撤销模拟计算
|
/// </summary>
|
/// <param name="sender"></param>
|
/// <param name="e"></param>
|
private void TSMICancelAnalog_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMICancelAnalog.Text;
|
DGVtRigthClickOperate(12);
|
}
|
|
private void TSMIInitProject_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIInitProject.Text;
|
DGVtRigthClickOperate(13);
|
}
|
|
private void TSMICopy_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMICopy.Text;
|
//复刻工程思路
|
DGVtRigthClickOperate(14);
|
}
|
|
private void TSMIShowFlowCard_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIShowFlowCard.Text;
|
DGVtRigthClickOperate(15);
|
|
}
|
|
private void TSMIHideFlowCard_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIHideFlowCard.Text;
|
DGVtRigthClickOperate(16);
|
}
|
|
private void tsmiShowProcessInfo_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = tsmiShowProcessInfo.Text;
|
DGVtRigthClickOperate(15);
|
}
|
|
private void tsmiHideProcessInfo_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = tsmiHideProcessInfo.Text;
|
DGVtRigthClickOperate(16);
|
}
|
|
private void TSMIHeatLayout_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIHeatLayout.Text;
|
DGVtRigthClickOperate(8);
|
}
|
|
private void TSMIOptimizeLayout_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = TSMIOptimizeLayout.Text;
|
DGVtRigthClickOperate(7);
|
}
|
|
private void cmbProjectState_SelectedIndexChanged(object sender, EventArgs e)
|
{
|
ComboBox comboBox = sender as ComboBox;
|
if (comboBox != null && cmbProjectState.SelectedItem is KeyValuePair<string, string> selectedItem)
|
{
|
// 获取选中的显示值和对应的Value值
|
string displayValue = selectedItem.Key;
|
string value = selectedItem.Value;
|
PROJECT_STATE = value;
|
}
|
}
|
|
private void oPTIMA优化ToolStripMenuItem_Click(object sender, EventArgs e)
|
{
|
strCurrentOperate = oPTIMA优化ToolStripMenuItem.Text;
|
DGVtRigthClickOperate(17);
|
}
|
}
|
}
|