using CSFrameworkV5.Business;
|
using CSFrameworkV5.Common;
|
using CSFrameworkV5.Core;
|
using CSFrameworkV5.Language;
|
using CSFrameworkV5.Library;
|
using CSFrameworkV5.Library.CommonClass;
|
using DevExpress.XtraEditors;
|
using System;
|
using System.Collections.Generic;
|
using System.ComponentModel;
|
using System.Data;
|
using System.Drawing;
|
using System.Linq;
|
using System.Text;
|
using System.Threading.Tasks;
|
using System.Windows.Forms;
|
|
namespace CSFrameworkV5.womcaa
|
{
|
public partial class frmWOMPlanQZ : frmBaseDataForm
|
{
|
private DataTable tb = new DataTable();
|
private DataTable tbWOMDAA = new DataTable();
|
private string GCD = "";
|
private string idString = "";
|
|
private DataTable tbWOMGCA = new DataTable();//合并表
|
|
private DataTable tbWOMCAA = new DataTable();
|
private DataTable XT;//线体表
|
|
private DataTable JT;//机台表
|
private DataTable CF;//已拆分数量表
|
private bllyhj_womcaa _BLLInstance;//业务逻辑层对象引用
|
private DataTable tbWOMDAAA = new DataTable();
|
private DataTable tbWOMDAAA_B = new DataTable();
|
|
private DataTable tbGCBOM = new DataTable();//高冲bom
|
//private DataTable tbWOMDAAA;//线体表
|
private DataTable tbyp = new DataTable();//已排指令表
|
/// <summary>
|
/// 是否拆分了工单
|
/// </summary>
|
public bool IsSplit = false;
|
private DataTable RY;
|
private DataTable GYLX;
|
private DataTable tbWOMDAAA_ONE = new DataTable();
|
private DataTable tbBM;
|
|
public frmWOMPlanQZ()
|
{
|
InitializeComponent();
|
}
|
|
public override void InitButtons()
|
{
|
var btnClose = ToolbarRegister.CreateButton("btnClose",
|
LanLib.Get("关闭"), ToolBarGroup.关闭窗体, Globals.LoadBitmap("32_Exit.png"), new Size(57, 28), false, true,
|
DoClose);
|
_buttons.AddButton(btnClose);
|
|
var btnRefresh = ToolbarRegister.CreateButton("btnRefreshDataDict",
|
LanLib.Get("查询未排"), ToolBarGroup.数据操作, Globals.LoadBitmap("32_Refresh.png"), new Size(57, 28), true,
|
true, DoSeleteData);
|
_buttons.AddButton(btnRefresh);
|
|
if (ButtonAuthorized(ButtonAuthority.DELETE))
|
{
|
var btnDelete = ToolbarRegister.CreateButton("btnDelete", LanLib.Get("拆分"), ToolBarGroup.数据操作,
|
Globals.LoadBitmap("32_Del.png"), new Size(57, 28), false, true, SplitWorkOrder);
|
Buttons.AddButton(btnDelete);
|
}
|
|
//if (ButtonAuthorized(ButtonAuthority.EDIT))
|
//{
|
// var btnSave = ToolbarRegister.CreateButton("btnSave", LanLib.Get("下达"), ToolBarGroup.数据操作,
|
// Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, doXiaDaZhiLing);
|
// Buttons.AddButton(btnSave);
|
//}
|
|
|
if (ButtonAuthorized(ButtonAuthority.EDIT))
|
{
|
var btnSave = ToolbarRegister.CreateButton("btnSave", LanLib.Get("合并下达"), ToolBarGroup.数据操作,
|
Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, HBXD);
|
Buttons.AddButton(btnSave);
|
}
|
|
|
//if (ButtonAuthorized(ButtonAuthority.EDIT))
|
//{
|
// var btnCXTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("查询推荐"), ToolBarGroup.数据操作,
|
// Globals.LoadBitmap("Zoom_32x32.png"), new Size(57, 28), false, true, CXTJ);
|
// Buttons.AddButton(btnCXTJ);
|
//}
|
|
|
//if (ButtonAuthorized(ButtonAuthority.EDIT))
|
//{
|
// var btnQXTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("取消推荐"), ToolBarGroup.数据操作,
|
// Globals.LoadBitmap("32_Undo.png"), new Size(57, 28), false, true, QXTJ);
|
// Buttons.AddButton(btnQXTJ);
|
//}
|
|
//if (ButtonAuthorized(ButtonAuthority.EDIT))
|
//{
|
// var btnQXAllTJ = ToolbarRegister.CreateButton("btnSave", LanLib.Get("取消全部推荐"), ToolBarGroup.数据操作,
|
// Globals.LoadBitmap("32_Void.png"), new Size(57, 28), false, true, QXAllTJ);
|
// Buttons.AddButton(btnQXAllTJ);
|
//}
|
//if (ButtonAuthorized(ButtonAuthority.EDIT))
|
//{
|
// var btnSavet = ToolbarRegister.CreateButton("btnSave", LanLib.Get("合并"), ToolBarGroup.数据操作,
|
// Globals.LoadBitmap("32_Save.png"), new Size(57, 28), false, true, hb);
|
// Buttons.AddButton(btnSavet);
|
//}
|
}
|
|
|
// 合并下达
|
private void HBXD(IButtonInfo sender)
|
{
|
//MessageBox.Show("功能暂时关闭");
|
//return;
|
|
//获取gridview中当前cell的行号
|
int rowHandle = gridView2.FocusedRowHandle;
|
|
|
gridView2.FocusedRowHandle = rowHandle;
|
gridView2.FocusedColumn = gridView2.Columns["DAA001"];
|
|
string bilo = "";
|
int no = 0; //合并指令数
|
|
string GCA059 = "";//销售订单号
|
string GCA010 = "";//总装工单号
|
string GCA074 = "";//总装产品编码
|
|
string ZLS = "";//指令集
|
decimal NewShu = 0;//拆分集合里的数量
|
decimal OldShu = 0;//数据库里的数量(排除了拆分集合里的数量)
|
|
if (tb.Rows.Count == 0)
|
{
|
MessageBox.Show("还没有数据,请查询未排工单!");
|
return;
|
}
|
DataRow[] selRow = tb.Select("SelL='Y' AND ChaiFenGeShu>0");
|
if (selRow.Length == 0)
|
{
|
MessageBox.Show("请选择工单,并录入拆分个数");
|
return;
|
}
|
//if (tbWOMDAA.Rows.Count > 0)
|
//{
|
// tbWOMDAA.Clear();
|
//}
|
|
if (!IsSplit)
|
{
|
MessageBox.Show("工单未拆分,不能下达!");
|
return;
|
}
|
if (tbWOMDAA.Rows.Count == 0)
|
{
|
MessageBox.Show("请先拆分指令!");
|
return;
|
}
|
//对数据的检测
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
if (dr["DAA042"].ToString() == "")
|
{
|
MessageBox.Show("存在线别为空,不能下达指令!");
|
return;
|
}
|
if (dr["DAA040"].ToString() == " ")
|
{
|
MessageBox.Show("存在人员为空,不能下达指令!");
|
return;
|
}
|
//if (dr["DAA069"].ToString() == "")
|
//{
|
// MessageBox.Show("设备名称为空,不能下达指令!");
|
// return;
|
//}
|
if (Convert.ToInt32(dr["DAA027"]) <= 0)
|
{
|
MessageBox.Show("存在数量小于等于0,不能下达指令!");
|
return;
|
}
|
}
|
|
|
//计算合并工单的总指令数
|
bilo = tbWOMDAA.Rows[0]["DAA014"].ToString();
|
string plan_type = tbWOMDAA.Rows[0]["DAA071"].ToString();
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
no = no + Convert.ToInt32(dr["DAA027"]);
|
GCA010 = GCA059 + dr["DAA010"].ToString() + ",";
|
GCA059 = GCA059 + dr["DAA059"].ToString()+",";
|
GCA074 = GCA074 + dr["DAA074"].ToString() + ",";
|
if (dr["DAA014"].ToString() != bilo)
|
{
|
MessageBox.Show("产品编码不一致,不能合并下达!!!");
|
return;
|
}
|
if (dr["DAA071"].ToString() != plan_type)
|
{
|
MessageBox.Show("计划类型不一致,不能合并下达!!!");
|
return;
|
}
|
}
|
|
// var duplicates = tbWOMDAA.AsEnumerable()
|
//.GroupBy(row => row.Field<string>("DAA010")) // 假设DAA010是字符串类型,如果不是请修改类型
|
//.Where(group => group.Count() > 1) // 查找包含两条或更多条数据的组
|
//.Select(group => group.Key); // 选择重复的DAA010值
|
|
|
// 使用LINQ查询非空的DAA010字段值并分组,然后筛选出那些包含两条或更多条目的组
|
var duplicates = tbWOMDAA.AsEnumerable()
|
.Where(row => !string.IsNullOrEmpty(row.Field<string>("DAA010"))) // 排除空值
|
.GroupBy(row => row.Field<string>("DAA010"))
|
.Where(group => group.Count() > 1); // 选择那些有多于一个条目的组
|
|
// 如果找到了重复的DAA010值,显示错误消息框
|
if (duplicates.Any())
|
{
|
string errorMessage = "在新开指令中发现了重复的总装指令工单: " + string.Join(", ", duplicates);
|
MessageBox.Show(errorMessage, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error); // 如果你使用的是Windows // 如果不是Windows Forms,你可能需要使用不同的方式显示消息
|
return;
|
}
|
|
|
//判断拆分出来的数量不能超过原工单数量
|
DataTable dtDAA = tbWOMDAA.DefaultView.ToTable(true, new string[] { "DAA038", "DAA014" });
|
foreach (DataRow dr in dtDAA.Rows)
|
{
|
NewShu = 0;
|
OldShu = 0;
|
string filter = string.Format("DAA038 ='{0}' AND DAA014='{1}' and DAA001 not like '%-B' ", dr["DAA038"], dr["DAA014"]);
|
DataRow[] arrayRow = tbWOMDAA.Select(filter);
|
foreach (DataRow dr1 in arrayRow)
|
{
|
ZLS += "'" + dr1["DAA001"].ToString() + "',";
|
NewShu += Convert.ToDecimal(dr1["DAA027"]);
|
}
|
OldShu = GetYiChaiFenShu(dr["DAA038"].ToString(), ZLS.TrimEnd(','), dr["DAA014"].ToString());
|
|
DataRow[] yRow = tb.Select("CAA001='" + dr["DAA038"] + "'");
|
decimal YuanGDShu = yRow.Length > 0 ? Convert.ToDecimal(yRow[0]["CAA012"]) : 0;
|
if (NewShu + OldShu > YuanGDShu)
|
{
|
MessageBox.Show(string.Format("工单[{0}]的拆分数量[{1}]+[{2}]不能大于工单总量[{3}],请修改!",
|
dr["DAA038"].ToString(), NewShu.ToString(), OldShu.ToString(), YuanGDShu));
|
return;
|
}
|
}
|
|
|
//合并单据
|
try
|
{
|
GCD = CommonData.GetDocNo("MOHB");
|
|
DataRow drNew = tbWOMGCA.NewRow();
|
Guid newId = Guid.NewGuid();
|
idString = newId.ToString();
|
drNew["ID"] = idString;
|
drNew["GCA001"] = GCD;// 合并指令单号
|
drNew["GCA003"] = tbWOMDAA.Rows[0]["DAA003"];// 客户编号
|
drNew["GCA004"] = "5102"; // 工单单别
|
drNew["GCA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm"); // 开单日期
|
drNew["GCA006"] = "00:00";// 开单时间
|
drNew["GCA007"] = "0000";// 开单版本
|
//drNew["GCA011"] = tbGCBOM.Rows[0]["生产方案"].ToString(); ;// 生产方案
|
drNew["GCA014"] = tbWOMDAA.Rows[0]["DAA014"];// 产品编码
|
drNew["GCA015"] = tbWOMDAA.Rows[0]["DAA015"];// 产品名称
|
drNew["GCA016"] = tbWOMDAA.Rows[0]["DAA016"];// 产品规格
|
drNew["GCA017"] = tbWOMDAA.Rows[0]["DAA017"];// 单位
|
drNew["GCA018"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期
|
drNew["GCA019"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期
|
drNew["GCA020"] = tbWOMDAA.Rows[0]["DAA018"].ToString().Substring(0, 10); //dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间
|
drNew["GCA021"] = tbWOMDAA.Rows[0]["DAA019"].ToString().Substring(0, 10); //dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间
|
drNew["GCA022"] = "新开指令";// 生产状态 新单
|
drNew["GCA027"] = no;// 工单数量
|
drNew["GCA028"] = 0;
|
drNew["GCA029"] = 0;
|
drNew["GCA030"] = 0;
|
drNew["GCA031"] = tbWOMDAA.Rows[0]["DAA031"];// BOM版次
|
drNew["GCA032"] = tbWOMDAA.Rows[0]["DAA032"];// 工作中心
|
drNew["GCA034"] = "";//指令物料超发类型
|
drNew["GCA035"] = "";//指令组
|
drNew["GCA036"] = tbWOMDAA.Rows[0]["DAA036"];//图号
|
drNew["GCA037"] = 0;//备料齐套生产
|
drNew["GCA038"] = tbWOMDAA.Rows[0]["DAA038"];// 计划批次
|
drNew["GCA039"] = tbWOMDAA.Rows[0]["DAA039"];// 客户名称
|
drNew["GCA040"] = tbWOMDAA.Rows[0]["DAA040"];// 备注
|
drNew["GCA041"] = "";// 目标指令编码
|
drNew["GCA042"] = tbWOMDAA.Rows[0]["DAA042"];// 生产线别
|
drNew["GCA043"] = tbWOMDAA.Rows[0]["DAA043"];// 生产批次编码
|
drNew["GCA044"] = "";// RoHS区分
|
drNew["GCA045"] = "1";//dr["CAA045"]; 返工标记(1-量产2试做,3-有任务单返工;4-无任务单返工
|
drNew["GCA046"] = Loginer.CurrentUser.Account;// 审核者
|
drNew["GCA047"] = "N";// 程序校验
|
drNew["GCA048"] = 0;//Convert.ToDecimal(dr["FAuxInHighLimitQty"]); 入库上限值
|
drNew["GCA049"] = "3";// 板面标识
|
drNew["GCA050"] = 0; //不良品数
|
drNew["GCA051"] = 0; //备用ObjectToDecimal(dr["FStdWorkHour"]).ToString();
|
drNew["GCA052"] = 0;//产线人员
|
drNew["GCA053"] = 0;//是否退料
|
drNew["GCA054"] = 0;//发料仓库
|
drNew["GCA055"] = 0;//生产优先级
|
drNew["GCA056"] = 0;//下一个指令编码
|
//drNew["GCA057"] = tbWOMDAA.Rows[0]["CAA001"]; //工单单号 udpObjectToDecimal(dr["FOldStdWorkHour"]).ToString();
|
//drNew["GCA058"] = tbWOMDAA.Rows[0]["CAA016"];// 客户订单
|
drNew["GCA059"] = GCA059;// 销售订单号
|
drNew["GCA067"] = tbWOMDAA.Rows[0]["DAA067"];
|
drNew["GCA068"] = tbWOMDAA.Rows[0]["DAA068"];
|
drNew["GCA069"] = tbWOMDAA.Rows[0]["DAA069"];
|
drNew["GCA071"] = tbWOMDAA.Rows[0]["DAA071"];
|
drNew["GCA073"] = tbWOMDAA.Rows[0]["DAA073"];
|
drNew["GCA074"] = GCA074;// 总装产品编码
|
drNew["GYLX"] = tbWOMDAA.Rows[0]["GYLX"];// 总装产品编码
|
|
if (tbWOMDAA.Rows[0]["DAA071"].ToString() == "计划外")
|
{
|
drNew["flagApp"] = "N";
|
}
|
|
tbWOMGCA.Rows.Add(drNew);
|
|
_BLLInstance.InstDataSet(tbWOMGCA, "WOMGCA");
|
|
|
}
|
catch(Exception EEE)
|
{
|
MessageBox.Show("合并工单失败!"+EEE.Message);
|
return;
|
}
|
|
|
|
|
try
|
{
|
int i = 0;
|
//格式化时间控件的值
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["ID"] = Guid.NewGuid();
|
dr["DAA020"] = dr["DAA018"].ToString().Substring(0, 10);
|
dr["DAA021"] = dr["DAA019"].ToString().Substring(0, 10);
|
dr["DAA050"] = 0;
|
dr["DAA051"] = 0;
|
dr["DAA052"] = 0;
|
dr["DAA028"] = 0;
|
dr["DAA029"] = 0;
|
dr["DAA030"] = 0;
|
dr["DAA033"] = 0;
|
dr["AppNAME"] = "指令工单";
|
dr["GCID"] = idString;
|
dr["DAA070"] = ++i;
|
dr["HBGD"] = GCD;//合并工单
|
|
if (dr["DAA071"].ToString() == "计划外")
|
{
|
dr["flagApp"] = "N";
|
}
|
|
}
|
|
|
|
//保存数据
|
// PB.StepProgressBar(1, "正在保存指令数据!");
|
if (_BLLInstance.InstDataSet(tbWOMDAA, "WOMDAA"))
|
{
|
//更新已下达的数量
|
foreach (DataRow row in dtDAA.Rows)
|
{
|
UpdateIssueWorkOrder(row["DAA038"].ToString(), row["DAA014"].ToString());
|
string WOMCAAKG = string.Format("EXEC WMS_CREATE_WOMCAAKG '{0}'", row["DAA038"].ToString());
|
_BLLInstance.InsDataSet(WOMCAAKG);
|
|
}
|
//生成指令明细数据
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
//string SQL_WOMDAB = string.Format("EXEC WMS_CREATE_WOMDABGC '{0}','{1}'", dr["DAA001"].ToString(),dr["DAA038"].ToString());
|
//_BLLInstance.InsDataSet(SQL_WOMDAB);
|
|
string SQL1 = string.Format("EXEC WOM_UPDATE_ZZGD '{0}' ", dr["DAA001"].ToString());
|
_BLLInstance.InsDataSet(SQL1);
|
|
string GCBOMBG = string.Format("EXEC WMS_CREATE_WOMDAB '{0}' ",dr["DAA001"].ToString());
|
_BLLInstance.InsDataSet(GCBOMBG);
|
|
}
|
|
// PB.StepProgressBar(1, "正在更新已开指令数!");
|
|
|
MessageBox.Show("合并工单<" + GCD +">下达成功!");
|
tbWOMDAA.Clear();
|
tbWOMGCA.Clear();
|
tbyp.Clear();
|
tb.Clear();
|
string sql = string.Format(@";WITH B AS(SELECT DISTINCT DAA059,SUM(ISNULL(DAA027,0)) F
|
FROM WOMDAA(NOLOCK) WHERE DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间') AND ISNULL(DAA059,'')<>'' GROUP BY DAA059),
|
ZZYPGD_WP AS (SELECT DAA001 总装指令工单,DAA027 总装指令已排数,ISNULL(DAA059,'') 销售订单号,DAA020 总装预计开工时间
|
FROM WOMDAA(NOLOCK) AA WHERE ISNULL(DAA059,'') <> '' AND DAA022 <> '完工' AND DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间') AND NOT EXISTS(SELECT 1 FROM WOMDAA(NOLOCK) BB WHERE BB.DAA010 = AA.DAA001 AND DAA032 = '{0}' )),
|
ZZYPGD_SUM AS (SELECT DAA001 总装指令工单,DAA027 总装指令已排数,ISNULL(DAA059,'') 销售订单号,DAA020 总装预计开工时间
|
FROM WOMDAA(NOLOCK) AA WHERE ISNULL(DAA059,'') <> '' AND DAA032 IN ('洗衣机装配车间','风扇装配车间','罩极装配车间'))
|
SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,ZZYPGD_WP.总装指令已排数 WeiPaiShu,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数,
|
'计划内' 类型,PQZ006 计划排产时间,ZZYPGD_WP.总装指令工单 总装指令工单,ZZYPGD_WP.总装指令已排数 总装指令数量 FROM WOMCAA(nolock) A
|
LEFT JOIN B ON B.DAA059=A.CAA018
|
LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006
|
LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018
|
LEFT JOIN GS_PLAN_QZ(NOLOCK) E ON PQZ002 = A.CAA001
|
RIGHT JOIN ZZYPGD_WP ON ZZYPGD_WP.销售订单号 = A.CAA018
|
WHERE A.CAA013<A.CAA012 AND A.CAA014='{0}' AND ISNULL(A.CAA026,0)>0 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7')
|
union
|
SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,A.CAA012-(SELECT SUM(总装指令已排数) FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018 ) WeiPaiShu ,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数,
|
'计划外' 类型,'' 计划排产时间,'' 总装指令工单,'' 总装指令数量 FROM WOMCAA(nolock) A
|
LEFT JOIN B ON B.DAA059=A.CAA018
|
LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006
|
LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018
|
WHERE A.CAA013<A.CAA012 AND A.CAA014='{0}' AND ISNULL(A.CAA026,0)>0 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7')
|
AND (A.CAA012-(SELECT SUM(总装指令已排数) FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018 ) > 0) AND EXISTS(SELECT 1 FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018)
|
union
|
SELECT A.CAA002,A.CAA003,A.CAA005,A.CAA018,A.CAA006,A.CAA007,A.CAA008,A.CAA009,A.CAA010,A.CAA011,A.CAA012,A.CAA013,A.CAA014,A.CAA015,A.CAA016,A.CAA022,A.CAA017,A.CAA021,A.ERPID,C.WL069,'1' ChaiFenGeShu,'N' SelL,A.CAA012 WeiPaiShu ,isnull(B.F,0) ZWEI ,WL008,D.CAA006 总装产品编码,A.CAA012-isNull(A.CAA013,0) 工单总未排数,
|
'计划外' 类型,'' 计划排产时间,'' 总装指令工单,'' 总装指令数量 FROM WOMCAA(nolock) A
|
LEFT JOIN B ON B.DAA059=A.CAA018
|
LEFT JOIN GS_WL(NOLOCK) C ON C.WL001=A.CAA006
|
LEFT JOIN (SELECT distinct CAA006, CAA018 FROM WOMCAA(NOLOCK) WHERE CAA014 IN ('风扇装配车间','洗衣机装配车间','罩极装配车间') AND SUBSTRING(CAA006,1,2)='01' AND ISNULL(CAA018,'')<>'') D ON D.CAA018=A.CAA018
|
WHERE A.CAA013<A.CAA012 AND A.CAA014='{0}' AND ISNULL(A.CAA026,0)>0 AND ISNULL(A.flagApp,'') <> 'N' AND ISNULL(CAA029,'0') NOT IN ('5','6','7')
|
AND NOT EXISTS(SELECT 1 FROM ZZYPGD_SUM WHERE ZZYPGD_SUM.销售订单号 = A.CAA018)", searchLookUpEdit1.Text);
|
tb = _BLLInstance.GETDAT(sql);
|
this.gridControl1.DataSource = tb;
|
return;
|
}
|
else
|
{
|
MessageBox.Show("指令下达失败!");
|
return;
|
}
|
}
|
finally
|
{
|
// PB.MoveProgressBar();
|
}
|
|
|
|
}
|
|
|
/// <summary>
|
///更新工单已开指令数
|
/// </summary>
|
/// <param name="Order">The order.</param>
|
public void UpdateIssueWorkOrder(string Order, string PartNo)
|
{
|
string sql = string.Format(@"update WOMCAA SET CAA013 = ISNULL((SELECT SUM(DAA027) FROM WOMDAA WHERE DAA038 = CAA001 AND DAA014 = CAA006 and DAA001 not like '%-B'), 0),CAA028 = 2
|
WHERE CAA001 = '{0}' and CAA006='{1}' ", Order, PartNo);
|
_BLLInstance.InsDataSet(sql);
|
}
|
|
|
#region 得到数据库里的已拆分数量(排除了拆分集合里的数量)DataTable GetYiChaiFenShu(string DAA038,string DAA001)
|
/// <summary>
|
/// 得到数据库里的已拆分数量(排除了拆分集合里的数量)
|
/// </summary>
|
/// <param name="DAA038">工单号</param>
|
/// <param name="DAA001">指令号集合</param>
|
/// <returns></returns>
|
public decimal GetYiChaiFenShu(string DAA038, string DAA001, string DAA014)
|
{
|
string sql = string.Format("select ISNULL(sum(DAA027),0) sl from WOMDAA where DAA038='{0}' AND DAA014='{2}' and DAA001 not in ({1}) and DAA001 not like '%-B' ", DAA038, DAA001, DAA014);
|
CF = _BLLInstance.GETDAT(sql);
|
return Convert.ToDecimal(CF.Rows[0]["sl"]);
|
}
|
#endregion
|
|
//拆分
|
private void SplitWorkOrder(IButtonInfo sender)
|
{
|
if (tb.Rows.Count == 0)
|
{
|
MessageBox.Show("还没有数据,请查询未排工单!");
|
return;
|
}
|
DataRow[] selRow = tb.Select("SelL='Y'");
|
if (selRow.Length == 0)
|
{
|
MessageBox.Show("请选择工单,并录入拆分个数");
|
return;
|
}
|
if (tbWOMDAA.Rows.Count > 0)
|
{
|
tbWOMDAA.Clear();
|
}
|
|
if (tbWOMGCA.Rows.Count > 0)
|
{
|
tbWOMGCA.Clear();
|
}
|
|
|
Dictionary<string, int> workorderCount = new Dictionary<string, int>();
|
Dictionary<string, int> workorderCount1 = new Dictionary<string, int>();
|
|
// 遍历selRow中的所有行
|
foreach (DataRow row in selRow)
|
{
|
string workorder = row["任务单号"].ToString();
|
|
// 如果工单号不在字典中,则将其添加并设置计数为0
|
if (!workorderCount.ContainsKey(workorder))
|
workorderCount[workorder] = 0;
|
|
if (!workorderCount1.ContainsKey(workorder))
|
workorderCount1[workorder] = 0;
|
|
// 对每种工单号进行计数
|
workorderCount[workorder]++;
|
workorderCount1[workorder]++;
|
}
|
|
#region
|
/* foreach (DataRow dr in selRow)
|
{
|
|
*//* if (Convert.ToInt32(dr["ChaiFenGeShu"]) == 0)
|
continue;*/
|
|
/* tbWOMDAAA_ONE.Clear();
|
tbWOMDAAA.Clear();
|
string sqlstr = String.Format(@"SELECT DISTINCT A.DAA001 指令单号,A.DAA027 指令数量,(A.DAA027-SUM(ISNULL(C.DAA027,0))) 已排数量,A.DAA020 预计开工时间,A.DAA014 物料编码, A.DAA015 物料名称 ,A.DAA016 物料规格,A.DAA059 销售订单号 FROM WOMDAA A
|
LEFT JOIN WOMDAA C ON C.DAA010 = A.DAA001
|
WHERE A.DAA059 = '{0}' AND A.DAA032 IN('风扇装配车间','洗衣机装配车间','罩极装配车间') AND A.DAA022 NOT IN('完工', '停工') AND ISNULL(C.DAA010,'')= '' AND ISNULL(C.DAA027,0)< A.DAA027 AND ISNULL(A.DAA075,0) = 0 AND ISNULL(A.DAA059,'') <> ''
|
GROUP BY A.DAA001 ,A.DAA027 ,A.DAA020 ,A.DAA014 , A.DAA015 ,A.DAA016,A.DAA059 ", dr["CAA018"].ToString());//WHERE ISNULL(DAA028,0)<DAA027
|
tbWOMDAAA_ONE = _BLLInstance.GETDAT(sqlstr);
|
|
|
|
if (tbWOMDAAA_ONE.Rows.Count > 0)
|
{
|
foreach (DataRow row in tbWOMDAAA_ONE.Rows)
|
{
|
// 创建一个新的DataRow对象,并设置其ItemArray为当前行的ItemArray
|
// 注意:这里假设tbWOMDAAA的列与tbWOMDAAA_ONE的列完全相同
|
DataRow newRow = tbWOMDAAA.NewRow();
|
newRow.ItemArray = row.ItemArray;
|
|
// 将新行添加到tbWOMDAAA中
|
tbWOMDAAA.Rows.Add(newRow);
|
}
|
}*//*
|
|
|
// DataRow newRow_NULL = tbWOMDAAA.NewRow();
|
|
// 将新行添加到tbWOMDAAA中
|
// tbWOMDAAA.Rows.Add(newRow_NULL);
|
|
|
// string sqlstr1 = String.Format(@" SELECT A.BOM001 AS 生产方案,A.BOM002 AS 产品编码,A.BOM003 AS 产品名称, A.BOM004 AS 产品规格, A.BOM007 AS 模具类型 ,
|
//B.BOMM002 AS 用料编码,B.BOMM003 AS 用料名称,B.BOMM004 AS 用料规格
|
//FROM GS_BOM AS A LEFT JOIN GS_MBOM AS B ON A.ID = B.PID where BOM002 = '{0}' ", dr["CAA006"].ToString());//WHERE ISNULL(DAA028,0)<DAA027
|
// tbGCBOM = _BLLInstance.GETDAT(sqlstr1);
|
// repositoryItemSearchLookUpEdit2.ValueMember = "生产方案";
|
// repositoryItemSearchLookUpEdit2.DisplayMember = "生产方案";
|
// repositoryItemSearchLookUpEdit2.ShowClearButton = false;
|
// repositoryItemSearchLookUpEdit2.DataSource = tbGCBOM;
|
// repositoryItemSearchLookUpEdit2.View.OptionsView.ColumnAutoWidth = true;
|
|
|
|
string SQLL = String.Format(@"SELECT CAA006 FROM WOMCAA WITH(NOLOCK) WHERE CAA014 LIKE '%装配%' AND CAA018='{0}' ", dr["CAA018"].ToString());
|
tbWOMCAA = _BLLInstance.GETDAT(SQLL);
|
decimal avg = Convert.ToInt32(Convert.ToInt32(dr["WeiPaiShu"]) / Convert.ToInt32(dr["ChaiFenGeShu"]));
|
int No = Convert.ToInt32(GetMaxBillNo(dr["CAA002"].ToString()));
|
|
for (int i = 0; i < Convert.ToInt32(dr["ChaiFenGeShu"]); i++)
|
{
|
No = No + 1+workorderCount[dr["CAA002"].ToString()]- workorderCount1[dr["CAA002"].ToString()];
|
string erp_column = dr["CAA018"].ToString() == "" ? "DAA043" : "DAA059";
|
string erp_wo = dr["CAA018"].ToString() == "" ? dr["CAA002"].ToString() : dr["CAA018"].ToString();//使用销售订单号来作单号,如果没有销售订单号就用工单号
|
string BillType = "5102";
|
//GetMaxBillNO("5102", SystemDate);//dr["CAA002"].ToString();这里直接使用任务单号
|
//if (!IsSysBillType(BillType)) BillType = "5102";
|
//取任务单的单号;
|
//strCurrLineNo = string.IsNullOrEmpty(CurrWorkLineNo) ? MyRow["FWorkSNo"].ToString().Trim() : CurrWorkLineNo;
|
//int iWorkerNum = Manager.GetLineWorkerNum(strCurrLineNo);
|
string BillNo = dr["CAA002"].ToString() + "-" + No.ToString();
|
|
workorderCount1[dr["CAA002"].ToString()]--;
|
DataTable dt = null;// GetBanMianBiaoShi(dr["CAA006"].GetString());
|
//if (dt.Rows.Count>1)
|
if (1 != 1)
|
{
|
foreach (DataRow row in dt.Rows)
|
{
|
if (row[0].ToString() == "") continue;
|
#region AB面
|
DataRow drNew = tbWOMDAA.NewRow();
|
drNew["DAA001"] = BillNo + "-" + row[0];// 指令单号
|
drNew["DAA003"] = dr["CAA003"];// 客户编号
|
drNew["DAA004"] = BillType; // 工单单别
|
drNew["DAA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 开单日期
|
drNew["DAA006"] = "00:00";// 开单时间
|
drNew["DAA007"] = "0000";// 开单版本
|
drNew["DAA010"] = dr["总装指令工单"];// 总装工单号 //
|
drNew["DAA014"] = dr["CAA006"];// 产品编码
|
drNew["DAA015"] = dr["CAA007"];// 产品名称
|
drNew["DAA016"] = dr["CAA008"];// 产品规格
|
drNew["DAA017"] = dr["CAA009"];// 单位
|
drNew["DAA018"] = dr["CAA020"];//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期
|
drNew["DAA019"] = dr["CAA020"];//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期
|
drNew["DAA020"] = "00:00";//dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间
|
drNew["DAA021"] = "00:00";//dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间
|
drNew["DAA022"] = "新开指令";// 生产状态 新单
|
drNew["DAA027"] = dr["WeiPaiShu"];// 工单数量
|
drNew["DAA028"] = 0;
|
drNew["DAA029"] = 0;
|
drNew["DAA030"] = 0;
|
drNew["DAA031"] = dr["CAA015"];// BOM版次
|
drNew["DAA032"] = dr["CAA014"];// 工作中心
|
drNew["DAA034"] = "";//指令物料超发类型
|
drNew["DAA035"] = "";//指令组
|
drNew["DAA036"] = dr["WL008"];//图号
|
drNew["DAA037"] = 0;//备料齐套生产
|
drNew["DAA038"] = dr["CAA001"];// ERP工单号//dr["CAA002"];// 计划批次
|
drNew["DAA039"] = dr["CAA017"];// 客户订单号
|
drNew["DAA040"] = dr["CAA021"];// 备注
|
drNew["DAA041"] = dr["总装产品编码"];// 目标指令编码
|
drNew["DAA042"] = "";// 生产线别
|
drNew["DAA043"] = dr["CAA002"]; ;// 生产批次编码
|
drNew["DAA044"] = "";// RoHS区分
|
drNew["DAA045"] = "";// 相关说明
|
drNew["DAA046"] = Loginer.CurrentUser.Account;
|
drNew["DAA047"] = "N";// 程序校验
|
drNew["DAA048"] = 0;// 周计划已开指令
|
drNew["DAA049"] = row[0].ToString() == "A" ? "1" : "2";// 板面标识
|
drNew["DAA050"] = 0; //不良品数
|
drNew["DAA051"] = 0;//备用
|
drNew["DAA052"] = 0;//备用
|
drNew["DAA053"] = 0;//是否退料
|
drNew["DAA054"] = 0;//发料仓库
|
drNew["DAA055"] = 0;//生产优先级
|
drNew["DAA056"] = 0;//下一个指令编码
|
drNew["DAA057"] = dr["CAA018"]; //工单单号
|
drNew["DAA058"] = dr["CAA016"];// 生产工艺
|
drNew["DAA059"] = dr["CAA018"];//
|
drNew["DAA066"] = tbWOMCAA.Rows[0]["CAA006"].ToString();//
|
drNew["PID"] = dr["ERPID"];// 销售订单号
|
tbWOMDAA.Rows.Add(drNew);
|
#endregion
|
}
|
}
|
else
|
{
|
#region 整体面
|
DataRow drNew = tbWOMDAA.NewRow();
|
drNew["CREATE_BY"] = Loginer.CurrentUser.Account;// 创建者
|
drNew["CREATE_DATE"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 创建时间
|
drNew["DAA001"] = BillNo;// 指令单号
|
drNew["DAA003"] = dr["CAA003"];// 客户编号
|
drNew["DAA004"] = BillType; // 工单单别
|
drNew["DAA005"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm"); // 开单日期
|
drNew["DAA006"] = "00:00";// 开单时间
|
drNew["DAA007"] = "0000";// 开单版本
|
//drNew["DAA011"] = tbGCBOM.Rows[0]["生产方案"].ToString(); ;// 生产方案
|
drNew["DAA010"] = dr["总装指令工单"];// 总装工单号
|
drNew["DAA014"] = dr["CAA006"];// 产品编码
|
drNew["DAA015"] = dr["CAA007"];// 产品名称
|
drNew["DAA016"] = dr["CAA008"];// 产品规格
|
drNew["DAA017"] = dr["CAA009"];// 单位
|
drNew["DAA018"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA010"].GetString().Substring(0, 10);// 预计开工日期
|
drNew["DAA019"] = DateTime.Now.ToString("yyyy-MM-dd");//变更成下达时间dr["CAA011"].GetString().Substring(0, 10);// 预计完工日期
|
drNew["DAA020"] = "00:00";//dr["CAA010"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "08:00";// 预计开工时间
|
drNew["DAA021"] = "00:00";//dr["CAA011"].ToString().Length > 10 ? dr["CAA010"].ToString().Substring(11, 5) : "17:30";// 预计完工时间
|
drNew["DAA022"] = "新开指令";// 生产状态 新单
|
drNew["DAA027"] = dr["WeiPaiShu"]; //i == Convert.ToInt32(dr["ChaiFenGeShu"]) - 1 ? Convert.ToInt32(dr["WeiPaiShu"]) - avg * (Convert.ToInt32(dr["ChaiFenGeShu"]) - 1) : avg;// 工单数量
|
drNew["DAA028"] = 0;
|
drNew["DAA029"] = 0;
|
drNew["DAA030"] = 0;
|
drNew["DAA031"] = dr["CAA015"];// BOM版次
|
drNew["DAA032"] = dr["CAA014"];// 工作中心
|
drNew["DAA034"] = "";//指令物料超发类型
|
drNew["DAA035"] = "";//指令组
|
drNew["DAA036"] = dr["WL008"];//图号
|
drNew["DAA037"] = 0;//备料齐套生产
|
drNew["DAA038"] = dr["CAA001"];// 计划批次
|
drNew["DAA039"] = dr["CAA017"];// 客户名称
|
drNew["DAA040"] = dr["CAA021"];// 备注
|
drNew["DAA041"] = dr["总装产品编码"];// 目标指令编码
|
drNew["DAA042"] = "";// 生产线别
|
drNew["DAA043"] = dr["CAA002"];// 生产批次编码
|
drNew["DAA044"] = "";// RoHS区分
|
drNew["DAA045"] = "1";//dr["CAA045"]; 返工标记(1-量产2试做,3-有任务单返工;4-无任务单返工
|
drNew["DAA046"] = Loginer.CurrentUser.Account;// 审核者
|
drNew["DAA047"] = "N";// 程序校验
|
drNew["DAA048"] = 0;//Convert.ToDecimal(dr["FAuxInHighLimitQty"]); 入库上限值
|
drNew["DAA049"] = "3";// 板面标识
|
drNew["DAA050"] = 0; //不良品数
|
drNew["DAA051"] = 0; //备用ObjectToDecimal(dr["FStdWorkHour"]).ToString();
|
drNew["DAA052"] = 0;//产线人员
|
drNew["DAA053"] = 0;//是否退料
|
drNew["DAA054"] = 0;//发料仓库
|
drNew["DAA055"] = 0;//生产优先级
|
drNew["DAA056"] = 0;//下一个指令编码
|
drNew["DAA057"] = dr["CAA001"]; //工单单号 udpObjectToDecimal(dr["FOldStdWorkHour"]).ToString();
|
drNew["DAA058"] = dr["CAA016"];// 客户订单
|
drNew["DAA059"] = dr["CAA018"];// 销售订单号
|
drNew["DAA067"] = "";
|
drNew["DAA068"] = "";
|
drNew["DAA069"] = "";
|
drNew["DAA071"] = dr["类型"];
|
drNew["DAA073"] = "否";// 是否急料
|
if (tbWOMCAA.Rows.Count<1)
|
{
|
drNew["DAA066"] = "";
|
}
|
else
|
{
|
drNew["DAA066"] = tbWOMCAA.Rows[0]["CAA006"].ToString();
|
}
|
drNew["DAA074"] = dr["总装产品编码"];
|
drNew["PID"] = dr["ERPID"];//
|
tbWOMDAA.Rows.Add(drNew);
|
#endregion
|
}
|
}
|
|
|
|
this.gridControl2.DataSource = tbWOMDAA;
|
IsSplit = true;
|
|
}
|
|
repositoryItemSearchLookUpEdit1.ValueMember = "指令单号";
|
repositoryItemSearchLookUpEdit1.DisplayMember = "指令单号";
|
repositoryItemSearchLookUpEdit1.ShowClearButton = false;
|
repositoryItemSearchLookUpEdit1.DataSource = tbWOMDAAA;
|
//默认筛选框
|
this.repositoryItemSearchLookUpEdit1.View.OptionsView.ShowAutoFilterRow = true;
|
|
this.repositoryItemSearchLookUpEdit1.View.BestFitColumns();*/
|
#endregion
|
string sqlc = string.Format(@"select * from yhj_womdaa where 1=2");
|
|
tbWOMDAA = _BLLInstance.GETDAT(sqlc);
|
|
foreach (DataRow row in selRow)
|
{
|
string workorder = row["任务单号"].ToString();
|
|
// 生成新的工单号
|
int count = workorderCount[workorder];
|
|
DataRow drNew = tbWOMDAA.NewRow();
|
drNew["pc_user"] = Loginer.CurrentUser.Account;// 创建者
|
drNew["pc_time"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm");// 创建时间
|
drNew["daa001"] = workorder+"-"+ count;
|
drNew["item_id"] = row["物料id"].ToString();
|
drNew["daa014"] = row["投料单号"].ToString();
|
drNew["sccj"] = row["车间"].ToString();
|
|
tbWOMDAA.Rows.Add(drNew);
|
|
}
|
this.gridControl2.DataSource = tbWOMDAA;
|
}
|
|
private string GetMaxBillNo(string erp_wo)
|
{
|
string sql = string.Format(@"SELECT ISNULL(max(convert(int,substring(DAA001,charindex('-',DAA001)+1,len(DAA001)-charindex('-',DAA001)))),0) A FROM WOMDAA
|
WHERE DAA043='{0}' ", erp_wo);
|
DataTable Bno = _BLLInstance.GETDAT(sql);
|
return Bno.Rows[0]["A"].ToString();
|
}
|
|
//查询
|
private void DoSeleteData(IButtonInfo sender)
|
{
|
|
|
if (string.IsNullOrEmpty(searchLookUpEdit1.Text))
|
{
|
MessageBox.Show("请选择车间");
|
return;
|
}
|
frmWaitingEx.ShowMe(this);
|
|
string sql = string.Format(@"select 'N' SelL,c.caa001 任务单号,c.item_id 物料id,c.gd_num 任务数量,isnull(c.YP_num,0)已排数量,c.yj_kgtime 预计开工时间,c.yj_wgtime 预计完工时间,c.ppbom 投料单号,c.cj 车间,b.item_name 物料编号
|
,b.item_name 物料名称,b.item_no 物料编码
|
|
from yhj_womcaa c left join yhj_wlbom b on cast(c.item_id as float)=cast(b.item_id as float)
|
|
where c.gd_num<>isnull(c.YP_num,0) and cj='{0}'", searchLookUpEdit1.Text);
|
tb = _BLLInstance.GETDAT(sql);
|
tb.Columns.Add("Sel", Type.GetType("System.Boolean"));
|
/* string sqlWOMDAA = string.Format(@"SELECT A.* FROM WOMDAA A WHERE 1=2 ");
|
tbWOMDAA = _BLLInstance.GETDAT(sqlWOMDAA);*/
|
|
/* string sqlWOMGCA = string.Format(@"SELECT A.* FROM WOMGCA A WHERE 1=2 ");
|
tbWOMGCA = _BLLInstance.GETDAT(sqlWOMGCA);*/
|
|
this.gridControl1.DataSource = tb;
|
|
//tbWOMDAAA.Clear();
|
|
|
/* string sq1 = string.Format(@"select XT001 线体名称,XT002 所属车间 FROM GS_XT WHERE XT002 = '{0}' ", searchLookUpEdit1.Text);
|
XT = _BLLInstance.GETDAT(sq1);
|
|
//tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1
|
this.repositoryItemGridLookUpEdit1.DataSource = XT;
|
this.repositoryItemGridLookUpEdit1.ValueMember = "线体名称";
|
this.repositoryItemGridLookUpEdit1.DisplayMember = "线体名称";//控件返回值
|
this.repositoryItemCheckEdit1.QueryCheckStateByValue += RepositoryItemCheckEdit1_QueryCheckStateByValue;
|
*/
|
frmWaitingEx.HideMe(this);
|
}
|
|
private void frmWOMPlanr_Load(object sender, EventArgs e)
|
{
|
InitButtons();
|
this.gridView2.OptionsView.ShowGroupPanel = false;
|
this.gridView3.OptionsView.ShowGroupPanel = false;
|
this.gridView1.OptionsView.ShowAutoFilterRow = true;
|
|
//frmGridCustomize.RegisterGrid(gridView1);//注册表格组件,自动添加样式管理、弹出菜单
|
|
//frmGridCustomize.RegisterGrid(gridView2);//注册表格组件,自动添加样式管理、弹出菜单
|
|
//DevStyle.SetDetailGridViewLayout(this.gridView1);//明细表表格样式设置
|
|
//DevStyle.SetDetailGridViewLayout(this.gridView2);//明细表表格样式设置
|
|
gridView2.CellValueChanged += GridView2_CellValueChanged;
|
|
this.gridControl1.DataSource = tb;
|
_BLLInstance = new bllyhj_womcaa();
|
|
|
/* string sq2 = string.Format(@"SELECT RY002 人员编号,RY003 人员 FROM GS_RY (NOLOCK)");
|
RY = _BLLInstance.GETDAT(sq2);*/
|
|
//tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1
|
/* this.repositoryItemGridLookUpEdit3.DataSource = RY;
|
this.repositoryItemGridLookUpEdit3.ValueMember = "人员";
|
this.repositoryItemGridLookUpEdit3.DisplayMember = "人员";//控件返回值
|
//默认筛选框
|
this.repositoryItemGridLookUpEdit3.View.OptionsView.ShowAutoFilterRow = true;
|
|
string sq3 = string.Format(@"SELECT GYA001 工艺路线,GYA002 生产车间 FROM GS_GYA (NOLOCK)");
|
GYLX = _BLLInstance.GETDAT(sq3);
|
|
//tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1
|
this.repositoryItemSearchLookUpEdit3.DataSource = GYLX;
|
this.repositoryItemSearchLookUpEdit3.ValueMember = "工艺路线";
|
this.repositoryItemSearchLookUpEdit3.DisplayMember = "工艺路线";//控件返回值
|
//默认筛选框
|
this.repositoryItemSearchLookUpEdit3.View.OptionsView.ShowAutoFilterRow = true;
|
|
|
string sqlstr = String.Format(@"SELECT DISTINCT A.DAA001 指令单号,A.DAA027 指令数量,(A.DAA027-SUM(ISNULL(C.DAA027,0))) 已排数量,A.DAA020 预计开工时间,A.DAA014 物料编码, A.DAA015 物料名称 ,A.DAA016 物料规格,A.DAA059 销售订单号 FROM WOMDAA A
|
LEFT JOIN WOMDAA C ON C.DAA010 = A.DAA001
|
WHERE 1=2
|
GROUP BY A.DAA001 ,A.DAA027 ,A.DAA020 ,A.DAA014 , A.DAA015 ,A.DAA016,A.DAA059");//WHERE ISNULL(DAA028,0)<DAA027
|
tbWOMDAAA = _BLLInstance.GETDAT(sqlstr);
|
tbWOMDAAA_B = _BLLInstance.GETDAT(sqlstr);*/
|
|
|
string sqlstr4 = "SELECT distinct cj 生产车间 FROM yhj_womcaa (NOLOCK) ";//WHERE ISNULL(DAA028,0)<DAA027
|
tbBM = _BLLInstance.GETDAT(sqlstr4);
|
searchLookUpEdit1.Properties.ValueMember = "生产车间";
|
searchLookUpEdit1.Properties.DisplayMember = "生产车间";
|
searchLookUpEdit1.Properties.ShowClearButton = false;
|
searchLookUpEdit1.Properties.DataSource = tbBM;
|
|
//默认筛选框
|
searchLookUpEdit1.Properties.View.OptionsView.ShowAutoFilterRow = true;
|
//默认自适应列宽
|
searchLookUpEdit1.Properties.View.OptionsView.ColumnAutoWidth = true;
|
|
|
|
|
//关闭自适应列宽
|
this.gridView1.BestFitColumns(true);
|
//this.gridView2.BestFitColumns(false);
|
}
|
|
private void RepositoryItemCheckEdit1_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
|
{
|
string val = "";
|
if (e.Value != null)
|
{
|
val = e.Value.ToString();
|
}
|
else
|
{
|
val = "False";//默认为不选
|
}
|
switch (val)
|
{
|
case "True":
|
case "Yes":
|
case "1":
|
e.CheckState = CheckState.Checked;
|
break;
|
case "False":
|
case "No":
|
case "0":
|
e.CheckState = CheckState.Unchecked;
|
break;
|
default:
|
e.CheckState = CheckState.Checked;
|
break;
|
}
|
//e.Handled = true;
|
}
|
|
private void repositoryItemCheckEdit1_Click(object sender, EventArgs e)
|
{
|
if (tbyp.Rows.Count > 0)
|
{
|
tbyp.Clear();
|
}
|
/* string sq = string.Format(@"SELECT * FROM WOMDAA WHERE left(DAA001,8)='{0}'", gridView1.GetDataRow(gridView1.FocusedRowHandle)["任务单号"].ToString());
|
tbyp = _BLLInstance.GETDAT(sq);
|
gridControl3.DataSource = tbyp;*/
|
if (gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"].ToString() == "N")
|
{
|
gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"] = "Y";
|
}
|
else
|
{
|
gridView1.GetDataRow(gridView1.FocusedRowHandle)["SelL"] = "N";
|
}
|
|
|
}
|
|
|
private void gridView1_RowStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowStyleEventArgs e)
|
{
|
|
/* if (e.RowHandle >= 0)
|
{
|
// 获取类型字段的值
|
string type = gridView1.GetRowCellValue(e.RowHandle, "类型").ToString();
|
|
// 只有当类型是“计划内”时,我们才继续处理
|
if (type == "计划内")
|
{
|
e.Appearance.BackColor = Color.Gold;
|
//// 尝试获取后道预计开工时间字段的值
|
//string startDateString = gridView1.GetRowCellValue(e.RowHandle, "后道预计开工时间").ToString();
|
|
//// 转换为DateTime类型
|
//DateTime startDate;
|
//if (DateTime.TryParse(startDateString, out startDate))
|
//{
|
// // 获取当前日期
|
// DateTime currentDate = DateTime.Now.Date;
|
|
// // 判断后道预计开工时间是否在今天之前
|
// if (startDate < currentDate)
|
// {
|
// // 后道预计开工时间在今天之前
|
// e.Appearance.BackColor = Color.Gray;
|
// }
|
// else
|
// {
|
// // 后道预计开工时间在今天之后
|
// TimeSpan difference = startDate - currentDate;
|
|
// // 根据日期差异设置背景色
|
// if (difference.TotalDays <= 1)
|
// {
|
// // 未来一天内
|
// e.Appearance.BackColor = Color.Red;
|
// }
|
// else if (difference.TotalDays <= 3)
|
// {
|
// // 未来三天内
|
// e.Appearance.BackColor = Color.Gold;
|
// }
|
// else if (difference.TotalDays <= 7)
|
// {
|
// // 未来七天内
|
// e.Appearance.BackColor = Color.LightGreen;
|
// }
|
// else
|
// {
|
// // 超过未来七天
|
// e.Appearance.BackColor = Color.LightBlue;
|
// }
|
// }
|
//}
|
//else
|
//{
|
// // 如果startDateString不是有效的日期时间,可以选择设置一个默认颜色或忽略
|
// // e.Appearance.BackColor = Color.White; // 或者其他颜色
|
//}
|
}
|
}*/
|
}
|
|
|
|
// 更新模据信息
|
private void repositoryItemSearchLookUpEdit2_EditValueChanged(object sender, EventArgs e)
|
{
|
|
|
//获取选择的方案
|
int a = repositoryItemSearchLookUpEdit2.GetIndexByKeyValue(gridView2.EditingValue.ToString());
|
|
//遍历,所选工单的方案一致
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
this.gridView2.SetRowCellValue(gridView2.FocusedRowHandle, gridView2.Columns["DAA068"], tbGCBOM.Rows[a]["模具类型"].ToString());
|
|
this.gridView2.SetRowCellValue(gridView2.FocusedRowHandle, gridView2.Columns["DAA067"], tbGCBOM.Rows[a]["生产方案"].ToString());
|
|
dr["DAA068"] = tbGCBOM.Rows[a]["模具类型"].ToString();
|
dr["DAA067"] = tbGCBOM.Rows[a]["生产方案"].ToString();
|
}
|
|
|
string sq = string.Format(@"select MG005 设备名称,MG001 设备编号 FROM BOMMG WHERE MG002 = '{0}'", tbGCBOM.Rows[a]["模具类型"].ToString());
|
|
JT = _BLLInstance.GETDAT(sq);
|
|
////tbWOMDAA = CommonData.GetEmptyTable(Globals.DEF_US_DBName, "WOMDAA"); repositoryItemGridLookUpEdit1
|
this.repositoryItemGridLookUpEdit2.DataSource = JT;
|
this.repositoryItemGridLookUpEdit2.ValueMember = "设备名称";
|
this.repositoryItemGridLookUpEdit2.DisplayMember = "设备名称";//控件返回值
|
|
//this.repositoryItemCheckEdit1.QueryCheckStateByValue += RepositoryItemCheckEdit1_QueryCheckStateByValue;
|
}
|
|
//private void repositoryItemGridLookUpEdit2_EditValueChanged(object sender, EventArgs e)
|
//{
|
// int a = repositoryItemGridLookUpEdit2.GetIndexByKeyValue(gridView2.EditingValue.ToString());
|
|
|
|
// foreach (DataRow dr in tbWOMDAA.Rows)
|
// {
|
|
// dr["DAA069"] = gridView2.EditingValue.ToString();
|
// if(gridView2.EditingValue.ToString().Contains("1"))
|
// {
|
// dr["DAA042"] = "高冲1号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("2"))
|
// {
|
// dr["DAA042"] = "高冲2号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("3"))
|
// {
|
// dr["DAA042"] = "高冲3号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("4"))
|
// {
|
// dr["DAA042"] = "高冲4号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("5"))
|
// {
|
// dr["DAA042"] = "高冲5号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("6"))
|
// {
|
// dr["DAA042"] = "高冲6号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("7"))
|
// {
|
// dr["DAA042"] = "高冲7号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("8"))
|
// {
|
// dr["DAA042"] = "高冲8号机";
|
// }
|
// if (gridView2.EditingValue.ToString().Contains("9"))
|
// {
|
// dr["DAA042"] = "高冲9号机";
|
// }
|
|
// }
|
//}
|
|
|
|
// 添加CellValueChanged事件的处理方法
|
|
// CellValueChanged事件处理方法
|
private void GridView2_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
{
|
// 获取当前改变的单元格所在的行和列信息
|
int rowHandle = e.RowHandle;
|
int columnIndex = e.Column.VisibleIndex;
|
|
|
// 遍历所有行
|
if (e.Column.ToString() == "开工日期")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["DAA018"] = gridView2.EditingValue.ToString();
|
dr["DAA019"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
if (e.Column.ToString() == "完工日期")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["DAA019"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
if (e.Column.ToString() == "人员")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["DAA040"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
|
if (e.Column.ToString() == "线别")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["DAA042"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
if (e.Column.ToString() == "工艺路线")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["GYLX"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
if (e.Column.ToString() == "是否急料")
|
{
|
foreach (DataRow dr in tbWOMDAA.Rows)
|
{
|
|
dr["DAA073"] = gridView2.EditingValue.ToString();
|
}
|
return;
|
}
|
|
return;
|
|
}
|
|
|
}
|
}
|