|
|
@@ -72,76 +72,6 @@ namespace UAS_MES.PublicMethod
|
|
|
SerialNum = param[2];
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 判断下一工序是否是送检工序
|
|
|
- /// </summary>
|
|
|
- /// <returns></returns>
|
|
|
- public static bool CheckNextStepIfQC(string iSnCode, string iMakeCode, string iStepCode, string iCraftCode, string iUserName, out string oErrorMessage)
|
|
|
- {
|
|
|
- oErrorMessage = "";
|
|
|
- string IfQC = dh.getFieldDataByCondition("craft left join craftdetail on cd_crid=cr_id", "cd_ifoqc", "cr_code='" + iCraftCode + "' and cd_stepcode='" + iStepCode + "'").ToString();
|
|
|
- if (IfQC != "0" && IfQC != "")
|
|
|
- {
|
|
|
- DataTable dt = dh.getFieldsDataByCondition("make left join product on ma_prodcode=pr_code", new string[] { "ma_nowcheckqty", "pr_qcbatchqty", "ma_checkno", "ma_prodcode", "pr_qualmethod" }, "ma_code='" + iMakeCode + "'");
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
- {
|
|
|
- string ma_nowcheckqty = dt.Rows[0]["ma_nowcheckqty"].ToString();
|
|
|
- string pr_qcbatchqty = dt.Rows[0]["pr_qcbatchqty"].ToString();
|
|
|
- string ma_checkno = dt.Rows[0]["ma_checkno"].ToString();
|
|
|
- string ma_prodcode = dt.Rows[0]["ma_prodcode"].ToString();
|
|
|
- string pr_qualmethod = dt.Rows[0]["pr_qualmethod"].ToString();
|
|
|
- if (pr_qcbatchqty != "" && pr_qcbatchqty != "0")
|
|
|
- {
|
|
|
- //当前批次的送检批数量大于物料资料中的抽检批数或者当前批次编号为空
|
|
|
- string checkno = "";
|
|
|
- if (int.Parse(ma_nowcheckqty == "" ? "0" : ma_nowcheckqty) >= int.Parse(pr_qcbatchqty) || ma_checkno == "")
|
|
|
- {
|
|
|
- //原有的抽检批次插入OQCBatch
|
|
|
- string ob_id = dh.GetSEQ("OQCBatch_SEQ");
|
|
|
- checkno = dh.GetSerialNumberByCaller("Make!CheckQC");
|
|
|
- sql.Clear();
|
|
|
- sql.Append("insert into OQCBatch (ob_id, ob_checkno,ob_makecode,ob_source,ob_indate,ob_checkman,ob_batchqty,ob_status,ob_prodcode,ob_projectcode)");
|
|
|
- sql.Append(" values('" + ob_id + "','" + checkno + "','" + iMakeCode + "', '工序',sysdate, '" + iUserName + "','" + ma_nowcheckqty + "','UNCHECK','" + ma_prodcode + "','" + pr_qualmethod + "')");
|
|
|
- sqls.Add(sql.ToString());
|
|
|
- sqls.Add("update makeserial set ms_checkno='" + checkno + "' where ms_makecode='" + iMakeCode + "' and ms_sncode='" + iSnCode + "'");
|
|
|
- sqls.Add("update make set ma_checkno='" + checkno + "',ma_nowcheckqty=1 where ma_code='" + iMakeCode + "'");
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- sqls.Add("update makeserial set ms_checkno='" + ma_checkno + "' where ms_makecode='" + iMakeCode + "' and ms_sncode='" + iSnCode + "'");
|
|
|
- sqls.Add("update make set ma_nowcheckqty= ma_nowcheckqty+1 where ma_code='" + iMakeCode + "'");
|
|
|
- }
|
|
|
- dh.ExecuteSQLTran(sqls.ToArray());
|
|
|
- sqls.Clear();
|
|
|
- //如果制造单的ma_checkno没有值则新加入一个值
|
|
|
- string checkno1 = checkno == "" ? ma_checkno : checkno;
|
|
|
- string obd_obid = dh.getFieldDataByCondition("oqcbatch", "ob_id", "ob_checkno='" + checkno1 + "'").ToString();
|
|
|
- //插入抽检批次明细表
|
|
|
- sql.Clear();
|
|
|
- sql.Append("insert into OQCBatchDetail (obd_id,obd_obid,obd_sncode,obd_outboxcode,obd_makecode,obd_checkno,obd_builddate) ");
|
|
|
- sql.Append("select OQCBatchDetail_SEQ.nextval,'" + obd_obid + "',ms_sncode,ms_outboxcode,ms_makecode,ms_checkno,");
|
|
|
- sql.Append("sysdate from makeserial where ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
- dh.ExecuteSql(sql.ToString(), "insert");
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- oErrorMessage = "请维护物料资料的抽检批数";
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- oErrorMessage = "制造单号不存在";
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- oErrorMessage = "当前工序的下一工序不是OQC检测";
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 验证用户身份信息
|
|
|
@@ -443,76 +373,6 @@ namespace UAS_MES.PublicMethod
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 获取序列号的所有串号信息
|
|
|
- /// </summary>
|
|
|
- /// <param name="iSnCode"></param>
|
|
|
- /// <param name="oIMEI1"></param>
|
|
|
- /// <param name="oIMEI2"></param>
|
|
|
- /// <param name="oIMEI3"></param>
|
|
|
- /// <param name="oMEID"></param>
|
|
|
- /// <param name="oNetCode"></param>
|
|
|
- /// <param name="oPSN"></param>
|
|
|
- /// <param name="oMac"></param>
|
|
|
- /// <param name="oBT"></param>
|
|
|
- /// <param name="oCode1"></param>
|
|
|
- /// <param name="oCode2"></param>
|
|
|
- /// <param name="oCode3"></param>
|
|
|
- /// <param name="oErrorMessage"></param>
|
|
|
- /// <returns></returns>
|
|
|
- public static bool GetSNAllInfo(string iSnCode, out string oIMEI1, out string oIMEI2, out string oIMEI3, out string oMEID, out string oNetCode, out string oPSN, out string oMac, out string oBT, out string oCode1, out string oCode2, out string oCode3, out string oID1, out string oID2, out string oID3, out string oErrorMessage)
|
|
|
- {
|
|
|
- oBT = "";
|
|
|
- oMEID = "";
|
|
|
- oMac = "";
|
|
|
- oPSN = "";
|
|
|
- oNetCode = "";
|
|
|
- oIMEI1 = "";
|
|
|
- oIMEI2 = "";
|
|
|
- oIMEI3 = "";
|
|
|
- oCode1 = "";
|
|
|
- oCode2 = "";
|
|
|
- oCode3 = "";
|
|
|
- oID1 = "";
|
|
|
- oID2 = "";
|
|
|
- oID3 = "";
|
|
|
- //通过序列号获取最近操作的工单号
|
|
|
- string ms_id = dh.getFieldDataByCondition("makeserial", "ms_id", "ms_sncode='" + iSnCode + "'").ToString();
|
|
|
- if (ms_id != "")
|
|
|
- {
|
|
|
- DataTable dt = dh.getFieldsDataByCondition("MakeSerial", new string[] { "ms_id", "ms_mac", "ms_bt", "ms_meid", "ms_netcode", "ms_psn", "ms_imei1", "ms_imei2", "ms_imei3", "ms_othcode1", "ms_othcode2", "ms_othcode3", "ms_othid1", "ms_othid2", "ms_othid3" }, "ms_id='" + ms_id + "'");
|
|
|
- if (dt.Rows.Count > 0)
|
|
|
- {
|
|
|
- oMac = dt.Rows[0]["ms_mac"].ToString();
|
|
|
- oBT = dt.Rows[0]["ms_bt"].ToString();
|
|
|
- oPSN = dt.Rows[0]["ms_psn"].ToString();
|
|
|
- oNetCode = dt.Rows[0]["ms_netcode"].ToString();
|
|
|
- oMEID = dt.Rows[0]["ms_meid"].ToString();
|
|
|
- oIMEI1 = dt.Rows[0]["ms_imei1"].ToString();
|
|
|
- oIMEI2 = dt.Rows[0]["ms_imei2"].ToString();
|
|
|
- oIMEI3 = dt.Rows[0]["ms_imei3"].ToString();
|
|
|
- oCode1 = dt.Rows[0]["ms_othcode1"].ToString();
|
|
|
- oCode2 = dt.Rows[0]["ms_othcode2"].ToString();
|
|
|
- oCode3 = dt.Rows[0]["ms_othcode3"].ToString();
|
|
|
- oID1 = dt.Rows[0]["ms_othid3"].ToString();
|
|
|
- oID2 = dt.Rows[0]["ms_othid3"].ToString();
|
|
|
- oID3 = dt.Rows[0]["ms_othid3"].ToString();
|
|
|
- oErrorMessage = "";
|
|
|
- return true;
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- oErrorMessage = "序列号" + iSnCode + "不存在";
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
- else
|
|
|
- {
|
|
|
- oErrorMessage = "序列号" + iSnCode + "不存在";
|
|
|
- return false;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
/// <summary>
|
|
|
/// 第一个是Form的主表信息,第二个是Grid的信息
|
|
|
/// </summary>
|
|
|
@@ -713,7 +573,7 @@ namespace UAS_MES.PublicMethod
|
|
|
public static bool SetStepFinish(string iMakeCode, string iSourceCode, string iSN, string iMPKind, string iResult, string iUserCode, out string oErrorMessage)
|
|
|
{
|
|
|
oErrorMessage = "";
|
|
|
- string StepCode = dh.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "'").ToString();
|
|
|
+ string StepCode = dh.getFieldDataByCondition("Makeserial", "ms_stepcode", "ms_sncode='" + iSN + "' and ms_makecode='"+iMakeCode+"'").ToString();
|
|
|
string CurrentStep = GetStepCodeBySource(iSourceCode);
|
|
|
if (StepCode == CurrentStep)
|
|
|
{
|
|
|
@@ -849,13 +709,12 @@ namespace UAS_MES.PublicMethod
|
|
|
if (iResult == "" || iResult == null)
|
|
|
iResult = "检查未通过";
|
|
|
GetStepCodeAndNameBySource(iSourceCode, ref StepCode, ref StepName);
|
|
|
- string ms_status = dh.getFieldDataByCondition("makeserial", "ms_status", "ms_sncode='" + iSnCode + "'").ToString();
|
|
|
sql.Clear();
|
|
|
sql.Append("insert into makebad(mb_id,mb_makecode,mb_mscode,mb_sncode,mb_inman,mb_indate,mb_stepcode");
|
|
|
sql.Append(",mb_sourcecode,mb_badcode,mb_bgcode,mb_badtable,mb_soncode,mb_status,mb_badremark)");
|
|
|
sql.Append("select makebad_seq.nextval,ma_code,ms_code,ms_sncode,'" + iUserCode + "',sysdate,'" + StepCode + "',ms_sourcecode,:bc_code,:bg_code,'',");
|
|
|
sql.Append("sp_soncode,'0',:bc_remark from make left join makeSerial on ms_makecode=ma_code left join stepProduct on ");
|
|
|
- sql.Append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSnCode + "'");
|
|
|
+ sql.Append("sp_mothercode=ma_prodcode and sp_stepcode=ms_nextstepcode where ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
dh.BatchInsert(sql.ToString(), new string[] { "bc_code", "bg_code", "bc_remark" }, iBadCode, iBadGroupCode, iBadRemark);
|
|
|
//更新序列号已经采集的工序 ms_paststep 已采集数据,更新下一工序
|
|
|
//如果存在送检批号则进行删除
|
|
|
@@ -866,8 +725,7 @@ namespace UAS_MES.PublicMethod
|
|
|
dh.ExecuteSql("update oqcbatch set ob_nowcheckqty=ob_nowcheckqty-1 where ob_checkno='" + checkno + "'", "update");
|
|
|
}
|
|
|
//之前保存的不良就不再调用
|
|
|
-
|
|
|
- DataTable dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_stepcode", "nvl(ms_ifrework,0)ms_ifrework" }, "ms_sncode='" + iSnCode + "'");
|
|
|
+ DataTable dt = dh.getFieldsDataByCondition("makeserial", new string[] { "ms_stepcode", "nvl(ms_ifrework,0)ms_ifrework" }, "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
string ifrework = dt.Rows[0]["ms_ifrework"].ToString();
|
|
|
@@ -875,17 +733,17 @@ namespace UAS_MES.PublicMethod
|
|
|
if (ms_stepcode == StepCode)
|
|
|
{
|
|
|
if (ifrework == "0")
|
|
|
- dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "'");
|
|
|
+ dh.UpdateByCondition("makeserial", "ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
else
|
|
|
- dh.UpdateByCondition("makeserial", "ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
|
|
|
+ dh.UpdateByCondition("makeserial", "ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
if (ifrework == "0")
|
|
|
- dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "'");
|
|
|
+ dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_paststep = ms_paststep ||'," + StepCode + "',ms_status=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "' ");
|
|
|
else
|
|
|
- dh.UpdateByCondition("makeserial", "ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "'");
|
|
|
- SetStepFinish(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
|
|
|
+ dh.UpdateByCondition("makeserial", "ms_nextstepcode='',ms_paststep = ms_paststep ||'," + StepCode + "',ms_reworkstatus=3", "ms_sncode='" + iSnCode + "' and ms_makecode='" + iMakeCode + "'");
|
|
|
+ SetTestResult(iMakeCode, iSourceCode, iSnCode, "不良采集", iResult, iUserCode, out oErrorMessage);
|
|
|
}
|
|
|
}
|
|
|
return true;
|
|
|
@@ -1153,7 +1011,7 @@ namespace UAS_MES.PublicMethod
|
|
|
switch (iRule)
|
|
|
{
|
|
|
case "TSN":
|
|
|
- dt = (DataTable)dh.ExecuteSql("select ms_id,ms_prodcode,ms_nextmacode,ms_salecode,ms_downstatus from makeserial where ms_sncode='" + iSN + "' and ms_status=2 order by ms_id desc", "select");
|
|
|
+ dt = (DataTable)dh.ExecuteSql("select ms_id,ms_prodcode,ms_nextmacode,ms_salecode,ms_downstatus from makeserial where ms_sncode='" + iSN + "' and ms_makecode='"+iMakeCode+"' and ms_status=2 order by ms_id desc", "select");
|
|
|
if (dt.Rows.Count > 0)
|
|
|
{
|
|
|
if (dt.Rows[0]["ms_downstatus"].ToString() != "0")
|