|
|
@@ -63,10 +63,10 @@ namespace UAS_MES.Make
|
|
|
|
|
|
//工单号放大镜配置
|
|
|
ma_code.TableName = "make left join product on ma_prodcode=pr_code";
|
|
|
- ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,pr_detail # 产品名称";
|
|
|
+ ma_code.SelectField = "ma_code # 工单号,ma_prodcode # 产品编号,ma_qty # 工单数量,ma_craftcode # 途程编号,pr_detail # 产品名称";
|
|
|
ma_code.FormName = Name;
|
|
|
ma_code.DBTitle = "工单查询";
|
|
|
- ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_detail" };
|
|
|
+ ma_code.SetValueField = new string[] { "ma_code", "ma_prodcode", "ma_qty", "pr_detail", "ma_craftcode" };
|
|
|
ma_code.Condition = "ma_statuscode='STARTED'";
|
|
|
ma_code.DbChange += Ma_code_DBChange;
|
|
|
dh = new DataHelper();
|
|
|
@@ -76,7 +76,11 @@ namespace UAS_MES.Make
|
|
|
{
|
|
|
DBFind = ma_code.ReturnData;
|
|
|
BaseUtil.SetFormValue(this.Controls, DBFind);
|
|
|
- dh.ExecuteSql("select sp_ifforsn from make left join stepproduct on ma_prodcode=sp_soncode", "select");
|
|
|
+ string ifforsn = dh.getFieldDataByCondition("make left join stepbom on ma_prodcode=sb_prodcode left join stepproduct on sb_id=sp_sbid", "nvl(sp_ifforsn,0) sp_ifforsn", "ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' order by sp_detno").ToString();
|
|
|
+ if (ifforsn != "" && ifforsn != "0")
|
|
|
+ iflastsn.Checked = true;
|
|
|
+ else
|
|
|
+ iflastsn.Checked = false;
|
|
|
}
|
|
|
|
|
|
private void 上料采集_SizeChanged(object sender, EventArgs e)
|
|
|
@@ -109,75 +113,68 @@ namespace UAS_MES.Make
|
|
|
//如果录入框和工单号均有输入
|
|
|
if (code.Text != "" && ma_code.Text != "" && sn_code.Text == "")
|
|
|
{
|
|
|
- if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
|
|
|
+ //根据序列号查出ma_code,ma_prodcode,stepcode
|
|
|
+ dt = (DataTable)dh.ExecuteSql("select ms_id,ms_makecode,ms_craftcode,ms_status,ms_nextstepcode,ms_prodcode,ms_code from makeserial where ms_sncode='" + code.Text + "' and ms_makecode<>'" + ma_code.Text + "' order by ms_id desc", "select");
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ ms_id = dt.Rows[0]["ms_id"].ToString();
|
|
|
+ make_code = dt.Rows[0]["ms_makecode"].ToString();
|
|
|
+ ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
|
|
|
+ make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
|
|
|
+ nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
|
|
|
+ ms_status = dt.Rows[0]["ms_status"].ToString();
|
|
|
+ }
|
|
|
+ //勾选了前一工单
|
|
|
+ if (iflastsn.Checked)
|
|
|
{
|
|
|
- //根据序列号查出ma_code,ma_prodcode,stepcode
|
|
|
- dt = (DataTable)dh.ExecuteSql("select ms_id,ms_makecode,ms_craftcode,ms_status,ms_nextstepcode,ms_prodcode,ms_code from makeserial where ms_sncode='" + code.Text + "' and ms_makecode<>'" + ma_code.Text + "' order by ms_id desc", "select");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
- {
|
|
|
- ms_id = dt.Rows[0]["ms_id"].ToString();
|
|
|
- make_code = dt.Rows[0]["ms_makecode"].ToString();
|
|
|
- ms_craftcode = dt.Rows[0]["ms_craftcode"].ToString();
|
|
|
- make_prodcode = dt.Rows[0]["ms_prodcode"].ToString();
|
|
|
- nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
|
|
|
- ms_status = dt.Rows[0]["ms_status"].ToString();
|
|
|
- }
|
|
|
- //勾选了前一工单
|
|
|
- if (iflastsn.Checked)
|
|
|
{
|
|
|
//判断序列号的前一工单是否已经完工
|
|
|
if (dt.Rows[0]["ms_makecode"].ToString() != ma_code.Text && dt.Rows[0]["ms_status"].ToString() == "2")
|
|
|
{
|
|
|
//验证当前工单是否存在序列号
|
|
|
- if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, sn_code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
|
|
|
+ if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
|
|
|
{
|
|
|
- dt = (DataTable)dh.ExecuteSql("select sp_id from stepproduct where sp_mothercode='" + make_prodcode + "' and sp_stepcode='" + nextstepcode + "' and sp_soncode='" + make_prodcode + "'", "select");
|
|
|
- string sp_id = dt.Rows[0]["sp_id"].ToString();
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select sp_id from make inner join stepbom on ma_prodcode=sb_prodcode and ma_bomversion=sb_bomversion left ");
|
|
|
+ sql.Append("join stepproduct on sp_sbid=sb_id where ma_code='" + ma_code.Text + "' and sp_craftcode='" + ma_craftcode.Text + "' ");
|
|
|
+ sql.Append("and sp_stepcode='" + User.CurrentStepCode + "' and nvl(sp_ifforsn,0)<>0");
|
|
|
+ dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
- if (!dh.CheckExist("Craftmaterial", "cm_makecode='" + ma_code.Text + "' and cm_sncode='" + sn_code.Text + "'"))
|
|
|
+ string sp_id = dt.Rows[0]["sp_id"].ToString();
|
|
|
+ if (!dh.CheckExist("Craftmaterial", "cm_makecode='" + ma_code.Text + "' and cm_sncode='" + code.Text + "'"))
|
|
|
{
|
|
|
sql.Clear();
|
|
|
- sql.Append("insert into Craftmaterial (cm_id, cm_makecode,cm_maid,cm_maprodcode,");
|
|
|
- sql.Append("cm_soncode,cm_mscode,cm_sncode,cm_stepcode,cm_stepname,cm_craftcode,cm_craftname,");
|
|
|
- sql.Append("cm_barcode,cm_inqty,cm_indate,cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn) ");
|
|
|
- sql.Append("select Craftmaterial_seq.nextval, ma_code, ma_id, ma_prodcode, sp_soncode,");
|
|
|
- sql.Append("'" + code.Text + "','" + code.Text + "',mcd_stepcode,mcd_stepname,ma_craftcode");
|
|
|
- sql.Append(",ma_craftname,'" + code.Text + "',1,sysdate,'" + User.UserName + "',ma_linecode,ma_wccode,");
|
|
|
- sql.Append("'" + User.UserSourceCode + "','" + sp_id + "',0,1,ms_firstsn from make left join makecraftdetail on mcd_macode=ma_code");
|
|
|
- sql.Append(" left join stepproduct on sp_stepcode=mcd_stepcode where ma_code = '" + make_code + "'and ");
|
|
|
- sql.Append("sp_id = " + sp_id + " and mcd_stepcode='" + nextstepcode + "'");
|
|
|
+ sql.Append("insert into Craftmaterial (cm_id, cm_makecode,cm_maid,cm_maprodcode,cm_soncode,cm_mscode,");
|
|
|
+ sql.Append("cm_sncode,cm_stepcode,cm_stepname,cm_craftcode,cm_craftname,cm_barcode,cm_inqty,cm_indate");
|
|
|
+ sql.Append(",cm_inman,cm_linecode,cm_wccode,cm_sourcecode,cm_spid,cm_status,cm_materialtype,cm_firstsn)");
|
|
|
+ sql.Append("select Craftmaterial_seq.nextval, ma_code, ma_id, ma_prodcode, sp_soncode,'" + code.Text + "'");
|
|
|
+ sql.Append(",'" + code.Text + "',mcd_stepcode,mcd_stepname,ma_craftcode,ma_craftname,'" + code.Text + "'");
|
|
|
+ sql.Append(",1,sysdate,'" + User.UserName + "',ma_linecode,ma_wccode,'" + User.UserSourceCode + "',");
|
|
|
+ sql.Append("'" + sp_id + "',0,1,ms_firstsn from make left join makeserial on ms_makecode=ma_code left ");
|
|
|
+ sql.Append("join makecraftdetail on mcd_macode=ma_code left join stepproduct on sp_stepcode=mcd_stepcode ");
|
|
|
+ sql.Append("where ma_code = '" + ma_code.Text + "'and sp_id = " + sp_id + " and mcd_stepcode=");
|
|
|
+ sql.Append("'" + User.CurrentStepCode + "' and ms_sncode='" + code.Text + "'");
|
|
|
dh.ExecuteSql(sql.GetString(), "insert");
|
|
|
- if (make_code == ma_code.Text && nextstepcode == "")
|
|
|
- {
|
|
|
- sn_code.Text = code.Text;
|
|
|
- sql.Clear();
|
|
|
- sql.Append("select ma_code,ma_prodcode,pr_detail,ma_qty from makeserial left ");
|
|
|
- sql.Append("join product on ms_prodcode=pr_code left join make on ms_makecode=ma_code ");
|
|
|
- sql.Append("left join makecraftdetail on mcd_macode=ms_makecode where ms_sncode='" + sn_code.Text + "'");
|
|
|
- dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
- BaseUtil.SetFormValue(this.Controls, dt);
|
|
|
- //将录入框的值给序列号
|
|
|
- OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);
|
|
|
- code.Text = "";
|
|
|
- }
|
|
|
- else OperateResult.AppendText(">>序列号无前段工单\n", Color.Red);
|
|
|
+ OperateResult.AppendText(">>序列号" + code.Text + "上料成功\n", Color.Green, code);
|
|
|
}
|
|
|
- else OperateResult.AppendText(">>序列号无前段工单\n", Color.Red);
|
|
|
+ else OperateResult.AppendText(">>序列号" + code.Text + "已经上料\n", Color.Red, code);
|
|
|
}
|
|
|
+ else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
|
|
|
}
|
|
|
+ else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
- else if (make_code == ma_code.Text && nextstepcode == User.CurrentStepCode)
|
|
|
- {
|
|
|
- sn_code.Text = code.Text;
|
|
|
- OperateResult.AppendText(">>获取序列号" + code.Text + "成功\n", Color.Green);
|
|
|
- code.Text = "";
|
|
|
- }
|
|
|
+ else OperateResult.AppendText(">>序列号" + code.Text + "已被工单"+ dt.Rows[0]["ms_makecode"].ToString() + "绑定,尚未完工\n", Color.Red, code);
|
|
|
}
|
|
|
+ else OperateResult.AppendText(">>序列号" + code.Text + "不存在于其他工单\n", Color.Red, code);
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
//未勾选上一工序
|
|
|
- else
|
|
|
+ if (LogicHandler.CheckStepSNAndMacode(ma_code.Text, User.UserSourceCode, code.Text, User.UserCode, out oMakeCode, out oMsid, out ErrorMessage))
|
|
|
{
|
|
|
- dt = (DataTable)dh.ExecuteSql("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_sncode='" + code.Text + "' and ms_makecode='" + ma_code.Text + "'", "select");
|
|
|
+ dt = (DataTable)dh.ExecuteSql("select ms_status,ms_stepcode,ms_nextstepcode from makeserial where ms_sncode='" + code.Text + "' and ms_makecode='" + ma_code.Text + "' order by ms_id desc", "select");
|
|
|
nextstepcode = dt.Rows[0]["ms_nextstepcode"].ToString();
|
|
|
ms_status = dt.Rows[0]["ms_status"].ToString();
|
|
|
//如果尚未开始工序或者已经在产线并且当前工序和人员负责工序一致
|
|
|
@@ -196,8 +193,8 @@ namespace UAS_MES.Make
|
|
|
}
|
|
|
else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
+ else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
- else OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red, code);
|
|
|
}
|
|
|
//输入框有值但未选择工单号
|
|
|
else if (code.Text != "" && ma_code.Text == "" && sn_code.Text == "")
|
|
|
@@ -352,7 +349,7 @@ namespace UAS_MES.Make
|
|
|
sql.Clear();
|
|
|
sql.Append("select ma_prodcode,ma_bomversion,ma_qty,ma_code,pr_detail,ms_status,ms_id,ms_craftcode,ms_nextstepcode");
|
|
|
sql.Append(",ms_prodcode,ms_makecode,ms_code,ms_stepname from makeserial left join make on ma_code=ms_makecode ");
|
|
|
- sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "'");
|
|
|
+ sql.Append("left join product on ms_prodcode=pr_code where ms_sncode='" + code.Text + "' order by ms_id desc");
|
|
|
dt = (DataTable)dh.ExecuteSql(sql.GetString(), "select");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
@@ -455,7 +452,7 @@ namespace UAS_MES.Make
|
|
|
sn_code.Clear();
|
|
|
CollectData.Clear();
|
|
|
CollectDataSonCode.Clear();
|
|
|
- dt1.Clear();
|
|
|
+ BaseUtil.CleanDataTableData(dt1);
|
|
|
RemainIndex = 0;
|
|
|
}
|
|
|
|