//產品維修CheckIn Action public static void SNInRepairAction(MESStation.BaseClass.MESStationBase Station, MESStation.BaseClass.MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count == 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession SNLoadPoint = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (SNLoadPoint == null) { SNLoadPoint = new MESStationSession() { MESDataType = "SN", InputValue = Input.Value.ToString(), SessionKey = "1", ResetInput = Input }; Station.StationSession.Add(SNLoadPoint); } string sendEmp = Station.Inputs.Find(s => s.DisplayName == "SendEMP").Value.ToString(); string receiveEmp = Station.Inputs.Where(s => s.DisplayName == "ReceiveEMP").FirstOrDefault().Value.ToString(); //string sendEmp = Station.Inputs[0].Value.ToString(); //string receiveEmp = Station.Inputs[1].Value.ToString(); string strSn = Input.Value.ToString(); SN sn = new SN(strSn, Station.SFCDB, MESDataObject.DB_TYPE_ENUM.Oracle); T_R_REPAIR_TRANSFER rTransfer = new T_R_REPAIR_TRANSFER(Station.SFCDB, DB_TYPE_ENUM.Oracle); Row_R_REPAIR_TRANSFER rowTransfer = (Row_R_REPAIR_TRANSFER)rTransfer.NewRow(); T_R_REPAIR_MAIN rRepairMain = new T_R_REPAIR_MAIN(Station.SFCDB, DB_TYPE_ENUM.Oracle); List <R_REPAIR_MAIN> RepariMainList = rRepairMain.GetRepairMainBySN(Station.SFCDB, strSn); R_REPAIR_MAIN rMain = RepariMainList.Where(r => r.CLOSED_FLAG == "0").FirstOrDefault(); // Find(r => r.CLOSED_FLAG == "0"); if (rMain != null) { rowTransfer.ID = rTransfer.GetNewID(Station.BU, Station.SFCDB); rowTransfer.REPAIR_MAIN_ID = rMain.ID; rowTransfer.IN_SEND_EMP = sendEmp; rowTransfer.IN_RECEIVE_EMP = receiveEmp; rowTransfer.IN_TIME = DateTime.Now; rowTransfer.SN = strSn; rowTransfer.LINE_NAME = Station.Line; rowTransfer.STATION_NAME = sn.CurrentStation; rowTransfer.WORKORDERNO = sn.WorkorderNo; rowTransfer.SKUNO = sn.SkuNo; rowTransfer.CLOSED_FLAG = "1"; string strRet = (Station.SFCDB).ExecSQL(rowTransfer.GetInsertString(DB_TYPE_ENUM.Oracle)); if (Convert.ToInt32(strRet) > 0) { Station.AddMessage("MES00000001", new string[] { }, MESReturnView.Station.StationMessageState.Pass); } else { Station.AddMessage("MES00000037", new string[] { "INSET R_REPAIR_TRANSFER" }, MESReturnView.Station.StationMessageState.Pass); } } else { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000066", new string[] { strSn, "CLOSED" })); } }
//產品維修CheckOut Action public static void SNOutRepairAction(MESStation.BaseClass.MESStationBase Station, MESStation.BaseClass.MESStationInput Input, List <R_Station_Action_Para> Paras) { if (Paras.Count == 0) { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000050")); } MESStationSession SNLoadPoint = Station.StationSession.Find(t => t.MESDataType == Paras[0].SESSION_TYPE && t.SessionKey == Paras[0].SESSION_KEY); if (SNLoadPoint == null) { SNLoadPoint = new MESStationSession() { MESDataType = "SN", InputValue = Input.Value.ToString(), SessionKey = "1", ResetInput = Input }; Station.StationSession.Add(SNLoadPoint); } string checkOutSendEmp = Station.Inputs.Find(s => s.DisplayName == "SendEMP").Value.ToString(); string checkOutReceiveEmp = Station.Inputs.Find(s => s.DisplayName == "ReceiveEMP").Value.ToString(); string strSn = Input.Value.ToString(); SN sn = new SN(strSn, Station.SFCDB, MESDataObject.DB_TYPE_ENUM.Oracle); T_R_REPAIR_TRANSFER rTransfer = new T_R_REPAIR_TRANSFER(Station.SFCDB, DB_TYPE_ENUM.Oracle); Row_R_REPAIR_TRANSFER rowTransfer = (Row_R_REPAIR_TRANSFER)rTransfer.NewRow(); List <R_REPAIR_TRANSFER> transferList = rTransfer.GetReSNbysn(strSn, Station.SFCDB); R_REPAIR_TRANSFER rRepairTransfer = transferList.Where(r => r.CLOSED_FLAG == "1").FirstOrDefault();//TRANSFER表 1 表示不良 if (rRepairTransfer != null) { rowTransfer = (Row_R_REPAIR_TRANSFER)rTransfer.GetObjByID(rRepairTransfer.ID, Station.SFCDB); //T_R_REPAIR_MAIN rRepairMain = new T_R_REPAIR_MAIN(Station.SFCDB, DB_TYPE_ENUM.Oracle); //List<R_REPAIR_MAIN> RepariMainList = rRepairMain.GetRepairMainBySN(Station.SFCDB, strSn); //R_REPAIR_MAIN rMain = RepariMainList.Where(r => r.CLOSED_FLAG == "0").FirstOrDefault(); rowTransfer.OUT_TIME = DateTime.Now; rowTransfer.OUT_SEND_EMP = checkOutSendEmp; rowTransfer.OUT_RECEIVE_EMP = checkOutReceiveEmp; string strRet = (Station.SFCDB).ExecSQL(rowTransfer.GetUpdateString(DB_TYPE_ENUM.Oracle)); if (Convert.ToInt32(strRet) > 0) { Station.AddMessage("MES00000001", new string[] { }, MESReturnView.Station.StationMessageState.Pass); } else { Station.AddMessage("MES00000037", new string[] { "UPDATE R_REPAIR_TRANSFER" }, MESReturnView.Station.StationMessageState.Pass); } } else { throw new Exception(MESReturnMessage.GetMESReturnMessage("MES00000066", new string[] { strSn, "abnormal" })); } }