|
|
@@ -493,6 +493,97 @@ namespace UAS_MES.PublicMethod
|
|
|
return new DataTable[] { Form, Grid };
|
|
|
}
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 箱号过站的公用方法
|
|
|
+ /// </summary>
|
|
|
+ /// <param name="iOutBoxCode"></param>
|
|
|
+ /// <param name="iSourceCode"></param>
|
|
|
+ /// <param name="iUserCode"></param>
|
|
|
+ /// <param name="iResult"></param>
|
|
|
+ /// <param name="iBoxType"></param>
|
|
|
+ public static void OutBoxStepPass(string iOutBoxCode, string iMakeCode, string iSourceCode, string iUserCode, string iResult, string iBoxType)
|
|
|
+ {
|
|
|
+ string CurrentStep = "";
|
|
|
+ string LineCode = "";
|
|
|
+ string CurrentStepName = "";
|
|
|
+ List<string> ExeSQL = new List<string>();
|
|
|
+ GetStepCodeAndNameAndLineBySource(iSourceCode, ref CurrentStep, ref CurrentStepName, ref LineCode);
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("insert into MakeProcess(mp_id,mp_makecode,mp_maid, mp_mscode,mp_sncode,mp_stepcode,mp_stepname,mp_craftcode");
|
|
|
+ sql.Append(",mp_craftname,mp_kind,mp_result,mp_indate,mp_inman,mp_wccode,mp_linecode,mp_sourcecode,mp_snstatus,mp_sncheckno");
|
|
|
+ sql.Append(",mp_snoutboxcode) select MakeProcess_seq.nextval, ma_code,ma_id,ms_code,ms_sncode,'" + CurrentStep + "','" + CurrentStepName + "',");
|
|
|
+ sql.Append("ms_craftcode,ms_craftname,'" + iBoxType + "','" + iResult + "',sysdate,'" + iUserCode + "',ma_wccode,'" + LineCode + "','" + iSourceCode + "',");
|
|
|
+ sql.Append("ms_status,ms_checkno,ms_outboxcode from makeserial left join mes_package_view on ms_makecode=v_makecode ");
|
|
|
+ sql.Append("and ms_sncode=v_barcode left join make on ma_code=ms_makecode where v_outboxcode='" + iOutBoxCode + "'");
|
|
|
+ ExeSQL.Add(sql.ToString());
|
|
|
+ //获取子箱的总数
|
|
|
+ string totalcount = dh.getFieldDataByCondition("package", "nvl(pa_totalqty,0) pa_totalqty", "pa_outboxcode='" + iOutBoxCode + "'").ToString();
|
|
|
+ //更新过站数量
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("update makecraftdetail set mcd_inqty=mcd_inqty+"+ totalcount + ",mcd_outqty = mcd_outqty + "+ totalcount + ", ");
|
|
|
+ sql.Append("mcd_okqty = mcd_okqty + " + totalcount + " where mcd_macode='" + iMakeCode + "' and mcd_stepcode='" + CurrentStep + "'");
|
|
|
+ ExeSQL.Add(sql.ToString());
|
|
|
+ dh.ExecuteSQLTran(ExeSQL.ToArray());
|
|
|
+ ExeSQL.Clear();
|
|
|
+ //获取途程和产品信息
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select ms_craftcode,ms_prodcode,ms_makecode,ms_stepcode,ms_stepname,ms_paststep from mes_package_view left join makeserial ");
|
|
|
+ sql.Append("on ms_sncode=v_barcode and ms_makecode=v_makecode where v_outboxcode='" + iOutBoxCode + "' and rownum=1");
|
|
|
+ DataTable dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
|
|
|
+ string prodcode = "";
|
|
|
+ string craftcode = "";
|
|
|
+ string paststep = "";
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ prodcode = dt.Rows[0]["ms_prodcode"].ToString();
|
|
|
+ craftcode = dt.Rows[0]["ms_craftcode"].ToString();
|
|
|
+ paststep = dt.Rows[0]["ms_paststep"].ToString();
|
|
|
+ }
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("select cd_nextstepcode,nvl(cd_ifmidinput,0)cd_ifmidinput,nvl(cd_ifmidfinish,0)cd_ifmidfinish from craft left join craftdetail ");
|
|
|
+ sql.Append("on cr_id=cd_crid where cr_code='" + craftcode + "' and cr_prodcode='" + prodcode + "' and cd_stepcode='" + CurrentStep + "'");
|
|
|
+ dt = (DataTable)dh.ExecuteSql(sql.ToString(), "select");
|
|
|
+ if (dt.Rows.Count > 0)
|
|
|
+ {
|
|
|
+ string nextstepcode = dt.Rows[0]["cd_nextstepcode"].ToString();
|
|
|
+ string cd_ifmidinput = dt.Rows[0]["cd_ifmidinput"].ToString();
|
|
|
+ string cd_ifmidfinish = dt.Rows[0]["cd_ifmidfinish"].ToString();
|
|
|
+ string ifpast = paststep.Contains(CurrentStep) ? "0" : "1";
|
|
|
+ //下一工序不为空的时候更新序列号的下一工序
|
|
|
+ if (nextstepcode != "")
|
|
|
+ {
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("update makeserial set ms_stepcode='" + CurrentStep + "',ms_stepname='" + CurrentStepName + "',ms_nextstepcode=");
|
|
|
+ sql.Append("'" + nextstepcode + "',ms_sccode='"+iSourceCode+"',ms_paststep=ms_paststep|| case when "+ifpast+">0 then ','||'"+CurrentStep+"' end ");
|
|
|
+ sql.Append("where exists (select 1 from mes_package_view where ms_sncode=v_barcode and ");
|
|
|
+ sql.Append("ms_makecode=v_makecode and v_outboxcode='" + iOutBoxCode + "')");
|
|
|
+ ExeSQL.Add(sql.ToString());
|
|
|
+ }
|
|
|
+ else
|
|
|
+ {
|
|
|
+ //更新下一执行步骤
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("update makeserial set ms_stepcode='"+CurrentStep+"',ms_stepname='"+ CurrentStepName + "',ms_nextstepcode='',MS_STATUS=2,");
|
|
|
+ sql.Append("ms_sccode='"+iSourceCode+"',ms_paststep=ms_paststep|| case when "+ifpast+">0 then ','||'"+CurrentStep+"' end ");
|
|
|
+ sql.Append("where exists (select 1 from mes_package_view where ms_sncode=v_barcode and ms_makecode=v_makecode and v_outboxcode='"+iOutBoxCode+"')");
|
|
|
+ ExeSQL.Add(sql.ToString());
|
|
|
+ //更新完工数量
|
|
|
+ ExeSQL.Add("update make set ma_madeqty=nvl(ma_madeqty,0)+" + totalcount + " where ma_code='" + iMakeCode + "'");
|
|
|
+ }
|
|
|
+ //插入StepPass
|
|
|
+ sql.Clear();
|
|
|
+ sql.Append("insert into STEPPASSED(SP_ID,SP_IFTURNIN,SP_IFTURNOUT,SP_IFREWORK,SP_IFBACKFLOW,SP_CHECKNO,SP_RESULT");
|
|
|
+ sql.Append(",SP_SCCODE,SP_STEPCODE,SP_LINECODE,SP_WCCODE,SP_MAKECODE,SP_SNCODE,SP_YMD,SP_HM,SP_IFNG,SP_PRODCODE");
|
|
|
+ sql.Append(",SP_DATE,SP_CRAFTCODE,sp_inman) select STEPPASSED_SEq.NEXTVAL,'"+ cd_ifmidinput + "','"+cd_ifmidfinish+"',");
|
|
|
+ sql.Append("ms_ifrework,case when ms_ifrework=-1 then 0 when ms_stepcode='"+CurrentStep+ "' then 0 when "+ ifpast + ">0 ");
|
|
|
+ sql.Append("then -1 else 0 end,0,ms_checkno,'良品','"+iSourceCode+"','"+CurrentStep+"','"+ LineCode + "',ms_makecode,ms_sncode,");
|
|
|
+ sql.Append("to_char(sysdate,'yyyymmdd'),to_char(sysdate,'hh24miss'),0,ms_prodcode,SYSDATE,ms_craftcode,'"+iUserCode+"' ");
|
|
|
+ sql.Append("from mes_package_view left join makeserial on ms_sncode=v_barcode and ms_makecode=v_makecode where v_outboxcode='"+iOutBoxCode+"'");
|
|
|
+ ExeSQL.Add(sql.ToString());
|
|
|
+ dh.ExecuteSQLTran(ExeSQL.ToArray());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 记录操作日志
|
|
|
/// </summary>
|