|
|
@@ -16,6 +16,11 @@ namespace UAS_MES.OQC
|
|
|
DataHelper dh;
|
|
|
LogStringBuilder sql = new LogStringBuilder();
|
|
|
DataTable dt;
|
|
|
+ string ErrorMessage = "";
|
|
|
+ /// <summary>
|
|
|
+ /// 是否通过资源验证
|
|
|
+ /// </summary>
|
|
|
+ bool PassCheckStep = false;
|
|
|
public OQC_BatchResultJudge()
|
|
|
{
|
|
|
InitializeComponent();
|
|
|
@@ -30,70 +35,84 @@ namespace UAS_MES.OQC
|
|
|
|
|
|
private void GetBatch_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- string ErrorMessage = "";
|
|
|
- DataTable[] dt = LogicHandler.GetOQCBatch(ms_sncode.Text, obd_outboxcode.Text, ob_checkno.Text, "OQCResultDetermine", out ErrorMessage);
|
|
|
- if (ErrorMessage == "")
|
|
|
- {
|
|
|
- BaseUtil.SetFormValue(Controls, dt[0]);
|
|
|
- }
|
|
|
- else
|
|
|
+ if (CheckStep())
|
|
|
{
|
|
|
- BaseUtil.CleanForm(this);
|
|
|
- OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
|
|
|
- }
|
|
|
- switch (ob_result.Text)
|
|
|
- {
|
|
|
- case "OK":
|
|
|
- BatchPass.Enabled = false;
|
|
|
- BatchRejection.Enabled = false;
|
|
|
- ForcePass.Enabled = false;
|
|
|
- ForceRejection.Enabled = false;
|
|
|
- WithdrawPass.Enabled = true;
|
|
|
- WithdrawRejection.Enabled = false;
|
|
|
- break;
|
|
|
- case "FOK":
|
|
|
- BatchPass.Enabled = false;
|
|
|
- BatchRejection.Enabled = false;
|
|
|
- ForcePass.Enabled = false;
|
|
|
- ForceRejection.Enabled = false;
|
|
|
- WithdrawPass.Enabled = true;
|
|
|
- WithdrawRejection.Enabled = false;
|
|
|
- break;
|
|
|
- case "NG":
|
|
|
- BatchPass.Enabled = false;
|
|
|
- BatchRejection.Enabled = false;
|
|
|
- ForcePass.Enabled = false;
|
|
|
- ForceRejection.Enabled = false;
|
|
|
- WithdrawPass.Enabled = false;
|
|
|
- WithdrawRejection.Enabled = true;
|
|
|
- break;
|
|
|
- case "FNG":
|
|
|
+ PassCheckStep = true;
|
|
|
+ string ErrorMessage = "";
|
|
|
+ DataTable[] dt = LogicHandler.GetOQCBatch(ms_sncode.Text, obd_outboxcode.Text, ob_checkno.Text, "OQCResultDetermine", out ErrorMessage);
|
|
|
+ if (ErrorMessage == "")
|
|
|
+ {
|
|
|
+ BaseUtil.SetFormValue(Controls, dt[0]);
|
|
|
+ switch (ob_result.Text)
|
|
|
+ {
|
|
|
+ case "OK":
|
|
|
+ BatchPass.Enabled = false;
|
|
|
+ BatchRejection.Enabled = false;
|
|
|
+ ForcePass.Enabled = false;
|
|
|
+ ForceRejection.Enabled = false;
|
|
|
+ WithdrawPass.Enabled = true;
|
|
|
+ WithdrawRejection.Enabled = false;
|
|
|
+ break;
|
|
|
+ case "FOK":
|
|
|
+ BatchPass.Enabled = false;
|
|
|
+ BatchRejection.Enabled = false;
|
|
|
+ ForcePass.Enabled = false;
|
|
|
+ ForceRejection.Enabled = false;
|
|
|
+ WithdrawPass.Enabled = true;
|
|
|
+ WithdrawRejection.Enabled = false;
|
|
|
+ break;
|
|
|
+ case "NG":
|
|
|
+ BatchPass.Enabled = false;
|
|
|
+ BatchRejection.Enabled = false;
|
|
|
+ ForcePass.Enabled = false;
|
|
|
+ ForceRejection.Enabled = false;
|
|
|
+ WithdrawPass.Enabled = false;
|
|
|
+ WithdrawRejection.Enabled = true;
|
|
|
+ break;
|
|
|
+ case "FNG":
|
|
|
+ BatchPass.Enabled = false;
|
|
|
+ BatchRejection.Enabled = false;
|
|
|
+ ForcePass.Enabled = false;
|
|
|
+ ForceRejection.Enabled = false;
|
|
|
+ WithdrawPass.Enabled = false;
|
|
|
+ WithdrawRejection.Enabled = true;
|
|
|
+ break;
|
|
|
+ case "":
|
|
|
+ if (ob_checkno.Text != "")
|
|
|
+ {
|
|
|
+ BatchPass.Enabled = true;
|
|
|
+ BatchRejection.Enabled = true;
|
|
|
+ ForcePass.Enabled = true;
|
|
|
+ ForceRejection.Enabled = true;
|
|
|
+ WithdrawPass.Enabled = true;
|
|
|
+ WithdrawRejection.Enabled = true;
|
|
|
+ }
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ BaseUtil.CleanForm(this);
|
|
|
BatchPass.Enabled = false;
|
|
|
BatchRejection.Enabled = false;
|
|
|
ForcePass.Enabled = false;
|
|
|
ForceRejection.Enabled = false;
|
|
|
WithdrawPass.Enabled = false;
|
|
|
- WithdrawRejection.Enabled = true;
|
|
|
- break;
|
|
|
- case "":
|
|
|
- if (ob_checkno.Text != "")
|
|
|
- {
|
|
|
- BatchPass.Enabled = true;
|
|
|
- BatchRejection.Enabled = true;
|
|
|
- ForcePass.Enabled = true;
|
|
|
- ForceRejection.Enabled = true;
|
|
|
- WithdrawPass.Enabled = true;
|
|
|
- WithdrawRejection.Enabled = true;
|
|
|
- }
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ WithdrawRejection.Enabled = false;
|
|
|
+ OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ PassCheckStep = false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void BatchPass_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- if (CheckBefore())
|
|
|
+ if (CheckBefore() && PassCheckStep)
|
|
|
{
|
|
|
if (int.Parse(ob_ngqty.Text == "" ? "0" : ob_ngqty.Text) <= int.Parse(ob_maxngacceptqty.Text == "" ? ob_maxngacceptqty.Text : ob_maxngacceptqty.Text))
|
|
|
{
|
|
|
@@ -109,7 +128,7 @@ namespace UAS_MES.OQC
|
|
|
|
|
|
private void BatchRejection_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- if (CheckBefore())
|
|
|
+ if (CheckBefore() && PassCheckStep)
|
|
|
{
|
|
|
sql.Clear();
|
|
|
sql.Append("select max(nvl(ad_maxngacceptqty,0)) maxngacceptqty from QUA_Aql,QUA_AqlDetail where al_id=ad_alid ");
|
|
|
@@ -146,72 +165,85 @@ namespace UAS_MES.OQC
|
|
|
|
|
|
private void ForcePass_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- dh.ExecuteSql("update OQCBatch set ob_status='OK' ,ob_result='FOK' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
- DoLog("强制通过", "强制通过成功", "通过");
|
|
|
- GetBatch.PerformClick();
|
|
|
- OperateResult.AppendText(">>强制通过批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
+ if (PassCheckStep)
|
|
|
+ {
|
|
|
+ dh.ExecuteSql("update OQCBatch set ob_status='OK' ,ob_result='FOK' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
+ DoLog("强制通过", "强制通过成功", "通过");
|
|
|
+ GetBatch.PerformClick();
|
|
|
+ OperateResult.AppendText(">>强制通过批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void ForceRejection_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- dh.ExecuteSql("update OQCBatch set ob_status='NG' ,ob_result='FNG' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
- DoLog("强制判退通过", "强制判退通过成功", "判退");
|
|
|
- GetBatch.PerformClick();
|
|
|
- OperateResult.AppendText(">>强制撤销批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
+ if (PassCheckStep)
|
|
|
+ {
|
|
|
+ dh.ExecuteSql("update OQCBatch set ob_status='NG' ,ob_result='FNG' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
+ DoLog("强制判退通过", "强制判退通过成功", "判退");
|
|
|
+ GetBatch.PerformClick();
|
|
|
+ OperateResult.AppendText(">>强制撤销批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void WithdrawPass_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- if (ob_result.Text == "OK" || ob_result.Text == "FOK")
|
|
|
- {
|
|
|
- dh.ExecuteSql("update OQCBatch set ob_status='CHECKING' ,ob_result='' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
- ob_result.Text = "";
|
|
|
- DoLog("撤销通过", "撤销通过成功", "撤销");
|
|
|
- OperateResult.AppendText(">>撤销通过批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
- GetBatch.PerformClick();
|
|
|
- }
|
|
|
- else
|
|
|
+ if (PassCheckStep)
|
|
|
{
|
|
|
- OperateResult.AppendText(">>该抽检批次未通过,无需撤销通过\n", Color.Red);
|
|
|
+ if (ob_result.Text == "OK" || ob_result.Text == "FOK")
|
|
|
+ {
|
|
|
+ dh.ExecuteSql("update OQCBatch set ob_status='CHECKING' ,ob_result='' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
+ ob_result.Text = "";
|
|
|
+ DoLog("撤销通过", "撤销通过成功", "撤销");
|
|
|
+ OperateResult.AppendText(">>撤销通过批" + ob_checkno.Text + "成功\n", Color.Green);
|
|
|
+ GetBatch.PerformClick();
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ OperateResult.AppendText(">>该抽检批次未通过,无需撤销通过\n", Color.Red);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|
|
|
private void WithdrawRejection_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
- if (ob_result.Text == "NG" || ob_result.Text == "FNG")
|
|
|
+ if (PassCheckStep)
|
|
|
{
|
|
|
- dt = (DataTable)dh.ExecuteSql("select re_statuscode from rework where re_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
+ if (ob_result.Text == "NG" || ob_result.Text == "FNG")
|
|
|
{
|
|
|
- if (dt.Rows[0]["re_statuscode"].ToString() == "AUDITED")
|
|
|
- {
|
|
|
- OperateResult.AppendText(">>该批次存在已审核的返修工单,不允许撤销\n", Color.Red);
|
|
|
- return;
|
|
|
- }
|
|
|
- else
|
|
|
+ dt = (DataTable)dh.ExecuteSql("select re_statuscode from rework where re_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
- string logout_confirm = MessageBox.Show("已存在返修工单,撤销会删除该工单,是否继续", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
|
|
|
- if (logout_confirm == "Yes")
|
|
|
+ if (dt.Rows[0]["re_statuscode"].ToString() == "AUDITED")
|
|
|
{
|
|
|
- dh.ExecuteSql("delete from reworkdetail where rd_checkno='" + ob_checkno.Text + "' ", "delete");
|
|
|
- dh.ExecuteSql("delete from rework where re_checkno='" + ob_checkno.Text + "' ", "delete");
|
|
|
+ OperateResult.AppendText(">>该批次存在已审核的返修工单,不允许撤销\n", Color.Red);
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ string logout_confirm = MessageBox.Show("已存在返修工单,撤销会删除该工单,是否继续", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question).ToString();
|
|
|
+ if (logout_confirm == "Yes")
|
|
|
+ {
|
|
|
+ dh.ExecuteSql("delete from reworkdetail where rd_checkno='" + ob_checkno.Text + "' ", "delete");
|
|
|
+ dh.ExecuteSql("delete from rework where re_checkno='" + ob_checkno.Text + "' ", "delete");
|
|
|
+ }
|
|
|
+ else return;
|
|
|
}
|
|
|
- else return;
|
|
|
}
|
|
|
+ dh.ExecuteSql("update OQCBatch set ob_status='CHECKING' ,ob_result='' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
+ ob_result.Text = "";
|
|
|
+ DoLog("撤销判退", "撤销判退成功", "撤销");
|
|
|
+ OperateResult.AppendText(">>撤销判退成功\n", Color.Green);
|
|
|
+ GetBatch.PerformClick();
|
|
|
}
|
|
|
- dh.ExecuteSql("update OQCBatch set ob_status='CHECKING' ,ob_result='' where ob_checkno='" + ob_checkno.Text + "'", "select");
|
|
|
- ob_result.Text = "";
|
|
|
- DoLog("撤销判退", "撤销判退成功", "撤销");
|
|
|
- OperateResult.AppendText(">>撤销判退成功\n", Color.Green);
|
|
|
- GetBatch.PerformClick();
|
|
|
+ else OperateResult.AppendText(">>该抽检批次未判退,无需撤销判退\n", Color.Red);
|
|
|
}
|
|
|
- else OperateResult.AppendText(">>该抽检批次未判退,无需撤销判退\n", Color.Red);
|
|
|
}
|
|
|
|
|
|
private void Clean_Click(object sender, EventArgs e)
|
|
|
{
|
|
|
OperateResult.Clear();
|
|
|
}
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 操作之前通用的验证逻辑
|
|
|
/// </summary>
|
|
|
@@ -261,11 +293,22 @@ namespace UAS_MES.OQC
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ else OperateResult.AppendText(">>状态未在检验中的批次不允许进行判断\n", Color.Red);
|
|
|
+
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool CheckStep()
|
|
|
+ {
|
|
|
+ if (LogicHandler.CheckStepAttribute(Tag.ToString(), User.UserSourceCode, out ErrorMessage))
|
|
|
+ {
|
|
|
+ return true;
|
|
|
+ }
|
|
|
else
|
|
|
{
|
|
|
- OperateResult.AppendText(">>状态未在检验中的批次不允许进行判断\n", Color.Red);
|
|
|
+ OperateResult.AppendText(">>" + ErrorMessage + "\n", Color.Red);
|
|
|
+ return false;
|
|
|
}
|
|
|
- return false;
|
|
|
}
|
|
|
|
|
|
//记录操作日志
|
|
|
@@ -296,15 +339,15 @@ namespace UAS_MES.OQC
|
|
|
else if (Type == "通过")
|
|
|
{
|
|
|
//更新下一工序
|
|
|
- string ErrorMessage = "";
|
|
|
- LogicHandler.UpdateOQCMessage(ms_sncode.Text,ob_checkno.Text, ob_makecode.Text, Kind, User.UserSourceCode, User.UserName, Result, out ErrorMessage);
|
|
|
+
|
|
|
+ LogicHandler.UpdateOQCMessage(ms_sncode.Text, ob_checkno.Text, ob_makecode.Text, Kind, User.UserSourceCode, User.UserName, Result, out ErrorMessage);
|
|
|
sql.Clear();
|
|
|
sql.Append("insert into MakeProcess(mp_id,mp_makecode,mp_maid, mp_mscode,mp_sncode,mp_stepcode,mp_stepname,");
|
|
|
sql.Append("mp_craftcode,mp_craftname,mp_kind,mp_result,mp_indate,mp_inman,mp_wccode,mp_linecode,mp_sourcecode,mp_snstatus,mp_sncheckno,mp_snoutboxcode)");
|
|
|
- sql.Append("select MakeProcess_seq.nextval, ma_code,ma_id,ms_code,ms_sncode,mcd_stepcode,mcd_stepname,");
|
|
|
+ sql.Append("select MakeProcess_seq.nextval, ma_code,ma_id,ms_code,ms_sncode,st_code,st_name,");
|
|
|
sql.Append("ma_craftcode,ma_craftname,'" + Kind + "','" + Result + "',sysdate,'" + User.UserCode + "',ma_wccode,'" + User.UserLineCode + "','" + User.UserSourceCode + "',");
|
|
|
- sql.Append("ms_status,ms_checkno,ms_outboxcode from make left join makecraftdetail on mcd_macode=ma_code left join makeserial on ms_makecode=ma_code ");
|
|
|
- sql.Append("where ms_checkno='" + ob_checkno.Text + "' and mcd_stepcode='" + User.CurrentStepCode + "'");
|
|
|
+ sql.Append("ms_status,ms_checkno,ms_outboxcode from make left join makeserial on ms_makecode=ma_code left join step on st_code=ms_stepcode ");
|
|
|
+ sql.Append("where ms_checkno='" + ob_checkno.Text + "' and st_code='" + User.CurrentStepCode + "'");
|
|
|
dh.ExecuteSql(sql.GetString(), "insert");
|
|
|
}
|
|
|
}
|